/* ===== Tokens ===== */
:root{
  --c-base:#FFFFFF;
  --c-ink:#0F172A;
  --c-blue:#1A6BE0;     /* main accent */
  --c-blue-d:#1257bd;
  --c-red:#E23A2E;      /* sashiiro */
  --c-yellow:#F5B81E;   /* line */
  --c-green:#7DBE2E;    /* one-point */
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:84px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP",system-ui,sans-serif;
  color:var(--c-ink);
  background:transparent;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  line-break:strict;
  overflow-wrap:normal;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
ul{list-style:none}

/* Natural Japanese wrapping: avoid a single character being stranded on a line. */
h1,h2,h3,h4,
.hero__title,.feature__title,.sec-title,.scard__ttl,
.news__title,.cta__title,.page-hero__title,.svc-block__ttl,
.psec-title,.cmp-copy,.cmp-msg__copy,.rc-msg__ttl,
.rc-feat__ttl,.job__name,.blog-card__ttl,.article__title{
  text-wrap:balance;
  word-break:auto-phrase;
}
p,li,dt,dd,label{
  text-wrap:pretty;
  word-break:auto-phrase;
}
.btn,.btn-h,.cta-btn,.entry-btn,.contact__submit,
.contact__line-btn,.article__cta-btn,.footer__cta-btn{
  white-space:nowrap;
}
.nowrap{white-space:nowrap}
.address-break::before{content:" "}

/* ===== Header ===== */
.header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);
  transition:background .4s var(--ease),box-shadow .4s var(--ease);
}
.header__inner{
  max-width:1480px;margin:0 auto;height:100%;
  padding:0 clamp(20px,4vw,56px);
  display:flex;align-items:center;gap:32px;
}
.header__logo{display:flex;align-items:center;flex-shrink:0}
.header__logo-img{height:34px;width:auto;transition:opacity .35s var(--ease)}
.header__logo-img--white{position:absolute;opacity:0}
.header__logo-img--dark{opacity:1}

.gnav{margin-left:auto}
.gnav__list{display:flex;gap:clamp(20px,2.6vw,44px)}
.gnav__item{position:relative}
.gnav__list a{
  font-weight:700;font-size:15px;letter-spacing:.04em;
  color:var(--c-ink);position:relative;padding:6px 0;
  transition:color .35s var(--ease);
}
.gnav__list a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--c-blue);transition:width .3s var(--ease);
}
.gnav__list a:hover{color:var(--c-blue)}
.gnav__list a:hover::after{width:100%}

.service-dropdown{
  position:absolute;top:calc(100% + 20px);left:50%;z-index:120;
  width:min(680px,calc(100vw - 48px));padding:16px;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
  background:rgba(255,255,255,.9);border:1px solid rgba(226,232,240,.9);
  border-radius:26px;box-shadow:0 28px 70px rgba(15,23,42,.16);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translate(-50%,8px) scale(.98);
  transition:opacity .24s var(--ease),transform .24s var(--ease),visibility .24s var(--ease);
}
.service-dropdown::before{
  content:"";position:absolute;left:0;right:0;top:-22px;height:24px;
}
.service-dropdown::after{
  content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;
  background:rgba(255,255,255,.92);border-left:1px solid rgba(226,232,240,.9);
  border-top:1px solid rgba(226,232,240,.9);transform:translateX(-50%) rotate(45deg);
}
.gnav__item--services:hover .service-dropdown,
.gnav__item--services:focus-within .service-dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1);
}
.service-dropdown__card{
  position:relative;display:flex;flex-direction:column;gap:12px;min-height:222px;
  padding:14px;border-radius:20px;background:#fff;border:1px solid #eef2f7;
  box-shadow:0 12px 34px rgba(15,23,42,.07);
  overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
}
.service-dropdown__card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--drop-accent,#1E5FD8);
}
.service-dropdown__card:hover{
  transform:translateY(-4px);box-shadow:0 20px 46px rgba(15,23,42,.12);
  border-color:color-mix(in srgb,var(--drop-accent,#1E5FD8) 24%,#fff);
}
.service-dropdown__card::after{display:none!important}
.service-dropdown__thumb{
  height:86px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,color-mix(in srgb,var(--drop-accent,#1E5FD8) 10%,#fff),#fff);
  border:1px solid color-mix(in srgb,var(--drop-accent,#1E5FD8) 16%,#fff);
}
.service-dropdown__thumb img{max-width:82%;max-height:58px;object-fit:contain}
.service-dropdown__card--red .service-dropdown__thumb img{max-height:50px}
.service-dropdown__body{display:flex;flex-direction:column;gap:6px}
.service-dropdown__label{
  display:inline-flex;width:max-content;max-width:100%;padding:4px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--drop-accent,#1E5FD8) 10%,#fff);
  color:var(--drop-accent,#1E5FD8);font-size:11px;font-weight:900;letter-spacing:.04em;
}
.service-dropdown__body strong{font-size:18px;line-height:1.35;color:var(--c-ink);font-weight:900}
.service-dropdown__body small{font-size:12px;line-height:1.7;color:#64748b;font-weight:700;letter-spacing:0}
.service-dropdown__card--blue{--drop-accent:#1E5FD8}
.service-dropdown__card--orange{--drop-accent:#FF7A1A}
.service-dropdown__card--red{--drop-accent:#E23A2E}
.service-dropdown__card--fc{--drop-accent:#1E5FD8}
.service-dropdown .service-dropdown__card{
  padding:14px;
}
.service-dropdown .service-dropdown__card:hover::after{width:0}

.header__actions{display:flex;gap:12px;flex-shrink:0}
.btn-h{
  display:inline-flex;align-items:center;gap:9px;
  height:48px;padding:0 20px;border-radius:999px;
  font-weight:700;font-size:14px;letter-spacing:.02em;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,color .3s;
}
.btn-h__arrow{font-style:normal;font-size:16px;opacity:.8;transition:transform .3s var(--ease)}
.btn-h:hover{transform:translateY(-2px)}
.btn-h:hover .btn-h__arrow{transform:translateX(3px)}
.btn-h--primary{background:linear-gradient(135deg,#FF6A5B 0%,#E23A2E 55%,#C81E3A 100%);
  color:#fff;box-shadow:0 8px 24px rgba(226,58,46,.38)}
.btn-h--primary:hover{filter:brightness(1.05)}
.btn-h--line{background:#02b902;color:#fff;box-shadow:0 8px 24px rgba(2,185,2,.32)}
.btn-h--line:hover{background:#02b902;filter:brightness(.94)}
.btn-h--line .line-badge{margin-right:-2px}
.line-badge{
  display:block;flex:0 0 auto;width:26px;height:26px;
  object-fit:cover;object-position:28% center;border-radius:50%;
}
.btn-h .line-badge{width:20px;height:20px}

/* scrolled state */
.header.is-scrolled{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(15,23,42,.06),0 8px 30px rgba(15,23,42,.06);
}

.hamburger{display:none;flex-direction:column;gap:5px;width:30px;height:24px;
  background:none;border:0;cursor:pointer;margin-left:auto}
.hamburger span{display:block;height:2px;width:100%;background:var(--c-ink);border-radius:2px;transition:.3s var(--ease)}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* drawer */
.drawer{
  position:fixed;inset:0;z-index:90;
  background:#091220;
  transform:translateX(100%);
  transition:transform .55s var(--ease);
  overflow-y:auto;overscroll-behavior:contain;
  display:flex;align-items:flex-start;justify-content:center;
}
.drawer::before,.drawer::after{
  content:"";position:fixed;border-radius:50%;pointer-events:none;opacity:.18;filter:blur(2px);
}
.drawer::before{
  width:240px;height:240px;right:-135px;top:9%;
  border:36px solid var(--c-blue);
}
.drawer::after{
  width:190px;height:190px;left:-125px;bottom:-75px;
  border:28px solid var(--c-green);
}
.drawer.is-open{transform:translateX(0)}
.drawer__nav{
  width:min(calc(100% - 48px),520px);
  min-height:100%;padding:clamp(88px,12vh,112px) 0 32px;
  display:flex;flex-direction:column;
  text-align:left;position:relative;z-index:1;
}
.drawer__nav>a{
  --menu-accent:var(--c-red);
  min-height:96px;padding:18px 44px 18px 42px;
  border-bottom:1px solid rgba(255,255,255,.14);
  color:#fff;position:relative;
  display:flex;align-items:flex-end;
  font-size:15px;font-weight:700;letter-spacing:.08em;
  background-image:radial-gradient(circle at 25px calc(100% - 24px),var(--menu-accent) 0 4px,transparent 5px);
  transition:background .25s var(--ease),padding-left .25s var(--ease);
}
.drawer__nav>a::before{
  content:"Top";
  position:absolute;left:24px;top:14px;
  color:#fff;font-family:"Outfit",sans-serif;
  font-size:clamp(28px,8vw,38px);font-weight:700;font-style:italic;
  line-height:1;letter-spacing:-.02em;
}
.drawer__nav>a::after{
  content:"";position:absolute;left:0;top:15px;width:5px;height:42px;
  border-radius:8px;background:var(--menu-accent);
  box-shadow:0 0 22px color-mix(in srgb,var(--menu-accent) 45%,transparent);
}
.drawer__nav>a:hover,
.drawer__nav>a:focus-visible{
  background:rgba(255,255,255,.05);padding-left:30px;
}
.drawer__nav>a[href="index.html"]{--menu-accent:var(--c-red)}
.drawer__nav>a[href="index.html"]::before{content:"Top"}
.drawer__nav>a[href="service.html"]{--menu-accent:var(--c-yellow)}
.drawer__nav>a[href="service.html"]::before{content:"Service"}
.drawer__nav>a[href="news.html"]{--menu-accent:var(--c-blue)}
.drawer__nav>a[href="news.html"]::before{content:"News"}
.drawer__nav>a[href="company.html"]{--menu-accent:var(--c-green)}
.drawer__nav>a[href="company.html"]::before{content:"Company"}
.drawer__nav>a[href="recruit.html"]{--menu-accent:var(--c-red)}
.drawer__nav>a[href="recruit.html"]::before{content:"Recruit"}
.drawer__nav>a[href="contact.html"],
.drawer__nav>a[href="index.html#contact"]{--menu-accent:var(--c-yellow)}
.drawer__nav>a[href="contact.html"]::before,
.drawer__nav>a[href="index.html#contact"]::before{content:"Contact"}
.drawer__nav>a[href="#line"]{--menu-accent:#06c755}
.drawer__nav>a[href="#line"]::before{content:"Line"}
.drawer-service-links{
  display:flex;flex-direction:column;gap:10px;
  padding:14px 0 24px 96px;
  margin-top:0;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.drawer-service-links a{
  width:max-content;max-width:calc(100% - 34px);
  color:rgba(255,255,255,.86);
  font-size:15px;font-weight:800;line-height:1.4;letter-spacing:.04em;
  position:relative;padding-left:18px;
  transition:color .25s var(--ease),transform .25s var(--ease);
}
.drawer-service-links a::before{
  content:"";position:absolute;left:0;top:.58em;width:7px;height:7px;
  border-radius:50%;background:var(--c-yellow);
  box-shadow:0 0 16px rgba(255,190,27,.42);
}
.drawer-service-links a:nth-child(1)::before{background:var(--c-blue);box-shadow:0 0 16px rgba(30,95,216,.42)}
.drawer-service-links a:nth-child(2)::before{background:#FF7A1A;box-shadow:0 0 16px rgba(255,122,26,.42)}
.drawer-service-links a:nth-child(3)::before{background:var(--c-red);box-shadow:0 0 16px rgba(226,58,46,.42)}
.drawer-service-links a:nth-child(4)::before{background:#1E5FD8;box-shadow:0 0 16px rgba(30,95,216,.42)}
.drawer-service-links a:hover,
.drawer-service-links a:focus-visible{
  color:#fff;transform:translateX(4px);
}

body.drawer-open .header{
  background:#091220;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
body.drawer-open .header__logo-img--dark{opacity:0}
body.drawer-open .header__logo-img--white{opacity:1}
body.drawer-open .hamburger span{background:#fff}
body.drawer-open .line-float{opacity:0;pointer-events:none}

/* ===== Hero ===== */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#fff}
.hero__slides{position:absolute;inset:0}

/* layout: right 60% media via media positioning; veil handles left text area */
.slide{position:absolute;inset:0;opacity:0;z-index:0;
  transition:opacity 1.6s ease-in-out;pointer-events:none;will-change:opacity}
.slide.is-active{opacity:1;z-index:1;pointer-events:auto}
.slide__media{
  position:absolute;inset:0;
  background-size:cover;background-position:center center;
  background-repeat:no-repeat;
  transform:scale(1.04);
  will-change:transform;
}
/* slow, constant zoom (video-like Ken Burns) that keeps running while fading */
.slide.is-active .slide__media{
  animation:kenburns 8s linear forwards;
}
@keyframes kenburns{
  from{transform:scale(1.02)}
  to{transform:scale(1.12)}
}

.hero__veil{display:none}

/* copy */
.hero__inner{position:relative;z-index:10;height:100%;max-width:1480px;margin:0 auto;
  padding:0 clamp(20px,4vw,56px);display:flex;align-items:center}
.hero__text{width:50%;max-width:720px;padding-top:60px}
.hero__eyebrow{display:flex;align-items:center;gap:12px;font-weight:700;
  font-size:clamp(13px,1.1vw,16px);color:var(--c-blue);letter-spacing:.06em;margin-bottom:24px}
.hero__eyebrow-bar{width:34px;height:3px;background:var(--c-blue);border-radius:2px}
.hero__title{
  font-weight:900;line-height:1.18;letter-spacing:.01em;
  font-size:clamp(38px,5vw,76px);color:var(--c-ink);margin-bottom:30px;
  white-space:nowrap;
}
.hero__title .accent{color:var(--c-blue)}
.hero__lead{font-weight:500;line-height:2.05;
  font-size:clamp(14px,1.15vw,17px);color:#33415c;margin-bottom:40px}

.hero__cta{display:flex;flex-wrap:wrap;gap:16px}
.btn{display:inline-flex;align-items:center;gap:11px;height:64px;padding:0 30px;
  border-radius:999px;font-weight:700;font-size:clamp(14px,1vw,16px);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s}
.btn svg{flex-shrink:0}
.btn__arrow{font-style:normal;margin-left:4px;font-size:18px;opacity:.85;transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-3px)}
.btn:hover .btn__arrow{transform:translateX(4px)}
.btn--primary{background:linear-gradient(135deg,#FF6A5B 0%,#E23A2E 55%,#C81E3A 100%);
  color:#fff;box-shadow:0 14px 34px rgba(226,58,46,.40)}
.btn--primary:hover{filter:brightness(1.05)}
.btn--white{background:#fff;color:var(--c-ink);box-shadow:0 10px 30px rgba(15,23,42,.12)}
.btn--white:hover{box-shadow:0 16px 38px rgba(15,23,42,.18)}
.btn--line{background:#02b902;color:#fff;box-shadow:0 14px 34px rgba(2,185,2,.34)}
.btn--line:hover{background:#02b902;filter:brightness(.94);box-shadow:0 18px 40px rgba(2,185,2,.42)}

/* indicator */
.hero__indicator{position:absolute;right:clamp(26px,3.6vw,64px);top:50%;transform:translateY(-50%);
  z-index:15;display:flex;flex-direction:column;gap:18px;align-items:center}
.ind__item{background:none;border:0;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:14px;color:#94a3b8;transition:color .35s var(--ease)}
.ind__num{font-family:"Outfit",sans-serif;font-weight:600;font-size:15px;letter-spacing:.08em}
.ind__bar{width:2px;height:46px;background:#cbd5e1;position:relative;overflow:hidden;border-radius:2px}
.ind__bar::after{content:"";position:absolute;inset:0 0 100% 0;background:var(--c-blue);transition:none}
.ind__item.is-active{color:var(--c-blue)}
.ind__item.is-active .ind__bar{background:rgba(26,107,224,.22)}
.ind__item.is-active .ind__bar::after{inset:0;
  animation:fill var(--dur,5s) linear forwards}
.ind__item.is-active .ind__num{font-size:17px}
@keyframes fill{from{inset:0 0 100% 0}to{inset:0}}
.hero.is-paused .ind__item.is-active .ind__bar::after{animation-play-state:paused}

/* pause/play */
.hero__toggle{position:absolute;right:clamp(26px,3.6vw,64px);bottom:clamp(40px,9vh,120px);
  z-index:15;width:54px;height:54px;border-radius:50%;cursor:pointer;
  background:rgba(26,107,224,.1);border:1px solid rgba(26,107,224,.4);color:var(--c-blue);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease),transform .3s var(--ease)}
.hero__toggle:hover{background:rgba(26,107,224,.18);transform:scale(1.06)}
.hero__toggle .ic-play{display:none}
.hero.is-paused .hero__toggle .ic-play{display:block}
.hero.is-paused .hero__toggle .ic-pause{display:none}

/* scroll cue */
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  z-index:15;display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:"Outfit",sans-serif;font-size:11px;letter-spacing:.3em;color:#64748b}
.hero__scroll i{width:1px;height:46px;background:linear-gradient(#64748b,transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;
  background:var(--c-blue);animation:scrolldot 1.8s var(--ease) infinite}
@keyframes scrolldot{0%{transform:translateY(-100%)}100%{transform:translateY(250%)}}

/* ===== Global parallax page background (fixed) ===== */
.page-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% 0%, #ffffff 0%, rgba(255,255,255,0) 60%),
    linear-gradient(160deg, #eaf1fb 0%, #f3f7fc 45%, #eef4fb 100%);}
.page-bg>*{position:absolute;will-change:transform}

.bg-ring{border-radius:50%;background:transparent}
.bg-ring--pink{top:-130px;left:-90px;width:320px;height:320px;
  border:26px solid rgba(240,150,150,.42)}
.bg-ring--green{top:-90px;right:-70px;width:320px;height:320px;
  border:26px solid rgba(150,195,120,.40)}
.bg-ring--blue1{bottom:-160px;left:-110px;width:360px;height:360px;
  border:30px solid rgba(120,160,225,.42)}
.bg-ring--blue2{bottom:-150px;right:-120px;width:380px;height:380px;
  border:30px solid rgba(120,160,225,.42)}

/* dot grids */
.bg-dots{width:130px;height:130px;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.95) 1.6px, transparent 1.7px);
  background-size:11px 11px}
.bg-dots--bl{left:14px;bottom:120px}
.bg-dots--br{right:120px;bottom:130px}

/* ===== Feature section ===== */
.feature{
  padding:clamp(70px,8vw,110px) 0 clamp(70px,8vw,105px);
  background:
    linear-gradient(145deg,rgba(226,58,46,.05),transparent 25%),
    linear-gradient(325deg,rgba(125,190,46,.07),transparent 26%),
    rgba(255,255,255,.94);
  overflow:hidden;
}
.feature__inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.feature__hero{
  min-height:370px;display:grid;grid-template-columns:minmax(380px,.85fr) minmax(500px,1.15fr);
  align-items:center;margin-bottom:-14px;position:relative;
}
.feature__head{position:relative;z-index:2;text-align:left;padding:18px 0 70px}
.feature__eyebrow{
  font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.12em;
  color:var(--c-blue);font-size:13px;margin-bottom:18px;
}
.feature__title{
  font-weight:900;letter-spacing:.035em;line-height:1.35;
  font-size:clamp(34px,3.5vw,54px);color:var(--c-ink);margin-bottom:16px;
}
.feature__title .accent{color:var(--c-blue)}
.feature__color-line{display:flex;gap:10px;margin:0 0 20px}
.feature__color-line span{display:block;width:36px;height:4px;border-radius:5px}
.feature__color-line span:nth-child(1){background:var(--c-red)}
.feature__color-line span:nth-child(2){background:var(--c-yellow)}
.feature__color-line span:nth-child(3){background:var(--c-green)}
.feature__color-line span:nth-child(4){background:var(--c-blue)}
.feature__sub{
  font-weight:500;line-height:1.95;color:#334155;
  font-size:clamp(13px,1vw,15px);
}
.feature__hero-visual{
  position:absolute;z-index:1;right:clamp(-80px,-4vw,-24px);top:-65px;
  width:min(66vw,820px);height:500px;
}
.feature__hero-visual::after{
  content:"";position:absolute;inset:-1px;z-index:2;pointer-events:none;
  background:
    linear-gradient(to right,#fff 0,rgba(255,255,255,0) 14%,rgba(255,255,255,0) 86%,#fff 100%),
    linear-gradient(to bottom,#fff 0,rgba(255,255,255,0) 12%,rgba(255,255,255,0) 82%,#fff 100%);
}
.feature__hero-visual img{
  width:100%;height:100%;object-fit:contain;object-position:right center;
  -webkit-mask-image:
    linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 10%,#000 84%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 10%,#000 84%,transparent 100%);
  mask-composite:intersect;
}

.feature__grid{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.fcard{
  --card-accent:var(--c-red);
  position:relative;display:flex;flex-direction:column;
  background:rgba(255,255,255,.97);border:1px solid rgba(226,232,240,.9);
  border-radius:18px;padding:22px 18px 24px;overflow:hidden;
  box-shadow:0 14px 38px rgba(15,23,42,.1);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.fcard::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--card-accent);
}
.fcard:hover{transform:translateY(-5px);box-shadow:0 22px 52px rgba(15,23,42,.14)}
.fcard--red{--card-accent:var(--c-red)}
.fcard--blue{--card-accent:var(--c-blue)}
.fcard--yellow{--card-accent:var(--c-yellow)}
.fcard--green{--card-accent:var(--c-green)}
.fcard__num{
  position:relative;align-self:center;padding:0 0 10px;margin:0 auto 18px;
  font-family:"Outfit",sans-serif;font-weight:700;font-size:34px;
  color:var(--card-accent);letter-spacing:.02em;line-height:1;text-align:center;
}
.fcard__num::after{
  content:"";position:absolute;left:50%;bottom:0;width:70px;height:3px;
  transform:translateX(-50%);border-radius:999px;background:var(--card-accent)
}
.fcard__body{
  min-width:0;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:14px;
  padding:0;margin-bottom:18px;
}
.fcard__icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:50%;color:#fff;background:var(--card-accent);
}
.fcard__ttl{
  font-weight:900;line-height:1.35;font-size:clamp(18px,1.35vw,22px);
  color:var(--c-ink);margin:0;
}
.fcard__ttl span,.fcard__txt strong{color:var(--card-accent)}
.fcard__visual{
  align-self:stretch;width:100%;height:auto;aspect-ratio:auto;
  border-radius:12px;overflow:hidden;background:#f7f9fc;
  display:flex;align-items:center;justify-content:center;position:relative;margin:0 0 18px;
}
.fcard__img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.fcard__visual--logo{background:#fff}
.fcard__visual--logo .fcard__img{
  object-fit:contain;width:100%;height:100%;max-width:none;
  transform:none;transform-origin:center;
}
.fcard__visual--contain .fcard__img{object-fit:contain;padding:6px}
.fcard__visual--portrait .fcard__img{object-fit:cover;object-position:center 63%}
.fcard__txt{
  font-weight:600;line-height:1.9;color:#334155;
  font-size:clamp(12px,.9vw,13.5px);margin:0;
}

@media (max-width:1120px){
  .feature__hero{grid-template-columns:minmax(340px,.85fr) minmax(450px,1.15fr)}
  .feature__grid{grid-template-columns:repeat(2,1fr)}
  .feature__hero-visual{right:-105px}
}
@media (max-width:760px){
  .feature{padding-top:58px}
  .feature__hero{display:block;min-height:660px;margin-bottom:0}
  .feature__head{padding:0;position:relative;z-index:2}
  .feature__title{font-size:clamp(30px,9vw,42px)}
  .feature__sub br{display:none}
  .feature__hero-visual{top:250px;right:-52px;width:118%;height:430px}
  .feature__hero-visual img{
    -webkit-mask-image:
      linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),
      linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%);
    mask-image:
      linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),
      linear-gradient(to bottom,transparent 0,#000 8%,#000 88%,transparent 100%);
  }
  .feature__grid{grid-template-columns:1fr}
}

/* ===== Service section ===== */
.service{padding:clamp(70px,9vw,120px) 0 clamp(60px,7vw,100px)}
.service__inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

.service__head{position:relative;margin-bottom:clamp(40px,5vw,60px)}
.sec-watermark{position:absolute;top:-44px;left:-6px;z-index:-1;
  font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.02em;
  font-size:clamp(60px,11vw,150px);line-height:1;color:#1a6be0;opacity:.07;
  pointer-events:none;user-select:none}
.sec-label{font-weight:700;color:var(--c-blue);font-size:14px;letter-spacing:.08em;margin-bottom:6px}
.sec-title{font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.01em;
  font-size:clamp(40px,6vw,84px);line-height:1;color:var(--c-ink);margin-bottom:24px}
.service__lead{font-weight:500;line-height:2;color:#475569;font-size:clamp(14px,1.1vw,16px)}

.service__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.2vw,32px)}
.service__grid--three{grid-template-columns:repeat(4,1fr)}
.service__grid--two{grid-template-columns:repeat(2,1fr)}

.scard{position:relative;display:flex;gap:clamp(18px,2vw,28px);
  background:#fff;border-radius:16px;padding:clamp(22px,2.4vw,32px);
  border-top:4px solid transparent;
  box-shadow:0 12px 34px rgba(15,23,42,.06);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.scard:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(15,23,42,.11)}
.scard--blue{border-top-color:var(--c-blue)}
.scard--orange{border-top-color:#FF7A1A}
.scard--red{border-top-color:var(--c-red)}
.scard--fc{border-top-color:#1E5FD8}
.service__grid--three .scard{flex-direction:column}
.service__grid--three .scard__visual{flex-basis:auto;width:100%;aspect-ratio:16/10;min-height:0}

.scard__visual{flex:0 0 40%;align-self:stretch;min-height:240px;border-radius:12px;overflow:hidden;
  background:#eef2f7;display:flex;align-items:center;justify-content:center;position:relative}
.scard__visual::after{content:attr(data-placeholder);position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;
  font-size:11px;line-height:1.6;color:#94a3b8;font-weight:500}
.scard__img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.scard__visual--logo{
  padding:28px;
  background:
    radial-gradient(circle at 18% 16%,rgba(26,107,224,.11),transparent 34%),
    radial-gradient(circle at 92% 88%,rgba(125,190,46,.12),transparent 34%),
    linear-gradient(145deg,#fff,#f4f8fd);
}
.scard__visual--logo::after{content:""}
.scard__img--logo{width:100%;height:auto;max-height:76%;object-fit:contain}
.scard__img--logo-square{width:100%;max-width:86%;max-height:86%}

.scard__body{flex:1;min-width:0;display:flex;flex-direction:column}
.scard__label{font-weight:700;font-size:13px;letter-spacing:.04em;margin-bottom:8px}
.scard--blue .scard__label{color:var(--c-blue)}
.scard--orange .scard__label{color:#FF7A1A}
.scard--red .scard__label{color:var(--c-red)}
.scard--fc .scard__label{color:#1E5FD8}
.scard__ttl{font-weight:900;font-size:clamp(20px,1.9vw,27px);color:var(--c-ink);line-height:1.3;margin-bottom:12px}
.service__grid--three .scard__ttl{font-size:clamp(18px,1.45vw,23px);white-space:nowrap}
.scard__ttl .accent-blue{color:var(--c-blue)}
.scard__ttl .accent-orange{color:#FF7A1A}
.scard__ttl .accent-red{color:var(--c-red)}
.scard__ttl .accent-fc{color:#1E5FD8}
.scard__desc{font-weight:700;font-size:clamp(13px,1.05vw,15px);color:#334155;margin-bottom:18px}
.scard__desc strong{font-size:1.25em;color:var(--c-red)}
.scard__rule{border:0;border-top:1px solid #eef1f5;margin:0 0 18px}
.scard__list{display:flex;flex-direction:column;gap:11px;margin-bottom:24px}
.scard__list li{position:relative;padding-left:30px;font-weight:500;line-height:1.6;
  font-size:clamp(13px,1vw,14.5px);color:#334155}
.scard__list li::before{content:"";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;
  background-repeat:no-repeat;background-position:center;background-size:20px}
.scard--blue .scard__list li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%231A6BE0'/%3E%3Cpath d='M7 12.5l3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.scard--orange .scard__list li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23FF7A1A'/%3E%3Cpath d='M7 12.5l3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.scard--red .scard__list li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='12' fill='%23E23A2E'/%3E%3Cpath d='M7 12.5l3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

.scard__link{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;
  font-weight:700;font-size:14px;padding-bottom:8px;border-bottom:1.5px solid;transition:gap .3s var(--ease)}
.scard__link i{font-style:normal;font-size:17px}
.scard__link:hover{gap:16px}
.scard--blue .scard__link{color:var(--c-blue);border-color:rgba(26,107,224,.5)}
.scard--orange .scard__link{color:#FF7A1A;border-color:rgba(255,122,26,.5)}
.scard--red .scard__link{color:var(--c-red);border-color:rgba(226,58,46,.5)}
.scard--fc .scard__link{color:#1E5FD8;border-color:rgba(30,95,216,.5)}
.scard--fc .scard__visual--logo{background:linear-gradient(145deg,#fff,#f4f8fd)}
.scard__fc-mark{font-family:"Outfit",sans-serif;font-weight:900;font-size:clamp(32px,4vw,58px);line-height:.9;letter-spacing:.04em;color:#1E5FD8;text-align:center}
.scard__fc-mark small{display:block;font-family:"Noto Sans JP",sans-serif;font-size:12px;letter-spacing:.12em;color:#64748b;margin-top:12px}

.service__banner{margin-top:clamp(28px,3.4vw,44px);
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:#fff;border:1px solid #eef1f5;border-radius:14px;
  padding:22px clamp(22px,3vw,40px);box-shadow:0 10px 30px rgba(15,23,42,.04)}
.service__banner-ic{flex-shrink:0;width:44px;height:44px;border-radius:50%;
  background:rgba(26,107,224,.1);color:var(--c-blue);
  display:flex;align-items:center;justify-content:center}
.service__banner-txt{flex:1;min-width:200px;font-weight:700;color:#334155;font-size:clamp(13px,1.1vw,16px)}
.service__banner-link{display:inline-flex;align-items:center;gap:10px;
  font-weight:700;color:var(--c-blue);font-size:14px;border-bottom:1.5px solid rgba(26,107,224,.5);
  padding-bottom:6px;transition:gap .3s var(--ease)}
.service__banner-link i{font-style:normal;font-size:17px}
.service__banner-link:hover{gap:16px}

@media (max-width:860px){
  .service__grid{grid-template-columns:1fr}
  .service__grid--three{grid-template-columns:1fr}
  .service__grid--two{grid-template-columns:1fr}
}
@media (max-width:560px){
  .scard{flex-direction:column}
  .scard__visual{flex-basis:auto;width:100%;aspect-ratio:16/10;min-height:0}
  .service__banner{flex-direction:column;align-items:flex-start;text-align:left}
}
@media (max-width:520px){
  .fcard{flex-direction:column}
  .fcard__visual{flex-basis:auto;width:100%;aspect-ratio:16/9}
}

/* ===== Marquee gallery (zigzag, RTL) ===== */
.marquee{overflow:hidden;padding:clamp(56px,7vw,96px) 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee__track{display:flex;width:max-content;align-items:center;
  gap:clamp(16px,2vw,30px);padding:40px 0;
  animation:marquee 42s linear infinite}
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

.mq-item{flex:0 0 auto;width:clamp(210px,23vw,310px);aspect-ratio:4/3;
  border-radius:18px;overflow:hidden;position:relative;background:#e7eef7;
  box-shadow:0 16px 38px rgba(15,23,42,.10);will-change:transform}
.mq-item img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.mq-item::after{content:attr(data-placeholder);position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;color:#9fb1c7;
  font-size:12px;font-weight:600;letter-spacing:.05em}
/* zigzag offsets */
.mq-item:nth-child(odd){transform:translateY(-30px)}
.mq-item:nth-child(even){transform:translateY(30px)}

@media (prefers-reduced-motion: reduce){
  .marquee__track{animation:none}
}

/* ===== News section ===== */
.news{padding:clamp(20px,3vw,40px) 0 clamp(70px,9vw,120px)}
.news__inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

.news__head{position:relative;text-align:center;margin-bottom:clamp(34px,4vw,52px)}
.news__label{font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.18em;
  color:var(--c-blue);font-size:14px;margin-bottom:10px}
.news__title{font-weight:900;letter-spacing:.06em;color:var(--c-ink);
  font-size:clamp(34px,5vw,60px);line-height:1.1;margin-bottom:18px}
.news__rule{display:block;width:96px;height:4px;border-radius:3px;margin:0 auto 22px;
  background:linear-gradient(90deg,var(--c-blue) 0 25%,var(--c-red) 25% 50%,var(--c-yellow) 50% 75%,var(--c-green) 75% 100%)}
.news__sub{font-weight:500;line-height:2;color:#475569;font-size:clamp(14px,1.1vw,16px)}

.news__list{background:#fff;border-radius:22px;
  padding:clamp(10px,1.4vw,22px) clamp(16px,2.4vw,40px);
  box-shadow:0 18px 50px rgba(15,23,42,.07)}
.news-item{display:grid;align-items:center;gap:clamp(14px,2vw,32px);
  grid-template-columns:auto auto 1fr auto auto;
  padding:clamp(20px,2.4vw,30px) 4px;
  border-bottom:1px solid #eef1f5;transition:background .25s var(--ease)}
.news-item:last-child{border-bottom:0}
.news-item:hover{background:#fafcff}
.news-item__date{font-family:"Outfit",sans-serif;font-weight:600;color:#475569;
  font-size:clamp(13px,1.05vw,15px);letter-spacing:.04em;white-space:nowrap}
.news-item__cat{display:inline-flex;align-items:center;justify-content:center;
  min-width:74px;height:30px;padding:0 12px;border-radius:6px;
  font-size:12.5px;font-weight:700;white-space:nowrap}
.news-item__cat--service{background:var(--c-blue);color:#fff}
.news-item__cat--news{background:#fff;color:var(--c-blue);border:1.5px solid var(--c-blue)}
.news-item__ttl{font-weight:700;line-height:1.6;color:var(--c-ink);
  font-size:clamp(14px,1.1vw,16px)}
.news-item__thumb{width:clamp(120px,13vw,180px);aspect-ratio:16/9;border-radius:8px;
  overflow:hidden;position:relative;background:#e7eef7;justify-self:end}
.news-item__thumb img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}
.news-item__thumb::after{content:attr(data-placeholder);position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;color:#9fb1c7;font-size:10px;font-weight:600}
.news-item__arrow{font-style:normal;font-size:22px;color:var(--c-blue);
  transition:transform .3s var(--ease)}
.news-item:hover .news-item__arrow{transform:translateX(4px)}

.news__more{text-align:center;margin-top:clamp(34px,4vw,54px)}
.btn-outline{display:inline-flex;align-items:center;gap:14px;
  height:62px;padding:0 44px;border-radius:999px;
  border:1.5px solid var(--c-blue);color:var(--c-blue);font-weight:700;font-size:15px;
  background:#fff;transition:background .3s var(--ease),color .3s var(--ease),gap .3s var(--ease)}
.btn-outline i{font-style:normal;font-size:18px}
.btn-outline:hover{background:var(--c-blue);color:#fff;gap:20px}

@media (max-width:768px){
  .news-item{grid-template-columns:auto auto 1fr;grid-template-areas:
    "date cat ."
    "ttl ttl ttl"
    "thumb thumb arrow";row-gap:12px}
  .news-item__date{grid-area:date}
  .news-item__cat{grid-area:cat}
  .news-item__ttl{grid-area:ttl}
  .news-item__thumb{grid-area:thumb;justify-self:start;width:160px}
  .news-item__arrow{grid-area:arrow;justify-self:end}
}

/* ===== CTA section (parallax bg) ===== */
.cta{position:relative;overflow:hidden;
  padding:100px 0;display:flex;align-items:center}
.cta__bg{position:absolute;inset:0;z-index:0;
  background-image:url("img/cta-bg.jpg");
  background-size:cover;background-position:center 40%;
  background-attachment:fixed;}
.cta__bg::after{content:"";position:absolute;inset:0;background:rgba(15,23,42,.04)}
.cta__inner{position:relative;z-index:2;width:100%;
  max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px);
  display:flex;justify-content:center}

.cta__card{width:min(760px,100%);background:#fff;border-radius:26px;
  padding:clamp(34px,4.6vw,62px) clamp(26px,4vw,60px);text-align:center;
  box-shadow:0 30px 70px rgba(15,23,42,.18)}
.cta__eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;
  color:var(--c-blue);font-weight:700;letter-spacing:.04em;
  font-size:clamp(14px,1.2vw,17px);margin-bottom:18px}
.cta__slash{color:var(--c-blue);font-weight:700;opacity:.9}
.cta__title{font-weight:900;line-height:1.45;letter-spacing:.01em;
  font-size:clamp(24px,3.3vw,40px);color:var(--c-ink);margin-bottom:20px}
.cta__title .accent{color:var(--c-blue)}
.cta__sub{font-weight:500;color:#475569;line-height:1.9;
  font-size:clamp(13px,1.1vw,16px);margin-bottom:clamp(26px,3vw,38px)}

.cta__btns{display:flex;gap:clamp(14px,1.6vw,22px);justify-content:center;flex-wrap:wrap}
.cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;
  flex:1 1 240px;max-width:300px;min-height:66px;padding:0 24px;border-radius:999px;
  font-weight:700;font-size:clamp(14px,1.05vw,16px);color:#fff;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),filter .3s var(--ease)}
.cta-btn:hover{transform:translateY(-3px)}
.cta-btn--contact{background:linear-gradient(135deg,#FF6A5B 0%,#E23A2E 55%,#C81E3A 100%);
  box-shadow:0 12px 30px rgba(226,58,46,.36)}
.cta-btn--contact:hover{filter:brightness(1.05)}
.cta-btn--line{background:#02b902;box-shadow:0 12px 30px rgba(2,185,2,.32)}
.cta-btn--line:hover{background:#02b902;filter:brightness(.94)}

@media (max-width:768px){
  .cta__bg{background-attachment:scroll}
  .cta__btns{flex-direction:column}
  .cta-btn{max-width:none;flex:1 1 auto}
}

/* ===== Floating LINE banners ===== */
.line-float{
  position:fixed;right:18px;top:50%;z-index:80;
  display:flex;flex-direction:column;gap:12px;width:min(118px,8.2vw);
  opacity:0;transform:translate(26px,-44%) scale(.96);pointer-events:none;
  transition:opacity .6s var(--ease),transform .6s var(--ease);
  filter:drop-shadow(0 14px 34px rgba(15,23,42,.25))
}
.line-float.is-shown{opacity:1;transform:translate(0,-50%) scale(1);pointer-events:auto}
.line-float__link{display:block;overflow:hidden;border-radius:12px;background:#fff}
.line-float__link picture{display:block}
.line-float__link img{display:block;width:100%;height:auto;
  transition:transform .35s var(--ease)}
.line-float__link:hover img{transform:scale(1.025)}
.line-float__close{position:absolute;top:-10px;left:-10px;z-index:2;
  width:30px;height:30px;border-radius:50%;border:0;cursor:pointer;
  background:#0F172A;color:#fff;font-size:17px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(15,23,42,.3);transition:transform .25s var(--ease),background .25s}
.line-float__close:hover{transform:scale(1.1);background:#1e293b}
@media (max-width:768px){
  .line-float{
    top:auto;left:0;right:0;bottom:0;width:100%;
    flex-direction:row;gap:6px;padding:0 8px max(8px,env(safe-area-inset-bottom));
    transform:translateY(100%);filter:drop-shadow(0 -10px 28px rgba(15,23,42,.18));
  }
  .line-float.is-shown{transform:translateY(0)}
  .line-float__link{flex:1 1 0;border-radius:12px}
  .line-float__link img{width:100%;height:94px;object-fit:cover;object-position:center}
}

/* ===== Rich but restrained motion ===== */
.reveal{
  opacity:0;transform:translate3d(0,34px,0);
  transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease);
  will-change:opacity,transform;
}
.feature__head.reveal,.service__head.reveal,.news__head.reveal,.psec-head.reveal{
  transform:translate3d(-36px,0,0);
}
.feature__hero-visual.reveal{
  transform:translate3d(42px,12px,0) scale(.97);filter:blur(5px);
}
.fcard.reveal,.scard.reveal,.blog-card.reveal,.biz-card.reveal,.stat.reveal,
.rc-feat.reveal,.faq-item.reveal{
  transform:translate3d(0,26px,0) scale(.965);
}
.svc-block.reveal,.job.reveal,.cmp-msg.reveal,.info.reveal,.contact-form.reveal{
  transform:translate3d(0,42px,0) scale(.985);
}
.cta__card.reveal{transform:translate3d(0,40px,0) scale(.97)}
/* Keep this after every reveal starting state so the visible state always wins. */
.reveal.is-visible{opacity:1;transform:none;filter:none}

body:not(.is-ready) .page-hero__media{opacity:0;transform:scale(1.06)}
body.is-ready .page-hero__media{
  opacity:1;transform:scale(1);
  transition:opacity 1.1s ease,transform 1.6s var(--ease);
}

.fcard__img,.scard__img,.svc-block__logo,.cmp-msg__photo img{
  transition:transform .8s var(--ease),filter .8s var(--ease);
}
.fcard:hover .fcard__img{transform:scale(1.045)}
.fcard__visual--logo:hover .fcard__img{transform:none}
.scard:hover .scard__img{transform:scale(1.055)}
.cmp-msg:hover .cmp-msg__photo img{transform:scale(1.035)}

.btn,.btn-h,.cta-btn,.entry-btn,.contact__submit,.article__cta-btn,.footer__cta-btn{
  position:relative;overflow:hidden;isolation:isolate;
}
.btn::before,.btn-h::before,.cta-btn::before,.entry-btn::before,
.contact__submit::before,.article__cta-btn::before,.footer__cta-btn::before{
  content:"";position:absolute;z-index:-1;inset:-35% auto -35% -45%;width:28%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg) translateX(-220%);transition:transform .75s var(--ease);
}
.btn:hover::before,.btn-h:hover::before,.cta-btn:hover::before,.entry-btn:hover::before,
.contact__submit:hover::before,.article__cta-btn:hover::before,.footer__cta-btn:hover::before{
  transform:skewX(-18deg) translateX(650%);
}

.feature__color-line span,.footer__accent{
  background-size:180% 100%;
  animation:accent-breathe 7s ease-in-out infinite alternate;
}
@keyframes accent-breathe{
  from{filter:saturate(.9) brightness(.98)}
  to{filter:saturate(1.18) brightness(1.08)}
}

.news-item:hover .news-item__thumb img,.blog-card:hover .blog-card__thumb img{
  transform:scale(1.07);
}
.page-hero__rule,.feature__color-line span{
  transform-origin:left center;
}
.page-hero__rule.reveal{transform:scaleX(0);opacity:1}
.page-hero__rule.reveal.is-visible{transform:scaleX(1)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation:none !important;transition-duration:.01ms !important}
  .reveal{opacity:1 !important;transform:none !important;filter:none !important}
  body:not(.is-ready) .page-hero__media{opacity:1;transform:none}
}

/* ===== Sub-page hero (lower page TOP) ===== */
body.subpage .header{
  background:rgba(255,255,255,.82);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(15,23,42,.06),0 8px 30px rgba(15,23,42,.06)}
body.subpage.drawer-open .header{
  background:#091220;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.subpage.drawer-open .header__logo-img--dark{opacity:0}
body.subpage.drawer-open .header__logo-img--white{opacity:1}
body.subpage.drawer-open .hamburger span{background:#fff}
body.subpage{--page-accent:var(--c-blue)}
body.subpage--service{--page-accent:var(--c-yellow)}
body.subpage--saiyokun{--page-accent:#1E5FD8}
body.subpage--soukyakukun{--page-accent:#FF7A1A}
body.subpage--news{--page-accent:var(--c-blue)}
body.subpage--company{--page-accent:var(--c-green)}
body.subpage--recruit{--page-accent:var(--c-red)}
body.subpage--contact{--page-accent:var(--c-yellow)}

.page-hero{position:relative;min-height:clamp(420px,56vh,600px);
  display:flex;align-items:center;overflow:hidden;background:transparent;
  padding-top:var(--header-h)}
.page-hero__media{position:absolute;top:0;right:0;bottom:0;width:64%;
  background:url("img/page-hero.jpg") center center/cover;
  clip-path:polygon(15% 0, 100% 0, 100% 100%, 2% 100%)}
/* fade the image's left edge into the global page background (not solid white) */
.page-hero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,#eef4fb 0%,rgba(238,244,251,.5) 12%,rgba(238,244,251,0) 34%)}
.page-hero__inner{position:relative;z-index:2;width:100%;
  max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}

.page-hero__crumb{display:flex;align-items:center;gap:10px;
  font-family:"Outfit",sans-serif;font-weight:600;font-size:13px;letter-spacing:.12em;
  color:#94a3b8;margin-bottom:clamp(24px,4vw,40px)}
.page-hero__crumb a{color:#94a3b8;transition:color .25s var(--ease)}
.page-hero__crumb a:hover{color:var(--page-accent)}
.page-hero__crumb span{color:#cbd5e1}
.page-hero__label{font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.14em;
  color:var(--page-accent);font-size:clamp(15px,1.4vw,19px);margin-bottom:14px}
.page-hero__title{font-weight:900;letter-spacing:.1em;color:var(--c-ink);
  font-size:clamp(38px,5.6vw,64px);line-height:1.12;margin-bottom:22px}
.page-hero__rule{width:54px;height:3px;background:var(--page-accent);border-radius:2px;
  margin-bottom:22px}
.page-hero__sub{font-weight:500;line-height:1.9;color:#475569;
  font-size:clamp(14px,1.2vw,17px)}

@media (max-width:768px){
  .page-hero{min-height:340px}
  .page-hero__media{
    width:100%;clip-path:none;
    background-position:center center;
  }
  .page-hero__media::after{
    background:linear-gradient(90deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.94) 34%,
      rgba(255,255,255,.74) 52%,
      rgba(255,255,255,.18) 72%,
      rgba(255,255,255,0) 100%);
  }
  .page-hero__inner{padding-right:40%}
  .page-hero__sub{font-size:13px}
}
@media (max-width:480px){
  .page-hero__inner{padding-right:34%}
  .page-hero__title{font-size:clamp(32px,10vw,42px);letter-spacing:.06em}
}

/* ===== Service detail page ===== */
.svc{padding:clamp(50px,7vw,90px) 0 clamp(60px,8vw,110px)}
.svc__inner{position:relative;z-index:2;max-width:1080px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.svc__lead{text-align:center;color:#475569;font-weight:500;line-height:1.95;
  font-size:clamp(14px,1.1vw,16px);margin-bottom:clamp(40px,5vw,64px)}

.svc-block{position:relative;background:#fff;border-radius:24px;overflow:hidden;
  border:1px solid #eef1f5;box-shadow:0 16px 44px rgba(15,23,42,.07);
  margin-bottom:clamp(28px,3.5vw,44px)}
.svc-block[id]{scroll-margin-top:calc(var(--header-h) + 24px)}
.psec[id]{scroll-margin-top:calc(var(--header-h) + 24px)}
.anchor-target{position:absolute;top:0;left:0;scroll-margin-top:calc(var(--header-h) + 24px)}
.svc-block__bar{height:6px}
.svc-block--blue .svc-block__bar{background:linear-gradient(90deg,#1E5FD8,#34B3F1)}
.svc-block--orange .svc-block__bar{background:linear-gradient(90deg,#FF7A1A,#FFB020)}
.svc-block--red .svc-block__bar{background:linear-gradient(90deg,#E23A2E,#FF6A5B)}
.svc-block--fc .svc-block__bar{background:linear-gradient(90deg,#1E5FD8,#34B3F1)}
.svc-block__body{padding:clamp(26px,3.4vw,48px)}
.svc-block__logo{height:clamp(46px,5vw,64px);width:auto;margin-bottom:22px}
.svc-block__logo--square{height:clamp(58px,6vw,78px)}
.svc-block__logo--text{display:flex;align-items:center;font-family:"Outfit",sans-serif;font-size:clamp(48px,6vw,78px);font-weight:900;line-height:1;color:#1E5FD8;letter-spacing:.04em}
.svc-block__tag{display:inline-block;font-weight:700;font-size:13px;letter-spacing:.04em;
  padding:5px 14px;border-radius:999px;margin-bottom:16px;color:#fff}
.svc-block--blue .svc-block__tag{background:linear-gradient(135deg,#1E5FD8,#34B3F1)}
.svc-block--orange .svc-block__tag{background:linear-gradient(135deg,#FF7A1A,#FFA020)}
.svc-block--red .svc-block__tag{background:linear-gradient(135deg,#E23A2E,#FF6A5B)}
.svc-block--fc .svc-block__tag{background:linear-gradient(135deg,#1E5FD8,#34B3F1)}
.svc-block__ttl{font-weight:900;line-height:1.4;font-size:clamp(22px,2.4vw,32px);
  color:var(--c-ink);margin-bottom:14px}
.svc-block--blue .svc-block__ttl .accent{color:#1E5FD8}
.svc-block--orange .svc-block__ttl .accent{color:#FF7A1A}
.svc-block--red .svc-block__ttl .accent{color:#E23A2E}
.svc-block--fc .svc-block__ttl .accent{color:#1E5FD8}
.svc-block__desc{font-weight:500;line-height:2;color:#475569;
  font-size:clamp(14px,1.1vw,16px);margin-bottom:26px}
.svc-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}
.svc-feat{background:#f8fafc;border-radius:14px;padding:20px 18px}
.svc-feat__ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  color:#fff;margin-bottom:12px}
.svc-block--blue .svc-feat__ic{background:linear-gradient(135deg,#1E5FD8,#34B3F1)}
.svc-block--orange .svc-feat__ic{background:linear-gradient(135deg,#FF7A1A,#FFA020)}
.svc-block--red .svc-feat__ic{background:linear-gradient(135deg,#E23A2E,#FF6A5B)}
.svc-block--fc .svc-feat__ic{background:linear-gradient(135deg,#1E5FD8,#34B3F1)}
.svc-feat__ttl{font-weight:800;font-size:14.5px;color:var(--c-ink);margin-bottom:6px;line-height:1.4}
.svc-feat__txt{font-weight:500;font-size:13px;color:#64748b;line-height:1.7}

.svc-block__more{display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-width:260px;height:62px;padding:0 32px;border-radius:999px;color:#fff;font-weight:700;font-size:16px;
  transition:transform .3s var(--ease),filter .3s var(--ease)}
.svc-block__more i{font-style:normal;font-size:18px}
.svc-block__more:hover{transform:translateY(-3px);filter:brightness(1.06)}
.svc-block--blue .svc-block__more{background:linear-gradient(135deg,#1E5FD8,#34B3F1);box-shadow:0 14px 32px rgba(30,95,216,.34)}
.svc-block--orange .svc-block__more{background:linear-gradient(135deg,#FF7A1A,#FFA020);box-shadow:0 14px 32px rgba(255,122,26,.34)}
.svc-block--red .svc-block__more{background:linear-gradient(135deg,#E23A2E,#FF6A5B);box-shadow:0 14px 32px rgba(226,58,46,.34)}
.svc-block--fc .svc-block__more{background:linear-gradient(135deg,#1E5FD8,#34B3F1);box-shadow:0 14px 32px rgba(30,95,216,.34)}
.svc-block__note{margin-top:12px;font-size:12.5px;color:#94a3b8}

@media (max-width:720px){
  .svc-feats{grid-template-columns:1fr}
  .svc-block__more{width:100%;min-width:0}
}

/* ===== Service landing detail pages ===== */
.service-detail-page{
  background-color:#eef4fb;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
  background-attachment:fixed;
}
body.subpage--soukyakukun.service-detail-page{
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.78) 42%,rgba(255,255,255,.52) 100%),
    url("img/soukyakukun-page-bg.png");
}
body.subpage--saiyokun.service-detail-page{
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.78) 42%,rgba(255,255,255,.52) 100%),
    url("img/saiyokun-page-bg.png");
}
.service-detail-page .page-bg{display:none}
.detail-hero{
  position:relative;overflow:hidden;padding:calc(var(--header-h) + 76px) 0 clamp(64px,7vw,96px);
  min-height:clamp(680px,82vh,820px);display:flex;align-items:center;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.22));
}
.detail-hero--orange{
  background:linear-gradient(135deg,rgba(255,250,244,.82),rgba(255,255,255,.2));
}
.detail-hero--blue{
  background:linear-gradient(135deg,rgba(247,251,255,.82),rgba(255,255,255,.2));
}
.detail-hero--fit{
  min-height:100vh;
  padding:calc(var(--header-h) + 38px) 0 28px;
}
.detail-hero::before,.detail-hero::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.detail-hero::before{
  width:360px;height:360px;right:-130px;top:80px;border:42px solid rgba(30,95,216,.16);
}
.detail-hero::after{
  width:260px;height:260px;left:-100px;bottom:-100px;border:32px solid rgba(125,190,46,.18);
}
.detail-hero--orange::before{border-color:rgba(255,122,26,.2)}
.detail-hero__inner{
  position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,40px);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.88fr);gap:clamp(34px,5vw,72px);
  align-items:center;
}
.detail-hero--fit .detail-hero__inner{
  grid-template-columns:minmax(500px,1fr) minmax(480px,.92fr);
  gap:clamp(28px,4vw,56px);
}
.detail-hero__brand{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:24px;
}
.detail-hero__brand .detail-hero__logo,
.detail-hero__brand .detail-hero__label{
  margin-bottom:0;
}
.detail-hero__logo{height:clamp(48px,5vw,70px);width:auto;margin-bottom:24px}
.detail-hero__label{
  display:inline-flex;align-items:center;width:max-content;padding:6px 16px;border-radius:999px;
  color:#fff;font-weight:800;font-size:13px;letter-spacing:.04em;margin-bottom:18px;
  background:linear-gradient(135deg,#1E5FD8,#34B3F1);
}
.detail-hero--orange .detail-hero__label{background:linear-gradient(135deg,#FF7A1A,#FFB020)}
.detail-hero__title{
  font-weight:900;line-height:1.35;letter-spacing:.02em;color:var(--c-ink);
  font-size:clamp(30px,4vw,52px);margin-bottom:20px;
}
.detail-hero--fit .detail-hero__title{
  font-size:clamp(34px,3.25vw,44px);
  line-height:1.42;
  letter-spacing:0;
}
.detail-hero__lead{
  max-width:720px;color:#475569;font-weight:500;line-height:2;
  font-size:clamp(14px,1.2vw,17px);margin-bottom:30px;
}
.detail-hero__actions{display:flex;gap:14px;flex-wrap:wrap}
.detail-hero__visual-stack{
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;
}
.detail-hero--fit .detail-hero__visual-stack{
  align-self:start;
  margin-top:-10px;
}
.detail-hero__below-image{
  grid-column:1/-1;
  display:flex;justify-content:center;
  width:100%;margin:clamp(8px,1.8vw,20px) auto 0;
}
.detail-hero__visual-stack .detail-hero__below-image{
  grid-column:auto;
  margin:0 auto;
}
.detail-hero__below-image img{
  width:min(980px,100%);height:auto;display:block;
  filter:drop-shadow(0 18px 34px rgba(15,23,42,.12));
}
.detail-hero__visual-stack .detail-hero__below-image img{
  width:min(760px,128%);
}
.detail-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:58px;padding:0 28px;border-radius:999px;font-weight:800;font-size:15px;
  transition:transform .3s var(--ease),filter .3s var(--ease),background .3s var(--ease);
}
.detail-btn i{font-style:normal;font-size:18px}
.detail-btn:hover{transform:translateY(-3px)}
.detail-btn--blue{color:#fff;background:linear-gradient(135deg,#1E5FD8,#34B3F1);box-shadow:0 16px 36px rgba(30,95,216,.28)}
.detail-btn--orange{color:#fff;background:linear-gradient(135deg,#FF7A1A,#FFB020);box-shadow:0 16px 36px rgba(255,122,26,.28)}
.detail-btn--ghost{background:#fff;color:#334155;border:1px solid #e2e8f0;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.detail-hero__visual{
  position:relative;min-height:560px;
  isolation:isolate;
}
.detail-hero__visual--image-only{
  display:flex;align-items:center;justify-content:center;min-height:560px;
}
.detail-hero--fit .detail-hero__visual,
.detail-hero--fit .detail-hero__visual--image-only{
  min-height:0;
}
.detail-hero--fit .detail-hero__mockup-image{
  width:min(640px,112%);
  transform:translateX(2%);
}
body.subpage--saiyokun .detail-hero--fit .detail-hero__mockup-image{
  width:min(630px,110%);
}
.detail-hero__mockup-image{
  position:relative;z-index:3;width:min(720px,116%);max-width:none;height:auto;
  filter:drop-shadow(0 28px 54px rgba(15,23,42,.16));
  transform:translateX(4%);
}
.detail-hero__visual--image-only::before{
  inset:64px 10px 64px 48px;
}
.detail-hero__visual::before{
  content:"";position:absolute;inset:46px 12px 42px 34px;z-index:-1;
  border-radius:42px;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,255,255,.34));
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 30px 90px rgba(15,23,42,.08);
}
.detail-hero__visual::after{
  content:"";position:absolute;right:6px;top:18px;width:118px;height:118px;z-index:-1;
  background-image:radial-gradient(color-mix(in srgb,var(--page-accent) 46%,transparent) 1.5px,transparent 1.5px);
  background-size:13px 13px;opacity:.45;
}
.detail-visual__glow{
  position:absolute;inset:18% -8% auto auto;width:74%;height:52%;border-radius:999px;
  background:radial-gradient(circle,var(--page-accent) 0%,color-mix(in srgb,var(--page-accent) 35%,transparent) 34%,transparent 70%);
  filter:blur(44px);opacity:.28;transform:rotate(-18deg);pointer-events:none;
}
.detail-hero__photo,.detail-image-card{
  position:relative;overflow:hidden;border-radius:28px;border:1px solid rgba(255,255,255,.7);
  box-shadow:0 24px 60px rgba(15,23,42,.12);
}
.detail-hero__photo::after,.detail-image-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,0) 46%,rgba(15,23,42,.08));
  pointer-events:none;
}
.detail-hero__photo img,.detail-image-card img{
  width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;
}
.detail-hero__photo{
  position:absolute;right:0;top:66px;width:82%;z-index:2;
  transform:rotate(1.2deg);
  box-shadow:0 30px 80px rgba(15,23,42,.16);
}
.detail-metric{
  position:absolute;z-index:4;background:rgba(255,255,255,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.82);border-radius:22px;padding:16px 18px;
  box-shadow:0 20px 50px rgba(15,23,42,.13);
}
.detail-metric span{display:block;font-size:12px;font-weight:900;color:#64748b;letter-spacing:.06em;margin-bottom:4px}
.detail-metric strong{display:block;font-family:"Outfit","Noto Sans JP",sans-serif;font-weight:900;color:var(--page-accent);line-height:1.05}
.detail-metric small{display:block;color:#64748b;font-weight:700;font-size:11.5px;line-height:1.5;margin-top:6px}
.detail-metric--main{left:0;top:28px;min-width:230px}
.detail-metric--main strong{font-size:clamp(30px,3.2vw,44px)}
.detail-metric--sub{right:8%;top:0;min-width:132px}
.detail-metric--sub strong,.detail-metric--price strong{font-size:clamp(24px,2.4vw,32px)}
.detail-metric--price{left:6%;bottom:156px;min-width:160px}
.detail-chart-card{
  position:absolute;right:2%;bottom:118px;z-index:3;width:190px;height:132px;border-radius:24px;
  background:rgba(255,255,255,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.86);box-shadow:0 20px 50px rgba(15,23,42,.12);
  display:flex;align-items:flex-end;gap:10px;padding:24px 22px;
}
.detail-chart-card span{display:block;flex:1;border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--page-accent) 72%,#fff),var(--page-accent));opacity:.92}
.detail-chart-card span:nth-child(1){height:34%}
.detail-chart-card span:nth-child(2){height:48%}
.detail-chart-card span:nth-child(3){height:42%}
.detail-chart-card span:nth-child(4){height:68%}
.detail-chart-card span:nth-child(5){height:88%}
.detail-visual__strip{
  position:absolute;left:18%;right:4%;bottom:26px;z-index:5;
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  padding:14px;border-radius:28px;background:rgba(255,255,255,.88);
  border:1px solid rgba(255,255,255,.86);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 20px 54px rgba(15,23,42,.12);
}
.detail-visual__strip span{
  display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--page-accent) 9%,#fff),#fff);
  color:#334155;font-weight:900;font-size:13px;line-height:1.35;text-align:center;
  border:1px solid color-mix(in srgb,var(--page-accent) 18%,#fff);
}
.detail-hero__panel{
  background:rgba(255,255,255,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(226,232,240,.86);border-radius:28px;padding:clamp(24px,3vw,36px);
  box-shadow:0 24px 60px rgba(15,23,42,.09);
  position:absolute;left:22%;right:8%;bottom:0;z-index:5;
}
.detail-panel__eyebrow{
  font-family:"Outfit",sans-serif;font-weight:800;letter-spacing:.13em;font-size:12px;
  color:var(--page-accent);margin-bottom:16px;
}
.detail-panel__list{display:flex;flex-direction:column;gap:14px}
.detail-panel__list li{
  position:relative;padding-left:30px;color:#334155;font-weight:800;line-height:1.55;
}
.detail-panel__list li::before{
  content:"";position:absolute;left:0;top:.25em;width:20px;height:20px;border-radius:50%;
  background:var(--page-accent);
}
.detail-panel__list li::after{
  content:"";position:absolute;left:7px;top:.62em;width:7px;height:4px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);
}
.detail-main{position:relative;z-index:2}
.detail-section{max-width:1180px;margin:0 auto;padding:clamp(52px,7vw,92px) clamp(20px,4vw,40px)}
.detail-section--white{
  max-width:none;background:rgba(255,255,255,.46);border-top:1px solid rgba(226,232,240,.72);
  border-bottom:1px solid rgba(226,232,240,.72);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.detail-section--white > *{max-width:1180px;margin-left:auto;margin-right:auto}
.detail-section__head{text-align:center;margin-bottom:clamp(28px,4vw,46px)}
.detail-card-grid{display:grid;gap:18px}
.detail-card-grid--4{grid-template-columns:repeat(4,1fr)}
.detail-mini-card{
  min-height:148px;background:#fff;border:1px solid #e9eef5;border-radius:20px;padding:24px 20px;
  box-shadow:0 14px 34px rgba(15,23,42,.055);
}
.detail-mini-card span{
  display:block;font-family:"Outfit",sans-serif;font-weight:800;color:var(--page-accent);
  font-size:26px;line-height:1;margin-bottom:18px;
}
.detail-mini-card p{font-weight:800;color:#334155;line-height:1.75;font-size:15px}
.detail-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:clamp(28px,5vw,70px);align-items:center}
.detail-text{color:#475569;font-weight:500;line-height:2;font-size:clamp(14px,1.1vw,16px);margin-top:20px}
.detail-check-card{
  margin-top:clamp(28px,4vw,42px);
  background:#fff;border:1px solid #e9eef5;border-radius:24px;padding:clamp(24px,3vw,36px);
  box-shadow:0 16px 40px rgba(15,23,42,.06);
}
.detail-media-stack{display:grid;gap:18px}
.detail-image-card{border-radius:0;box-shadow:none;background:#f3f5f7;padding:14px 0}
.detail-image-card img{aspect-ratio:4/3;object-fit:cover;border-radius:0}
.detail-check-card__ttl{font-weight:900;font-size:18px;color:var(--c-ink);margin-bottom:18px}
.detail-check-card ul{display:grid;gap:12px}
.detail-check-card li{
  position:relative;padding-left:28px;font-weight:700;color:#475569;line-height:1.65;
}
.detail-check-card li::before{
  content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;
  background:linear-gradient(135deg,var(--page-accent),color-mix(in srgb,var(--page-accent) 72%,#fff));
}
.detail-check-card li::after{
  content:"";position:absolute;left:6px;top:.68em;width:6px;height:3px;
  border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);
}
.detail-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.detail-feature-card{
  background:#fff;border:1px solid #e9eef5;border-radius:22px;padding:clamp(24px,2.8vw,34px);
  box-shadow:0 16px 40px rgba(15,23,42,.055);
}
.detail-feature-card__icon{
  display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;
  color:#fff;font-family:"Outfit",sans-serif;font-weight:800;margin-bottom:22px;
  background:linear-gradient(135deg,var(--page-accent),color-mix(in srgb,var(--page-accent) 66%,#fff));
}
.detail-feature-card h3{font-weight:900;font-size:clamp(18px,1.7vw,22px);line-height:1.5;margin-bottom:12px;color:var(--c-ink)}
.detail-feature-card p{font-weight:500;color:#64748b;line-height:1.85;font-size:14.5px}
.detail-price{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:clamp(28px,5vw,72px);align-items:center}
.detail-price__box{
  background:#fff;border-radius:28px;padding:clamp(28px,3.5vw,42px);border:1px solid #e9eef5;
  box-shadow:0 20px 50px rgba(15,23,42,.08);position:relative;overflow:hidden;
}
.detail-price__box::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:linear-gradient(90deg,var(--page-accent),color-mix(in srgb,var(--page-accent) 60%,#fff))}
.detail-price__label{font-weight:900;color:var(--page-accent);margin-bottom:12px}
.detail-price__num{font-family:"Outfit",sans-serif;font-size:clamp(52px,7vw,78px);font-weight:800;color:var(--c-ink);line-height:1}
.detail-price__num span{font-family:"Noto Sans JP",sans-serif;font-size:.38em;margin-left:4px}
.detail-price__tax{color:#64748b;font-weight:700;margin-top:8px;margin-bottom:20px}
.detail-price__box ul{display:grid;gap:10px;border-top:1px solid #eef2f7;padding-top:20px}
.detail-price__box li{font-weight:700;color:#475569}
.detail-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.detail-flow div{
  background:#fff;border:1px solid #e9eef5;border-radius:20px;padding:24px 18px;text-align:center;
  box-shadow:0 14px 34px rgba(15,23,42,.05);
}
.detail-flow span{font-family:"Outfit",sans-serif;font-weight:800;color:var(--page-accent);font-size:26px}
.detail-flow p{font-weight:900;color:var(--c-ink);font-size:16px;margin:12px 0 6px}
.detail-flow small{color:#64748b;font-weight:600;line-height:1.6}
.detail-faq{display:grid;gap:14px}
.detail-faq details{
  background:#fff;border:1px solid #e9eef5;border-radius:18px;padding:0 22px;
  box-shadow:0 12px 30px rgba(15,23,42,.045);
}
.detail-faq summary{
  cursor:pointer;list-style:none;padding:20px 0;font-weight:900;color:var(--c-ink);line-height:1.6;
}
.detail-faq summary::-webkit-details-marker{display:none}
.detail-faq summary::after{content:"+";float:right;color:var(--page-accent);font-family:"Outfit",sans-serif;font-size:22px;line-height:1}
.detail-faq details[open] summary::after{content:"−"}
.detail-faq p{border-top:1px solid #eef2f7;padding:18px 0 22px;color:#64748b;font-weight:500;line-height:1.85}

@media (max-width:920px){
  .detail-hero,
  .detail-hero--fit{min-height:auto}
  .detail-hero__inner,.detail-split,.detail-price{grid-template-columns:1fr}
  .detail-hero__text{order:1}
  .detail-hero__below-image{order:2}
  .detail-hero__visual-stack{order:2}
  .detail-hero__visual{order:3}
  .detail-hero__visual{min-height:560px}
  .detail-hero--fit .detail-hero__visual-stack{margin-top:0}
  .detail-hero__mockup-image{width:min(760px,100%);transform:none}
  .detail-card-grid--4,.detail-flow{grid-template-columns:repeat(2,1fr)}
  .detail-feature-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .service-detail-page{background-attachment:scroll}
  .detail-hero{padding-top:calc(var(--header-h) + 44px)}
  .detail-hero__logo{height:44px}
  .detail-hero__title{font-size:clamp(25px,7vw,34px);line-height:1.5}
  .detail-hero__lead,.detail-text{line-height:1.9}
  .detail-hero__actions{flex-direction:column}
  .detail-btn{width:100%;min-height:58px}
  .detail-hero__below-image{margin-top:20px}
  .detail-hero__below-image img{width:100%}
  .detail-hero__visual-stack .detail-hero__below-image img{width:100%}
  .detail-hero__visual{min-height:560px}
  .detail-hero__visual--image-only{min-height:auto;padding:20px 0 6px}
  .detail-hero__visual--image-only::before{inset:32px 0 24px 0}
  .detail-hero__mockup-image{width:108%;transform:none}
  .detail-hero__visual::before{inset:36px 0 38px 0;border-radius:28px}
  .detail-hero__visual::after{right:10px;top:6px;width:90px;height:90px}
  .detail-hero__photo{position:absolute;right:0;top:56px;width:100%;transform:none;border-radius:22px}
  .detail-metric{border-radius:18px;padding:12px 14px}
  .detail-metric--main{left:10px;top:18px;min-width:172px}
  .detail-metric--main strong{font-size:30px}
  .detail-metric--sub{right:8px;top:auto;bottom:204px;min-width:112px}
  .detail-metric--price{left:10px;right:auto;bottom:194px;min-width:126px}
  .detail-metric--sub strong,.detail-metric--price strong{font-size:23px}
  .detail-chart-card{left:auto;right:8px;bottom:78px;width:142px;height:96px;border-radius:18px;padding:18px 16px;gap:7px}
  .detail-visual__strip{left:10px;right:10px;bottom:0;border-radius:20px;padding:10px;gap:7px}
  .detail-visual__strip span{min-height:42px;border-radius:14px;font-size:12px}
  .detail-hero__panel{border-radius:22px;left:14px;right:14px;bottom:0;padding:20px}
  .detail-image-card{border-radius:18px}
  .detail-card-grid--4,.detail-flow{grid-template-columns:1fr}
  .detail-mini-card{min-height:auto}
}

@media (max-width:768px){
  body.service-detail-page{
    overflow-x:hidden;
  }
  body.service-detail-page .detail-hero--fit{
    display:block;
    min-height:auto;
    overflow:hidden;
    padding:calc(var(--header-h) + 28px) 0 48px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__inner{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:22px;
    padding:0 20px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__text{
    order:1;
    width:100%;
    min-width:0;
    overflow:visible;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__brand{
    align-items:center;
    gap:10px;
    margin-bottom:20px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__logo{
    height:clamp(46px,12vw,58px);
    max-width:58%;
    object-fit:contain;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__label{
    flex-shrink:0;
    padding:6px 12px;
    font-size:11px;
    letter-spacing:0;
    white-space:nowrap;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__title{
    width:100%;
    max-width:100%;
    font-size:clamp(24px,6.7vw,27px);
    line-height:1.48;
    letter-spacing:0;
    margin-bottom:18px;
    overflow:visible;
    word-break:break-all;
    overflow-wrap:anywhere;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__lead{
    width:100%;
    max-width:100%;
    font-size:13.5px;
    line-height:1.9;
    margin-bottom:24px;
    overflow:visible;
    word-break:break-all;
    overflow-wrap:break-word;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  body.service-detail-page .detail-hero--fit .detail-btn{
    width:100%;
    min-height:58px;
    padding:0 18px;
    border-radius:18px;
    box-sizing:border-box;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual-stack{
    order:2;
    display:flex;
    width:100%;
    gap:14px;
    margin-top:4px;
    overflow:visible;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual,
  body.service-detail-page .detail-hero--fit .detail-hero__visual--image-only{
    display:flex;
    width:100%;
    min-height:0!important;
    padding:0;
    overflow:visible;
    order:1;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual::before,
  body.service-detail-page .detail-hero--fit .detail-hero__visual::after,
  body.service-detail-page .detail-hero--fit .detail-visual__glow{
    display:none;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__mockup-image{
    display:block;
    width:68%;
    max-width:68%;
    height:auto;
    margin:0 auto;
    transform:none;
    filter:drop-shadow(0 18px 34px rgba(15,23,42,.14));
  }
  body.service-detail-page .detail-hero--fit .detail-hero__below-image{
    display:flex;
    width:100%;
    margin:0 auto;
    order:2;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__below-image img{
    display:block;
    width:74%;
    max-width:74%;
    height:auto;
    margin:0 auto;
  }
  body.service-detail-page .detail-section__head .psec-title{
    max-width:320px;
    margin-left:auto;
    margin-right:auto;
    font-size:clamp(21px,5.7vw,23px);
    line-height:1.45;
    overflow-wrap:anywhere;
    word-break:break-all;
  }
}

/* ===== Generic sub-page sections (company / recruit) ===== */
.psec{position:relative;z-index:2;padding:clamp(46px,6.5vw,86px) 0}
.psec--tint{background:rgba(255,255,255,.55)}
.psec__inner{max-width:1080px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.psec-head{text-align:center;margin-bottom:clamp(32px,4vw,52px)}
.psec-label{font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.16em;
  color:var(--c-blue);font-size:14px;margin-bottom:10px}
.service-detail-page .psec-label{color:var(--page-accent)}
.psec-title{font-weight:900;letter-spacing:.04em;color:var(--c-ink);
  font-size:clamp(24px,3vw,38px);line-height:1.3}
.psec-title .accent{color:var(--c-blue)}

/* philosophy big copy */
.cmp-copy{font-weight:900;line-height:1.5;text-align:center;color:var(--c-ink);
  font-size:clamp(23px,3.2vw,40px);margin-bottom:24px;letter-spacing:.02em}
.cmp-copy .accent{color:var(--c-blue)}
.cmp-en{font-family:"Outfit",sans-serif;text-align:center;color:#cdd9ec;font-weight:600;
  letter-spacing:.1em;font-size:clamp(18px,2vw,26px);margin-bottom:14px}
.cmp-lead{max-width:760px;margin:0 auto;text-align:center;color:#475569;line-height:2;
  font-size:clamp(14px,1.1vw,16px)}

/* business cards */
.cmp-grid3{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
.biz-card--fc{border-top:3px solid #1E5FD8}
.biz-card--fc .biz-card__sub{color:#1E5FD8}
.biz-card{background:#fff;border:1px solid #eef1f5;border-radius:18px;padding:clamp(22px,2.4vw,30px);
  box-shadow:0 12px 32px rgba(15,23,42,.05)}
.biz-card__no{font-family:"Outfit",sans-serif;font-weight:700;color:#e2e8f0;font-size:28px;line-height:1}
.biz-card__ttl{font-weight:900;font-size:clamp(17px,1.5vw,20px);color:var(--c-ink);margin:8px 0 4px}
.biz-card__sub{font-weight:700;font-size:12px;color:var(--c-blue);margin-bottom:14px}
.biz-card__txt{font-weight:500;font-size:13.5px;line-height:1.85;color:#64748b}
.biz-card__link{display:inline-flex;margin-top:18px;color:#1E5FD8;font-weight:700;font-size:13px}

/* stats */
.cmp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,22px);margin-bottom:28px}
.stat{background:#fff;border:1px solid #eef1f5;border-radius:16px;padding:22px 18px;text-align:center;
  box-shadow:0 10px 28px rgba(15,23,42,.04)}
.stat__label{font-weight:700;font-size:12px;color:#94a3b8;margin-bottom:8px;letter-spacing:.02em}
.stat__num{font-family:"Outfit",sans-serif;font-weight:700;color:var(--c-ink);
  font-size:clamp(20px,2.2vw,30px);line-height:1.1}
.stat__num small{font-size:.5em;font-weight:600;color:#64748b;margin-left:3px}
.cmp-hi{background:linear-gradient(135deg,#1A6BE0,#3aa0f0);color:#fff;border-radius:18px;
  padding:clamp(22px,3vw,34px);text-align:center;box-shadow:0 16px 40px rgba(26,107,224,.3)}
.cmp-hi b{font-family:"Outfit",sans-serif;font-size:clamp(30px,4vw,52px);display:inline-block;vertical-align:-2px}
.cmp-hi span{font-weight:700;font-size:clamp(14px,1.2vw,18px)}

/* representative message */
.cmp-msg{background:#fff;border:1px solid #eef1f5;border-radius:22px;
  padding:clamp(28px,4vw,56px);box-shadow:0 16px 44px rgba(15,23,42,.06);
  display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,3.5vw,52px);align-items:start}
.cmp-msg__photo{border-radius:16px;overflow:hidden;background:#eef2f7;align-self:stretch}
.cmp-msg__photo img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){
  .cmp-msg{grid-template-columns:1fr}
  .cmp-msg__photo{max-width:280px;margin:0 auto}
}
.cmp-msg__copy{font-weight:900;font-size:clamp(22px,2.6vw,34px);color:var(--c-ink);line-height:1.5;margin-bottom:24px}
.cmp-msg__body{color:#334155;line-height:2.05;font-size:clamp(14px,1.1vw,16px)}
.cmp-msg__body p{margin:0 0 18px}
.cmp-msg__sign{text-align:right;margin-top:18px;font-weight:700;color:var(--c-ink)}
.cmp-msg__sign small{display:block;font-weight:500;color:#94a3b8;font-size:12px;margin-bottom:4px}
.cmp-msg__sign b{font-size:22px;letter-spacing:.08em}

/* company info table */
.info{background:#fff;border:1px solid #eef1f5;border-radius:18px;overflow:hidden;
  box-shadow:0 12px 32px rgba(15,23,42,.05)}
.info-row{display:flex;gap:20px;padding:20px clamp(20px,2.6vw,34px);border-bottom:1px solid #eef1f5}
.info-row:last-child{border-bottom:0}
.info-row dt{flex:0 0 150px;font-weight:700;color:var(--c-blue);font-size:14.5px}
.info-row dd{flex:1;color:var(--c-ink);font-weight:500;font-size:14.5px;line-height:1.8}

/* ===== Recruit page ===== */
.rc-msg{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:0 clamp(20px,4vw,40px);text-align:center}
.rc-msg__en{font-family:"Outfit",sans-serif;font-weight:700;letter-spacing:.06em;
  font-size:clamp(28px,4vw,52px);background:linear-gradient(135deg,#1A6BE0,#3aa0f0);
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:12px}
.rc-msg__ttl{font-weight:900;color:var(--c-ink);font-size:clamp(20px,2.4vw,30px);line-height:1.5;margin-bottom:22px}
.rc-msg__body{color:#475569;line-height:2.05;font-size:clamp(14px,1.1vw,16px);text-align:left;max-width:760px;margin:0 auto}
.rc-msg__body p{margin:0 0 16px}

.rc-feats{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}
.rc-feat{background:#fff;border:1px solid #eef1f5;border-radius:18px;padding:clamp(22px,2.6vw,32px);
  box-shadow:0 12px 32px rgba(15,23,42,.05)}
.rc-feat__ic{width:50px;height:50px;border-radius:14px;color:#fff;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1A6BE0,#3aa0f0);margin-bottom:16px}
.rc-feat__ttl{font-weight:900;font-size:clamp(16px,1.5vw,19px);color:var(--c-ink);line-height:1.45;margin-bottom:10px}
.rc-feat__txt{font-weight:500;font-size:13.5px;line-height:1.85;color:#64748b}

.job{background:#fff;border:1px solid #eef1f5;border-radius:20px;overflow:hidden;
  box-shadow:0 14px 38px rgba(15,23,42,.06);margin-bottom:clamp(22px,3vw,34px)}
.job__head{background:linear-gradient(135deg,#1A6BE0,#3aa0f0);color:#fff;padding:clamp(20px,2.4vw,28px) clamp(22px,3vw,36px)}
.job__no{font-family:"Outfit",sans-serif;font-weight:700;opacity:.7;font-size:14px}
.job__name{font-weight:900;font-size:clamp(19px,2vw,26px);margin-top:2px}
.job__body{padding:clamp(22px,3vw,36px)}
.job__lead{color:#475569;line-height:1.95;font-size:14.5px;margin-bottom:22px}
.job-row{display:flex;gap:18px;padding:16px 0;border-top:1px solid #eef1f5}
.job-row dt{flex:0 0 110px;font-weight:700;color:var(--c-blue);font-size:14px}
.job-row dd{flex:1;color:#334155;font-size:14px;line-height:1.9}
.job-row dd ul{list-style:none;margin:0;padding:0}
.job-row dd li{position:relative;padding-left:18px;margin-bottom:5px}
.job-row dd li::before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--c-blue)}

.faq-item{background:#fff;border:1px solid #eef1f5;border-radius:14px;margin-bottom:14px;
  box-shadow:0 8px 24px rgba(15,23,42,.04);overflow:hidden;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.faq-item.is-open{border-color:rgba(26,107,224,.26);box-shadow:0 12px 32px rgba(26,107,224,.09)}
.faq-item__q{width:100%;border:0;background:none;cursor:pointer;text-align:left;
  font-family:inherit;font-weight:800;color:var(--c-ink);font-size:15.5px;
  padding:22px 64px 22px clamp(50px,5vw,62px);position:relative}
.faq-item__q::before{content:"Q";position:absolute;left:0;top:-2px;width:22px;height:22px;border-radius:6px;
  background:var(--c-blue);color:#fff;font-family:"Outfit",sans-serif;font-weight:700;font-size:13px;
  display:flex;align-items:center;justify-content:center}
.faq-item__q::before{left:clamp(20px,2.4vw,30px);top:50%;transform:translateY(-50%)}
.faq-item__q:focus-visible{outline:3px solid rgba(26,107,224,.28);outline-offset:-3px}
.faq-item__toggle{position:absolute;right:clamp(20px,2.4vw,30px);top:50%;width:28px;height:28px;
  transform:translateY(-50%);border-radius:50%;background:rgba(26,107,224,.09)}
.faq-item__toggle::before,.faq-item__toggle::after{content:"";position:absolute;left:50%;top:50%;
  width:12px;height:2px;background:var(--c-blue);border-radius:2px;transform:translate(-50%,-50%);
  transition:transform .3s var(--ease),opacity .3s var(--ease)}
.faq-item__toggle::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item__q[aria-expanded="true"] .faq-item__toggle::after{opacity:0;transform:translate(-50%,-50%) rotate(0)}
.faq-item__a{color:#475569;line-height:1.9;font-size:14px;overflow:hidden}
.faq-item__a-inner{padding:0 clamp(20px,2.4vw,30px) 22px clamp(50px,5vw,62px);
  border-top:1px solid #eef1f5;padding-top:18px}
.faq-item__a p{margin:0 0 10px}
.faq-item__a ul{margin:0 0 10px;padding-left:18px}

.flow{display:flex;flex-direction:column;gap:14px;max-width:620px;margin:0 auto}
.flow-step{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid #eef1f5;border-radius:14px;
  padding:18px 24px;box-shadow:0 8px 24px rgba(15,23,42,.04)}
.flow-step__no{flex-shrink:0;width:46px;height:46px;border-radius:50%;background:rgba(26,107,224,.1);color:var(--c-blue);
  font-family:"Outfit",sans-serif;font-weight:700;display:flex;align-items:center;justify-content:center}
.flow-step__ttl{font-weight:800;color:var(--c-ink);font-size:15px}
.flow-step__txt{font-weight:500;color:#64748b;font-size:13px;margin-top:2px}

.entry{text-align:center;margin-top:clamp(34px,4vw,52px)}
.entry-btn{display:inline-flex;align-items:center;gap:12px;height:66px;padding:0 48px;border-radius:999px;
  background:linear-gradient(135deg,#FF6A5B,#E23A2E);color:#fff;font-weight:700;font-size:17px;
  box-shadow:0 16px 38px rgba(226,58,46,.36);transition:transform .3s var(--ease),filter .3s var(--ease)}
.entry-btn i{font-style:normal;font-size:19px}
.entry-btn:hover{transform:translateY(-3px);filter:brightness(1.05)}

@media (max-width:760px){
  .cmp-grid3,.cmp-stats{grid-template-columns:1fr}
  .cmp-stats{grid-template-columns:repeat(2,1fr)}
  .rc-feats{grid-template-columns:1fr}
  .info-row{flex-direction:column;gap:6px}
  .info-row dt{flex-basis:auto}
  .job-row{flex-direction:column;gap:6px}
  .job-row dt{flex-basis:auto}
}

/* ===== Contact form ===== */
.contact{padding:clamp(60px,8vw,110px) 0}
.contact__inner{position:relative;z-index:2;max-width:820px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.contact__lead{text-align:center;color:#475569;font-weight:500;line-height:1.9;
  font-size:clamp(14px,1.1vw,16px);margin-bottom:clamp(34px,4vw,50px)}
.contact__card{background:#fff;border-radius:22px;padding:clamp(26px,4vw,56px);
  box-shadow:0 18px 50px rgba(15,23,42,.08)}

.form-row{margin-bottom:22px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form-label{display:block;font-weight:700;font-size:14px;color:var(--c-ink);margin-bottom:9px}
.form-label .req{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;
  color:#fff;background:var(--c-red);border-radius:4px;padding:2px 7px;vertical-align:1px}
.form-label .opt{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;
  color:#64748b;background:#eef1f5;border-radius:4px;padding:2px 7px;vertical-align:1px}
.form-input,.form-select,.form-textarea{width:100%;font:inherit;color:var(--c-ink);
  background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;
  padding:13px 16px;transition:border-color .25s var(--ease),background .25s,box-shadow .25s}
.form-textarea{min-height:150px;resize:vertical;line-height:1.7}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:0;
  border-color:var(--c-blue);background:#fff;box-shadow:0 0 0 3px rgba(26,107,224,.12)}
.form-select{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2364748b' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:22px;padding-right:44px}

.form-consent{display:flex;align-items:flex-start;gap:11px;justify-content:center;
  margin:28px 0 26px;font-size:13.5px;color:#475569;line-height:1.6}
.form-consent input{width:19px;height:19px;margin-top:1px;accent-color:var(--c-blue);flex-shrink:0}
.form-consent a{color:var(--c-blue);text-decoration:underline}

.form-submit{display:flex;justify-content:center}
.form-submit button{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-width:280px;height:64px;padding:0 36px;border:0;cursor:pointer;border-radius:999px;
  font:inherit;font-weight:700;font-size:16px;color:#fff;
  background:linear-gradient(135deg,#FF6A5B 0%,#E23A2E 55%,#C81E3A 100%);
  box-shadow:0 14px 34px rgba(226,58,46,.38);
  transition:transform .3s var(--ease),filter .3s var(--ease)}
.form-submit button:hover{transform:translateY(-3px);filter:brightness(1.05)}

.contact__or{display:flex;align-items:center;gap:18px;margin:clamp(34px,4vw,50px) 0 26px;
  color:#94a3b8;font-weight:700;font-size:13px}
.contact__or::before,.contact__or::after{content:"";flex:1;height:1px;background:#e2e8f0}
.contact__line{text-align:center}
.contact__line-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-width:300px;height:64px;padding:0 32px;border-radius:999px;
  font-weight:700;font-size:16px;color:#fff;background:#02b902;
  box-shadow:0 14px 34px rgba(6,199,85,.32);
  transition:transform .3s var(--ease),background .3s var(--ease)}
.contact__line-btn:hover{transform:translateY(-3px);background:#02b902;filter:brightness(.94)}
.contact__line-note{margin-top:14px;color:#64748b;font-size:13px}

@media (max-width:560px){
  .form-grid{grid-template-columns:1fr}
  .form-submit button,.contact__line-btn{width:100%;min-width:0}
}

/* ===== Blog (news list + detail) ===== */
.blog{padding:clamp(50px,7vw,90px) 0 clamp(70px,9vw,120px)}
.blog__inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;
  padding:0 clamp(20px,4vw,40px);
  display:grid;grid-template-columns:25% 1fr;gap:clamp(28px,3.5vw,52px);align-items:start}

/* sidebar */
.blog-side{position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;gap:28px}
.blog-side__block{background:#fff;border:1px solid #eef1f5;border-radius:16px;
  padding:22px 22px 24px;box-shadow:0 10px 30px rgba(15,23,42,.04)}
.blog-side__ttl{font-weight:800;font-size:15px;color:var(--c-ink);letter-spacing:.04em;
  padding-bottom:12px;margin-bottom:14px;border-bottom:2px solid #eef1f5;position:relative}
.blog-side__ttl::after{content:"";position:absolute;left:0;bottom:-2px;width:34px;height:2px;background:var(--c-blue)}
.blog-search{display:flex;gap:8px}
.blog-search input{flex:1;min-width:0;font:inherit;font-size:14px;
  border:1.5px solid #e2e8f0;border-radius:9px;padding:10px 12px;background:#f8fafc;
  transition:border-color .2s,background .2s}
.blog-search input:focus{outline:0;border-color:var(--c-blue);background:#fff}
.blog-cats{display:flex;flex-direction:column;gap:4px}
.blog-cats button{display:flex;align-items:center;justify-content:space-between;gap:8px;
  width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:10px 12px;border-radius:9px;font:inherit;font-size:14px;font-weight:600;color:#475569;
  transition:background .2s var(--ease),color .2s var(--ease)}
.blog-cats button:hover{background:#f1f5f9;color:var(--c-ink)}
.blog-cats button.is-active{background:rgba(26,107,224,.1);color:var(--c-blue)}
.blog-cats button .num{font-family:"Outfit",sans-serif;font-size:12px;color:#94a3b8}
.blog-cats button.is-active .num{color:var(--c-blue)}

/* list */
.blog-list{display:flex;flex-direction:column;gap:clamp(18px,2vw,26px)}
.blog-card{display:grid;grid-template-columns:300px 1fr;gap:clamp(18px,2vw,28px);align-items:center;
  background:#fff;border:1px solid #eef1f5;border-radius:16px;overflow:hidden;
  box-shadow:0 10px 30px rgba(15,23,42,.05);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(15,23,42,.10)}
.blog-card__thumb{aspect-ratio:16/10;overflow:hidden;background:#eef2f7}
.blog-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.blog-card:hover .blog-card__thumb img{transform:scale(1.05)}
.blog-card__body{padding:clamp(16px,1.6vw,24px) clamp(16px,1.6vw,28px) clamp(16px,1.6vw,24px) 0}
.blog-card__meta{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.blog-card__date{font-family:"Outfit",sans-serif;font-weight:600;font-size:13px;color:#94a3b8;letter-spacing:.04em}
.blog-card__cat{font-size:11.5px;font-weight:700;color:var(--c-blue);
  background:rgba(26,107,224,.1);border-radius:5px;padding:3px 10px}
.blog-card__ttl{font-weight:700;line-height:1.6;color:var(--c-ink);
  font-size:clamp(15px,1.2vw,18px);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.blog-card:hover .blog-card__ttl{color:var(--c-blue)}
.blog-empty{padding:60px 0;text-align:center;color:#94a3b8;font-weight:600;display:none}

/* ===== Blog detail (article) ===== */
.article{padding:clamp(40px,6vw,80px) 0 clamp(60px,8vw,110px)}
.article__inner{position:relative;z-index:2;max-width:820px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.article__head{margin-bottom:clamp(26px,3vw,40px)}
.article__meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.article__date{font-family:"Outfit",sans-serif;font-weight:600;color:#94a3b8;font-size:14px}
.article__cat{font-size:12px;font-weight:700;color:var(--c-blue);background:rgba(26,107,224,.1);border-radius:6px;padding:4px 12px}
.article__title{font-weight:900;line-height:1.5;color:var(--c-ink);font-size:clamp(24px,3vw,36px)}
.article__hero{border-radius:18px;overflow:hidden;margin-bottom:clamp(30px,4vw,48px);background:#eef2f7}
.article__hero img{width:100%;height:auto;display:block}
.article__body{color:#334155;font-size:16px;line-height:2}
.article__body h2{font-weight:900;color:var(--c-ink);font-size:clamp(21px,2.2vw,28px);
  line-height:1.5;margin:48px 0 20px;padding-left:16px;border-left:5px solid var(--c-blue)}
.article__body h3{font-weight:800;color:var(--c-ink);font-size:clamp(18px,1.7vw,21px);
  margin:36px 0 14px}
.article__body p{margin:0 0 22px}
.article__body strong{color:var(--c-ink);font-weight:700}
.article__body ul{margin:0 0 24px;padding-left:4px;list-style:none}
.article__body ul li{position:relative;padding-left:26px;margin-bottom:11px;line-height:1.8}
.article__body ul li::before{content:"";position:absolute;left:4px;top:11px;width:8px;height:8px;
  border-radius:50%;background:var(--c-blue)}
.article__body hr{border:0;border-top:1px solid #e2e8f0;margin:40px 0}
.article__body table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:14.5px}
.article__body th,.article__body td{border:1px solid #e2e8f0;padding:10px 14px;text-align:left}
.article__body th{background:#f1f5f9;font-weight:700;color:var(--c-ink)}

.article__cta{margin-top:clamp(40px,5vw,64px);text-align:center;
  background:linear-gradient(135deg,#eaf3ff,#f0f7ff);border:1px solid #dbeafe;border-radius:20px;
  padding:clamp(30px,4vw,48px)}
.article__cta p{font-weight:700;color:var(--c-ink);font-size:clamp(16px,1.4vw,19px);margin-bottom:8px}
.article__cta span{display:block;color:#64748b;font-size:14px;margin-bottom:22px}
.article__cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-width:280px;height:62px;padding:0 32px;border-radius:999px;font-weight:700;font-size:16px;
  color:#fff;background:#02b902;box-shadow:0 12px 30px rgba(2,185,2,.3);
  transition:transform .3s var(--ease),background .3s}
.article__cta-btn:hover{transform:translateY(-3px);background:#02b902;filter:brightness(.94)}
.article__back{margin-top:clamp(34px,4vw,50px);text-align:center}
.article__back a{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--c-blue);
  font-size:15px;border-bottom:1.5px solid rgba(26,107,224,.5);padding-bottom:6px;transition:gap .3s var(--ease)}
.article__back a:hover{gap:16px}

@media (max-width:880px){
  .blog__inner{grid-template-columns:1fr}
  .blog-side{position:static;flex-direction:row;flex-wrap:wrap}
  .blog-side__block{flex:1 1 240px}
}
@media (max-width:560px){
  .blog-card{grid-template-columns:1fr}
  .blog-card__body{padding:0 18px 20px}
  .blog-card__thumb{aspect-ratio:16/9}
}

/* ===== Footer ===== */
.footer{position:relative;background:#0B1220;color:#cbd5e1;overflow:hidden}
.footer__accent{position:absolute;top:0;left:0;width:100%;height:4px;
  background:linear-gradient(90deg,var(--c-blue) 0 25%,var(--c-red) 25% 50%,var(--c-yellow) 50% 75%,var(--c-green) 75% 100%)}
.footer__inner{max-width:1180px;margin:0 auto;padding:clamp(56px,7vw,90px) clamp(20px,4vw,40px) 0}

.footer__top{display:grid;grid-template-columns:1.3fr 2fr;gap:clamp(36px,5vw,72px);
  padding-bottom:clamp(40px,5vw,64px)}

.footer__logo{height:34px;width:auto;margin-bottom:22px}
.footer__tagline{line-height:1.9;font-size:14px;color:#94a3b8;margin-bottom:26px}
.footer__cta{display:flex;gap:12px;flex-wrap:wrap}
.footer__cta-btn{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 22px;
  border-radius:999px;font-weight:700;font-size:13.5px;transition:transform .3s var(--ease),filter .3s,background .3s}
.footer__cta-btn:hover{transform:translateY(-2px)}
.footer__cta-btn--contact{background:linear-gradient(135deg,#FF6A5B,#E23A2E);color:#fff}
.footer__cta-btn--contact:hover{filter:brightness(1.06)}
.footer__cta-btn--line{background:#02b902;color:#fff}
.footer__cta-btn--line:hover{background:#02b902;filter:brightness(.94)}

.footer__nav{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,40px)}
.footer__col-ttl{color:#fff;font-weight:700;font-size:14px;letter-spacing:.04em;margin-bottom:18px;
  position:relative;padding-bottom:12px}
.footer__col-ttl::after{content:"";position:absolute;left:0;bottom:0;width:22px;height:2px;background:var(--c-blue);border-radius:2px}
.footer__col ul{display:flex;flex-direction:column;gap:13px}
.footer__col a{font-size:13.5px;color:#94a3b8;transition:color .25s var(--ease)}
.footer__col a:hover{color:#fff}

.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.08);
  padding:24px 0 30px}
.footer__legal{display:flex;gap:26px}
.footer__legal a{font-size:12.5px;color:#94a3b8;transition:color .25s var(--ease)}
.footer__legal a:hover{color:#fff}
.footer__copy{font-family:"Outfit",sans-serif;font-size:12.5px;color:#64748b;letter-spacing:.03em}

@media (max-width:860px){
  .footer__top{grid-template-columns:1fr;gap:40px}
  .footer__nav{grid-template-columns:repeat(2,1fr);gap:30px}
}
@media (max-width:520px){
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
}

/* centered section watermark (ABOUT / NEWS) — override base left offset */
.feature__head .sec-watermark--center,
.news__head .sec-watermark--center{
  left:50%;right:auto;transform:translateX(-50%);
  text-align:center;white-space:nowrap;
  font-size:clamp(56px,9vw,120px);
}
.feature__head .sec-watermark--center{top:-40px}
.news__head .sec-watermark--center{top:-44px}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .gnav,.header__actions{display:none}
  .hamburger{display:flex}
  .hero__text{width:60%}
}
@media (max-width:768px){
  :root{--header-h:68px}
  .header__logo-img{height:28px}
  .header__inner{padding-left:24px;padding-right:24px}
  .hamburger{position:relative;z-index:2;width:32px;height:28px;justify-content:center}
  .hamburger span{transform-origin:center}
  .hero__veil{background:linear-gradient(180deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.4) 36%,rgba(255,255,255,.1) 60%)}
  .hero__text{width:100%;max-width:none;padding-top:80px}
  .hero__title{font-size:clamp(34px,9vw,52px);white-space:normal}
  .hero__lead{line-height:1.9}
  .hero__cta{flex-direction:column;align-items:stretch}
  .btn{justify-content:center;height:58px}
  .hero__indicator{right:16px;gap:12px}
  .ind__bar{height:34px}
  .hero__toggle{width:46px;height:46px;bottom:24px;right:16px}
  .hero__scroll{display:none}

  /* Mobile alignment: use one consistent 20px content gutter. */
  .feature__inner,.service__inner,.news__inner,
  .page-hero__inner,.svc__inner,.psec__inner,.rc-msg,
  .contact__inner,.blog__inner,.footer__inner{
    padding-left:20px;
    padding-right:20px;
  }
  .feature__head,.service__head,.news__head,.psec-head{
    transform-origin:center;
  }
  h1,h2,h3,h4,
  .hero__title,.feature__title,.sec-title,.scard__ttl,
  .news__title,.cta__title,.page-hero__title,.svc-block__ttl,
  .psec-title,.cmp-copy,.cmp-msg__copy,.rc-msg__ttl,
  .rc-feat__ttl,.job__name,.blog-card__ttl,.article__title{
    overflow-wrap:normal;
    word-break:auto-phrase;
    line-break:strict;
  }
  p,li,dt,dd,label,
  .feature__sub,.service__lead,.news__sub,.page-hero__sub,
  .fcard__txt,.scard__desc,.scard__list li,.svc-block__desc,
  .svc-feat__txt,.biz-card__txt,.cmp-msg__body,.rc-msg__body,
  .job__lead,.job-row dd,.article__body{
    overflow-wrap:break-word;
    word-break:auto-phrase;
    line-break:strict;
  }
  .feature__title-nowrap{
    display:inline-block;
    white-space:nowrap;
  }
  .feature__sub,.service__lead,.news__sub,.page-hero__sub,
  .cta__sub,.cmp-lead,.svc__lead,.contact__lead,
  .fcard__txt,.scard__desc,.svc-block__desc,.article__lead{
    max-width:38em;
    margin-left:auto;
    margin-right:auto;
  }
  .feature__sub br,.service__lead br,.news__sub br,.page-hero__sub br{
    display:none;
  }
  .feature__title,.sec-title,.news__title,.page-hero__title,.psec-title{
    line-height:1.32;
  }
  .service__grid--three .scard__ttl{
    white-space:normal;
    font-size:clamp(20px,5.6vw,23px);
  }
  .fcard__body,.scard__body,.svc-block__body{
    min-width:0;
  }
  .cta{padding:64px 0}
  .cta__inner{padding:0 20px}
  .cta__card{
    width:100%;border-radius:20px;
    padding:36px 20px;
  }
  .cta__eyebrow{gap:6px;letter-spacing:.02em;line-height:1.6;white-space:normal}
  .cta__title{
    font-size:clamp(18px,5.7vw,23px);
    line-height:1.6;letter-spacing:0;white-space:normal;
    max-width:13em;margin-left:auto;margin-right:auto;
  }
  .cta__sub{max-width:30em;margin-left:auto;margin-right:auto}
  .cta__btns{width:100%;gap:12px}
  .cta-btn{width:100%;min-height:60px;padding:0 20px}
  .cmp-lead,.svc__lead,.contact__lead{
    text-align:left;
    max-width:38em;
  }
  .cmp-copy br,.svc__lead br,.contact__lead br{
    display:none;
  }
  .cmp-copy{
    font-size:clamp(21px,6.2vw,27px);
    line-height:1.65;
  }
  .rc-feat__ttl,.job__name,.blog-card__ttl{
    line-height:1.6;
  }
  .news-item__ttl,.biz-card__txt,.rc-feat__txt,
  .job__lead,.job-row dd,.faq-item__q,.flow-step__txt{
    word-break:auto-phrase;
    text-wrap:pretty;
  }
  .footer__legal{flex-wrap:wrap;row-gap:10px}
  .address-break{display:block}
  .address-break::before{content:""}
  .footer__brand{text-align:center}
  .footer__logo{margin-left:auto;margin-right:auto}
  .footer__cta{justify-content:center}
  .footer__cta-btn{justify-content:center}
  .footer__nav{text-align:center}
  .footer__col-ttl::after{left:50%;transform:translateX(-50%)}
  .footer__bottom{align-items:center;text-align:center}
  .footer__legal{justify-content:center}
  .footer__bottom{
    padding-bottom:calc(218px + env(safe-area-inset-bottom));
  }
}

@media (max-width:520px){
  .footer__nav{grid-template-columns:1fr 1fr}
  .footer__cta-btn{flex:1 1 145px}
  .footer__bottom{align-items:center}
}

/* Final mobile overrides for service detail FV */
@media (max-width:768px){
  body.service-detail-page{
    overflow-x:hidden;
  }
  body.service-detail-page .detail-hero--fit{
    display:block;
    min-height:auto;
    overflow:hidden;
    padding:calc(var(--header-h) + 28px) 0 48px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__inner{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:22px;
    padding:0 20px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__text{
    order:1;
    width:100%;
    min-width:0;
    overflow:visible;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__brand{
    align-items:center;
    gap:10px;
    margin-bottom:20px;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__logo{
    height:clamp(46px,12vw,58px);
    max-width:58%;
    object-fit:contain;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__label{
    flex-shrink:0;
    padding:6px 12px;
    font-size:11px;
    letter-spacing:0;
    white-space:nowrap;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__title{
    width:100%;
    max-width:100%;
    font-size:clamp(24px,6.7vw,27px);
    line-height:1.48;
    letter-spacing:0;
    margin-bottom:18px;
    overflow:visible;
    word-break:break-all;
    overflow-wrap:anywhere;
    text-wrap:auto;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__lead{
    width:100%;
    max-width:100%;
    font-size:13.5px;
    line-height:1.9;
    margin-bottom:24px;
    overflow:visible;
    word-break:break-all;
    overflow-wrap:anywhere;
    text-wrap:auto;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  body.service-detail-page .detail-hero--fit .detail-btn{
    width:100%;
    min-height:58px;
    padding:0 18px;
    border-radius:18px;
    box-sizing:border-box;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual-stack{
    order:2;
    display:flex;
    width:100%;
    gap:14px;
    margin-top:4px;
    overflow:visible;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual,
  body.service-detail-page .detail-hero--fit .detail-hero__visual--image-only{
    display:flex;
    width:100%;
    min-height:0!important;
    padding:0;
    overflow:visible;
    order:1;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__visual::before,
  body.service-detail-page .detail-hero--fit .detail-hero__visual::after,
  body.service-detail-page .detail-hero--fit .detail-visual__glow{
    display:none;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__mockup-image{
    display:block;
    width:76%;
    max-width:76%;
    height:auto;
    margin:0 auto;
    transform:none;
    filter:drop-shadow(0 18px 34px rgba(15,23,42,.14));
  }
  body.service-detail-page .detail-hero--fit .detail-hero__below-image{
    display:flex;
    width:100%;
    margin:0 auto;
    order:2;
  }
  body.service-detail-page .detail-hero--fit .detail-hero__below-image img{
    display:block;
    width:80%;
    max-width:80%;
    height:auto;
    margin:0 auto;
  }
  body.service-detail-page .detail-section__head .psec-title{
    width:100%;
    max-width:min(11.8em, calc(100vw - 48px))!important;
    margin-left:auto;
    margin-right:auto;
    font-size:clamp(21px,5.7vw,23px);
    line-height:1.45;
    overflow-wrap:anywhere!important;
    word-break:auto-phrase!important;
    white-space:normal!important;
    text-wrap:auto!important;
  }
  body.service-detail-page .detail-main > .detail-section:first-child .detail-section__head .psec-title{
    max-width:calc(100vw - 28px)!important;
    font-size:clamp(19px,5.1vw,21px);
    letter-spacing:.01em;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
  body.service-detail-page .detail-section .psec-label,
  body.service-detail-page .detail-section .psec-title{
    text-align:center!important;
  }
  body.service-detail-page .detail-split > div:first-child .psec-label,
  body.service-detail-page .detail-split > div:first-child .psec-title{
    width:100%;
    max-width:min(12.5em, calc(100vw - 48px))!important;
    margin-left:auto;
    margin-right:auto;
    white-space:normal!important;
  }
}
