/* K-LINK site.css, navy "menu hub" design. Budget 30 KB (verify.py); no @import, CSP style-src 'self'. Token NAMES are checked by verify.py (PLAN_TOKENS).
   Heading face: self-hosted Noto Serif JP 700 subset (OFL). tools/subset_fonts.py reads the `font-family: var(--font-heading)` rule (simple selectors only). */
:root{
--navy-950:#081A31;--navy-900:#0C2340;--navy-800:#102B4E;--navy-700:#163A66;
--blue-700:#2F6BC4;--blue-600:#1D4F99;--logo-blue:#4178CF;--sky:#8EC6F6;
--light:#E6EEF8;--surface:#F4F7FA;--border:#DCE3EC;--border-2:#C3CFDD;
--ink:#17202B;--muted:#3B4A5C;--muted-2:#526070;--white:#FFFFFF;--line:#06C755;
--on-navy:#C9D6E6;--on-navy-1:#D3DEEB;--on-navy-2:#9FB3CB;--on-navy-3:#B7C6D8;
--font-sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,"BIZ UDPGothic",system-ui,sans-serif;
--font-heading:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",YuMincho,"BIZ UDPMincho",serif;
--font-num:var(--font-heading);
--gutter:max(16px,4vw);--section-y:clamp(64px,8vw,112px);--tap:44px
}
@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/NotoSerifJP-700.woff") format("woff")}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
body{font-family:var(--font-sans);font-size:1rem;line-height:1.85;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
img{display:block;height:auto}
svg{flex:none}
ul[class],ol[class]{margin:0;padding:0;list-style:none}
/* Japanese line breaking: phrase units (span.ph = inline-block) wrap as a whole; auto-phrase where supported (Chrome 119+). */
p,li,td,th,summary,h1,h2,h3,figcaption{word-break:auto-phrase;line-break:strict;text-wrap:pretty;overflow-wrap:anywhere}
h1,h2,h3{text-wrap:balance}
.ph{display:inline-block}
h1,h2,.intro__name,.intro__wm,.site-nav__t{font-family:var(--font-heading)}
h1,h2{font-weight:700}
h1,h2,h3{color:var(--ink)}
h1{font-size:clamp(1.75rem,4vw,2.625rem);line-height:1.3}
h2{font-size:clamp(1.75rem,3vw,2.375rem);line-height:1.4}
h3{font-size:1.0625rem;line-height:1.55}
a{color:var(--blue-700);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--blue-600);text-decoration-thickness:2px}
.text-small{font-size:.875rem;line-height:1.7}
.url{overflow-wrap:anywhere;word-break:break-all}
a.url[href^="mailto:"]{word-break:normal}
[id]{scroll-margin-top:4.25rem}
.areas{scroll-margin-top:5.5rem}
main:focus{outline-width:0}
:focus-visible{outline:2px solid var(--blue-700);outline-offset:3px}
.band-navy :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.intro :focus-visible,.skip-link:focus-visible{outline-color:var(--sky)}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip-link{position:absolute;left:1rem;top:-5rem;z-index:100;padding:.75rem 1rem;border-radius:8px;background:var(--navy-900);color:var(--white);font-weight:700;text-decoration:none}
.skip-link:focus{top:.5rem;color:var(--white)}
.icon{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* ---------- layout ---------- */
.container{width:100%;max-width:calc(1200px + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--surface{background:var(--surface)}
.band-navy{background:var(--navy-900);color:var(--white)}
.band-navy h1,.band-navy h2{color:var(--white)}
.band-navy.section{padding-block:clamp(64px,8vw,104px)}
.split{display:flex;flex-wrap:wrap;gap:48px clamp(40px,6vw,88px)}
.split__side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px;color:var(--muted)}
.split__main{flex:2 1 560px;min-width:0;display:flex;flex-direction:column}
.split--narrow{row-gap:40px}
.split--narrow>.split__side{flex-basis:260px;gap:12px}
.split--narrow>.split__main{flex-basis:600px}
.section__head{display:flex;flex-direction:column;gap:12px;max-width:40em;margin-bottom:2.5rem;color:var(--muted)}
.lead{font-size:1.0625rem}
.kicker{font-size:.75rem;font-weight:700;letter-spacing:.2em;line-height:1.5;color:var(--blue-700)}
.band-navy .kicker{color:var(--sky)}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:.8125rem;font-weight:500;letter-spacing:.14em;line-height:1.5;color:var(--blue-700)}
.eyebrow::before{content:"";flex:none;width:32px;height:1px;background:currentColor}
.hero .eyebrow{color:var(--white)}

/* ---------- buttons (pill, >= 44px targets; LINE button = white, green border + icon, navy text) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;min-height:50px;min-width:var(--tap);padding:0 1.5rem;border:1px solid transparent;border-radius:999px;font:inherit;font-size:.9375rem;font-weight:700;line-height:1.4;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.btn svg{width:1.25rem;height:1.25rem}
.btn-line{background:var(--white);border:2px solid var(--line);color:var(--navy-900)}
.btn-line svg{color:var(--line)}
.btn-line:hover{background:var(--surface);color:var(--navy-900)}
.btn-ghost-light{border-color:rgba(255,255,255,.55);color:var(--white);font-weight:500}
.btn-ghost-light:hover{background:rgba(255,255,255,.14);color:var(--white)}
.btn-sm{min-height:var(--tap);padding:0 1.125rem;font-size:.875rem}
.cta-group{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- notice bar + header (dark, sticky) ---------- */
.notice{background:var(--navy-950);color:var(--on-navy);font-size:.8125rem;line-height:1.7}
.notice .container{padding-block:8px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(12,35,64,.96);border-bottom:1px solid rgba(142,198,246,.16)}
.site-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem;min-height:68px}
.brand{display:flex;align-items:center;gap:12px;min-height:var(--tap);color:var(--white);text-decoration:none}
.brand:hover{color:var(--white)}
.brand picture{display:block;flex:none}
.brand img{width:34px;height:34px}
.brand__word{font-size:1.125rem;font-weight:700;letter-spacing:.05em;white-space:nowrap}
.site-header__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;min-width:0;max-width:100%;margin-inline-start:auto}
.site-header__actions>*{max-width:100%}
/* menu button + panel (all pages, all widths): nav.js toggles aria-expanded / .is-open, Esc or a link click closes. No JS = visible link row. */
.nav-toggle{display:none;align-items:center;gap:.5rem;min-height:var(--tap);min-width:var(--tap);padding:0 .75rem;border:1px solid rgba(201,214,230,.4);border-radius:999px;background:transparent;color:var(--white);font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}
.nav-toggle:hover{background:rgba(255,255,255,.1)}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{display:block;width:1.125rem;height:2px;background:currentColor;content:""}
.nav-toggle__bars{position:relative}
.nav-toggle__bars::before{position:absolute;top:-6px}
.nav-toggle__bars::after{position:absolute;top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{top:0;transform:rotate(-45deg)}
.nav-toggle__close,.nav-toggle[aria-expanded="true"] .nav-toggle__label{display:none}
.nav-toggle[aria-expanded="true"] .nav-toggle__close{display:inline}
.js .nav-toggle{display:inline-flex}
.site-nav{flex:0 0 100%}
.site-nav ul{display:flex;flex-wrap:wrap;gap:0 .25rem;margin:0;padding:0;list-style:none}
.site-nav__link{display:flex;align-items:center;gap:.5em;min-height:var(--tap);padding:.5rem .75rem;border-radius:8px;color:#DCE6F2;font-size:.9375rem;text-decoration:none}
.site-nav__link:hover{background:rgba(255,255,255,.1);color:var(--white)}
.site-nav__kicker{display:none;font-size:.75rem;font-weight:700;letter-spacing:.22em;color:var(--sky)}
.site-nav__num{font-size:.75rem;letter-spacing:.12em;color:var(--sky)}
.site-nav__d,.site-nav__arrow,.site-nav__cta{display:none}
.lang-switch{display:inline-flex;align-items:center;min-height:var(--tap);margin:.5rem .75rem;padding:.25rem .875rem;border:1px solid rgba(201,214,230,.4);border-radius:999px;color:var(--white);font-size:.875rem;font-weight:700;text-decoration:none}
.lang-switch:hover{background:rgba(255,255,255,.1);color:var(--white)}
@keyframes kl-nav{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.js .site-nav:not(.is-open){display:none}
/* open panel hangs from the sticky header to the bottom of the window */
.is-open{display:block;position:absolute;left:0;right:0;top:100%;height:calc(100vh - 100%);height:calc(100dvh - 100%);overflow-y:auto;background:var(--navy-950);animation:kl-nav .3s cubic-bezier(.2,.8,.2,1)}
.is-open .site-nav__inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px clamp(40px,6vw,112px);max-width:calc(1200px + 2 * var(--gutter));margin-inline:auto;padding:clamp(28px,4vw,56px) var(--gutter) 72px}
.is-open ul{display:block}
.is-open .site-nav__kicker{display:block;grid-column:1 / -1;margin-bottom:-16px}
.is-open .site-nav__main .site-nav__link{display:grid;grid-template-columns:2.75em minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:2px 0;padding:16px 4px;border-radius:0;border-bottom:1px solid rgba(142,198,246,.16);color:var(--white)}
.is-open .site-nav__link:hover{background:transparent}
.is-open .site-nav__main .site-nav__link:hover .site-nav__t{color:var(--sky)}
.is-open .site-nav__num{grid-area:1 / 1 / 3 / 2;align-self:start;padding-top:.6em}
.is-open .site-nav__t{grid-area:1 / 2;font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:700;line-height:1.4;transition:color .15s}
.is-open .site-nav__d{display:block;grid-area:2 / 2;font-size:.8125rem;line-height:1.6;color:var(--on-navy-3)}
.is-open .site-nav__arrow{display:block;grid-area:1 / 3 / 3 / 4;color:var(--sky);font-size:1.25rem;transition:transform .2s}
.is-open .site-nav__link:hover .site-nav__arrow{transform:translateX(4px)}
.is-open .site-nav__side{display:flex;flex-direction:column;gap:28px;padding-top:4px}
.is-open .site-nav__sub{display:flex;flex-direction:column;border-top:1px solid rgba(142,198,246,.16)}
.is-open .site-nav__sub .site-nav__link{padding:12px 4px;border-bottom:1px solid rgba(142,198,246,.16);border-radius:0;color:var(--on-navy)}
.is-open .site-nav__sub .site-nav__link:hover{color:var(--white)}
.is-open .lang-switch{margin:12px 0 0;align-self:flex-start}
.is-open .site-nav__cta{display:flex;flex-direction:column;gap:10px}
.is-open .site-nav__cta .btn{width:100%}
@media (max-width:720px){.is-open .site-nav__inner{grid-template-columns:1fr;gap:32px}.is-open .site-nav__kicker{margin-bottom:-12px}}

/* ---------- opening animation (pure CSS; ends hidden; nav.js = skip + once per tab). 
   Exit starts at 3.6 s: moving it = shift the .rise --d values and the 3.9 s constant (.no-intro / .skip-intro rule) together. */
@keyframes kl-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes kl-in2{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes kl-glow{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}
@keyframes kl-wm{from{opacity:0;transform:scale(1.22)}30%{opacity:1}to{opacity:1;transform:none}}
@keyframes kl-mark{0%{opacity:0;transform:scale(1.8)}55%{opacity:1;transform:scale(.96)}100%{opacity:1;transform:none}}
@keyframes kl-halo{0%{opacity:0;transform:scale(.4)}20%{opacity:.5}100%{opacity:0;transform:scale(3.2)}}
@keyframes kl-draw{to{stroke-dashoffset:0}}
@keyframes kl-travel{0%{offset-distance:0%;opacity:0}6%{opacity:1}93%{opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes kl-dot{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes kl-pulse{0%{opacity:0;transform:scale(1)}8%{opacity:.9}100%{opacity:0;transform:scale(4)}}
@keyframes kl-name{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(.5em)}to{opacity:1;clip-path:inset(-20% 0);transform:none}}
@keyframes kl-rule{to{transform:scaleX(1)}}
@keyframes kl-stage-out{to{opacity:0;transform:translateY(-48px) scale(1.04)}}
@keyframes kl-out{0%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-2%);visibility:hidden;pointer-events:none}}
.intro{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;overflow:hidden;padding-inline:var(--gutter);background:var(--navy-900);color:var(--white);animation:kl-out .7s cubic-bezier(.7,0,.3,1) 3.6s forwards}
.intro::before{content:"";position:absolute;inset:-25%;background:radial-gradient(ellipse 30% 30% at 50% 47%,rgba(65,120,207,.62),rgba(47,107,196,.16) 45%,rgba(12,35,64,0) 72%);animation:kl-glow 1.9s cubic-bezier(.2,.6,.2,1) .05s both}
.intro__stage{position:relative;width:100%;max-width:1100px;display:flex;flex-direction:column;align-items:center;text-align:center;animation:kl-stage-out .6s cubic-bezier(.7,0,.3,1) 3.6s forwards}
.intro__wm{position:absolute;inset:-12% 0;display:flex;align-items:center;justify-content:center;font-size:clamp(64px,19vw,340px);font-weight:700;line-height:1;letter-spacing:.04em;white-space:nowrap;color:rgba(142,198,246,.075);animation:kl-wm 3.6s cubic-bezier(.2,.6,.2,1) both}
.intro__brand{position:relative;z-index:1;display:grid;place-items:center;width:96px;height:96px;margin-bottom:-10px}
.intro__brand::before,.intro__brand::after{content:"";position:absolute;inset:0;border:1px solid rgba(142,198,246,.75);border-radius:50%;opacity:0;animation:kl-pulse 1.5s cubic-bezier(.2,.6,.2,1) 1.2s both}
.intro__brand::after{animation-delay:1.5s;animation-duration:1.7s}
.intro__halo{position:absolute;inset:0;background:radial-gradient(circle,#8EC6F6,#4178CF 70%);-webkit-mask:url(/assets/img/logo.webp) center/contain no-repeat;mask:url(/assets/img/logo.webp) center/contain no-repeat;opacity:0;animation:kl-halo 1.6s cubic-bezier(.2,.6,.2,1) 1.2s both}
.intro__mark{position:relative;width:96px;height:96px;opacity:0;animation:kl-mark .9s cubic-bezier(.2,.8,.2,1) 1.1s both}
.intro__arc{position:relative;width:min(100vw,1100px)}
.intro__arc svg{display:block;width:100%;height:auto;overflow:visible}
.intro__path{fill:none;stroke:var(--sky);stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1080;stroke-dashoffset:1080;animation:kl-draw 1.5s cubic-bezier(.6,0,.25,1) .45s forwards}
.intro__path--2{stroke-width:1;opacity:.4;animation-delay:.6s}
.intro__dot{fill:none;stroke:var(--sky);stroke-width:10;stroke-linecap:round;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:kl-dot .5s cubic-bezier(.2,.8,.2,1.4) both}
.intro__dot--a{animation-delay:.3s}
.intro__dot--b{stroke:var(--white);animation-delay:1.9s}
.intro__ring{fill:none;stroke:var(--sky);stroke-width:1.5;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;opacity:0;animation:kl-pulse 1.2s ease-out both}
.intro__ring--a{animation-delay:.35s}
.intro__ring--b{animation-delay:1.95s}
.intro__light{fill:none;stroke:#fff;stroke-width:8;stroke-linecap:round;vector-effect:non-scaling-stroke}
.intro__light,.intro__glow{offset-path:path("M40 196C300 20 700 20 960 196");offset-rotate:0deg;animation:kl-travel 1.5s cubic-bezier(.6,0,.25,1) .45s both}
.intro__places{display:flex;justify-content:space-between;padding-inline:1.5%;margin-top:-2px;font-size:.8125rem;font-weight:700;letter-spacing:.32em;color:var(--sky)}
.intro__name{margin-top:clamp(12px,2.2vw,28px);font-size:clamp(30px,5.4vw,66px);font-weight:700;line-height:1.2;letter-spacing:.08em;opacity:0;animation:kl-name .9s cubic-bezier(.2,.8,.2,1) 1.95s both}
.intro__rule{width:64px;height:1px;margin-block:18px 16px;background:var(--sky);transform:scaleX(0);animation:kl-rule .6s cubic-bezier(.2,.8,.2,1) 2.4s both}
.intro__tag{font-size:clamp(14px,1.6vw,19px);letter-spacing:.1em;color:var(--on-navy-1)}
.intro__skip{display:none;position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));z-index:2;align-items:center;min-height:var(--tap);padding:0 18px;border:1px solid rgba(201,214,230,.4);border-radius:999px;background:transparent;color:var(--on-navy);font:inherit;font-size:.8125rem;cursor:pointer}
.js .intro__skip{display:inline-flex}
.intro__skip:hover{background:rgba(255,255,255,.1)}
.no-intro .intro,.skip-intro .intro{display:none}
.rise{--d:3.9s;animation:kl-in .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d)}
.r1{--d:.3s}.r2{--d:1.9s}.r3{--d:2.45s}
.d1{--d:3.9s}.d2{--d:4.05s}.d3{--d:4.2s}.d4{--d:4.4s}
/* intro not shown (seen / skipped): hero entrance and slideshow start at once; a new animation name restarts after a skip */
.no-intro .rise,.skip-intro .rise{animation-name:kl-in2;animation-delay:calc(var(--d) - 3.9s)}
.no-intro .slide,.skip-intro .slide,.no-intro .hero__dots span::after,.skip-intro .hero__dots span::after{animation-delay:calc(var(--s) - 1s)}

/* ---------- hero slideshow: 5 x 6 s (30 s loop), 1 s crossfade, push-in. Pause = one native checkbox #hero-motion-pause (R12 ruling, pure CSS, state survives hash links) ---------- */
@keyframes kl-slide{0%{opacity:0;transform:scale(.97)}3.33%{opacity:1;transform:scale(1)}20%{opacity:1}23.33%{opacity:0;transform:scale(1.07)}100%{opacity:0;transform:scale(1.07)}}
@keyframes kl-dotp{0%{opacity:1;transform:scaleX(0)}20%{opacity:1;transform:scaleX(1)}23.33%{opacity:0;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1)}}
.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,8vw,112px)}
.hero--slides{position:relative;display:flex;align-items:flex-end;min-height:clamp(560px,calc(100vh - 110px),880px);padding-block:clamp(48px,7vw,96px) clamp(36px,4vw,56px);overflow:hidden}
.hero__sw{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;opacity:0;clip-path:inset(50%)}
.slides{position:absolute;inset:0;background:var(--navy-900)}
.slide{position:absolute;inset:0;opacity:0;animation:kl-slide 30s linear infinite both;animation-delay:calc(var(--s) + 2.6s)}
.s1{--s:0s}.s2{--s:6s}.s3{--s:12s}.s4{--s:18s}.s5{--s:24s}
.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s1 img{object-position:55% 30%}
.slides .s1::after,.slides .s5::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,26,49,.15) 25%,rgba(8,26,49,.45) 50%,rgba(8,26,49,.45))}
.hero--slides::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,26,49,.5),rgba(8,26,49,.3) 30%,rgba(8,26,49,.66) 50%,rgba(8,26,49,.9))}
.hero--slides .hero__inner{position:relative;z-index:2}
#hero-motion-pause:checked~.slides .slide,#hero-motion-pause:checked~.hero__inner .hero__dots span::after{animation-play-state:paused}
.hero__inner{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px)}
.hero__top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:28px clamp(40px,6vw,96px)}
.hero__main{flex:9 1 640px;min-width:0;display:flex;flex-direction:column;gap:22px}
.hero__side{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:18px}
.hero h1{font-size:clamp(1.375rem,6.9vw,4rem);line-height:1.34;letter-spacing:.02em}
/* H1 follows its column: 7.8cqw fits the 12 full-width characters of line 1, so two lines never become three */
@supports (width:1cqw){.hero__main{container-type:inline-size}.hero h1{font-size:clamp(1.375rem,7.8cqw,4rem)}}
.hero__sub{font-size:clamp(.9375rem,1.4vw,1rem);line-height:1.95;color:var(--white)}
.hero__note{font-size:.8125rem;color:var(--white)}
.hero__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18)}
.hero__dots{display:flex;gap:8px}
.hero__dots span{display:block;width:34px;height:2px;background:rgba(255,255,255,.28);overflow:hidden}
.hero__dots span::after{content:"";display:block;height:100%;background:var(--white);transform-origin:left;transform:scaleX(0);animation:kl-dotp 30s linear infinite both;animation-delay:calc(var(--s) + 2.6s)}
.hero__ctl{display:inline-flex;align-items:center;gap:.6em;min-height:var(--tap);padding:0 16px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(8,26,49,.85);color:var(--white);font-size:.8125rem;cursor:pointer}
.hero__ctl::before{content:"";width:8px;height:10px;border-inline:2.5px solid currentColor}
.hero__ctl:hover{background:rgba(255,255,255,.2)}
#hero-motion-pause:checked~.hero__inner .hero__ctl{background:var(--white);color:var(--navy-900)}
#hero-motion-pause:checked~.hero__inner .hero__ctl::before{width:0;height:0;border:5px solid transparent;border-left:9px solid currentColor;border-right:0}
#hero-motion-pause:focus-visible~.hero__inner .hero__ctl{outline:3px solid var(--sky);outline-offset:3px;box-shadow:0 0 0 3px var(--navy-950)}
/* phones: hero fills the window under notice + header; dots + pause sit above the copy, clear of the director's face (slide 1) */
@media (max-width:720px){.hero--slides{min-height:calc(100svh - 185px);padding-block:32px 20px}.hero__inner{gap:16px}.hero--slides .hero__main{gap:16px}.hero--slides .hero__side{gap:14px}.hero--slides .hero__sub{line-height:1.8}
.hero__bar{position:absolute;bottom:100%;right:0;flex-direction:column;align-items:flex-end;gap:10px;margin-bottom:8px;padding-top:0;border-top:0}.hero__dots{gap:6px}.hero__dots span{width:18px}.s1 img{object-position:68% 30%}.hero--slides::before{background:linear-gradient(180deg,rgba(8,26,49,.5),rgba(8,26,49,.45) 20%,rgba(8,26,49,.72) 38%,rgba(8,26,49,.9))}}
@media (max-width:360px){.hero--slides{min-height:800px}}

/* ---------- trust strip ---------- */
.trust{padding-block:32px;border-bottom:1px solid var(--border);background:var(--surface)}
.trust__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px 40px}
.trust__item{display:flex;align-items:flex-start;gap:14px;min-width:0}
.trust__icon{margin-top:4px;color:var(--blue-700)}
.trust__title{font-size:.9375rem;font-weight:700;line-height:1.85}
.trust__text{margin-top:2px;font-size:.875rem;line-height:1.75;color:var(--muted-2)}

/* ---------- services (hairline grid), payment note ---------- */
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}
.card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:28px}
.grid-2>.card{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}
.card__icon{color:var(--blue-700)}
.card__icon .icon{width:28px;height:28px}
.card__title{font-size:1.125rem}
.card p{font-size:.9375rem;color:var(--muted)}
.note{margin-top:28px;padding:20px 24px;border-radius:10px;background:var(--surface);font-size:.9375rem;color:var(--muted)}

/* ---------- flow: numbered cards with role chips ---------- */
.flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;counter-reset:step}
.flow__step{min-width:0;padding:24px;border:1px solid var(--border);border-radius:12px;background:var(--white);counter-increment:step}
.flow__body{display:flex;flex-direction:column;gap:10px}
.flow__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}
.flow__head::before{font-family:var(--font-num);font-size:1.75rem;font-weight:700;line-height:1;color:var(--blue-700);content:counter(step);content:counter(step)/""}
.flow__title{font-size:1.0625rem}
.flow__body>p{font-size:.875rem;line-height:1.85;color:var(--muted)}
.chip{display:inline-flex;align-items:center;padding:2px 10px;border:1px solid transparent;border-radius:999px;font-size:.75rem;line-height:1.5}
.chip--doctor{background:var(--light);border-color:var(--light);color:var(--navy-900)}
.chip--us{background:var(--navy-900);border-color:var(--navy-900);color:var(--white)}
.chip--carrier{background:var(--white);border-color:var(--border-2);color:var(--muted)}

/* ---------- stance (policy list) ---------- */
.areas{margin-top:16px;display:flex;flex-direction:column;gap:16px}
.areas h3{font-size:1rem}
.areas p,.stance__text{font-size:.9375rem;color:var(--muted)}
.stance{border-top:2px solid var(--navy-900)}
.stance__item{display:flex;flex-direction:column;gap:10px;padding:28px 0;border-bottom:1px solid var(--border)}
.stance__title{font-size:1.125rem}

/* ---------- FAQ (native details/summary, no JS) ---------- */
.faq{gap:8px}
.faq__item{border:1px solid var(--border);border-radius:10px;background:var(--white)}
.faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--tap);padding:18px 22px;font-size:.9375rem;font-weight:700;line-height:1.7;cursor:pointer;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{flex:none;font-size:1.375rem;font-weight:400;line-height:1;color:var(--blue-700);content:"+";content:"+"/"";transition:transform .2s}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__a{display:flex;flex-direction:column;gap:8px;padding:0 22px 20px;font-size:.9375rem;color:var(--muted)}
.faq__a .text-small{font-size:.8125rem}

/* ---------- company table ---------- */
.company-table{width:100%;border-collapse:collapse;border-top:2px solid var(--navy-900);font-size:.9375rem}
.company-table th,.company-table td{padding:18px 0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;line-height:1.85}
.company-table th{width:7.5em;padding-right:20px;color:var(--navy-900);font-weight:700;white-space:nowrap}
.company-table td{font-variant-numeric:tabular-nums}
@media (max-width:419px){.company-table th,.company-table td{display:block;width:auto}.company-table th{padding:16px 0 0;border-bottom:0;white-space:normal}.company-table td{padding:2px 0 16px}}
/* enlarged text: the stacked layout follows the column width in em (container query) */
@supports (container-type:inline-size) and selector(:has(*)){.split__main:has(>.company-table){container-type:inline-size}
@container (max-width:24.1em){.company-table th,.company-table td{display:block;width:auto}.company-table th{padding:16px 0 0;border-bottom:0;white-space:normal}.company-table td{padding:2px 0 16px}}}

/* ---------- contact (navy) with QR ---------- */
.contact{display:flex;flex-wrap:wrap;align-items:center;gap:40px clamp(40px,6vw,88px)}
.contact__body{flex:2 1 520px;min-width:0;display:flex;flex-direction:column;gap:20px}
.contact .btn{min-height:52px;padding-inline:28px}
.contact__links{display:flex;flex-direction:column;font-size:.875rem}
.contact__links li{display:flex;flex-wrap:wrap;align-items:center}
.contact__links a{display:inline-flex;align-items:center;min-height:var(--tap)}
.contact__note{font-size:.8125rem;color:var(--muted)}
.contact__qr{flex:0 1 auto;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--white)}
.band-navy .contact__body>p{color:var(--on-navy-1)}
.band-navy .contact__links{color:var(--on-navy)}
.band-navy .contact__links a{color:var(--sky)}
.band-navy .contact__links a:hover{color:var(--white)}
.band-navy .contact__note{color:var(--on-navy-2)}
.contact__qr img{width:165px;height:165px;image-rendering:pixelated}
.contact__qr figcaption{font-size:.75rem;color:var(--muted);text-align:center}

/* ---------- footer ---------- */
.site-footer{padding-block:40px;background:var(--navy-950);color:var(--on-navy);font-size:.875rem;line-height:1.7}
.site-footer .container{display:flex;flex-direction:column;gap:24px}
.site-footer a{color:var(--on-navy)}
.site-footer a:hover{color:var(--white)}
.site-footer__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.site-footer__name{display:flex;align-items:center;gap:10px;color:var(--white);font-weight:700}
.site-footer__name img{width:28px;height:28px}
.site-footer__links{display:flex;flex-wrap:wrap;gap:0 24px}
.site-footer__links a{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);min-width:var(--tap)}
.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px;padding-top:20px;border-top:1px solid rgba(201,214,230,.18);font-size:.75rem;color:var(--on-navy-2)}

/* ---------- legal pages, entry pages, 404 ---------- */
.page-head{padding-block:3rem;border-bottom:1px solid var(--border);background:var(--surface)}
.page-head h1{margin:0}
.page-head__meta{margin-top:.5rem;color:var(--muted);font-size:.875rem}
.prose{max-width:40em;padding-block:3rem 4rem}
.prose p,.prose ul,.prose ol{margin:0 0 1rem}
.prose h2{margin:2.5rem 0 1rem;padding-bottom:.25rem;border-bottom:1px solid var(--border);font-size:1.375rem}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.5rem 0 .5rem;font-size:1.125rem}
.prose ol,.prose ul{padding-left:1.5em}
.prose li{margin-bottom:.25rem}
.entry__more{font-size:.9375rem}
.notfound{padding-block:4rem 6rem;text-align:center}
.notfound>*+*{margin-top:1rem}
.notfound__code{display:block;color:var(--logo-blue);font-family:var(--font-heading);font-size:clamp(4rem,18vw,7rem);font-weight:700;line-height:1;letter-spacing:.04em}
.notfound__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}

/* ---------- motion / print ---------- */
@media (prefers-reduced-motion:reduce){
.intro{display:none}
.rise,.slide,.hero__dots span::after,.site-nav.is-open{animation:none}
.s1{opacity:1}
.hero__ctl,.hero__sw{display:none!important}
*,*::before,*::after{transition:none!important}
}
@media print{
.intro,.site-header,.notice,.skip-link,.cta-group,.slides,.hero__bar{display:none!important}
.rise{animation:none}
body{color:#000;background:#fff}
}
