/* Cyber Insight — corporate site
   Type: Source Serif 4 (Latin, same as logo) + Shippori Mincho (headings) + Zen Kaku Gothic New (body)
   All fonts are self-hosted subsets. No external requests. */

@font-face{font-family:"Source Serif 4";src:url("../fonts/source-serif-4.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Shippori Mincho";src:url("../fonts/shippori-mincho-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Shippori Mincho";src:url("../fonts/shippori-mincho-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Zen Kaku Gothic New";src:url("../fonts/zen-kaku-gothic-new-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Zen Kaku Gothic New";src:url("../fonts/zen-kaku-gothic-new-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --ink:#0d1826;
  --navy:#1f3d66;
  --navy-deep:#0f2038;
  --text:#28323f;
  --mute:#5d6877;
  --faint:#8a94a1;
  --paper:#ffffff;
  --stone:#f5f3ef;
  --stone-2:#ebe8e2;
  --rule:rgba(13,24,38,.14);
  --rule-strong:rgba(13,24,38,.82);
  --rule-inv:rgba(255,255,255,.2);
  --brass:#8c7046;
  --brass-inv:#c9ae84;

  --serif:"Source Serif 4","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP","Noto Serif CJK JP",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic","Noto Sans JP","Noto Sans CJK JP",Meiryo,sans-serif;
  --latin:"Source Serif 4","Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",Georgia,serif;

  --gutter:clamp(24px,5vw,72px);
  --max:1320px;
  --sec:clamp(88px,11vw,168px);
  --ease:cubic-bezier(.2,.6,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:16px;line-height:2;letter-spacing:.04em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:normal}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0 0 1.4em}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:400;color:var(--ink);letter-spacing:.03em;font-feature-settings:normal;word-break:auto-phrase;text-wrap:balance}
ul,ol,dl,dd{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.on-dark :focus-visible{outline-color:#fff}
::selection{background:var(--navy);color:#fff}

/* phrases: keep Japanese clauses together when lines wrap */
.ph{display:inline-block}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 20px;z-index:100}
.skip:focus{left:16px;top:16px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}

/* ───────── Header ───────── */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--rule)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:88px}
.hd-logo{display:block;margin-left:-14px}
.hd-logo img{height:76px;width:auto}
.hd-nav{display:flex;align-items:center;gap:clamp(28px,3.4vw,52px);font-size:13.5px;letter-spacing:.12em}
.hd-nav a,.hd-nav span{position:relative;padding:10px 0;color:var(--ink)}
.hd-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.hd-nav a:hover::after,.hd-nav a[aria-current="page"]::after{transform:scaleX(1)}
.hd-nav .hd-cta{padding:11px 26px;border:1px solid var(--ink);transition:background .25s,color .25s}
.hd-nav .hd-cta::after{display:none}
.hd-nav .hd-cta:hover,.hd-nav .hd-cta[aria-current="page"]{background:var(--ink);color:#fff}
.hd-prod{display:flex;align-items:baseline;gap:16px;font-family:var(--latin);font-size:17px;letter-spacing:.02em;color:var(--ink)}
.hd-prod small{font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--mute)}
.hd-menu{display:none;background:none;border:0;padding:12px 0 12px 12px;font-size:12.5px;letter-spacing:.2em;cursor:pointer;color:var(--ink)}

@media (max-width:820px){
  .hd .wrap{height:68px}
  .hd-logo{margin-left:-10px}
  .hd-logo img{height:60px}
  .hd-menu{display:block}
  .hd-nav{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gutter) 28px;font-size:15px;display:none}
  .hd-nav.is-open{display:flex}
  .hd-nav a{padding:18px 0;border-bottom:1px solid var(--rule)}
  .hd-nav a::after{display:none}
  .hd-nav .hd-cta{margin-top:24px;text-align:center;border:1px solid var(--ink);padding:16px}
  .hd-prod small{display:none}
}

/* ───────── Shared elements ───────── */
.eyebrow{display:block;font-family:var(--latin);font-size:12px;line-height:1.5;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
.on-dark .eyebrow{color:var(--brass-inv)}

.arrow{display:inline-flex;align-items:center;gap:18px;font-size:13.5px;letter-spacing:.14em;color:var(--ink);padding:6px 0;line-height:1.6}
.arrow::after{content:"";width:34px;height:1px;background:currentColor;position:relative;transition:width .35s var(--ease)}
.arrow span{background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s var(--ease);padding-bottom:3px}
.arrow:hover::after{width:56px}
.arrow:hover span{background-size:100% 1px}
.on-dark .arrow{color:#fff}

.btn{display:inline-block;padding:17px 40px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:13.5px;letter-spacing:.16em;line-height:1.5;cursor:pointer;transition:background .25s,color .25s,border-color .25s;text-align:center}
.btn:hover{background:var(--navy);border-color:var(--navy)}
.btn.is-ghost{background:transparent;color:var(--ink)}
.btn.is-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.on-dark .btn{background:#fff;border-color:#fff;color:var(--ink)}
.on-dark .btn:hover{background:transparent;color:#fff}
.on-dark .btn.is-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.on-dark .btn.is-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn[aria-disabled="true"],.hd-cta[aria-disabled="true"],.hd-nav span[aria-disabled="true"]{opacity:.45;pointer-events:none;cursor:default}
.actions{display:flex;flex-wrap:wrap;gap:18px 36px;align-items:center}

.status{display:inline-block;font-size:11.5px;letter-spacing:.18em;line-height:1;padding:7px 12px 6px;border:1px solid currentColor;color:var(--navy)}
.status.is-pre{color:var(--brass)}
.on-dark .status{color:#fff}
.on-dark .status.is-pre{color:var(--brass-inv)}

.tbd{background:linear-gradient(transparent 62%,rgba(140,112,70,.22) 62%);}

/* ───────── Hero (top) ───────── */
.hero{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden;isolation:isolate}
.hero-img{position:absolute;inset:0;z-index:-2}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,20,36,.94) 0%,rgba(10,20,36,.82) 38%,rgba(10,20,36,.34) 72%,rgba(10,20,36,.2) 100%),linear-gradient(0deg,rgba(10,20,36,.55),rgba(10,20,36,0) 40%)}
.hero .wrap{min-height:min(84vh,820px);display:flex;flex-direction:column;justify-content:flex-end;padding-top:140px;padding-bottom:clamp(64px,8vw,112px)}
.hero h1{color:#fff;font-size:clamp(34px,5.2vw,72px);line-height:1.42;letter-spacing:.05em;max-width:15em;margin-top:36px}
.hero-lead{max-width:36em;margin-top:clamp(28px,3vw,44px);font-size:clamp(15px,1.25vw,17px);line-height:2.15;color:rgba(255,255,255,.84)}
.hero .actions{margin-top:clamp(36px,4vw,56px)}
.hero-foot{margin-top:clamp(56px,7vw,96px);padding-top:22px;border-top:1px solid var(--rule-inv);display:flex;flex-wrap:wrap;gap:10px 48px;font-size:12.5px;letter-spacing:.14em;color:rgba(255,255,255,.72)}
.hero-foot span{font-family:var(--latin);letter-spacing:.2em;text-transform:uppercase;font-size:11.5px;color:var(--brass-inv);margin-right:14px}

/* ───────── Page head (inner pages) ───────── */
.ph-head{background:var(--stone);border-bottom:1px solid var(--rule)}
.ph-head .wrap{padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(56px,7vw,96px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:28px;align-items:end}
.ph-head .eyebrow{grid-column:1/-1}
.ph-head h1{grid-column:1/span 8;font-size:clamp(30px,4vw,54px);line-height:1.5}
.ph-head p{grid-column:9/-1;font-size:15px;line-height:2.1;color:var(--mute);padding-bottom:.5em}
.ph-head.is-dark{background:var(--navy-deep);border-bottom:0;color:rgba(255,255,255,.84)}
.ph-head.is-dark h1{color:#fff}
.ph-head.is-dark p{color:rgba(255,255,255,.78)}
.ph-head.is-plain h1{grid-column:1/-1}
.ph-head.is-photo{position:relative;isolation:isolate}
.ph-head.is-photo img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:-2}
.ph-head.is-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,36,.9) 0%,rgba(10,20,36,.78) 50%,rgba(10,20,36,.72) 100%);z-index:-1}
.ph-head .actions{grid-column:1/-1;margin-top:20px}
.ph-head .status{justify-self:start;grid-column:1/-1}
@media (max-width:900px){.ph-head h1,.ph-head p{grid-column:1/-1}}

/* ───────── Sections ───────── */
.sec{padding-block:var(--sec)}
.sec + .sec{border-top:1px solid var(--rule)}
.sec.is-stone{background:var(--stone)}
.sec.is-tight{padding-block:clamp(72px,8vw,120px)}
.sec.is-dark{background:var(--navy-deep);color:rgba(255,255,255,.82);border-top:0}
.sec.is-dark h2,.sec.is-dark h3{color:#fff}
.sec.is-dark + .sec{border-top:0}

.grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
.sec-label{grid-column:1/span 3}
.sec-label .eyebrow{padding-top:18px;border-top:1px solid var(--rule-strong);max-width:200px}
.on-dark .sec-label .eyebrow{border-top-color:rgba(255,255,255,.7)}
.sec-label .ja{display:block;margin-top:10px;font-size:13px;letter-spacing:.14em;color:var(--mute)}
.on-dark .sec-label .ja{color:rgba(255,255,255,.62)}
.sec-body{grid-column:4/-1}
.sec-body > h2{font-size:clamp(26px,3vw,42px);line-height:1.6;max-width:19em}
.sec-body > .intro{max-width:36em;margin-top:32px;font-size:16px;line-height:2.15}
@media (max-width:900px){
  .sec-label,.sec-body{grid-column:1/-1}
  .sec-label{margin-bottom:36px}
}

/* statement */
.statement{padding-block:clamp(88px,10vw,152px)}
.statement p{grid-column:4/span 8;font-family:var(--serif);font-size:clamp(21px,2.3vw,31px);line-height:2;color:var(--ink);letter-spacing:.05em;font-feature-settings:normal}
.statement .eyebrow{grid-column:1/span 3;padding-top:18px;border-top:1px solid var(--rule-strong);max-width:200px;align-self:start;margin-top:.5em}
@media (max-width:900px){.statement p,.statement .eyebrow{grid-column:1/-1}.statement .eyebrow{margin-bottom:36px}}

/* ruled index list (four decisions) */
.index{margin-top:clamp(48px,5vw,72px);border-top:1px solid var(--rule-strong)}
.index li{display:grid;grid-template-columns:72px minmax(0,1.05fr) minmax(0,1fr) minmax(0,1fr);column-gap:32px;padding:38px 0 40px;border-bottom:1px solid var(--rule);align-items:start}
.index .n{font-family:var(--latin);font-size:15px;letter-spacing:.12em;color:var(--brass);padding-top:.55em}
.index h3{font-size:clamp(19px,1.7vw,23px);line-height:1.7}
.index h3 .tag{display:block;font-family:var(--sans);font-size:12.5px;line-height:1.6;letter-spacing:.14em;color:var(--brass);margin-bottom:8px}
.index dl{font-size:14.5px;line-height:1.95}
.index dt{font-size:11.5px;letter-spacing:.2em;color:var(--faint);margin-bottom:6px}
.index dd{color:var(--text)}
@media (max-width:900px){
  .index li{grid-template-columns:44px 1fr;row-gap:20px;padding:30px 0 32px}
  .index dl{grid-column:2}
}

/* split feature (image + text) */
.feature{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:stretch}
.feature-img{grid-column:1/span 6;position:relative;min-height:520px;background:var(--stone-2)}
.feature-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature-body{grid-column:8/-1;padding-block:clamp(24px,4vw,64px);display:flex;flex-direction:column;justify-content:center}
.feature-body h2{font-size:clamp(26px,3vw,40px);line-height:1.6;margin-top:28px}
.feature-list{margin-top:48px;border-top:1px solid var(--rule-strong)}
.feature-list li{padding:30px 0 32px;border-bottom:1px solid var(--rule)}
.feature-list h3{font-size:20px;line-height:1.7;margin-bottom:10px}
.feature-list p{font-size:14.5px;line-height:2;margin-bottom:16px}
@media (max-width:900px){
  .feature-img{grid-column:1/-1;min-height:0;aspect-ratio:4/3}
  .feature-body{grid-column:1/-1;padding-top:48px;padding-bottom:0}
}

/* two / three columns with rules */
.cols{display:grid;margin-top:clamp(48px,5vw,72px);border-top:1px solid var(--rule-strong)}
.cols.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cols > *{padding:36px 36px 44px 0;border-bottom:1px solid var(--rule)}
.cols > * + *{padding-left:36px;border-left:1px solid var(--rule)}
.cols h3{font-size:clamp(19px,1.6vw,22px);line-height:1.7;margin-bottom:14px}
.cols p{font-size:14.5px;line-height:2}
.cols .n{display:block;font-family:var(--latin);font-size:14px;letter-spacing:.12em;color:var(--brass);margin-bottom:28px}
.cols .sub{font-size:12.5px;letter-spacing:.12em;color:var(--mute);margin:-6px 0 16px}
.cols .arrow{margin-top:26px}
.cols .status{margin-bottom:26px}
.on-dark .cols{border-top-color:rgba(255,255,255,.7)}
.on-dark .cols > *{border-bottom-color:var(--rule-inv)}
.on-dark .cols > * + *{border-left-color:var(--rule-inv)}
.spec{margin-top:26px;font-size:14px;line-height:1.9}
.spec div{display:grid;grid-template-columns:5.5em 1fr;column-gap:20px;padding:14px 0;border-top:1px solid var(--rule)}
.spec dt{font-size:11.5px;letter-spacing:.18em;color:var(--faint);padding-top:.25em}
.spec dd{color:var(--ink)}
.spec .big{font-family:var(--serif);font-size:22px;letter-spacing:.04em;line-height:1.5;font-feature-settings:normal}
@media (max-width:900px){
  .cols.c2,.cols.c3,.cols.c4{grid-template-columns:1fr}
  .cols > *{padding:30px 0 34px}
  .cols > * + *{padding-left:0;border-left:0}
}
@media (min-width:901px){
  .cols.c4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cols.c4 > *:nth-child(odd){padding-left:0;border-left:0}
}
.note{margin-top:32px;font-size:13.5px;line-height:2;color:var(--mute);max-width:46em}

/* principles on dark */
.negative{counter-reset:neg;margin-top:clamp(48px,5vw,72px);border-top:1px solid rgba(255,255,255,.7)}
.negative li{counter-increment:neg;display:grid;grid-template-columns:72px 1fr;column-gap:32px;padding:26px 0 28px;border-bottom:1px solid var(--rule-inv);font-family:var(--serif);font-size:clamp(17px,1.5vw,20px);line-height:1.9;color:#fff;letter-spacing:.05em;font-feature-settings:normal}
.negative li::before{content:counter(neg,decimal-leading-zero);font-family:var(--latin);font-size:14px;letter-spacing:.12em;color:var(--brass-inv);padding-top:.45em}
@media (max-width:900px){.negative li{grid-template-columns:44px 1fr;column-gap:0}}

/* position flow (services) */
.flow{display:grid;grid-template-columns:1fr auto 1.3fr auto 1fr;margin-top:clamp(48px,5vw,72px);border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule)}
.flow > div{padding:36px 0 40px}
.flow .f-arrow{display:flex;align-items:center;padding-inline:clamp(10px,1.4vw,22px);color:var(--faint)}
.flow .f-arrow svg{width:30px;height:12px}
.flow .k{font-size:11.5px;letter-spacing:.2em;color:var(--faint);margin-bottom:18px}
.flow h3{font-size:clamp(17px,1.35vw,19px);line-height:1.75;margin-bottom:12px}
.flow p{font-size:14px;line-height:1.95;color:var(--mute)}
.flow .is-us{background:var(--navy-deep);padding-inline:clamp(20px,2vw,30px);margin-block:-1px}
.flow .is-us .k{color:var(--brass-inv)}
.flow .is-us h3{color:#fff}
.flow .is-us p{color:rgba(255,255,255,.78)}
@media (max-width:900px){
  .flow{grid-template-columns:1fr}
  .flow .f-arrow{padding:0 0 0 4px;height:36px}
  .flow .f-arrow svg{transform:rotate(90deg);transform-origin:center}
  .flow > div{padding:28px 0 30px}
  .flow .is-us{padding-inline:24px}
}

/* service register */
.register{margin-top:clamp(48px,5vw,72px);border-top:1px solid var(--rule-strong)}
.register li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) auto;column-gap:48px;align-items:start;padding:40px 0 44px;border-bottom:1px solid var(--rule)}
.register .status{margin-bottom:22px}
.register h3{font-family:var(--latin);font-size:clamp(22px,2.1vw,29px);line-height:1.4;letter-spacing:.01em}
.register .sub{margin-top:10px;font-size:13px;letter-spacing:.12em;color:var(--mute)}
.register p{font-size:14.5px;line-height:2;padding-top:44px}
.register .arrow{margin-top:44px;white-space:nowrap}
@media (max-width:900px){
  .register li{grid-template-columns:1fr;row-gap:0}
  .register p{padding-top:18px}
  .register .arrow{margin-top:22px}
}

/* definition table (company) */
.deftable{margin-top:clamp(40px,4vw,56px);border-top:1px solid var(--rule-strong)}
.deftable div{display:grid;grid-template-columns:200px 1fr;column-gap:32px;padding:26px 0 27px;border-bottom:1px solid var(--rule)}
.deftable dt{font-size:13px;letter-spacing:.16em;color:var(--mute);padding-top:.15em}
.deftable dd{color:var(--ink);font-size:15.5px;line-height:1.95}
.deftable dd small{display:block;font-size:13px;color:var(--mute);margin-top:4px}
@media (max-width:700px){.deftable div{grid-template-columns:1fr;row-gap:6px;padding:20px 0 22px}}

/* history */
.history{margin-top:clamp(48px,5vw,72px);border-top:1px solid var(--rule-strong)}
.history li{display:grid;grid-template-columns:72px minmax(0,.9fr) minmax(0,1.5fr);column-gap:32px;padding:36px 0 40px;border-bottom:1px solid var(--rule)}
.history .n{font-family:var(--latin);font-size:15px;letter-spacing:.14em;color:var(--brass);padding-top:.45em}
.history h3{font-size:clamp(18px,1.6vw,21px);line-height:1.75}
.history p{font-size:14.5px;line-height:2.05}
@media (max-width:900px){.history li{grid-template-columns:44px 1fr;row-gap:14px}.history p{grid-column:2}}

/* leadership */
.leader{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);column-gap:56px;margin-top:8px}
.leader-name h3{font-size:clamp(28px,3vw,40px);line-height:1.5;letter-spacing:.12em}
.leader-name p{margin-top:12px;font-size:13px;letter-spacing:.16em;color:var(--mute)}
.leader-name .en{font-family:var(--latin);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-top:6px}
.leader ul{border-top:1px solid var(--rule-strong)}
.leader li{padding:22px 0 23px;border-bottom:1px solid var(--rule);font-size:15px;line-height:2}
@media (max-width:900px){.leader{grid-template-columns:1fr;row-gap:36px}}

/* closing call to action */
.cta{background:var(--stone);border-top:1px solid var(--rule)}
.cta .wrap{padding-block:clamp(88px,10vw,144px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:end;row-gap:40px}
.cta h2{grid-column:1/span 8;font-size:clamp(28px,3.6vw,50px);line-height:1.55;margin-top:28px}
.cta .eyebrow{grid-column:1/-1}
.cta p{grid-column:1/span 7;font-size:15px;color:var(--mute);margin-top:-12px}
.cta .actions{grid-column:9/-1;justify-content:flex-end;padding-bottom:6px}
.cta.is-photo{position:relative;background:var(--navy-deep);border-top:0;isolation:isolate;color:rgba(255,255,255,.8)}
.cta.is-photo img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.cta.is-photo::before{content:"";position:absolute;inset:0;background:rgba(10,20,36,.78);z-index:-1}
.cta.is-photo h2{color:#fff}
.cta.is-photo p{color:rgba(255,255,255,.76)}
@media (max-width:900px){.cta h2,.cta p,.cta .actions{grid-column:1/-1}.cta .actions{justify-content:flex-start}}

/* ───────── Form ───────── */
.form{max-width:760px}
.form-note{font-size:15px;line-height:2.1;margin-bottom:56px;padding-bottom:36px;border-bottom:1px solid var(--rule)}
.form-note strong{font-weight:500;color:var(--ink)}
.field{margin-bottom:40px}
.field label,.field .lbl{display:flex;align-items:baseline;gap:14px;font-size:13px;letter-spacing:.14em;color:var(--ink);margin-bottom:6px}
.field .req{font-size:11px;letter-spacing:.16em;color:var(--brass)}
.field .hint{font-size:12.5px;color:var(--mute);letter-spacing:.06em;margin-top:8px;line-height:1.8}
.field input,.field select,.field textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule-strong);border-radius:0;padding:14px 0 13px;font-size:16px;line-height:1.7;appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:190px;resize:vertical;border:1px solid var(--rule);border-bottom-color:var(--rule-strong);padding:16px 18px;margin-top:12px}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230d1826' stroke-width='1.2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;background-size:12px 8px;padding-right:32px;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:var(--navy);box-shadow:0 1px 0 0 var(--navy)}
.field.is-error input,.field.is-error select,.field.is-error textarea{border-bottom-color:#8f2d2d;box-shadow:0 1px 0 0 #8f2d2d}
.field .err{display:none;font-size:12.5px;color:#8f2d2d;margin-top:8px;letter-spacing:.06em}
.field.is-error .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.check{display:grid;grid-template-columns:22px 1fr;column-gap:16px;align-items:start;font-size:14px;line-height:1.95;margin:8px 0 44px;cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1px solid var(--rule-strong);margin:.35em 0 0;background:#fff;cursor:pointer;display:grid;place-content:center}
.check input:checked{background:var(--ink)}
.check input:checked::after{content:"";width:9px;height:5px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.check a,.prose a{border-bottom:1px solid currentColor}
.receipt{max-width:760px;border-top:1px solid var(--rule-strong);padding-top:44px}
.receipt h2{font-size:clamp(24px,2.6vw,34px);line-height:1.6;margin-bottom:24px}
.receipt .ref{margin-top:32px;padding:24px 28px;background:var(--stone);font-size:14px}
.receipt .ref b{font-family:var(--latin);font-weight:400;font-size:22px;letter-spacing:.08em;color:var(--ink);display:block;margin-top:4px}
[hidden]{display:none!important}

/* ───────── Legal prose ───────── */
.prose{max-width:760px}
.prose section{padding:34px 0 36px;border-top:1px solid var(--rule)}
.prose section:first-child{border-top:1px solid var(--rule-strong)}
.prose h2{font-size:19px;line-height:1.7;margin-bottom:12px;display:grid;grid-template-columns:44px 1fr}
.prose h2 span{font-family:var(--latin);font-size:14px;letter-spacing:.1em;color:var(--brass);padding-top:.3em}
.prose p{font-size:15px;line-height:2.1;padding-left:44px}
.prose .dated{margin-top:8px;padding-top:28px;border-top:1px solid var(--rule-strong);font-size:13px;color:var(--mute);letter-spacing:.1em}
@media (max-width:600px){.prose p{padding-left:0}.prose h2{grid-template-columns:36px 1fr}}

/* ───────── Product screens (service pages) ───────── */
.screens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;margin-top:clamp(48px,5vw,72px)}
.screen{margin:0}
.screen-frame{border:1px solid var(--rule);background:#fff;padding:26px 28px 28px;box-shadow:0 30px 60px -40px rgba(13,24,38,.35)}
.screen-frame header{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16px;border-bottom:1px solid var(--rule-strong);margin-bottom:6px}
.screen-frame header b{font-family:var(--serif);font-weight:500;font-size:15px;color:var(--ink);letter-spacing:.06em;font-feature-settings:normal}
.screen-frame header span{font-family:var(--latin);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.screen figcaption{margin-top:22px}
.screen figcaption h3{font-size:19px;line-height:1.7;margin-bottom:6px}
.screen figcaption p{font-size:14px;line-height:1.95;color:var(--mute)}
.rng{font-size:12.5px;line-height:1.5;letter-spacing:.04em}
.rng .row{display:grid;grid-template-columns:8.5em 1fr 5.2em;column-gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--rule)}
.rng .row:last-child{border-bottom:0}
.rng .bar{position:relative;height:8px;background:var(--stone)}
.rng .bar i{position:absolute;top:0;bottom:0;background:var(--navy);opacity:.28}
.rng .bar u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--navy)}
.rng .v{text-align:right;font-family:var(--latin);font-size:13.5px;color:var(--ink);letter-spacing:.02em}
.rng .axis{display:grid;grid-template-columns:8.5em 1fr 5.2em;column-gap:16px;font-size:10.5px;color:var(--faint);letter-spacing:.14em;padding:10px 0 2px}
.rng .axis span:nth-child(2){display:flex;justify-content:space-between}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;line-height:1.5;letter-spacing:.04em}
.tbl th{font-weight:400;font-size:10.5px;letter-spacing:.14em;color:var(--faint);text-align:left;padding:10px 8px 10px 0;border-bottom:1px solid var(--rule)}
.tbl td{padding:12px 8px 12px 0;border-bottom:1px solid var(--rule);color:var(--ink)}
.tbl tr:last-child td{border-bottom:0}
.tbl .num{font-family:var(--latin);font-size:13.5px;text-align:right;white-space:nowrap}
.tbl th.num{font-family:var(--sans);font-size:10.5px}
.tbl .chg{font-size:11px;letter-spacing:.1em;color:var(--mute);white-space:nowrap}
.tbl .chg.up{color:#8f2d2d}
.routes svg{width:100%;height:auto}
.routes text{font-family:var(--sans);font-size:11px;fill:var(--ink);letter-spacing:.04em}
.routes .lab{fill:var(--faint);font-size:9.5px;letter-spacing:.14em}
.demo-note{margin-top:28px;font-size:12.5px;color:var(--mute);letter-spacing:.08em}
@media (max-width:900px){.screens{grid-template-columns:1fr}.screen-frame{padding:20px 18px 22px}.rng .row,.rng .axis{grid-template-columns:6.5em 1fr 4.6em;column-gap:10px}}

.limits{margin-top:clamp(40px,4vw,56px);border-top:1px solid var(--rule-strong);max-width:820px}
.limits li{position:relative;padding:24px 0 25px 44px;border-bottom:1px solid var(--rule);font-size:15px;line-height:2.05}
.limits li::before{content:"—";color:var(--brass);position:absolute;left:0}

/* ───────── Footer ───────── */
.ft{background:var(--ink);color:rgba(255,255,255,.7);font-size:13.5px;line-height:2}
.ft .wrap{padding-top:clamp(64px,7vw,96px);padding-bottom:36px}
.ft-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,.7fr));column-gap:40px;row-gap:48px;padding-bottom:clamp(56px,6vw,88px)}
.ft-brand img{width:84px;height:84px;margin:-8px 0 20px -10px}
.ft-brand b{display:block;font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:.14em;color:#fff;margin-bottom:10px;font-feature-settings:normal}
.ft-brand address{font-style:normal;font-size:13px;line-height:2;color:rgba(255,255,255,.66)}
.ft h2{font-family:var(--latin);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass-inv);margin-bottom:20px}
.ft li + li{margin-top:8px}
.ft a{color:rgba(255,255,255,.82);transition:color .2s}
.ft a:hover{color:#fff}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding-top:26px;border-top:1px solid var(--rule-inv);font-family:var(--latin);font-size:12px;letter-spacing:.12em;color:rgba(255,255,255,.55)}
@media (max-width:900px){.ft-top{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}

/* ───────── Reveal (content stays visible without JS) ───────── */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.is-in{opacity:1;transform:none}
.rng .axis i{font-style:normal}

p,li,dd{text-wrap:pretty}
@media (max-width:900px){
  .hero::before{background:linear-gradient(180deg,rgba(10,20,36,.72) 0%,rgba(10,20,36,.86) 45%,rgba(10,20,36,.94) 100%)}
  .rng{font-size:12px}
  .rng .row,.rng .axis{grid-template-columns:8.6em 1fr 4.2em;column-gap:8px}
}
@media (max-width:900px){.hero-lead .ph{display:inline}}
.prose p + p,.prose ul + p,.prose p + ul{margin-top:14px}
.prose h3{font-family:var(--sans);font-weight:500;font-size:14px;letter-spacing:.1em;color:var(--ink);padding-left:44px;margin:22px 0 8px}
.prose h2 + h3{margin-top:4px}
.prose ul{list-style:none;margin:0;padding:0 0 0 44px}
.prose li{position:relative;font-size:15px;line-height:2.05;padding:5px 0 5px 20px}
.prose li::before{content:"";position:absolute;left:0;top:1.35em;width:8px;height:1px;background:var(--brass)}
@media (max-width:600px){.prose ul,.prose h3{padding-left:0}}

/* footnotes */
.fn-ref{font-size:.68em;line-height:0;vertical-align:super;margin-left:1px;letter-spacing:0}
.fn-ref a{color:var(--brass)}
.fn{margin-top:22px}
.fn li{font-size:12.5px;line-height:1.9;color:var(--mute);padding:2px 0}
.leader .fn{grid-column:2}
.leader .fn li{padding:2px 0;border:0;font-size:12.5px;line-height:1.9}
@media (max-width:900px){.leader .fn{grid-column:auto}}

/* key figures, two paths, steps */
.cols .kpi{display:block;font-family:var(--serif);font-size:clamp(30px,3vw,44px);line-height:1.3;letter-spacing:.02em;color:var(--ink);margin-bottom:14px;font-feature-settings:normal}
.cols .actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center}
.cols .actions .btn{padding:15px 30px}
.screen-frame .premise{margin:2px 0 4px;font-size:11.5px;line-height:1.8;letter-spacing:.06em;color:var(--mute)}
.reg-note{margin-top:28px;padding:22px 26px;background:var(--stone);font-size:13.5px;line-height:2;color:var(--mute);max-width:46em}
.sec.is-stone .reg-note{background:#fff}

.sec-body>.subhead{margin:72px 0 18px;font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.8vw,24px);letter-spacing:.04em}
.sec-body>.subhead+p{max-width:40em;margin-bottom:8px}

/* Photo band between LP sections */
.photo-band{margin:0;background:var(--navy-deep)}
.photo-band img{display:block;width:100%;height:clamp(240px,34vw,500px);object-fit:cover}

/* ───────── Breadcrumbs ───────── */
.crumbs{background:var(--paper);border-bottom:1px solid var(--rule)}
.crumbs ol{list-style:none;margin:0;padding:12px 0;display:flex;flex-wrap:wrap;gap:4px 0;font-size:13px;line-height:1.7;letter-spacing:.06em;color:var(--mute)}
.crumbs li{display:inline-flex;align-items:center}
.crumbs li + li::before{content:"";width:5px;height:5px;border-top:1px solid var(--faint);border-right:1px solid var(--faint);transform:rotate(45deg);margin:0 14px 0 10px}
.crumbs a{color:var(--text);text-decoration:none;border-bottom:1px solid transparent;padding:6px 0;transition:border-color .2s var(--ease)}
.crumbs a:hover,.crumbs a:focus-visible{border-bottom-color:currentColor}
.crumbs [aria-current]{color:var(--mute)}
