/* ============================================================
   STAR FOREST — tokens
   ============================================================ */
:root{
  --brand:#002F79;
  --brand-dark:#00245E;
  --navy-950:#001233;
  --navy-900:#002F79;
  --navy-800:#0E3576;
  --blue-700:#00245E;
  --blue-600:#002F79;
  --blue-500:#1B4FA8;
  --blue-200:#B9D0EE;
  --blue-100:#DCE9F8;
  --cyan:#18B6D8;
  --cyan-soft:#7FDCEC;
  --slate:#405C68;
  --slate-400:#8CA3AC;
  --paper:#F4F6F7;
  --paper-2:#EAEEF0;
  --sky-50:#EDF4FD;
  --soft:#F4F8FD;
  --line:#D9E0E3;
  --ink:#1E2E35;
  --ink-2:#405C68;

  --gothic:"Zen Kaku Gothic New",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --latin:"Cormorant Garamond",Georgia,serif;
  --mono:"Chivo Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --serif-jp:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;

  --container:1760px;
  --gutter:clamp(20px,3.2vw,48px);
  --edge:max(var(--gutter), calc((100vw - var(--container)) / 2));
  --ease:cubic-bezier(.22,1,.36,1);
  --r:2px;

  --heroH:clamp(390px,31vw,580px);
  --sideW:clamp(190px,17vw,300px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:112px}
body{margin:0;font-family:var(--gothic);color:var(--ink);background:#fff;font-size:15px;line-height:1.85;font-feature-settings:"palt" 1;letter-spacing:.02em;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px;border-radius:2px}
.sitem__num,.cta__tel-num,.fbox__num,.navpanel__tel{font-feature-settings:"palt" 0;font-variant-numeric:tabular-nums}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(46px,4.6vw,78px)}
/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0ms)}
.reveal.is-in{opacity:1;transform:none}
.reveal-clip{position:relative;isolation:isolate}
.reveal-clip::after{content:"";position:absolute;inset:0;background:#fff;z-index:3;pointer-events:none;transform:scaleY(1);transform-origin:50% 100%;transition:transform 1.05s var(--ease);transition-delay:var(--d,0ms)}
.reveal-clip.is-in::after{transform:scaleY(0)}
.split{display:inline-block}
.split .ch{display:inline-block;transform:translateY(.85em);opacity:0;transition:transform .7s var(--ease),opacity .7s var(--ease)}
.split.is-in .ch{transform:none;opacity:1}
.progress{position:fixed;inset:0 0 auto 0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:0 50%;z-index:200}
@supports (animation-timeline: scroll()){
  .progress{animation:progressGrow linear both;animation-timeline:scroll(root)}
  @keyframes progressGrow{to{transform:scaleX(1)}}
}
/* ---------- technical eyebrow label ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:10.5px;font-weight:400;letter-spacing:.34em;text-transform:uppercase;color:var(--slate);margin:0 0 14px}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--cyan);flex:none}
.eyebrow b{font-weight:400;color:var(--slate-400);letter-spacing:.3em}
.shead .eyebrow{justify-content:center}
/* ---------- faint technical grid ---------- */
.gridwash{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(159,196,245,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(159,196,245,.1) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(120% 90% at 12% 40%,#000 0%,transparent 72%);
          mask-image:radial-gradient(120% 90% at 12% 40%,#000 0%,transparent 72%);
}
/* ============================================================
   Header — transparent over hero, detaches into floating glass modules
   ============================================================ */
.header{
  position:fixed;inset:0 0 auto 0;z-index:150;background:transparent;
  padding:clamp(9px,.85vw,15px) clamp(10px,1vw,18px);
  transition:transform .5s var(--ease),padding .4s var(--ease);
}
.header.is-hidden{transform:translateY(-140%)}
.header__inner{
  position:relative;width:100%;max-width:var(--container);margin-inline:auto;
  padding:clamp(6px,.5vw,9px) clamp(9px,.85vw,15px) clamp(6px,.5vw,9px) clamp(14px,1.3vw,24px);
  display:flex;align-items:center;gap:14px;min-height:clamp(52px,3.6vw,64px);
  background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid rgba(255,255,255,.7);border-radius:8px;
  box-shadow:0 10px 34px rgba(0,20,60,.13);
  transition:background .4s var(--ease),box-shadow .4s var(--ease);
}
.header.is-stuck .header__inner{background:rgba(255,255,255,.95);box-shadow:0 12px 34px rgba(0,20,60,.16)}
.hbox{display:flex;align-items:center;padding-block:4px}
.hbox--brand{margin-right:auto}
.hbox--nav{gap:clamp(14px,1.9vw,34px);padding-right:0}
/* colour states */
.brand{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--latin);font-size:clamp(20px,1.72vw,28px);font-weight:600;letter-spacing:.045em;font-variant:small-caps;color:var(--brand)}
.brand__name em{font-style:normal;font-size:1.22em}
.brand__jp{font-size:clamp(8.5px,.6vw,10px);letter-spacing:.22em;margin-top:6px;font-weight:700;color:var(--brand)}
.gnav{display:flex;align-items:center;gap:clamp(10px,1.4vw,26px)}
.gnav a{position:relative;display:flex;align-items:center;gap:8px;font-size:clamp(13px,.92vw,15.5px);font-weight:700;letter-spacing:.02em;color:#2B2B2D;transition:color .35s}
.gnav a::before{
  content:"";width:5px;height:5px;background:var(--brand);flex:none;
  transform:scale(0);transition:transform .4s var(--ease);
}
.gnav a.is-active::before{transform:scale(1)}
.gnav a.is-active{color:var(--brand)}
.gnav .lbl{display:block;overflow:hidden;height:1.45em}
.gnav .lbl i{display:block;font-style:normal;line-height:1.45;transition:transform .45s var(--ease)}
.gnav .lbl i+i{color:var(--brand)}
.gnav a:hover .lbl i{transform:translateY(-100%)}
.hdr-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;flex:none;
  background:linear-gradient(135deg,#00266A 0%,#00368E 55%,#0A4CB0 100%);color:#fff;
  font-size:clamp(12.5px,.9vw,15px);font-weight:700;letter-spacing:.03em;
  padding:clamp(10px,.85vw,13px) clamp(15px,1.5vw,25px);
  border-radius:6px;white-space:nowrap;transition:background .3s,transform .3s;
}
.hdr-cta:hover{background:linear-gradient(135deg,#001D55 0%,#002C79 55%,#0741A0 100%);transform:translateY(-1px)}
.burger{
  display:none;width:44px;height:44px;border:1px solid rgba(0,47,121,.28);
  background:transparent;border-radius:2px;cursor:pointer;padding:0;position:relative;z-index:160;
  transition:border-color .4s
}
.burger span{position:absolute;left:12px;width:20px;height:1.6px;background:var(--brand);transition:transform .4s var(--ease),opacity .3s,background .4s}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:21.5px}
.burger span:nth-child(3){top:27px}
.burger[aria-expanded="true"]{border-color:rgba(255,255,255,.4)}
.burger[aria-expanded="true"] span{background:#fff}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
/* full-screen menu panel */
.navpanel{
  position:fixed;inset:0;z-index:149;
  background:linear-gradient(155deg,#001233 0%,#002F79 60%,#123F86 100%);
  clip-path:inset(0 0 100% 0);transition:clip-path .75s var(--ease);
  display:flex;flex-direction:column;justify-content:center;
  padding:110px var(--gutter) 40px;overflow-y:auto;
}
.navpanel.is-open{clip-path:inset(0 0 0 0)}
.navpanel__list{display:grid;border-top:1px solid rgba(255,255,255,.16)}
.navpanel__list a{
  display:flex;align-items:baseline;gap:18px;padding:clamp(14px,2.4vw,20px) 0;
  border-bottom:1px solid rgba(255,255,255,.16);color:#fff;
  font-size:clamp(22px,6.4vw,32px);font-weight:700;letter-spacing:.03em;
  opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease),color .3s;
}
.navpanel.is-open .navpanel__list a{opacity:1;transform:none}
.navpanel__list a:nth-child(1){transition-delay:.14s}
.navpanel__list a:nth-child(2){transition-delay:.2s}
.navpanel__list a:nth-child(3){transition-delay:.26s}
.navpanel__list a:nth-child(4){transition-delay:.32s}
.navpanel__list a:nth-child(5){transition-delay:.38s}
.navpanel__list a:nth-child(6){transition-delay:.44s}
.navpanel__list a:active{color:var(--cyan-soft)}
.navpanel__no{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:#8FB6EE;flex:none}
.navpanel__foot{margin-top:clamp(24px,4vw,40px);display:grid;gap:14px;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease) .5s,transform .6s var(--ease) .5s}
.navpanel.is-open .navpanel__foot{opacity:1;transform:none}
.navpanel__tel{display:flex;align-items:center;gap:10px;font-family:var(--gothic);font-size:clamp(24px,6.4vw,31px);color:#9FC4F5;font-weight:700;letter-spacing:.01em}
.navpanel__note{font-size:12px;color:rgba(255,255,255,.65);letter-spacing:.04em;margin:0;word-break:auto-phrase}
body.nav-open{overflow:hidden}
body.nav-open .header__inner{background:transparent;box-shadow:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
body.nav-open .brand__name{color:#fff!important}
body.nav-open .brand__jp{color:rgba(255,255,255,.7)!important}
body.nav-open .burger span{background:#fff}
body.nav-open .burger{border-color:rgba(255,255,255,.4)}
body.nav-open .hdr-cta{display:none}
/* ============================================================
   Hero — full-bleed photo, gradient veil, copy on top
   ============================================================ */
.hero{position:relative;padding-top:0;display:block;overflow:clip;background:#fff}
.hero__stage{position:relative;min-height:var(--heroH);display:flex;align-items:center;overflow:hidden;padding-top:clamp(66px,4.6vw,86px)}
.hero__photo{position:absolute;inset:0 0 0 11%;overflow:hidden}
.hero__photo{background:#fff}
.hslide{animation:kenburns 24s linear forwards}
.hslide.is-on{opacity:1}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.16)}}
.hero__veil{
  position:absolute;inset:-1px;pointer-events:none;
  background:linear-gradient(90deg,#fff 0%,#fff 13%,rgba(255,255,255,.9) 21%,rgba(255,255,255,.66) 29%,rgba(255,255,255,.36) 37%,rgba(255,255,255,.14) 45%,rgba(255,255,255,0) 55%);
}
.hero__title{
  font-family:var(--serif-jp);font-size:clamp(30px,3.9vw,68px);font-weight:600;line-height:1.5;letter-spacing:.075em;font-feature-settings:"palt" 0;
  margin:0 0 clamp(20px,2.2vw,34px);color:#0A0A0A;
}
.hero__title .line{display:block;overflow:hidden}
.hero__title .line i{display:block;font-style:normal;transform:translateY(110%);opacity:0}
.hero__title .accent{color:var(--brand)}
.hero__title .num{font-feature-settings:"palt" 0}
.hero__lead{display:none}
.hero__text{font-size:clamp(14.5px,1.15vw,19px);color:#2F3654;line-height:1.95;letter-spacing:.06em;font-weight:500;margin:0 0 clamp(26px,2.8vw,40px);opacity:0}
.hero__btns{display:flex;flex-wrap:wrap;gap:16px;opacity:0}
.hero .btn{padding:clamp(17px,1.35vw,23px) clamp(20px,1.7vw,30px);font-size:clamp(14px,1vw,16px);min-width:clamp(220px,17vw,300px)}
.hero .btn--fill{background:linear-gradient(135deg,#00266A 0%,#00368E 55%,#0A4CB0 100%);box-shadow:0 14px 32px rgba(0,38,106,.32)}
.hero .btn--fill:hover{background:linear-gradient(135deg,#001D55 0%,#002C79 55%,#0741A0 100%);box-shadow:0 18px 40px rgba(0,38,106,.4)}
.hero .btn--line{background:#fff;color:var(--brand);border:1.5px solid var(--brand)}
.hero .btn--line:hover{background:#F2F6FC}
.is-ready .hero__title .line i{animation:lineUp 1.05s var(--ease) forwards;animation-delay:var(--d,0ms)}
.is-ready .hero__lead,.is-ready .hero__text,.is-ready .hero__btns{animation:fadeUp .9s var(--ease) forwards;animation-delay:var(--d,0ms)}
@keyframes lineUp{to{transform:none;opacity:1}}
@keyframes fadeUp{from{transform:translateY(18px)}to{transform:none;opacity:1}}
.scrollcue{position:absolute;left:var(--edge);bottom:24px;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11.5px;letter-spacing:.34em;color:#7E88A4;text-transform:uppercase;z-index:4}
.scrollcue i{position:relative;width:60px;height:1px;background:#C6CEDD;overflow:hidden;display:block}
.scrollcue i::before{content:"";position:absolute;inset:0;background:var(--brand);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
/* diagonal image strip on the right */
.hero__diag{position:absolute;right:0;top:0;bottom:0;width:clamp(200px,26vw,470px);z-index:2;background:#fff}
.dpanel{position:absolute;inset:0;margin:0;overflow:hidden;background:#fff}
.dpanel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;opacity:0;transition:opacity 1.1s var(--ease)}
.dpanel img.is-on{opacity:1}
.dpanel.d1{clip-path:polygon(12% 0,100% 0,100% 32.6%,8.1% 32.6%)}
.dpanel.d2{clip-path:polygon(8.0% 33.5%,100% 33.5%,100% 66.4%,4.0% 66.4%)}
.dpanel.d3{clip-path:polygon(3.9% 67.3%,100% 67.3%,100% 100%,0 100%)}
/* ============================================================
   Partner band
   ============================================================ */
.partner{background:linear-gradient(120deg,#00235F 0%,#00368E 48%,#0A4CB0 100%);color:#fff;padding-block:clamp(18px,1.6vw,24px)}
.partner__inner{max-width:1560px;display:flex;align-items:center;gap:clamp(20px,2.4vw,44px);flex-wrap:wrap}
.partner__head{display:flex;align-items:center;gap:clamp(16px,1.6vw,24px);flex:none}
.partner__icon{width:clamp(54px,4.1vw,72px);height:clamp(54px,4.1vw,72px);flex:none;display:block}
.partner__icon img{width:100%;height:100%;object-fit:cover;display:block}
.partner__eyebrow{font-family:var(--gothic);font-size:clamp(10px,.8vw,12px);font-weight:700;letter-spacing:.26em;color:rgba(255,255,255,.88);text-transform:uppercase;display:block;margin-bottom:6px}
.partner__title{font-size:clamp(17px,1.6vw,25px);font-weight:700;letter-spacing:.03em;margin:0;line-height:1.4;color:#fff;white-space:nowrap}
.chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(6px,.5vw,9px);margin-left:auto;flex:0 1 auto;min-width:0;max-width:clamp(520px,52vw,800px)}
.chip{border:0;background:#fff;color:var(--brand);font-size:clamp(10.5px,.8vw,13px);font-weight:700;letter-spacing:0;padding:clamp(6px,.55vw,9px) clamp(5px,.55vw,10px);border-radius:8px;white-space:nowrap;text-align:center;transition:transform .35s var(--ease),background .3s,color .3s,box-shadow .35s var(--ease)}
.chip:hover{background:#E8F0FB;transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,20,60,.28)}
/* ============================================================
   Section heads
   ============================================================ */
.shead{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  column-gap:clamp(28px,4vw,80px);row-gap:14px;align-items:end;
  padding-bottom:clamp(20px,2vw,30px);margin-bottom:clamp(30px,3vw,48px);
  border-bottom:1px solid var(--line);text-align:left;
}
.shead .eyebrow{grid-column:1 / -1;justify-content:flex-start;margin-bottom:2px}
.shead__title{
  grid-column:1;font-weight:700;font-size:clamp(26px,3.35vw,54px);line-height:1.34;
  letter-spacing:.015em;margin:0;color:var(--navy-900);
}
.problems .shead{grid-template-columns:1fr;justify-items:center;text-align:center;border-bottom:0;padding-bottom:0;margin-bottom:clamp(26px,2.4vw,40px)}
.problems .shead__title{grid-column:1}
.problems .shead__title{font-family:var(--serif-jp);font-weight:600;font-size:clamp(22px,2.3vw,36px);letter-spacing:.07em;line-height:1.5;color:#0D1A33;font-feature-settings:"palt" 0}
.shead__sub{grid-column:2;max-width:52ch;font-size:13px;color:var(--ink-2);margin:0 0 6px;letter-spacing:.03em;line-height:1.95;padding-left:clamp(14px,1.4vw,22px);border-left:2px solid var(--cyan);word-break:auto-phrase}
.mech .shead{border-bottom-color:rgba(255,255,255,.18);grid-template-columns:1fr;justify-items:start;row-gap:16px}
.mech .shead__title{grid-column:1}
.mech__intro{grid-column:1;max-width:none;margin:0;font-size:clamp(13px,1.05vw,15.5px);line-height:2.05;letter-spacing:.03em;color:rgba(255,255,255,.8)}
.mech__intro span{display:inline-block;margin-top:10px;font-size:.88em;color:rgba(255,255,255,.55)}
.mech .shead__sub{border-left-color:var(--cyan)}
/* ============================================================
   Problems
   ============================================================ */
.problems{background:#fff;padding-block:clamp(28px,2.4vw,42px)}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1vw,16px)}
.pcard{border:1px solid #E3E8F0;border-radius:4px;background:#fff;padding:clamp(24px,2vw,32px) clamp(18px,1.6vw,26px) clamp(26px,2.3vw,36px);min-height:clamp(180px,15vw,232px);display:flex;align-items:flex-start;gap:clamp(12px,1.1vw,18px);position:relative;overflow:hidden;transition:transform .45s var(--ease),border-color .4s var(--ease),box-shadow .45s var(--ease)}
.pcard::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--brand);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease)}
.pcard:hover{transform:translateY(-4px);border-color:#BFD2EC;box-shadow:0 20px 42px -22px rgba(0,47,121,.3)}
.pcard:hover::after{transform:scaleX(1)}
.pcard__body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,1.5vw,24px)}
.pcard__no{font-family:var(--serif-jp);font-size:clamp(30px,2.7vw,44px);font-weight:600;line-height:1;letter-spacing:.01em;color:var(--brand);flex:none;font-feature-settings:"palt" 0}
.pcard__txt{text-align:center;font-size:clamp(14px,1.18vw,17.5px);font-weight:700;line-height:1.85;letter-spacing:.02em;margin:0;color:#1B2540;word-break:auto-phrase}
.pcard__icon{align-self:center;margin-top:auto;color:var(--brand);opacity:.92;transition:transform .5s var(--ease);line-height:0}
.pcard:hover .pcard__icon{transform:translateY(-2px)}
.pcard:hover .pcard__icon{color:var(--cyan)}
.pnote{text-align:center;margin:clamp(22px,2.2vw,32px) 0 0;font-size:13.5px;color:#4A5470;letter-spacing:.06em;word-break:auto-phrase}
/* ============================================================
   Technologies
   ============================================================ */
.tech{background:var(--paper);border-block:1px solid var(--line)}
.tech__list{border-top:1px solid var(--line);background:#fff;overflow:hidden;box-shadow:0 24px 60px -32px rgba(30,46,53,.3)}
.trow{
  display:grid;grid-template-columns:minmax(170px,.9fr) minmax(230px,1.2fr) minmax(0,2.4fr) auto;
  align-items:stretch;gap:clamp(16px,2.2vw,44px);
  border-bottom:1px solid var(--line);position:relative;transition:background .4s var(--ease);
}
.trow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cyan);transform:scaleY(0);transform-origin:50% 0;transition:transform .5s var(--ease)}
.trow:hover{background:#FAFCFC}
.trow:hover::before{transform:scaleY(1)}
.trow__brand{align-self:center;padding-left:clamp(6px,1.4vw,26px);font-size:clamp(20px,1.95vw,32px);line-height:1.15;letter-spacing:.01em}
.tb-health{font-weight:500;color:#1B60C0}
.tb-plus{font-weight:700;color:#0F3F86}
.tb-plus sup{color:#2E9E5B;font-size:.78em;font-weight:700;top:-.18em;position:relative}
.tb-air{font-family:var(--latin);font-weight:500;color:#7A5C86;font-size:1.5em;letter-spacing:.035em}
.tb-air em{font-style:italic;font-weight:600}
/* image feathered on both sides so it melts into the row */
.trow__fig{
  margin:0;overflow:hidden;align-self:stretch;position:relative;min-height:104px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.4) 12%,#000 32%,#000 68%,rgba(0,0,0,.4) 88%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.4) 12%,#000 32%,#000 68%,rgba(0,0,0,.4) 88%,transparent 100%);
}
.trow__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;transition:transform 1s var(--ease)}
.trow:hover .trow__fig img{transform:scale(1.06)}
.trow__body{align-self:center;padding-block:clamp(14px,1.25vw,20px)}
.trow__title{font-size:clamp(16.5px,1.4vw,22px);line-height:1.55;font-weight:700;margin:0 0 5px;letter-spacing:.04em;word-break:auto-phrase}
.trow__desc{font-size:13.5px;color:var(--slate);margin:0;line-height:1.85}
.trow__more{align-self:center;display:inline-flex;align-items:center;gap:12px;font-size:13.5px;letter-spacing:.06em;font-weight:700;color:var(--slate);white-space:nowrap;padding-right:clamp(6px,1.4vw,26px)}
.trow__more svg{transition:transform .4s var(--ease)}
.trow:hover .trow__more{color:var(--cyan)}
.trow:hover .trow__more svg{transform:translateX(6px)}
/* ============================================================
   Technology (comp layout: intro left, 3 panels right)
   ============================================================ */
.tech{background:#fff;border-block:0;padding-block:clamp(28px,2.5vw,44px)}
.tech__grid{display:grid;grid-template-columns:minmax(240px,23.5%) minmax(0,1fr);gap:clamp(16px,1.8vw,34px);align-items:center}
.tech__title{font-family:var(--serif-jp);font-weight:600;font-size:clamp(17px,1.62vw,26px);line-height:1.68;letter-spacing:.03em;white-space:nowrap;color:#0F0F12;margin:0 0 clamp(12px,1.2vw,18px);font-feature-settings:"palt" 0}
.tech__title span{display:block}
.tech__title em{font-style:normal;color:#7A2E2E}
.tech__sub{font-family:var(--serif-jp);font-size:clamp(11.5px,.98vw,14.5px);line-height:1.95;color:#5C5C60;margin:0 0 clamp(14px,1.4vw,22px);letter-spacing:.02em}
.tech__link{display:inline-flex;align-items:center;gap:clamp(10px,.9vw,14px);font-family:var(--serif-jp);font-size:clamp(12px,1vw,15px);font-weight:500;color:var(--brand);letter-spacing:.03em}
.tech__arrow{width:clamp(22px,1.8vw,27px);height:clamp(22px,1.8vw,27px);border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;flex:none;transition:transform .35s var(--ease)}
.tech__link:hover .tech__arrow{transform:translateX(4px)}
.tech__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(5px,.5vw,9px)}
.tcard{position:relative;display:block;aspect-ratio:388/232;overflow:hidden;background:#fff}
.tcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,60% center);transition:transform 1s var(--ease)}
.tcard:hover img{transform:scale(1.05)}
.tcard__veil{position:absolute;left:-2px;right:-2px;top:-2px;bottom:-2px;pointer-events:none;background:linear-gradient(90deg,#fff 0%,#fff 20%,rgba(255,255,255,.9) 31%,rgba(255,255,255,.45) 49%,rgba(255,255,255,.08) 72%,rgba(255,255,255,0) 88%)}
.tcard__body{position:relative;z-index:2;padding:clamp(14px,1.4vw,24px) clamp(12px,1.2vw,20px)}
.tcard__name{display:block;font-size:clamp(15px,1.5vw,25px);line-height:1.2;margin-bottom:clamp(9px,.95vw,16px);letter-spacing:.005em}
.tn-health{color:#1F5AC8;font-weight:500}
.tn-plus{color:#0E7A3A;font-weight:600}
.tn-air{color:#8E6E85;font-weight:600;font-style:italic;letter-spacing:.03em}
.tcard__desc{font-size:clamp(10.5px,.86vw,13px);font-weight:700;line-height:1.9;color:#4A4A50;margin:0;max-width:15em;word-break:auto-phrase}
/* ============================================================
   Mechanism — how the field technology works
   ============================================================ */
.mech{background:linear-gradient(155deg,#05173A 0%,#123F73 46%,#2A5364 78%,#0B2C4E 100%);position:relative;overflow:hidden;color:#fff}
.mech .shead__title{color:#fff}
.mech .shead__sub{color:rgba(255,255,255,.74)}
.mech .eyebrow{color:var(--cyan)}
.mech .eyebrow b{color:rgba(255,255,255,.6)}
.mech__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(28px,3.6vw,68px);align-items:center;position:relative}
.mech__viz{position:relative;border:1px solid rgba(127,220,236,.22);border-radius:12px;background:linear-gradient(160deg,rgba(255,255,255,.07) 0%,rgba(24,182,216,.06) 100%);box-shadow:inset 0 0 70px rgba(24,182,216,.1);padding:clamp(14px,1.6vw,24px);overflow:hidden}
.mech__viz svg{width:100%;height:auto;display:block}
.mech-grid{stroke:rgba(159,196,245,.15);stroke-width:1}
.mech-dev{fill:#0B2E6B;stroke:var(--cyan-soft);stroke-width:1.2}
.mech-dev-face{fill:var(--cyan)}
.mech-ring{fill:none;stroke:var(--cyan);stroke-width:1.4;transform-origin:150px 150px;opacity:0}
.mech-ring.r1{animation:ringOut 4.4s linear infinite}
.mech-ring.r2{animation:ringOut 4.4s linear infinite 1.1s}
.mech-ring.r3{animation:ringOut 4.4s linear infinite 2.2s}
.mech-ring.r4{animation:ringOut 4.4s linear infinite 3.3s}
@keyframes ringOut{0%{transform:scale(.18);opacity:0}12%{opacity:.75}100%{transform:scale(1);opacity:0}}
.mech-link{fill:none;stroke:rgba(127,220,236,.6);stroke-width:1.2;stroke-dasharray:5 6;animation:dashRun 2.6s linear infinite}
@keyframes dashRun{to{stroke-dashoffset:-22}}
.mech-node{fill:rgba(6,27,66,.85);stroke:var(--cyan-soft);stroke-width:1.3}
.mech-node-i{fill:none;stroke:#CFEFF7;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.mech-cap{font-family:var(--gothic);font-size:11px;fill:#fff;letter-spacing:.06em;font-weight:500}
.mech-tag{font-family:var(--mono);font-size:8.5px;fill:var(--cyan-soft);letter-spacing:.18em}
.mech-mol{fill:var(--cyan-soft);opacity:.5;animation:molPulse 2.4s ease-in-out infinite}
@keyframes molPulse{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:.85}}
.mech__steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(12px,1.4vw,20px);counter-reset:mech}
.mech__step{display:flex;gap:18px;padding-bottom:clamp(12px,1.4vw,20px);border-bottom:1px solid rgba(255,255,255,.16)}
.mech__step:last-child{border-bottom:0;padding-bottom:0}
.mech__step-no{font-family:var(--mono);font-size:12px;color:var(--cyan);letter-spacing:.14em;flex:none;padding-top:4px}
.mech__step h3{font-size:clamp(15.5px,1.25vw,19px);font-weight:700;margin:0 0 5px;letter-spacing:.04em}
.mech__step p{font-size:13.5px;color:rgba(255,255,255,.76);margin:0;line-height:1.85;word-break:auto-phrase}
.mech__note{margin:clamp(20px,2vw,30px) 0 0;font-size:11.5px;color:rgba(255,255,255,.5);letter-spacing:.03em;text-align:center}
/* ============================================================
   Credentials strip
   ============================================================ */
.creds{background:#fff;color:var(--ink);position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.creds::before{content:"";position:absolute;inset:0;background:radial-gradient(760px 280px at 18% 130%,rgba(24,182,216,.1),transparent 62%)}
.creds__inner{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,36px);padding-block:clamp(18px,1.6vw,26px)}
.cred{display:flex;align-items:center;gap:clamp(14px,1.3vw,20px);padding-inline:clamp(6px,1.2vw,20px);position:relative}
.cred+.cred::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;background:var(--line)}
.cred__icon{flex:none;color:var(--brand);display:block;line-height:0}
.cred__tag{display:block;font-family:var(--mono);font-size:clamp(9.5px,.78vw,11px);letter-spacing:.26em;color:var(--slate-400);text-transform:uppercase;margin-bottom:5px}
.cred__title{font-size:clamp(15.5px,1.38vw,20px);font-weight:700;margin:0 0 5px;letter-spacing:.04em;color:var(--navy-900)}
.cred__desc{font-size:clamp(12.5px,1.02vw,14.5px);color:var(--slate);margin:0;line-height:1.8;word-break:auto-phrase}
/* ============================================================
   Flow + FAQ
   ============================================================ */
.flow{background:#fff}
.flow__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,22px);position:relative;margin-bottom:clamp(38px,4vw,64px)}
.fstep{position:relative;padding-top:34px}
.fstep::before{content:"";position:absolute;left:0;right:0;top:11px;height:1px;background:var(--line)}
.fstep::after{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;background:var(--cyan);border:0}
.fstep:last-child::before{right:0;width:auto}
.fstep__no{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--slate-400);display:block;margin-bottom:8px}
.fstep h3{font-size:clamp(15px,1.2vw,18px);font-weight:700;margin:0 0 7px;letter-spacing:.04em;word-break:auto-phrase}
.fstep p{font-size:12.5px;color:var(--slate);margin:0;line-height:1.8;word-break:auto-phrase}
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq details{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;transition:background .3s}
.faq details[open]{background:var(--paper)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:14px;padding:18px 22px;font-size:14.5px;font-weight:700;letter-spacing:.03em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--cyan);flex:none;letter-spacing:.1em}
.faq summary::after{content:"";width:11px;height:11px;margin-left:auto;flex:none;border-right:1.6px solid var(--slate);border-bottom:1.6px solid var(--slate);transform:rotate(45deg);margin-top:4px;transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:8px}
.faq__a{display:flex;gap:14px;padding:0 22px 22px 22px;font-size:13.5px;color:var(--slate);line-height:1.95}
.faq__a::before{content:"A";font-family:var(--mono);font-size:12px;line-height:1.9;color:var(--slate-400);flex:none;letter-spacing:.1em}
/* ============================================================
   Stats
   ============================================================ */
.stats{padding-block:clamp(34px,3.4vw,56px) 0}
.stats__box{background:linear-gradient(115deg,#05173A 0%,#123F73 44%,#1C5F86 74%,#0B2C4E 100%);border-radius:0;color:#fff;position:relative;overflow:hidden;padding:clamp(28px,2.8vw,42px) clamp(20px,2.4vw,44px)}
.stats__box::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 320px at 14% 0%,rgba(255,255,255,.16),transparent 64%),radial-gradient(700px 300px at 88% 110%,rgba(255,255,255,.12),transparent 62%)}
.stats__box::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:52px 52px;
}
.stats__wave{position:absolute;inset:auto 0 0 0;height:56%;width:200%;opacity:.28;pointer-events:none;animation:statWave 16s linear infinite}
.stats__wave path{fill:none;stroke:var(--cyan-soft);stroke-width:1.1}
@keyframes statWave{to{transform:translateX(-50%)}}
.stats__eyebrow{justify-content:center;color:var(--cyan-soft);display:flex;margin-bottom:12px}
.stats__eyebrow b{color:rgba(255,255,255,.72)}
.stats__inner{position:relative}
.stats__title{text-align:center;font-size:clamp(21px,2vw,32px);font-weight:700;letter-spacing:.04em;margin:0 0 clamp(20px,2.2vw,32px)}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr)}
.sitem{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.3vw,22px);padding-inline:clamp(10px,1.4vw,24px);position:relative}
.sitem+.sitem::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:rgba(255,255,255,.26)}
.sitem__icon{flex:none;opacity:.95;color:var(--cyan-soft)}
.sitem__label{font-size:12px;line-height:1.65;letter-spacing:.06em;color:var(--cyan-soft);margin:0 0 8px;font-weight:500}
.sitem__val{display:flex;align-items:baseline;gap:8px;margin:0}
.sitem__num{font-family:var(--gothic);font-size:clamp(42px,4.2vw,70px);font-weight:700;line-height:.95;letter-spacing:-.01em;background:linear-gradient(180deg,#fff 38%,#8FD9EA 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.sitem__unit{font-size:12.5px;letter-spacing:.05em;white-space:nowrap;color:rgba(255,255,255,.82)}
.stats__note{text-align:center;font-size:12px;color:rgba(255,255,255,.8);margin:clamp(16px,1.8vw,26px) 0 0;letter-spacing:.04em}
/* ============================================================
   Scenes — infinite horizontal marquee (full bleed)
   ============================================================ */
.scenes{padding-block:clamp(46px,4.6vw,78px)}
.scmarquee{overflow:hidden;--cw:clamp(230px,18vw,330px);--cg:clamp(10px,1.1vw,18px);position:relative}
.scmarquee::before,.scmarquee::after{content:"";position:absolute;top:0;bottom:0;width:clamp(30px,5vw,90px);z-index:2;pointer-events:none}
.scmarquee::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.scmarquee::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
.sctrack{display:flex;gap:var(--cg);width:max-content;animation:hscroll 52s linear infinite;will-change:transform}
.scmarquee:hover .sctrack{animation-play-state:paused}
@keyframes hscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--cg) / 2))}}
.sccard{flex:0 0 var(--cw);display:block}
.sccard__fig{margin:0;overflow:hidden;aspect-ratio:3/4;border-radius:0;position:relative}
.sccard__fig::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,39,87,0) 55%,rgba(10,39,87,.28));opacity:0;transition:opacity .5s}
.sccard__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.sccard:hover .sccard__fig img{transform:scale(1.08)}
.sccard:hover .sccard__fig::after{opacity:1}
.sccard__cap{display:block;text-align:left;font-family:var(--gothic);font-size:13.5px;font-weight:700;letter-spacing:.05em;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);transition:color .3s,border-color .3s}
.sccard:hover .sccard__cap{color:var(--cyan);border-color:var(--cyan)}
/* ============================================================
   Support
   ============================================================ */
.support{background:var(--paper);border-block:1px solid var(--line)}
.supgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.3vw,20px)}
.supcard{background:#fff;border:0;border-radius:0;padding:clamp(22px,2.1vw,32px) clamp(18px,1.8vw,26px);display:flex;flex-direction:column;align-items:flex-start;gap:18px;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.supcard:hover{transform:translateY(-5px);box-shadow:0 24px 50px -20px rgba(30,46,53,.28)}
.supcard__icon{color:var(--cyan);flex:none;width:46px;height:46px;border:1px solid var(--line);display:grid;place-items:center}
.supcard__title{font-size:16.5px;font-weight:700;margin:0 0 7px;letter-spacing:.04em;color:var(--navy-900)}
.supcard__desc{font-size:12.5px;color:var(--slate);margin:0;line-height:1.75;word-break:auto-phrase}
/* ============================================================
   About — raised image with depth
   ============================================================ */
.about__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(30px,4.4vw,88px);align-items:center}
.about__media{position:relative;padding:34px 0 38px 38px}
.about__media::before{
  content:"";position:absolute;left:0;bottom:0;right:38px;top:34px;
  background:var(--slate);
}
.about__media::after{
  content:"";position:absolute;left:0;top:34px;width:38px;height:2px;background:var(--cyan);z-index:2;
}
.about__fig{position:relative;margin:0;overflow:hidden;border-radius:0;aspect-ratio:16/10;
  box-shadow:0 40px 74px -30px rgba(30,46,53,.5),0 14px 30px -12px rgba(30,46,53,.2);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.about__fig:hover{transform:translateY(-6px);box-shadow:0 50px 84px -30px rgba(10,39,87,.5),0 18px 36px -12px rgba(10,39,87,.2)}
.about__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.about__fig:hover img{transform:scale(1.05)}
.about__title{font-family:var(--latin);font-variant:small-caps;font-weight:500;font-size:clamp(28px,2.8vw,44px);letter-spacing:.05em;color:var(--navy-900);margin:0 0 22px}
.about__title em{font-style:normal;font-size:1.2em}
.about__title span{font-family:var(--gothic);font-variant:normal;font-size:.46em;font-weight:700;letter-spacing:.08em}
.about__text{font-size:14.5px;line-height:2.15;color:var(--slate);margin:0 0 26px;letter-spacing:.04em}
/* ============================================================
   Buttons
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-width:240px;padding:18px 24px;border-radius:var(--r);font-size:15px;font-weight:700;letter-spacing:.04em;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,color .3s}
.btn svg{flex:none;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn--fill{background:linear-gradient(120deg,#1A56B8 0%,#2E74D6 100%);color:#fff;box-shadow:0 12px 30px rgba(15,61,149,.34)}
.btn--fill:hover{background:linear-gradient(120deg,#123F8E 0%,#1F63CB 100%);transform:translateY(-3px);box-shadow:0 18px 38px rgba(15,61,149,.42)}
.btn--line{background:#fff;color:var(--navy-900);border:1.5px solid var(--blue-500)}
.btn--line:hover{background:var(--sky-50);transform:translateY(-3px)}
.btn--ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.65)}
.btn--ghost:hover{background:rgba(255,255,255,.14);transform:translateY(-3px)}
.btn--white{background:#fff;color:var(--blue-700)}
.btn--white:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.2)}
.btn--sm{min-width:0;padding:15px 24px;gap:16px;font-size:13.5px}
/* ============================================================
   Blog
   ============================================================ */
.blog{background:var(--paper-2);border-top:1px solid var(--line);padding-block:clamp(34px,3.2vw,52px)}
.blog__inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(20px,2.8vw,48px);align-items:center}
.blog__title{font-size:clamp(18px,1.6vw,25px);font-weight:700;margin:0 0 6px;letter-spacing:.05em}
.blog__sub{font-size:13px;color:var(--ink-2);margin:0}
.blog__list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.1vw,16px)}
.bcard{background:#fff;border:0;border-radius:0;padding:18px 20px;display:block;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.bcard:hover{transform:translateY(-4px);box-shadow:0 20px 40px -16px rgba(30,46,53,.3)}
.bcard time{display:block;font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:.16em;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:10px}
.bcard p{font-size:13px;line-height:1.7;margin:0;font-weight:500;word-break:auto-phrase}
/* ============================================================
   Merged CTA
   ============================================================ */
.cta{background:linear-gradient(105deg,#05173A 0%,#123F73 40%,#2A5364 72%,#0E3050 100%);color:#fff;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(880px 340px at 14% 0%,rgba(24,182,216,.26),transparent 62%),radial-gradient(700px 300px at 92% 110%,rgba(255,255,255,.1),transparent 60%)}
.cta__icon{color:var(--cyan-soft)}
.cta__tel-num{color:var(--cyan-soft)}
.cta__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,3.4vw,64px);align-items:center;padding-block:clamp(38px,3.8vw,60px)}
.cta__head{display:flex;align-items:center;gap:clamp(16px,1.8vw,28px)}
.cta__icon{flex:none;opacity:.95}
.cta__title{font-size:clamp(21px,2vw,32px);font-weight:700;letter-spacing:.055em;margin:0 0 8px;line-height:1.45}
.cta__sub{font-size:14px;margin:0;color:rgba(255,255,255,.88);line-height:1.85;letter-spacing:.03em}
.cta__actions{display:flex;flex-direction:column;gap:14px;align-items:stretch;flex:none}
.cta__btns{display:flex;gap:12px;flex-wrap:wrap}
.cta__btns .btn{min-width:0;padding:17px 22px;gap:18px;font-size:14px}
.cta__tel{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.cta__tel-label{font-size:12.5px;color:rgba(255,255,255,.82);letter-spacing:.04em;word-break:auto-phrase}
.cta__tel-num{display:flex;align-items:center;gap:10px;font-family:var(--gothic);font-size:clamp(24px,1.95vw,30px);font-weight:700;color:#fff;line-height:1.15;letter-spacing:.01em}
/* ============================================================
   Footer
   ============================================================ */
.footer{background:linear-gradient(180deg,#0B2C4E 0%,#05173A 100%);color:rgba(255,255,255,.85);padding-block:clamp(38px,3.6vw,56px) 0}
.footer__grid{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,.72fr)) minmax(0,1fr);gap:clamp(20px,2.6vw,48px)}
.footer .brand__name{color:#fff}
.footer .brand__jp{color:rgba(255,255,255,.6)}
.footer__addr{font-size:12.5px;line-height:2;margin:22px 0 0;color:rgba(255,255,255,.72);letter-spacing:.03em}
.fcol__title{font-size:13px;font-weight:700;color:var(--cyan-soft);margin:0 0 16px;letter-spacing:.08em}
.fcol ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fcol a{font-size:13px;color:rgba(255,255,255,.7);transition:color .3s,padding-left .3s}
.fcol a:hover{color:#fff;padding-left:4px}
.fbox{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--r);padding:22px;text-align:center}
.fbox__label{font-size:11.5px;color:rgba(255,255,255,.7);margin:0 0 8px;letter-spacing:.03em;word-break:auto-phrase}
.fbox__num{display:flex;align-items:center;justify-content:center;gap:9px;font-family:var(--gothic);font-size:clamp(23px,1.9vw,29px);color:var(--cyan-soft);font-weight:700;line-height:1.25;margin-bottom:14px;letter-spacing:.01em}
.fbox .btn{width:100%;min-width:0;padding:14px 18px;font-size:13.5px}
.copyright{text-align:center;font-size:11.5px;color:rgba(255,255,255,.5);padding-block:22px;margin-top:clamp(26px,2.8vw,42px);border-top:1px solid rgba(255,255,255,.12);letter-spacing:.06em}
/* ============================================================
   Bottom half — traced from the comp
   ============================================================ */
:root{--gold:#BB9D67;--gold-dark:#A98A55}
/* ---- stats ---- */
.stats{padding:0}
.stats__box{border-radius:0;background:linear-gradient(120deg,#012A6C 0%,#003B8F 45%,#012E74 100%);padding:clamp(14px,1.3vw,22px) 0}
.stats__box::after{background-image:none}
.stats__inner{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.stats__row{display:flex;align-items:center;gap:0}
.stats__title{font-family:var(--serif-jp);text-align:left;flex:none;padding-right:clamp(18px,2.2vw,42px);font-size:clamp(17px,1.62vw,26px);font-weight:600;letter-spacing:.06em;line-height:1.55;margin:0}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);flex:1;min-width:0}
.sitem{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1vw,18px);padding-inline:clamp(6px,1vw,20px);position:relative}
.sitem::before,.stats__row .sgrid::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:1px;background:rgba(255,255,255,.3)}
.sitem__icon{flex:none;opacity:.95;color:#fff}
.sitem__label{font-size:clamp(10.5px,.85vw,12.5px);line-height:1.55;letter-spacing:.04em;color:rgba(255,255,255,.92);margin:0 0 4px;text-align:center;font-weight:500}
.sitem__val{display:flex;align-items:baseline;gap:6px;margin:0;justify-content:center}
.sitem__num{font-family:var(--serif-jp);font-size:clamp(28px,2.9vw,46px);font-weight:600;line-height:1;background:none;-webkit-text-fill-color:#fff;color:#fff;font-feature-settings:"palt" 0}
.sitem__unit{font-size:clamp(10px,.8vw,12px);letter-spacing:.04em;white-space:nowrap;color:rgba(255,255,255,.9)}
.stats__note{text-align:center;font-size:clamp(9.5px,.76vw,11.5px);color:rgba(255,255,255,.72);margin:clamp(8px,.9vw,14px) 0 0;letter-spacing:.03em}
/* ---- scenes (looping marquee, no links) ---- */
.scenes{padding-block:clamp(30px,2.8vw,48px);overflow:hidden}
.sc-head{font-family:var(--serif-jp);text-align:center;font-size:clamp(18px,1.85vw,28px);font-weight:600;letter-spacing:.06em;color:#0D1A33;margin:0 0 clamp(18px,1.8vw,28px);font-feature-settings:"palt" 0}
.scmarquee{position:relative;overflow:hidden;--cw:clamp(230px,19vw,330px);--cg:clamp(10px,1vw,18px)}
.scmarquee::before,.scmarquee::after{content:"";position:absolute;top:0;bottom:0;width:clamp(24px,4vw,80px);z-index:2;pointer-events:none}
.scmarquee::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.scmarquee::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
.sctrack{display:flex;gap:var(--cg);width:max-content;animation:hscroll 58s linear infinite;will-change:transform}
.scmarquee:hover .sctrack{animation-play-state:paused}
@keyframes hscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--cg) / 2))}}
.sccard{flex:0 0 var(--cw);display:block;border:1px solid #E4E9F0;border-radius:6px;overflow:hidden;background:#fff}
.sccard__fig{margin:0;aspect-ratio:16/10;overflow:hidden}
.sccard__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.sccard:hover .sccard__fig img{transform:scale(1.05)}
.sccard__body{padding:clamp(11px,1vw,16px) clamp(11px,1vw,15px) clamp(13px,1.15vw,18px)}
.sccard__cap{display:block;font-size:clamp(11.5px,.95vw,14px);font-weight:700;letter-spacing:.03em;color:var(--brand);margin-bottom:7px}
.sccard__txt{margin:0;font-size:clamp(10px,.82vw,12.5px);line-height:1.8;color:#5B5B60;letter-spacing:.01em}
/* ---- support ---- */
.support{background:#fff;border-block:0;padding-block:clamp(20px,1.9vw,32px)}
.sup__grid{display:grid;grid-template-columns:minmax(250px,27%) minmax(0,1fr);gap:clamp(16px,1.8vw,32px);align-items:center}
.sup__title{font-family:var(--serif-jp);white-space:nowrap;font-size:clamp(18px,1.8vw,28px);font-weight:600;line-height:1.6;letter-spacing:.04em;color:#0D1A33;margin:0 0 clamp(10px,1vw,16px);font-feature-settings:"palt" 0}
.sup__desc{font-size:clamp(12.5px,1.05vw,15.5px);line-height:2;color:#5B5B60;margin:0;letter-spacing:.02em}
.supgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(9px,.95vw,17px)}
.supcard{background:#F7F9FC;border:0;border-radius:6px;padding:clamp(16px,1.55vw,26px) clamp(12px,1.15vw,19px);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(9px,.8vw,13px);row-gap:6px;align-items:center;transition:transform .4s var(--ease),background .3s}
.supcard:hover{transform:translateY(-4px);background:#EFF4FB;box-shadow:none}
.supcard__icon{grid-row:1 / span 2;color:var(--brand);width:auto;height:auto;border:0;display:block;line-height:0}
.supcard__title{grid-column:2;white-space:nowrap;font-size:clamp(12px,1.02vw,15.5px);font-weight:700;margin:0;letter-spacing:.03em;color:var(--brand)}
.supcard__desc{grid-column:2;font-size:clamp(10.5px,.88vw,13px);color:#5B5B60;margin:0;line-height:1.75;word-break:auto-phrase}
/* ---- flow (redesigned) ---- */
.flow{background:linear-gradient(180deg,#F7FAFD 0%,#FFFFFF 62%);padding-block:clamp(34px,3.2vw,56px)}
.flow .shead{grid-template-columns:1fr;justify-items:center;text-align:center;border-bottom:0;padding-bottom:0;margin-bottom:clamp(22px,2.2vw,34px);row-gap:14px}
.flow .shead__title{grid-column:1;font-family:var(--serif-jp);font-weight:600;font-size:clamp(19px,1.95vw,30px);letter-spacing:.06em;color:#0D1A33;font-feature-settings:"palt" 0}
.flow__lead{grid-column:1;margin:0;font-size:clamp(12px,1vw,14.5px);line-height:1.95;color:#5B5B60;letter-spacing:.02em}
.flow__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.1vw,20px);margin-bottom:clamp(30px,3vw,50px)}
.fstep{position:relative;padding:clamp(20px,1.9vw,32px) clamp(16px,1.5vw,26px) clamp(20px,1.9vw,30px);background:#fff;border:1px solid #E2E8F1;border-radius:6px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.fstep:hover{transform:translateY(-4px);box-shadow:0 20px 42px -20px rgba(0,47,121,.3);border-color:#C3D5EE}
.fstep::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--brand);border-radius:6px 6px 0 0}
.fstep::after{content:"";position:absolute;left:auto;background:none;border-radius:0;border-bottom:0;border-left:0;right:calc(-1 * clamp(10px,1.1vw,20px) / 2 - 6px);top:50%;width:11px;height:11px;border-top:2px solid #B9C9E2;border-right:2px solid #B9C9E2;transform:translateY(-50%) rotate(45deg);z-index:2}
.fstep:last-child::after{display:none}
.fstep__no{display:block;font-family:var(--serif-jp);font-size:clamp(11px,.9vw,13px);letter-spacing:.22em;color:var(--brand);margin-bottom:clamp(8px,.85vw,13px);font-feature-settings:"palt" 0}
.fstep__no b{display:block;font-size:clamp(26px,2.4vw,38px);font-weight:600;letter-spacing:.02em;line-height:1;margin-top:4px}
.fstep h3{font-size:clamp(13.5px,1.15vw,17px);font-weight:700;margin:0 0 8px;letter-spacing:.03em;color:var(--navy-900);word-break:auto-phrase}
.fstep p{font-size:clamp(11px,.9vw,13.5px);color:#5B5B60;margin:0;line-height:1.85;word-break:auto-phrase}
.faq{max-width:1080px;margin-inline:auto;gap:10px}
.faq details{background:#fff;border:1px solid #E2E8F1;border-radius:6px}
/* ---- about + blog ---- */
.about{padding-block:clamp(24px,2.2vw,40px)}
.ab__grid{display:grid;grid-template-columns:minmax(0,30%) minmax(0,26%) minmax(0,1fr);gap:clamp(16px,1.8vw,34px);align-items:start}
.ab__fig{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:16/10}
.ab__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ab__fig:hover img{transform:scale(1.05)}
.ab__title{font-family:var(--latin);font-variant:small-caps;font-weight:600;font-size:clamp(18px,1.6vw,26px);letter-spacing:.04em;color:var(--brand);margin:0 0 clamp(10px,1vw,16px)}
.ab__title em{font-style:normal;font-size:1.18em}
.ab__title span{font-family:var(--gothic);font-variant:normal;font-size:.6em;font-weight:700;letter-spacing:.06em;color:var(--navy-900)}
.ab__text{font-size:clamp(10.5px,.88vw,13px);line-height:1.95;color:#4C4C52;margin:0 0 clamp(12px,1.2vw,20px);letter-spacing:.02em}
.ab__btn{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-width:clamp(150px,13vw,190px);padding:clamp(9px,.85vw,13px) clamp(12px,1.1vw,18px);border:1px solid var(--brand);color:var(--brand);font-size:clamp(11px,.9vw,13.5px);font-weight:700;border-radius:3px;transition:background .3s,color .3s}
.ab__btn:hover{background:var(--brand);color:#fff}
.ab__blog{border-left:1px solid #E1E7EF;padding-left:clamp(16px,1.8vw,34px)}
.ab__bhead{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:clamp(10px,1.1vw,18px)}
.ab__bttl{font-size:clamp(14px,1.28vw,20px);font-weight:700;letter-spacing:.04em;color:var(--navy-900);margin:0}
.ab__blink{display:inline-flex;align-items:center;gap:8px;font-size:clamp(10.5px,.85vw,12.5px);font-weight:700;color:var(--brand);white-space:nowrap}
.ab__list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,.85vw,15px)}
.bcard{background:#F7F9FC;border:0;border-radius:4px;padding:0;overflow:hidden;display:block;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.bcard:hover{transform:translateY(-4px);box-shadow:0 16px 32px -16px rgba(0,47,121,.28)}
.bcard__top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:clamp(8px,.75vw,12px) clamp(9px,.8vw,13px) 0}
.bcard time{display:block;font-family:var(--gothic);font-size:clamp(9px,.72vw,11px);color:#7C8492;letter-spacing:.04em;border:0;padding:0;margin:0}
.bcard__tag{font-size:clamp(8.5px,.68vw,10.5px);font-weight:700;color:var(--brand);border:1px solid #C6D6EC;border-radius:3px;padding:2px 7px;white-space:nowrap}
.bcard p{font-size:clamp(10px,.82vw,12.5px);line-height:1.7;margin:0;padding:clamp(6px,.6vw,10px) clamp(9px,.8vw,13px) clamp(8px,.75vw,12px);font-weight:700;color:var(--navy-900);word-break:auto-phrase}
.bcard__fig{margin:0;aspect-ratio:16/9;overflow:hidden}
.bcard__fig img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.bcard:hover .bcard__fig img{transform:scale(1.06)}
/* ---- document band ---- */
.docband{background:linear-gradient(115deg,#012A6C 0%,#00398A 55%,#012D72 100%);color:#fff}
.docband__inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(16px,2vw,40px);padding-block:clamp(20px,2vw,34px)}
.docband__icon{flex:none;color:#fff;opacity:.96;line-height:0}
.docband__title{font-family:var(--serif-jp);font-size:clamp(18px,1.9vw,30px);font-weight:600;margin:0 0 6px;letter-spacing:.07em;font-feature-settings:"palt" 0}
.docband__sub{font-size:clamp(11px,.92vw,14px);margin:0;color:rgba(255,255,255,.88);letter-spacing:.02em}
.btn--gold{background:var(--gold);color:#fff;border-radius:999px;min-width:clamp(240px,24vw,380px);padding:clamp(13px,1.25vw,20px) clamp(20px,1.8vw,30px);font-size:clamp(12.5px,1.05vw,16px);letter-spacing:.05em;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.btn--gold:hover{background:var(--gold-dark);transform:translateY(-2px)}
/* ---- merged CTA ---- */
.cta{background:linear-gradient(115deg,#012A6C 0%,#00398A 55%,#012D72 100%);color:#fff}
.cta::before{display:none}
.cta__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(20px,2.6vw,56px);padding-block:clamp(24px,2.3vw,40px)}
.cta__head{display:flex;align-items:center;gap:clamp(16px,1.8vw,32px)}
.cta__icon{flex:none;line-height:0}
.cta__title{font-family:var(--serif-jp);font-size:clamp(18px,1.9vw,30px);font-weight:600;letter-spacing:.06em;margin:0 0 8px;color:#fff;font-feature-settings:"palt" 0}
.cta__sub{font-size:clamp(11px,.92vw,14px);color:rgba(255,255,255,.86);margin:0;line-height:1.85;letter-spacing:.02em}
.cta__actions{display:flex;flex-direction:column;align-items:stretch;gap:clamp(9px,.85vw,14px);flex:none}
.cta__row{display:flex;gap:clamp(9px,.85vw,14px);flex-wrap:wrap}
.btn--gold{background:var(--gold);color:#fff;border-radius:999px;min-width:clamp(250px,24vw,360px);padding:clamp(13px,1.2vw,19px) clamp(20px,1.8vw,30px);font-size:clamp(12.5px,1.02vw,15.5px);letter-spacing:.05em;box-shadow:0 12px 28px rgba(0,0,0,.2)}
.btn--gold:hover{background:var(--gold-dark);transform:translateY(-2px)}
.cta__mail{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:#fff;color:var(--brand);font-size:clamp(11.5px,.95vw,14.5px);font-weight:700;padding:clamp(12px,1.1vw,17px) clamp(18px,1.6vw,28px);border-radius:3px;transition:background .3s,transform .3s}
.cta__mail:hover{background:#E9F0FA;transform:translateY(-2px)}
.cta__telbox{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(255,255,255,.55);border-radius:3px;padding:clamp(10px,.95vw,15px) clamp(16px,1.4vw,26px);color:#fff;transition:background .3s}
.cta__telbox:hover{background:rgba(255,255,255,.12)}
.cta__telbox b{font-size:clamp(16px,1.5vw,24px);font-weight:700;letter-spacing:.01em;font-feature-settings:"palt" 0}
.cta__telbox i{font-style:normal;font-size:clamp(9.5px,.76vw,11.5px);color:rgba(255,255,255,.78)}
/* ---- footer (white in the comp) ---- */
.footer{background:#fff;color:var(--navy-900);border-top:1px solid #E4E9F0;padding-block:clamp(22px,2.1vw,36px) 0}
.footer .brand__name,.footer .brand__jp{color:var(--brand)}
.footer__grid{grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,.78fr)) minmax(0,1.05fr);gap:clamp(14px,1.6vw,30px)}
.footer__addr{color:#4C4C52;font-size:clamp(10.5px,.85vw,12.5px);margin-top:16px}
.fcol__title{color:var(--navy-900);font-size:clamp(11px,.9vw,13px);margin-bottom:10px}
.fcol ul{gap:6px}
.fcol a{color:#4C4C52;font-size:clamp(10.5px,.85vw,12.5px)}
.fcol a:hover{color:var(--brand)}
.fbox{background:#fff;border:1px solid #DCE3EC;padding:clamp(12px,1.1vw,18px)}
.fbox__label{color:#5B5B60;font-size:clamp(9px,.74vw,11px)}
.fbox__num{font-family:var(--gothic);color:var(--brand);font-size:clamp(17px,1.6vw,25px);font-weight:700}
.fbox .btn--white{border:1px solid var(--brand);color:var(--brand);background:#fff;justify-content:center;gap:10px;font-size:clamp(10.5px,.86vw,13px);padding:clamp(9px,.85vw,13px) 14px;border-radius:3px}
.fbox .btn--white:hover{background:var(--brand);color:#fff;box-shadow:none}
.copyright{color:#8A9099;border-top:1px solid #E4E9F0;margin-top:clamp(16px,1.6vw,26px);padding-block:14px;font-size:clamp(9.5px,.76vw,11.5px)}
@media (max-width:1240px){
  .stats__row{flex-direction:column;align-items:stretch;gap:16px}
  .stats__title{text-align:center;padding-right:0}
  .sup__grid{grid-template-columns:1fr;gap:18px}
  .sup__title{white-space:normal}
  .supgrid{grid-template-columns:repeat(2,1fr)}
  .ab__grid{grid-template-columns:1fr 1fr;gap:22px}
  .ab__blog{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid #E1E7EF;padding-top:20px}
  .scgrid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:900px){
  .sgrid{grid-template-columns:repeat(2,1fr);gap:18px 0}
  .sitem:nth-child(3)::before{display:none}
  .cta__inner{grid-template-columns:1fr;justify-items:center;text-align:center}
  .cta__head{flex-direction:column;text-align:center}
  .ab__grid{grid-template-columns:1fr}
  .ab__list{grid-template-columns:1fr}
}
@media (max-width:620px){
  .scgrid{grid-template-columns:repeat(2,1fr)}
  .supgrid{grid-template-columns:1fr}
  .sgrid{grid-template-columns:1fr;gap:16px}
  .sitem+.sitem::before{display:none}
}
/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1240px){
  .tech__grid{grid-template-columns:1fr;gap:22px}
  .tech__title{white-space:normal}
  .tech__cards{gap:8px}
  .gnav{display:none}
  .burger{display:block}
  .mech__grid{grid-template-columns:1fr;gap:28px}
  .flow__grid{grid-template-columns:repeat(2,1fr);gap:26px 22px}
  .pgrid,.supgrid{grid-template-columns:repeat(2,1fr)}
  .trow{grid-template-columns:minmax(140px,.85fr) minmax(180px,1.05fr) minmax(0,2fr) auto;gap:clamp(14px,2vw,28px)}
  .footer__grid{grid-template-columns:repeat(2,1fr)}
  .hero__copy{width:min(64%,720px)}
}
@media (max-width:760px){
  .brand__name{font-size:19px}
  .brand__jp{font-size:8px;letter-spacing:.08em;white-space:nowrap;margin-top:5px}
  .hdr-cta{padding:11px 13px;font-size:11.5px;gap:6px;letter-spacing:0}
  .hbox{padding-block:2px}
  .header__inner{gap:10px}
}
@media (max-width:900px){
  .tech__cards{grid-template-columns:1fr;gap:10px}
  .tcard{aspect-ratio:16/7}
  .tcard__desc{max-width:20em}
  .hdr-cta{display:none}
  .brand__jp{display:none}
  .shead{grid-template-columns:1fr;row-gap:12px}
  .shead__title,.shead__sub{grid-column:1}
  .pgrid{gap:0}
  .hero{padding-top:70px}
  .hero__diag{display:none}
  .hero__stage{min-height:0;flex-direction:column;align-items:stretch}
  .hero__photo{position:relative;inset:auto;height:clamp(240px,52vw,380px)}
  .hero__veil{background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,.7) 22%,rgba(255,255,255,0) 55%)}
  .hero__copy{width:100%;padding:clamp(22px,5vw,34px) var(--gutter) clamp(34px,7vw,48px)}
  .hero__btns .btn{flex:1 1 220px}
  .scrollcue{display:none}
  .partner__inner{flex-direction:column;align-items:flex-start;gap:16px}
  .chips{margin-left:0;width:100%;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}
  .partner__title{white-space:normal}
  .trow{grid-template-columns:1fr;gap:0;padding-bottom:22px}
  .trow__brand{padding:22px clamp(4px,3vw,20px) 0}
  .trow__fig{min-height:0;position:relative;aspect-ratio:16/6;margin-block:16px;width:100%}
  .trow__body{padding:0 clamp(4px,3vw,20px)}
  .trow__more{padding:14px clamp(4px,3vw,20px) 0}
  .sgrid{grid-template-columns:repeat(2,1fr);gap:22px 0}
  .sitem{justify-content:flex-start}
  .sitem:nth-child(3)::before{display:none}
  .about__grid{grid-template-columns:1fr}
  .about__media{order:-1}
  .blog__inner{grid-template-columns:1fr}
  .blog__list{grid-template-columns:1fr}
  .cta__inner{grid-template-columns:1fr;text-align:center}
  .cta__head{flex-direction:column;text-align:center}
  .cta__btns .btn{flex:1 1 220px}
  .creds__inner{grid-template-columns:1fr;gap:18px}
  .cred+.cred::before{display:none}
  .cred+.cred{border-top:1px solid var(--line);padding-top:18px}
}
@media (max-width:620px){
  .pgrid,.supgrid{grid-template-columns:1fr}
  .pcard{gap:14px}
  .chips{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sgrid{grid-template-columns:1fr;gap:18px}
  .sitem+.sitem::before{display:none}
  .footer__grid{grid-template-columns:1fr}
  .flow__grid{grid-template-columns:1fr;gap:22px}
  .fstep{padding-top:0;padding-left:26px}
  .fstep::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .fstep::after{left:0;top:4px}
  .faq summary{font-size:13.5px;padding:16px 18px}
  .faq__a{padding:0 18px 18px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .reveal,.reveal-clip,.split .ch{opacity:1 !important;transform:none !important}
  .reveal-clip::after{transform:scaleY(0) !important}
  .hero__title .line i,.hero__lead,.hero__text,.hero__btns{opacity:1 !important;transform:none !important}
  .hslide{animation:none !important;transform:none !important}
  .sctrack,.mech-ring,.mech-link,.mech-mol,.stats__wave{animation:none !important}
}
@view-transition{navigation:auto}
/* ============================================================
   Shared additions (accordion / tech link / emphasis)
   ============================================================ */
.sp-br{display:none}
.pc-only{display:inline}
.chip.is-dup{display:none}
.tech__grid{grid-template-rows:auto auto}
.tech__intro{grid-column:1;grid-row:1}
.tech__link{grid-column:1;grid-row:2;justify-self:start;align-self:start;margin-top:clamp(10px,1vw,16px)}
.tech__cards{grid-column:2;grid-row:1 / span 2}
.pnote span{display:inline-block;background:none;padding:0;font-size:clamp(13px,1.12vw,17px);font-weight:700;color:var(--brand);letter-spacing:.04em;line-height:1.8}
.pnote b{color:#7A2E2E}
/* mechanism accordion */
.mech__steps li{list-style:none}
.mech__step{display:block;padding:0;border-bottom:1px solid rgba(255,255,255,.16)}
.mech__step[open]{padding-bottom:clamp(12px,1.3vw,20px)}
.mech__sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:clamp(13px,1.3vw,20px) 0}
.mech__sum::-webkit-details-marker{display:none}
.mech__sum h3{flex:1;font-size:clamp(15.5px,1.25vw,19px);font-weight:700;margin:0;letter-spacing:.04em;color:#fff}
.mech__chev{flex:none;width:12px;height:12px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);transform:rotate(45deg) translateY(-2px);transition:transform .35s var(--ease)}
.mech__step[open] .mech__chev{transform:rotate(-135deg) translateY(-2px)}
.mech__body{overflow:hidden;padding-left:clamp(34px,3vw,44px)}
.mech__body p{font-size:clamp(12.5px,1.02vw,14.5px);color:rgba(255,255,255,.78);margin:0;line-height:1.95;word-break:auto-phrase}
.mech__step.is-static .mech__sum{cursor:default}
.mech__step.is-static .mech__chev{display:none}
@media (max-width:620px){
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:1fr}
}
/* ---- follow-up tweaks ---- */
.pc-br{display:inline}
@media (max-width:900px){
  .pc-br{display:none}
  .tech__sub{display:none}
  .stats__title{font-size:clamp(17px,4.6vw,23px);white-space:nowrap}
  .sitem__label{min-height:2.9em;display:flex;align-items:center;justify-content:center}
  .sup__grid{text-align:center;justify-items:center}
  .sup__title{text-align:center}
  .sup__desc{text-align:center;font-size:12px;line-height:1.9}
  .supcard{text-align:left}
  .flow__grid{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;gap:10px;margin-inline:calc(-1 * var(--gutter));padding:2px var(--gutter) 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .flow__grid::-webkit-scrollbar{display:none}
  .fstep{flex:0 0 76%;scroll-snap-align:center;min-height:0}
  .flow__hint{display:flex}
  .ab__blog{order:-1;border-top:0;padding-top:0;border-bottom:1px solid #E1E7EF;padding-bottom:22px}
}
.flow__hint{display:none;align-items:center;justify-content:center;gap:8px;margin:2px 0 24px;font-size:11px;letter-spacing:.12em;color:#8A93A3}
.flow__hint::after{content:"";width:22px;height:1px;background:#C3CCDA;position:relative}
@media (max-width:620px){
  .ab__btn{width:100%;min-width:0;justify-content:space-between}
}
/* ============================================================
   Shared: contact strip / site footer / back-to-top  (comp-based)
   ============================================================ */
.cstrip{background:#fff;border-top:1px solid #E4EAF2}
.cstrip__inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,32px);padding-block:clamp(20px,2vw,32px);align-items:center}
.cstrip__i{display:flex;align-items:center;gap:clamp(11px,1.1vw,18px);justify-content:center}
.cstrip__i+.cstrip__i{border-left:1px solid #E9EEF5}
.cstrip__ico{flex:none;color:var(--brand);line-height:0}
.cstrip__ico svg{width:clamp(22px,1.9vw,28px);height:clamp(22px,1.9vw,28px)}
.cstrip__t{display:block;font-size:clamp(9.5px,.76vw,11.5px);color:#5B6172;margin-bottom:4px;letter-spacing:.05em}
.cstrip__v{display:block;font-size:clamp(17px,1.6vw,25px);font-weight:700;color:var(--brand);letter-spacing:.01em;line-height:1.2}
.cstrip__v--mail{font-size:clamp(13px,1.15vw,18px)}
.cstrip__s{display:block;font-size:clamp(9px,.72vw,11px);color:#7C8492;margin-top:4px}
.cstrip__btn{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-width:clamp(170px,15vw,230px);
  border:1px solid var(--brand);color:var(--brand);border-radius:3px;padding:clamp(9px,.85vw,13px) clamp(12px,1.1vw,18px);
  font-size:clamp(10px,.8vw,12.5px);font-weight:700;transition:background .3s,color .3s}
.cstrip__btn:hover{background:var(--brand);color:#fff}
.sfoot{background:linear-gradient(160deg,#00306F 0%,#012A62 100%);color:#fff}
.sfoot__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,.9fr));gap:clamp(16px,2vw,40px);padding-block:clamp(28px,2.8vw,50px)}
.sfoot__name{font-family:var(--latin);font-variant:small-caps;font-size:clamp(18px,1.65vw,26px);font-weight:600;letter-spacing:.05em;margin:0}
.sfoot__sub{font-size:clamp(9.5px,.76vw,11.5px);font-weight:700;color:rgba(255,255,255,.85);margin:5px 0 clamp(12px,1.2vw,18px);letter-spacing:.06em}
.sfoot__addr{font-size:clamp(10px,.8vw,12px);line-height:1.95;color:rgba(255,255,255,.82);margin:0;display:grid;gap:3px}
.sfoot__addr a{color:rgba(255,255,255,.82)}
.sfoot__addr a:hover{color:#fff}
.sfoot h3{font-size:clamp(10.5px,.86vw,13px);font-weight:700;margin:0 0 clamp(9px,.9vw,14px);letter-spacing:.06em}
.sfoot h3 a{color:#fff}
.sfoot ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.sfoot ul a{position:relative;padding-left:13px;font-size:clamp(9.5px,.78vw,11.5px);color:rgba(255,255,255,.78);line-height:1.6;display:block}
.sfoot ul a::before{content:"›";position:absolute;left:0;top:-1px;color:rgba(255,255,255,.5)}
.sfoot ul a:hover{color:#fff}
.sfoot__bar{border-top:1px solid rgba(255,255,255,.18);padding-block:clamp(11px,1.1vw,17px);display:flex;justify-content:space-between;gap:clamp(12px,1.4vw,26px);flex-wrap:wrap;align-items:center;font-size:clamp(9px,.74vw,11px);color:rgba(255,255,255,.7)}
.sfoot__bar nav{display:flex;gap:clamp(10px,1.2vw,20px);flex-wrap:wrap}
.sfoot__bar a{color:rgba(255,255,255,.7);text-decoration:underline;text-underline-offset:3px}
.sfoot__bar a:hover{color:#fff}
.totop{position:fixed;right:clamp(12px,1.4vw,24px);bottom:clamp(12px,1.4vw,24px);z-index:120;width:clamp(38px,3.2vw,48px);height:clamp(38px,3.2vw,48px);
  border-radius:50%;background:rgba(0,47,121,.9);color:#fff;display:grid;place-items:center;border:0;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility .4s,background .3s;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 26px rgba(0,20,60,.28)}
.totop.is-on{opacity:1;visibility:visible;transform:translateY(0)}
.totop:hover{background:var(--brand-dark)}
@media (max-width:1240px){
  .sfoot__grid{grid-template-columns:repeat(2,1fr)}
  .sfoot__grid>div:first-child{grid-column:1 / -1}
}
@media (max-width:900px){
  .cstrip__inner{grid-template-columns:1fr;gap:0}
  .cstrip__i{justify-content:flex-start;padding-block:14px}
  .cstrip__i+.cstrip__i{border-left:0;border-top:1px solid #E9EEF5}
}
@media (max-width:620px){
  .sfoot__grid{grid-template-columns:1fr;gap:22px}
  .sfoot__bar{flex-direction:column;align-items:flex-start;gap:8px}
}
@media (min-width:901px){
  .phero__copy{width:min(56%,880px)}
}
.header{will-change:transform;transform:translateZ(0)}

.side{contain:paint}
.bglist,.arw{contain:layout paint}
/* ===== header: STEM LABO dropdown ===== */
.gnav__dd{position:relative;display:flex;align-items:center}
.gnav__dd>a{display:inline-flex;align-items:center;gap:6px}
.gnav__caret{flex:none;opacity:.6;transition:transform .3s var(--ease)}
.gnav__dd:hover .gnav__caret,.gnav__dd:focus-within .gnav__caret{transform:rotate(180deg)}
.gnav__sub{position:absolute;left:50%;top:calc(100% + 14px);transform:translate(-50%,6px);min-width:280px;
  background:#fff;border:1px solid #E4EAF2;border-radius:8px;padding:8px;box-shadow:0 22px 48px -20px rgba(0,30,70,.3);
  opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;z-index:5}
.gnav__sub::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.gnav__dd:hover .gnav__sub,.gnav__dd:focus-within .gnav__sub{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gnav__sub a{display:block;padding:11px 14px;border-radius:5px;transition:background .2s}
.gnav__sub a:hover,.gnav__sub a:focus-visible{background:#F2F6FC}
.gnav__sub a::after{display:none!important}
.gnav__sub b{display:block;font-size:13px;font-weight:700;color:#12203C;letter-spacing:.02em}
.gnav__sub small{display:block;margin-top:3px;font-size:11px;color:#6B7385;letter-spacing:.02em}
.navpanel__sub{display:grid;gap:2px;margin:-6px 0 10px 44px;padding-left:14px;border-left:1px solid rgba(255,255,255,.25)}
.navpanel__sub a{font-size:15px!important;padding:9px 0!important;border:0!important;opacity:.88}

/* ===== WordPress admin bar: keep the fixed header clear of it ===== */
.admin-bar .header{top:32px}
@media (max-width:782px){.admin-bar .header{top:46px}}

/* ===== sub-page heroes on small screens: photo first, then text ===== */
@media (max-width:900px){
  .phero .crumb{display:none}
  .phero:has(.phero__photo) .phero__stage{padding-top:0;flex-direction:column}
  .phero:has(.phero__photo) .phero__photo{position:relative;inset:auto;order:1;width:100%;height:clamp(250px,66vw,380px);margin:0;border-radius:0;box-shadow:none;right:auto;left:auto;top:auto;bottom:auto}
  .phero:has(.phero__photo) .phero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .phero:has(.phero__photo) .phero__veil{display:block;background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 32%,rgba(255,255,255,0) 72%,#fff 100%)}
  .phero:has(.phero__photo) .phero__copy{order:2;width:100%!important;padding:clamp(6px,2vw,12px) var(--gutter) clamp(30px,8vw,44px)!important}
}

/* ===== STEM LABO switcher (stemlabo / forsalon / airprojet) ===== */
:root{--sl:#0B2F66;--sl-2:#1F5AAE;--sl-soft:#EEF3FA;--fs:#2DAFA3;--fs-2:#1E8C83;--fs-soft:#EAF7F5;--aj:#6E5578;--aj-soft:#F5F0F7}
.stsw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.1vw,20px);margin-top:clamp(18px,2vw,30px)}
.stsw a{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(12px,1.3vw,22px);align-items:center;
  border-radius:8px;padding:clamp(16px,1.6vw,26px) clamp(16px,1.7vw,28px);border:1px solid #DCE5F0;background:#fff;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.stsw a:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(0,30,70,.3)}
.stsw__ic{width:clamp(46px,4vw,62px);height:clamp(46px,4vw,62px);border-radius:50%;display:grid;place-items:center;flex:none}
.stsw__ic svg{width:54%;height:54%}
.stsw__tag{display:block;font-family:var(--mono);font-size:clamp(9.5px,.76vw,11.5px);letter-spacing:.24em;margin-bottom:5px}
.stsw__t{display:block;font-size:clamp(14px,1.28vw,20px);font-weight:700;letter-spacing:.03em;line-height:1.4}
.stsw__d{display:block;font-size:clamp(10.5px,.86vw,13px);color:#4C5468;margin-top:6px;line-height:1.7}
.stsw__go{width:clamp(30px,2.5vw,38px);height:clamp(30px,2.5vw,38px);border-radius:50%;display:grid;place-items:center;flex:none;transition:transform .3s var(--ease)}
.stsw a:hover .stsw__go{transform:translateX(3px)}
.stsw__now{position:absolute;right:clamp(14px,1.4vw,22px);top:-10px;font-size:10px;font-weight:700;letter-spacing:.08em;color:#fff;border-radius:999px;padding:4px 10px}
.stsw--sl .stsw__ic{background:var(--sl-soft);color:var(--sl)}
.stsw--sl .stsw__tag,.stsw--sl .stsw__t{color:var(--sl)}
.stsw--sl .stsw__go{border:1px solid #C9D6EA;color:var(--sl)}
.stsw--sl.is-now{border-color:var(--sl);box-shadow:inset 0 0 0 1px var(--sl);background:var(--sl-soft)}
.stsw--sl .stsw__now{background:var(--sl)}
.stsw--fs .stsw__ic{background:var(--fs-soft);color:var(--fs-2)}
.stsw--fs .stsw__tag,.stsw--fs .stsw__t{color:var(--fs-2)}
.stsw--fs .stsw__go{border:1px solid #BFE5E0;color:var(--fs-2)}
.stsw--fs.is-now{border-color:var(--fs);box-shadow:inset 0 0 0 1px var(--fs);background:var(--fs-soft)}
.stsw--fs .stsw__now{background:var(--fs)}
.stsw a.is-now{cursor:default}
.stsw a.is-now:hover{transform:none;box-shadow:inset 0 0 0 1px currentColor}
.stsw{grid-template-columns:1fr}
.stsw.stsw--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stsw--aj .stsw__ic{background:var(--aj-soft);color:var(--aj)}
.stsw--aj .stsw__tag,.stsw--aj .stsw__t{color:var(--aj)}
.stsw--aj .stsw__go{border:1px solid #DCCFE3;color:var(--aj)}
.stsw--aj.is-now{border-color:var(--aj);box-shadow:inset 0 0 0 1px var(--aj);background:var(--aj-soft)}
.stsw--aj .stsw__now{background:var(--aj)}
@media (max-width:1240px){.stsw.stsw--3{grid-template-columns:1fr}}

/* ===== balanced heading wraps (no orphaned "ます。" on narrow screens) ===== */
h2,.chead__title,.chead4__t,.pcta__title,.cta__title,.sc-head,.ab__bttl{text-wrap:balance;word-break:auto-phrase}
h1,.phero__title{text-wrap:wrap}
.chead__sub,.chead4__s,.pcta__sub,.phero__lead{text-wrap:pretty;word-break:auto-phrase}

/* ===== heroes whose subject reaches the top edge: keep it clear of the floating header ===== */
@media (min-width:901px){
  .aj-hero .phero__stage,.st-hero--fs .phero__stage{min-height:clamp(480px,41vw,700px)}
  .aj-hero .phero__photo,.st-hero--fs .phero__photo{top:clamp(56px,4.6vw,72px)}
  .aj-hero .phero__photo img,.st-hero--fs .phero__photo img{object-position:70% 0%}
}
/* small screens: the photo starts below the floating header instead of behind it */
@media (max-width:900px){
  .phero:has(.phero__photo) .phero__photo{margin-top:clamp(72px,19vw,84px)!important;height:clamp(220px,58vw,360px)!important}
  .phero:has(.phero__photo) .phero__veil{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 70%,#fff 100%)!important}
}

/* ===== sub-page hero titles: enough room on PC, never break mid-word ===== */
@media (min-width:901px){
  /* width = left offset + a readable text column, so ultra-wide screens don't squeeze the title */
  .phero .phero__copy,.phero.aj-hero .phero__copy,.phero.st-hero--fs .phero__copy,.phero.st-hero--sl .phero__copy{width:calc(var(--edge) + clamp(20px,5vw,110px) + clamp(460px,46vw,760px))}
}
.phero__title,.bgtitle,.st-title,.aj-hero__t{word-break:auto-phrase}

.ch{white-space:nowrap}

/* STEM LABO: label-only parent in the header */
.gnav__ddbtn{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;letter-spacing:inherit}
.gnav__ddbtn .lbl{pointer-events:none}
.gnav__dd.is-current .gnav__ddbtn{color:var(--brand)}
.navpanel__label{display:flex;align-items:baseline;gap:12px;font-size:inherit;color:#fff;padding:14px 0 8px;opacity:.95}
.stsw.stsw--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.stsw.stsw--2{grid-template-columns:1fr}}

/* STEM LABO label: identical typography to the other nav items */
.gnav .gnav__ddbtn{font-size:clamp(13px,.92vw,15.5px);font-weight:700;letter-spacing:.02em;color:#2B2B2D;transition:color .3s}
.gnav .gnav__ddbtn .lbl i{font-weight:700}
.gnav__dd:hover .gnav__ddbtn .lbl i,.gnav__dd:focus-within .gnav__ddbtn .lbl i{transform:translateY(-100%)}
.gnav__dd.is-current .gnav__ddbtn,.gnav__dd:hover .gnav__ddbtn{color:var(--brand)}
