/* ============================================================
   RM OrthoMed Technologies — white-canvas variant
   Tokens copied verbatim from RM_OrthoMed_Bold_Design.md §5.1,
   §6.3, §7.1, §8.1, §9.1, §21.1. Canvas role remapped ivory→paper
   per the user's white-background brief; see brand-spec.md.

   PART 1 — shared system (extracted from the homepage, unchanged)
   PART 2 — page systems (§16 product, §17 service, §18 about,
            §19 contact, §15.8 resources)
   ============================================================ */

/* ============================================================
   PART 1 — SHARED SYSTEM
   ============================================================ */
:root{
  /* Brand ramp retuned green→blue to match the embroidered logo. Each step holds the
     lightness of the pine step it replaces, so every contrast pair in this sheet stays
     valid: white on --brand-900 ≈ 14.9:1, white on --brand-700 ≈ 8.4:1. */
  --brand-950:#041423; --brand-900:#08284A; --brand-800:#0C3A6B;
  --brand-700:#114E8E; --brand-600:#1763B0; --brand-500:#2A7FD4;
  --surface-100:#EEF2F7; --surface-050:#F7F9FC; --paper:#FFFFFF;
  --ink-950:#0F1418; --ink-900:#1A1F24; --ink-700:#414A53;
  --ink-500:#6F7883; --ink-300:#B4BCC5;
  --brass-700:#8D641D; --brass-600:#A97922; --brass-500:#C09139; --brass-100:#F3E7C8;
  --success-700:#17613E; --warning-700:#925D10; --danger-700:#9D312A;
  --border-light:#D5DFEA; --border-dark:rgba(255,255,255,.16);

  /* white-variant role map */
  --page:var(--paper); --band:var(--surface-100); --band-soft:var(--surface-050);

  --type-hero:clamp(3.25rem,7vw,7.5rem);
  --type-page-title:clamp(2.75rem,5.5vw,5.75rem);
  --type-section:clamp(2.15rem,4vw,4rem);
  --type-card-title:clamp(1.35rem,2vw,1.8rem);
  --type-lead:clamp(1.1rem,1.4vw,1.35rem);
  --type-body:1rem; --type-small:.875rem; --type-label:.75rem;
  --type-metric:clamp(3rem,6vw,6rem);

  --container:1280px; --container-wide:1480px;
  --gutter:20px; --section-space:clamp(4.5rem,9vw,10rem);

  --radius-small:8px; --radius-medium:14px; --radius-large:24px;
  --radius-feature:40px; --radius-pill:999px;

  --shadow-card:0 2px 4px rgba(15,20,24,.04),0 18px 50px rgba(15,20,24,.08);
  --shadow-hover:0 4px 8px rgba(15,20,24,.06),0 26px 70px rgba(15,20,24,.12);

  --motion-fast:140ms; --motion-base:240ms; --motion-slow:520ms;
  --ease-standard:cubic-bezier(.22,1,.36,1);

  --font-display:"Manrope","Sora",system-ui,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media(min-width:768px){:root{--gutter:32px}}
@media(min-width:1024px){:root{--gutter:48px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--page);color:var(--ink-950);
  font-family:var(--font-body);font-size:var(--type-body);font-weight:450;
  line-height:1.68;overflow-x:hidden;
}
img{display:block;max-width:100%}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--brass-600);outline-offset:3px;border-radius:2px}
.dark :focus-visible{outline-color:var(--brass-500)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- primitives ---------- */
.container{width:min(100% - (var(--gutter)*2),var(--container));margin-inline:auto}
.container-wide{width:min(100% - (var(--gutter)*2),var(--container-wide));margin-inline:auto}
.section{padding-block:var(--section-space);position:relative}
.section--tight{padding-block:clamp(2.5rem,4vw,3.5rem)}
.band{background:var(--band)}
.dark{background:var(--brand-900);color:var(--surface-100)}
.dark h1,.dark h2,.dark h3{color:var(--paper)}
.deepest{background:var(--brand-950)}

.eyebrow{
  font-family:var(--font-body);font-size:var(--type-label);font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;line-height:1.4;
  color:var(--brass-700);display:flex;align-items:center;gap:12px;margin:0 0 22px;
}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--brass-600);flex:none}
.dark .eyebrow{color:var(--brass-500)}
.dark .eyebrow::before{background:var(--brass-500)}

.display{font-size:var(--type-hero);font-weight:800;line-height:.96;letter-spacing:-.038em}
.h-section{font-size:var(--type-section);font-weight:750;line-height:1.06;letter-spacing:-.03em}
.h-card{font-size:var(--type-card-title);font-weight:700;line-height:1.16;letter-spacing:-.018em}
.lead{font-size:var(--type-lead);line-height:1.66;color:var(--ink-700);max-width:60ch}
.dark .lead{color:var(--surface-100)}
.small{font-size:var(--type-small);line-height:1.55;letter-spacing:.01em;color:var(--ink-700)}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

.index{
  display:block;
  font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;
  font-size:clamp(3.5rem,7vw,7rem);line-height:.8;color:var(--brass-600);
  opacity:.9;font-variant-numeric:tabular-nums;
}
.dark .index{color:rgba(192,145,57,.62)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding-inline:28px;border-radius:var(--radius-pill);
  font-family:var(--font-body);font-weight:700;font-size:.9375rem;letter-spacing:.015em;
  text-decoration:none;border:2px solid transparent;cursor:pointer;
  transition:background var(--motion-fast) var(--ease-standard),
             color var(--motion-fast) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             transform var(--motion-fast) var(--ease-standard);
}
.btn svg{flex:none;transition:transform var(--motion-base) var(--ease-standard)}
.btn:hover svg{transform:translateX(4px)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand-700);color:var(--paper)}
.btn-primary:hover{background:var(--brand-600)}
.btn-secondary{background:transparent;color:var(--ink-950);border-color:var(--border-light)}
.btn-secondary:hover{border-color:var(--brand-700);background:var(--band-soft)}
.dark .btn-primary{background:var(--paper);color:var(--brand-900)}
.dark .btn-primary:hover{background:var(--surface-100)}
.dark .btn-secondary{color:var(--paper);border-color:var(--border-dark)}
.dark .btn-secondary:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.06)}
.btn-sm{min-height:48px;padding-inline:22px;font-size:.875rem}

.link-arrow{
  display:inline-flex;align-items:center;gap:9px;min-height:44px;
  font-weight:700;font-size:.9375rem;letter-spacing:.01em;
  text-decoration:none;color:var(--brand-700);
}
.link-arrow span{box-shadow:inset 0 -1px 0 currentColor;transition:box-shadow var(--motion-fast)}
.link-arrow:hover span{box-shadow:inset 0 -2px 0 currentColor}
.link-arrow svg{transition:transform var(--motion-base) var(--ease-standard)}
.link-arrow:hover svg{transform:translateX(4px)}
.dark .link-arrow{color:var(--brass-500)}

.chip{
  display:inline-flex;align-items:center;gap:7px;padding:6px 12px;
  border-radius:var(--radius-pill);border:1px solid var(--border-light);
  background:var(--band-soft);font-size:.6875rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.09em;color:var(--ink-700);
}
.chip--pending{border-color:#E4D5AE;background:var(--brass-100);color:var(--ink-950)}
.chip i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.chip--pending i{background:var(--brass-700)}

/* ---------- alignment arcs (§10.1) ---------- */
.arcs{position:absolute;pointer-events:none;color:rgba(255,255,255,.13);z-index:0}
.arcs svg{display:block;width:100%;height:100%}

/* ---------- header ---------- */
.header{
  position:fixed;inset:0 0 auto;z-index:60;
  transition:background var(--motion-base) var(--ease-standard),
             border-color var(--motion-base),box-shadow var(--motion-base);
  border-bottom:1px solid var(--border-dark);
}
.header-in{
  display:flex;align-items:center;gap:clamp(16px,2.5vw,40px);
  height:76px;
}
@media(min-width:1024px){.header-in{height:88px}}
.brand{
  font-family:var(--font-display);font-weight:800;font-size:1.0625rem;
  letter-spacing:-.02em;text-decoration:none;color:var(--paper);
  display:flex;align-items:baseline;gap:7px;white-space:nowrap;
}
.brand b{font-weight:800}
.brand em{
  font-style:normal;font-family:var(--font-body);font-weight:700;
  font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85;
}

/* ---------- logo mark ----------
   One transparent PNG, recoloured by filter rather than shipped twice.
   `brightness(0)` flattens the artwork to black, `invert(1)` lifts it to pure
   white — so it reads on the dark hero. Once the header sticks to the white
   page the filter is dropped and the logo returns to its own brand blue. */
.brand img{
  display:block;width:120px;height:auto;
  filter:brightness(0) invert(1);
  transition:filter var(--motion-base) var(--ease-standard);
}
@media(min-width:768px){.brand img{width:150px}}
.header.is-stuck .brand img{filter:none}
.footer .brand img,.drawer-top .brand img{filter:brightness(0) invert(1)}
@media(prefers-reduced-motion:reduce){.brand img{transition:none}}
.nav{display:none;gap:clamp(14px,1.8vw,28px);margin-left:auto}
@media(min-width:1100px){.nav{display:flex}}
.nav a{
  font-weight:600;font-size:.9375rem;text-decoration:none;color:var(--paper);
  padding:10px 2px;position:relative;opacity:.86;
}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:4px;height:2px;
  background:var(--brass-500);transition:right var(--motion-base) var(--ease-standard);
}
.nav a:hover{opacity:1}
.nav a:hover::after{right:0}
.nav a[aria-current="page"]{opacity:1}
.nav a[aria-current="page"]::after{right:0}
.header-act{display:flex;align-items:center;gap:12px;margin-left:auto}
@media(min-width:1100px){.header-act{margin-left:0}}
.tel{
  display:none;align-items:center;gap:8px;text-decoration:none;font-weight:700;
  font-size:.9375rem;color:var(--paper);white-space:nowrap;min-height:44px;
}
@media(min-width:768px){.tel{display:inline-flex}}
.header .btn-primary{background:var(--paper);color:var(--brand-900);display:none}
@media(min-width:768px){.header .btn-primary{display:inline-flex}}
.header .btn-primary:hover{background:var(--surface-100)}
.burger{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border:1px solid var(--border-dark);background:transparent;
  border-radius:var(--radius-small);cursor:pointer;color:var(--paper);
}
@media(min-width:1100px){.burger{display:none}}
.burger span{display:block;width:20px;height:2px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor}
.burger span::before{top:-6px}.burger span::after{top:6px}

/* scrolled state — header turns paper */
.header.is-stuck{background:var(--paper);border-bottom-color:var(--border-light);box-shadow:0 1px 0 rgba(15,20,24,.04)}
.header.is-stuck .brand,.header.is-stuck .nav a,.header.is-stuck .tel,.header.is-stuck .burger{color:var(--ink-950)}
.header.is-stuck .burger{border-color:var(--border-light)}
.header.is-stuck .btn-primary{background:var(--brand-700);color:var(--paper)}
.header.is-stuck .btn-primary:hover{background:var(--brand-600)}

/* ---------- mobile drawer (§12.3) ---------- */
.drawer{
  position:fixed;inset:0;z-index:70;background:var(--brand-950);color:var(--paper);
  display:flex;flex-direction:column;padding:20px 0 32px;
  transform:translateY(-100%);visibility:hidden;
  transition:transform var(--motion-slow) var(--ease-standard),visibility var(--motion-slow);
  overflow-y:auto;
}
.drawer[data-open="true"]{transform:translateY(0);visibility:visible}
.drawer-top{display:flex;align-items:center;height:56px;margin-bottom:24px}
.drawer-close{
  margin-left:auto;width:48px;height:48px;border:1px solid var(--border-dark);
  background:transparent;border-radius:var(--radius-small);cursor:pointer;color:var(--paper);
  font-size:1.25rem;line-height:1;
}
.drawer-group{font-size:var(--type-label);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-500);margin:0 0 14px}
.drawer nav{display:flex;flex-direction:column;gap:4px;margin-bottom:36px}
.drawer nav a{
  font-family:var(--font-display);font-weight:750;letter-spacing:-.02em;
  font-size:clamp(1.75rem,7vw,2.125rem);line-height:1.25;text-decoration:none;
  padding:8px 0;border-bottom:1px solid rgba(255,255,255,.09);
}
.drawer-foot{margin-top:auto;display:grid;gap:12px}
.drawer-foot .btn{width:100%}
.drawer-tel{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:16px 0;border-top:1px solid var(--border-dark);
}
.drawer-tel a{font-family:var(--font-display);font-weight:800;font-size:1.375rem;letter-spacing:-.02em;text-decoration:none}

/* ---------- hero (§11.1) ---------- */
.hero{position:relative;overflow:hidden;padding-block:calc(76px + clamp(3rem,7vw,6rem)) clamp(3.5rem,7vw,6rem)}
@media(min-width:1024px){.hero{padding-block:calc(88px + 5.5rem) 6rem;min-height:820px;display:flex;align-items:center}}
.hero .container-wide{position:relative;z-index:1;flex:0 1 auto}
.hero-grid{display:grid;gap:clamp(2.5rem,5vw,4rem)}
.hero-copy,.hero-media{min-width:0}
.hero-media{position:relative}
@media(min-width:1024px){
  .hero-grid{grid-template-columns:repeat(12,1fr);align-items:center;gap:clamp(2rem,4vw,4.5rem)}
  .hero-copy{grid-column:span 7}
  .hero-media{grid-column:span 5}
}
.hero h1{max-width:14ch}
.hero .lead{margin-top:28px;max-width:52ch;color:rgba(238,242,247,.92)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.hero-actions .btn{flex:1 1 auto}
@media(min-width:480px){.hero-actions .btn{flex:0 0 auto}}
.hero-proof{
  margin-top:44px;padding-top:24px;border-top:1px solid var(--border-dark);
  display:grid;gap:18px;
}
@media(min-width:600px){.hero-proof{grid-template-columns:1fr 1fr;gap:28px}}
.hero-proof div{display:flex;gap:14px;align-items:baseline}
.hero-proof b{
  font-family:var(--font-display);font-weight:800;font-size:1.5rem;letter-spacing:-.03em;
  color:var(--brass-500);white-space:nowrap;font-variant-numeric:tabular-nums;
}
.hero-proof p{font-size:.875rem;line-height:1.5;color:rgba(238,242,247,.8);letter-spacing:.01em}
.hero-frame{
  border-radius:var(--radius-feature) var(--radius-medium) var(--radius-medium) var(--radius-medium);
  overflow:hidden;background:var(--brand-800);aspect-ratio:4/5;
}
@media(max-width:1023px){.hero-frame{aspect-ratio:4/3}}
.hero-frame img{width:100%;height:100%;object-fit:cover}
.hero-tag{
  position:absolute;left:16px;bottom:16px;right:16px;
  background:rgba(4,20,35,.9);backdrop-filter:blur(6px);
  border:1px solid var(--border-dark);border-radius:var(--radius-medium);
  padding:14px 18px;box-shadow:0 10px 30px rgba(4,20,35,.35);
}
@media(min-width:520px){.hero-tag{right:auto;max-width:min(84%,340px)}}
.hero-tag p{font-size:.8125rem;line-height:1.5;color:rgba(238,242,247,.9);letter-spacing:.01em}
.hero-tag b{display:block;font-family:var(--font-display);font-weight:700;font-size:.9375rem;color:var(--paper);margin-bottom:3px}
.hero-marker{
  display:none;position:absolute;left:var(--gutter);top:50%;transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;font-size:.6875rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(238,242,247,.42);
}
@media(min-width:1440px){.hero-marker{display:block}}

/* ---------- credential strip (§15.2) ---------- */
.creds{border-bottom:1px solid var(--border-light)}
.creds ul{
  list-style:none;margin:0;padding:0;display:grid;gap:20px 32px;
  grid-template-columns:1fr;
}
@media(min-width:640px){.creds ul{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.creds ul{grid-template-columns:repeat(4,1fr)}}
.creds li{display:flex;gap:12px;align-items:flex-start;font-size:.9375rem;line-height:1.5;font-weight:500}
.creds svg{flex:none;margin-top:2px;color:var(--brand-700)}

/* ---------- editorial split (§15.3) ---------- */
.split{display:grid;gap:clamp(2.5rem,5vw,4rem)}
.split-l,.split-r{min-width:0}
@media(min-width:1024px){
  .split{grid-template-columns:repeat(12,1fr);gap:clamp(3rem,5vw,6rem)}
  .split-l{grid-column:span 5}
  .split-r{grid-column:span 7}
}
.split-l .h-section{margin-top:18px}
.split-l .lead{margin-top:24px}
.note{
  margin-top:26px;padding:16px 20px;border-left:3px solid var(--brass-600);
  background:var(--band-soft);font-size:.875rem;line-height:1.6;color:var(--ink-700);
}

/* capability rows — accordion (§14.1) */
.rows{border-top:1px solid var(--border-light)}
.row{border-bottom:1px solid var(--border-light)}
.row-head{
  width:100%;display:flex;align-items:center;gap:18px;padding:26px 0;
  background:none;border:0;cursor:pointer;text-align:left;
}
.row-head:hover .h-card{color:var(--brand-700)}
.row-n{
  font-family:var(--font-display);font-weight:800;font-size:.875rem;
  letter-spacing:.06em;color:var(--brass-600);flex:none;width:26px;
  font-variant-numeric:tabular-nums;
}
.row-head .h-card{flex:1;transition:color var(--motion-fast)}
.row-sub{display:none;font-size:.8125rem;font-weight:600;color:var(--ink-700);letter-spacing:.02em}
@media(min-width:768px){.row-sub{display:block}}
.row-tog{
  flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-light);
  display:grid;place-items:center;transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast);
}
.row-head[aria-expanded="true"] .row-tog{transform:rotate(45deg);border-color:var(--brand-700)}
.row-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--motion-base) var(--ease-standard)}
.row-head[aria-expanded="true"]+.row-body{grid-template-rows:1fr}
.row-body>div{overflow:hidden}
.row-inner{padding:0 0 30px 44px;display:grid;gap:22px}
@media(min-width:768px){.row-inner{grid-template-columns:1fr 1fr;gap:32px}}
.row-inner h3{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-700);margin-bottom:10px;font-family:var(--font-body)}
.row-inner p{font-size:.9375rem;line-height:1.62;color:var(--ink-700)}
.row-inner ul{margin:0;padding-left:18px;font-size:.9375rem;line-height:1.7;color:var(--ink-700)}

/* ---------- commitments (§15.4) ---------- */
.commit{position:relative;overflow:hidden}
.commit-grid{display:grid;gap:clamp(2rem,4vw,3rem);position:relative;z-index:1}
@media(min-width:900px){.commit-grid{grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,4rem)}}
.commit-item{padding-top:28px;border-top:2px solid rgba(255,255,255,.22)}
.commit-item b{
  display:block;font-family:var(--font-display);font-weight:800;
  font-size:var(--type-metric);line-height:.88;letter-spacing:-.045em;
  color:var(--paper);font-variant-numeric:tabular-nums;
  overflow-wrap:break-word;   /* last-resort guard: never let a word widen the page */
}
/* Long single words (OVERREACH, SELECTION) overflow their column at the full metric
   size. Step them down rather than shrinking the short-word cards that read well. */
.commit-item--long b{font-size:clamp(1.85rem,3.4vw,3.25rem)}
.commit-item b i{font-style:normal;font-size:.42em;letter-spacing:-.01em;margin-left:.12em;color:var(--brass-500)}
.commit-item h3{font-size:1.1875rem;font-weight:700;letter-spacing:-.01em;margin:18px 0 10px}
.commit-item p{font-size:.9375rem;line-height:1.62;color:rgba(238,242,247,.82);max-width:34ch}
/* The 38ch cap used to sit here, where `ch` resolves against the 16px parent rather
   than the ~64px heading — so a 37-character title wrapped onto four lines. Cap the
   heading itself so the unit matches the type it is measuring. */
.commit-head{position:relative;z-index:1;margin-bottom:clamp(2.5rem,5vw,4rem)}
.commit-head h2{max-width:19ch}

/* ---------- product coverage (§15.5) ---------- */
.prod{display:grid;gap:20px}
@media(min-width:1024px){.prod{grid-template-columns:repeat(12,1fr);gap:24px}}
.pcard{
  border:1px solid var(--border-light);border-radius:var(--radius-large);
  overflow:hidden;background:var(--paper);display:flex;flex-direction:column;
  transition:box-shadow var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast);
}
.pcard:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);border-color:transparent}
@media(min-width:1024px){
  .pcard--feature{grid-column:span 8}
  .pcard--sec{grid-column:span 4}
  .pcard--half{grid-column:span 6}
}
.pcard-img{background:var(--brand-900);overflow:hidden;aspect-ratio:16/10}
.pcard--sec .pcard-img{aspect-ratio:16/9}
.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--motion-slow) var(--ease-standard)}
.pcard:hover .pcard-img img{transform:scale(1.03)}
.pcard-body{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;flex:1;gap:14px}
.pcat{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brass-700)}
.pcard-body p{font-size:.9375rem;line-height:1.62;color:var(--ink-700);max-width:52ch}
.pspec{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--border-light)}
.pspec li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--border-light);font-size:.875rem;letter-spacing:.01em}
.pspec span{color:var(--ink-700)}
.pspec b{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.pcard .link-arrow{margin-top:auto;padding-top:6px}
.pcard--dark{background:var(--brand-900);border-color:transparent;color:var(--surface-100)}
.pcard--dark .h-card{color:var(--paper)}
.pcard--dark p{color:rgba(238,242,247,.82)}
.pcard--dark .pcat{color:var(--brass-500)}
.pcard--dark .link-arrow{color:var(--brass-500)}
.pcard--dark .pspec,.pcard--dark .pspec li{border-color:var(--border-dark)}
.pcard--dark .pspec span{color:rgba(238,242,247,.66)}

/* ---------- process / measurement line (§15.6, §10.2) ---------- */
.proc{display:grid;gap:0;counter-reset:step}
@media(min-width:900px){.proc{grid-template-columns:repeat(4,1fr)}}
.step{position:relative;padding:30px 0 34px;border-top:2px solid var(--ink-950)}
@media(min-width:900px){.step{padding:34px 28px 0 0}}
.step::after{
  content:"";position:absolute;top:-2px;left:0;width:9px;height:9px;
  background:var(--brass-600);transform:translateY(-50%);
}
.step-n{
  font-family:var(--font-body);font-weight:700;font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass-700);
  display:flex;gap:12px;align-items:center;margin-bottom:16px;
  font-variant-numeric:tabular-nums;
}
.step h3{font-size:1.375rem;font-weight:700;letter-spacing:-.018em;margin-bottom:12px}
.step p{font-size:.9375rem;line-height:1.62;color:var(--ink-700);max-width:34ch}
.step-out{
  margin-top:18px;font-size:.8125rem;font-weight:600;letter-spacing:.02em;
  color:var(--ink-950);display:flex;gap:9px;align-items:flex-start;
}
.step-out svg{flex:none;margin-top:3px;color:var(--brand-700)}
.dark .step{border-top-color:rgba(255,255,255,.28)}
.dark .step h3{color:var(--paper)}
.dark .step p{color:rgba(238,242,247,.82)}
.dark .step-n{color:var(--brass-500)}
.dark .step-out{color:var(--paper)}
.dark .step-out svg{color:var(--brass-500)}

/* ---------- contact cards (§14.4) ---------- */
.team{display:grid;gap:20px}
@media(min-width:700px){.team{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.team{grid-template-columns:repeat(4,1fr);align-items:start}}
.tcard{
  border:1px solid var(--border-light);border-radius:var(--radius-medium);
  padding:28px;display:flex;flex-direction:column;gap:12px;background:var(--paper);
}
@media(min-width:1100px){
  .tcard:nth-child(odd){margin-top:0}
  .tcard:nth-child(even){margin-top:32px}
}
.tcard--accent{background:var(--band);border-color:transparent}
.tcard-role{font-family:var(--font-display);font-weight:700;font-size:1.125rem;letter-spacing:-.015em;line-height:1.28}
.tcard dl{margin:8px 0 0;display:grid;gap:12px}
.tcard dt{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--ink-700);margin-bottom:3px}
.tcard dd{margin:0;font-size:.9375rem;line-height:1.5;font-weight:500}
.tcard .link-arrow{margin-top:auto;padding-top:8px;font-size:.875rem}

/* ---------- media + overlapping panel (§15.7) ---------- */
.why{position:relative}
.why-media{border-radius:var(--radius-large);overflow:hidden;aspect-ratio:3/2;background:var(--brand-900)}
.why-media img{width:100%;height:100%;object-fit:cover;object-position:72% 50%}
.why-panel{
  background:var(--brand-900);color:var(--surface-100);border-radius:var(--radius-large);
  padding:clamp(28px,4vw,44px);margin-top:-40px;position:relative;z-index:2;
  width:min(100%,560px);box-shadow:0 24px 60px rgba(4,20,35,.22);
}
@media(min-width:1024px){
  .why-inner{display:grid;grid-template-columns:repeat(12,1fr);align-items:center}
  .why-media{grid-column:1/span 8;grid-row:1}
  .why-panel{grid-column:7/span 6;grid-row:1;margin-top:0;width:auto}
  .why-inner--flip .why-media{grid-column:5/span 8}
  .why-inner--flip .why-panel{grid-column:1/span 6}
}
.why-panel h3{color:var(--paper);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:750;letter-spacing:-.025em;line-height:1.1;margin-bottom:20px}
.why-list{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:0}
.why-list li{padding:15px 0;border-top:1px solid var(--border-dark);display:flex;gap:16px;align-items:baseline}
.why-list li:last-child{border-bottom:1px solid var(--border-dark)}
.why-list b{flex:none;width:104px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brass-500)}
.why-list span{font-size:.9375rem;line-height:1.55;color:rgba(238,242,247,.92)}

/* ---------- metric cards + quote ---------- */
.out-grid{display:grid;gap:clamp(2rem,4vw,3.5rem)}
.out-l,.out-r{min-width:0}
@media(min-width:1024px){
  .out-grid{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4.5rem)}
  .out-l{grid-column:span 5}
  .out-r{grid-column:span 7}
}
.mcards{display:grid;gap:16px}
@media(min-width:560px){.mcards{grid-template-columns:1fr 1fr}}
.mcard{border:1px solid var(--border-light);border-radius:var(--radius-medium);padding:24px;background:var(--paper)}
.mcard-val{
  font-family:var(--font-display);font-weight:800;font-size:clamp(2.25rem,4vw,3rem);
  line-height:.95;letter-spacing:-.04em;color:var(--ink-500);font-variant-numeric:tabular-nums;
}
.mcard h3{font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;margin:14px 0 6px}
.mcard p{font-size:.8125rem;line-height:1.55;color:var(--ink-700);letter-spacing:.01em}
.mcard .chip{margin-top:14px}
.quote{
  border-top:2px solid var(--ink-950);padding-top:28px;margin-top:28px;
}
.quote blockquote{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.32;letter-spacing:-.02em;color:var(--ink-700)}
.quote figcaption{margin-top:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ---------- coverage + access ---------- */
.cov{display:grid;gap:clamp(2rem,4vw,3rem)}
.cov-l,.cov-r{min-width:0}
@media(min-width:1024px){
  .cov{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4rem)}
  .cov-l{grid-column:span 7}
  .cov-r{grid-column:span 5}
}
.checker{
  border:1px solid var(--border-light);border-radius:var(--radius-large);
  padding:clamp(24px,3vw,36px);background:var(--paper);box-shadow:var(--shadow-card);
}
.field{display:grid;gap:8px;margin-bottom:16px}
.field label{font-size:.875rem;font-weight:700;letter-spacing:.01em}
.field input,.field select,.field textarea{
  min-height:56px;border:1px solid var(--border-light);border-radius:var(--radius-medium);
  padding:0 16px;font-family:var(--font-body);font-size:1rem;background:var(--paper);
  color:var(--ink-950);width:100%;transition:border-color var(--motion-fast),box-shadow var(--motion-fast);
}
.field textarea{padding:14px 16px;min-height:104px;line-height:1.6;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--brand-700);box-shadow:0 0 0 3px rgba(17,78,142,.16);
}
.field .hint{font-size:.8125rem;color:var(--ink-700);letter-spacing:.01em}
.field[data-invalid="true"] input,.field[data-invalid="true"] select{border-color:var(--danger-700);box-shadow:0 0 0 3px rgba(157,49,42,.12)}
.err{display:none;font-size:.8125rem;font-weight:600;color:var(--danger-700);letter-spacing:.01em;align-items:center;gap:7px}
/* Form-level notice: transport failure, or the server rejecting a submission. */
.form-note{
  margin:0 0 18px;padding:14px 16px;border-radius:var(--radius-small);
  border:1px solid var(--danger-700);background:#FCF1F0;
  font-size:.875rem;font-weight:600;line-height:1.55;color:var(--danger-700);
}
.field[data-invalid="true"] .err{display:flex}
.checker-row{display:grid;gap:12px}
@media(min-width:520px){.checker-row{grid-template-columns:1fr auto;align-items:start}}
.checker-row .btn{min-height:56px}
.result{
  margin-top:20px;padding:18px 20px;border-radius:var(--radius-medium);
  border:1px solid var(--border-light);background:var(--band-soft);display:none;gap:14px;align-items:flex-start;
}
.result[data-state]{display:flex}
.result[data-state="in"]{border-color:#BBD6C6;background:#EDF5F0}
.result[data-state="out"]{border-color:#E4D5AE;background:var(--brass-100)}
.result svg{flex:none;margin-top:2px}
.result[data-state="in"] svg{color:var(--success-700)}
.result[data-state="out"] svg{color:var(--warning-700)}
.result b{display:block;font-family:var(--font-display);font-weight:700;font-size:1rem;margin-bottom:4px}
.result p{font-size:.875rem;line-height:1.55;color:var(--ink-700)}
.access{display:grid;gap:0;border-top:1px solid var(--border-light);margin-top:6px}
.access div{padding:18px 0;border-bottom:1px solid var(--border-light)}
.access h3{font-family:var(--font-display);font-size:1.0625rem;font-weight:700;letter-spacing:-.012em;margin-bottom:7px}
.access p{font-size:.9375rem;line-height:1.6;color:var(--ink-700);max-width:46ch}

/* ---------- closing CTA (§15.9) ---------- */
.cta{position:relative;overflow:hidden}
.cta-in{position:relative;z-index:1;display:grid;gap:clamp(2rem,4vw,3rem)}
.cta-l,.cta-r{min-width:0}
@media(min-width:1024px){
  .cta-in{grid-template-columns:repeat(12,1fr);align-items:end;gap:clamp(2rem,4vw,4rem)}
  .cta-l{grid-column:span 7}
  .cta-r{grid-column:span 5}
}
.cta h2{font-size:var(--type-page-title);font-weight:800;line-height:.98;letter-spacing:-.04em;max-width:13ch}
.cta .lead{margin-top:24px;max-width:46ch;color:rgba(238,242,247,.88)}
.cta-tel{
  display:flex;flex-direction:column;gap:6px;padding-bottom:26px;
  margin-bottom:26px;border-bottom:1px solid var(--border-dark);
}
.cta-tel span{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.13em;color:var(--brass-500)}
.cta-tel a{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;
  font-size:clamp(1.75rem,3.4vw,2.5rem);text-decoration:none;color:var(--paper);
  font-variant-numeric:tabular-nums;width:fit-content;
}
.cta-tel a:hover{color:var(--brass-500)}
.cta-actions{display:grid;gap:12px}
@media(min-width:480px){.cta-actions{grid-template-columns:1fr 1fr}}

/* ---------- footer ---------- */
/* Inner top padding raised to 100px so the footer reads taller under the pre-footer CTA. */
.footer{background:var(--brand-950);color:rgba(238,242,247,.78);padding-block:100px 2rem}
.footer .brand img{height:30px}
.footer-grid{display:grid;gap:36px}
@media(min-width:760px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer h3{font-family:var(--font-body);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--brass-500);margin-bottom:16px}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.footer a{text-decoration:none;font-size:.9375rem;display:inline-block;min-height:28px}
.footer a:hover{color:var(--paper)}
.footer .brand{color:var(--paper);font-size:1.25rem;margin-bottom:16px}
.footer-note{font-size:.8125rem;line-height:1.65;max-width:46ch;letter-spacing:.01em}
.footer-base{
  margin-top:clamp(2.5rem,4vw,3.5rem);padding-top:22px;border-top:1px solid var(--border-dark);
  display:flex;flex-wrap:wrap;gap:12px 28px;font-size:.8125rem;letter-spacing:.01em;
}

/* ---------- booking dialog (§19.3) ---------- */
dialog{
  border:0;padding:0;background:transparent;max-width:100%;max-height:100%;
  width:100%;height:100%;margin:0;
}
dialog::backdrop{background:rgba(4,20,35,.62)}
.modal-wrap{min-height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0}
@media(min-width:768px){.modal-wrap{align-items:center;padding:32px}}
.modal{
  background:var(--paper);width:min(100%,680px);border-radius:var(--radius-large) var(--radius-large) 0 0;
  padding:28px var(--gutter) 32px;max-height:92vh;overflow-y:auto;
}
@media(min-width:768px){.modal{border-radius:var(--radius-large);padding:40px}}
.modal-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}
.modal-top h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;letter-spacing:-.03em;line-height:1.08}
.modal-top p{font-size:.9375rem;color:var(--ink-700);margin-top:10px;line-height:1.6}
.modal-x{
  margin-left:auto;flex:none;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--border-light);background:var(--paper);cursor:pointer;font-size:1.125rem;line-height:1;
}
.modal-x:hover{background:var(--band)}
.grid2{display:grid;gap:0 16px}
@media(min-width:560px){.grid2{grid-template-columns:1fr 1fr}}
.phi{
  display:flex;gap:12px;padding:15px 18px;border-radius:var(--radius-medium);
  background:var(--band);border:1px solid var(--border-light);margin:6px 0 22px;
}
.phi svg{flex:none;margin-top:2px;color:var(--warning-700)}
.phi p{font-size:.8125rem;line-height:1.6;color:var(--ink-700)}
.modal-actions{display:grid;gap:12px;margin-top:8px}
@media(min-width:560px){.modal-actions{grid-template-columns:auto auto;justify-content:start;align-items:center}}
.modal-actions .small{margin:0}
.confirm{display:none;text-align:left}
.confirm[data-on="true"]{display:block}
.confirm-mark{width:56px;height:56px;border-radius:50%;background:#EDF5F0;display:grid;place-items:center;color:var(--success-700);margin-bottom:22px}
.confirm h3{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.12;margin-bottom:14px}
.confirm p{font-size:.9375rem;line-height:1.65;color:var(--ink-700);max-width:48ch;margin-bottom:20px}
.confirm dl{display:grid;gap:0;border-top:1px solid var(--border-light);margin:0 0 24px}
.confirm dl>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--border-light);font-size:.875rem}
.confirm dt{color:var(--ink-700)}
.confirm dd{margin:0;font-weight:700;text-align:right}
form[data-on="false"]{display:none}

/* ---------- entrance motion (§21.2) ---------- */
.rise{opacity:0;transform:translateY(18px);transition:opacity var(--motion-slow) var(--ease-standard),transform var(--motion-slow) var(--ease-standard)}
.rise.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  .rise{opacity:1;transform:none}
  .drawer{transition:none}
}

/* ============================================================
   PART 2 — PAGE SYSTEMS
   ============================================================ */

/* ---------- interior page hero (§11.4) ---------- */
.phero{
  position:relative;overflow:hidden;
  padding-block:calc(76px + clamp(2.75rem,6vw,4.5rem)) clamp(3rem,6vw,4.75rem);
}
@media(min-width:1024px){.phero{padding-block:calc(88px + 4.5rem) 5.5rem}}
.phero .container-wide{position:relative;z-index:1}
.crumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:26px;
  font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:rgba(238,242,247,.62);
}
.crumb a{text-decoration:none;min-height:28px;display:inline-flex;align-items:center}
.crumb a:hover{color:var(--brass-500)}
.crumb span[aria-current]{color:var(--brass-500)}
.phero h1{font-size:var(--type-page-title);font-weight:800;line-height:1;letter-spacing:-.04em;max-width:16ch}
.phero .lead{margin-top:26px;max-width:54ch;color:rgba(238,242,247,.9)}
.phero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.phero-grid{display:grid;gap:clamp(2.5rem,5vw,3.5rem)}
.phero-l,.phero-r{min-width:0}
@media(min-width:1024px){
  .phero-grid{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4.5rem);align-items:center}
  .phero-l{grid-column:span 7}
  .phero-r{grid-column:span 5}
}
/* operational hero variant — oversized metric instead of media (§11.4.5) */
.phero-metric{
  border-left:2px solid var(--brass-600);padding-left:clamp(20px,3vw,32px);
}
.phero-metric b{
  display:block;font-family:var(--font-display);font-weight:800;
  font-size:var(--type-metric);line-height:.86;letter-spacing:-.045em;color:var(--paper);
  font-variant-numeric:tabular-nums;
}
.phero-metric b i{font-style:normal;font-size:.4em;margin-left:.1em;color:var(--brass-500)}
/* a phone number is 14 characters, not 2 — it cannot take the metric size */
.phero-metric--tel b{font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.05;letter-spacing:-.03em}
.phero-metric--tel a{color:inherit;text-decoration:none;display:inline-block;word-break:break-word}
.phero-metric--tel a:hover{color:var(--brass-500)}
.phero-metric p{margin-top:16px;font-size:.9375rem;line-height:1.6;color:rgba(238,242,247,.82);max-width:30ch}
.phero-frame{
  border-radius:var(--radius-feature) var(--radius-medium) var(--radius-medium) var(--radius-medium);
  overflow:hidden;background:var(--brand-800);aspect-ratio:4/3;
}
.phero-frame img{width:100%;height:100%;object-fit:cover}

/* ---------- specification presentation (§16.2) ---------- */
.spec-layout{display:grid;gap:clamp(2rem,4vw,3rem)}
.spec-nav,.spec-body{min-width:0}
@media(min-width:1024px){
  .spec-layout{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4rem);align-items:start}
  .spec-nav{grid-column:span 3;position:sticky;top:112px}
  .spec-body{grid-column:span 9}
}
.spec-nav ol{list-style:none;margin:0;padding:0;display:grid;gap:0;border-left:1px solid var(--border-light)}
.spec-nav a{
  display:block;padding:11px 0 11px 18px;margin-left:-1px;text-decoration:none;
  font-size:.875rem;font-weight:600;letter-spacing:.01em;color:var(--ink-700);
  border-left:2px solid transparent;transition:color var(--motion-fast),border-color var(--motion-fast);
}
.spec-nav a:hover{color:var(--ink-950)}
.spec-nav a[aria-current="true"]{color:var(--brand-700);border-left-color:var(--brand-700);font-weight:700}
.spec-nav .spec-nav-label{
  font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:var(--brass-700);margin-bottom:14px;
}
.spec-group{margin-bottom:clamp(2.5rem,4vw,3.5rem);scroll-margin-top:120px}
.spec-group:last-child{margin-bottom:0}
.spec-group>h3{
  font-size:clamp(1.5rem,2.4vw,1.875rem);font-weight:750;letter-spacing:-.025em;
  line-height:1.1;padding-bottom:16px;border-bottom:2px solid var(--ink-950);
}
.spec-group>p{margin-top:16px;font-size:.9375rem;line-height:1.65;color:var(--ink-700);max-width:62ch}
.spec-table{width:100%;border-collapse:collapse;margin-top:22px;font-size:.9375rem}
.spec-table caption{text-align:left;font-size:.8125rem;color:var(--ink-700);padding-bottom:12px;letter-spacing:.01em}
.spec-table th,.spec-table td{
  text-align:left;padding:16px 18px 16px 0;border-bottom:1px solid var(--border-light);
  vertical-align:top;line-height:1.55;
}
.spec-table thead th{
  font-family:var(--font-body);font-size:.6875rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.11em;color:var(--ink-700);border-bottom:1px solid var(--ink-950);padding-top:0;
}
.spec-table tbody th{font-weight:700;width:38%;color:var(--ink-950)}
.spec-table td{color:var(--ink-700);font-variant-numeric:tabular-nums}
.spec-table td:last-child,.spec-table th:last-child{padding-right:0}
.spec-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- service pillars (§17.2) ---------- */
.pillars{display:grid;gap:20px}
@media(min-width:900px){.pillars{grid-template-columns:repeat(3,1fr);gap:24px}}
.pillar{
  display:flex;flex-direction:column;gap:14px;padding:clamp(28px,3.2vw,40px);
  border:1px solid var(--border-light);border-radius:var(--radius-large);background:var(--paper);
}
.pillar--dark{background:var(--brand-900);border-color:transparent;color:var(--surface-100)}
.pillar--dark h3,.pillar--dark .pillar-n{color:var(--paper)}
.pillar--dark p{color:rgba(238,242,247,.84)}
.pillar--dark .pillar-list li{border-color:var(--border-dark);color:rgba(238,242,247,.92)}
.pillar--dark .pillar-list svg{color:var(--brass-500)}
.pillar--dark .link-arrow{color:var(--brass-500)}
.pillar--band{background:var(--band);border-color:transparent}
.pillar-n{
  font-family:var(--font-display);font-weight:800;font-size:clamp(2.5rem,4vw,3.25rem);
  line-height:.85;letter-spacing:-.04em;color:var(--brass-600);font-variant-numeric:tabular-nums;
}
.pillar h3{font-size:clamp(1.375rem,2vw,1.6rem);font-weight:700;letter-spacing:-.02em;line-height:1.14;margin-top:6px}
.pillar>p{font-size:.9375rem;line-height:1.62;color:var(--ink-700)}
.pillar-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:0}
.pillar-list li{
  display:flex;gap:11px;align-items:flex-start;padding:12px 0;
  border-top:1px solid var(--border-light);font-size:.875rem;line-height:1.5;
}
.pillar-list svg{flex:none;margin-top:3px;color:var(--brand-700)}
.pillar .link-arrow{margin-top:auto;padding-top:10px}

/* ---------- commitment table (§17.3) ---------- */
.ctable{width:100%;border-collapse:collapse;font-size:.9375rem}
.ctable caption{
  text-align:left;font-size:.8125rem;color:var(--ink-700);
  padding-bottom:14px;letter-spacing:.01em;
}
.ctable th,.ctable td{text-align:left;padding:22px 20px 22px 0;border-bottom:1px solid var(--border-light);vertical-align:top;line-height:1.55}
.ctable thead th{
  font-family:var(--font-body);font-size:.6875rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.11em;color:var(--ink-700);border-bottom:2px solid var(--ink-950);padding-top:0;
}
.ctable tbody th{
  font-family:var(--font-display);font-weight:700;font-size:1.0625rem;
  letter-spacing:-.012em;color:var(--ink-950);width:30%;
}
.ctable td{color:var(--ink-700)}
.ctable .ct-val{
  font-family:var(--font-display);font-weight:800;font-size:1.25rem;letter-spacing:-.02em;
  color:var(--ink-950);white-space:nowrap;font-variant-numeric:tabular-nums;
}
.ctable td:last-child,.ctable th:last-child{padding-right:0}

/* ---------- about: story + leadership + values (§18) ---------- */
.story{display:grid;gap:clamp(2rem,4vw,3rem)}
.story-l,.story-r{min-width:0}
@media(min-width:1024px){
  .story{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4.5rem);align-items:start}
  .story-l{grid-column:span 7}
  .story-r{grid-column:span 5;position:sticky;top:120px}
}
.story-body{display:grid;gap:22px;max-width:64ch}
.story-body p{font-size:1.0625rem;line-height:1.72;color:var(--ink-700)}
.story-body p strong{color:var(--ink-950);font-weight:700}
.story-media{border-radius:var(--radius-large);overflow:hidden;aspect-ratio:4/5;background:var(--brand-900)}
.story-media img{width:100%;height:100%;object-fit:cover}

.leaders{display:grid;gap:20px}
@media(min-width:700px){.leaders{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.leaders{grid-template-columns:repeat(3,1fr);align-items:start}}
.leader{
  border:1px solid var(--border-light);border-radius:var(--radius-large);
  padding:clamp(26px,3vw,34px);display:flex;flex-direction:column;gap:14px;background:var(--paper);
}
@media(min-width:1100px){.leader:nth-child(2){margin-top:36px}}
.leader--band{background:var(--band);border-color:transparent}
.leader-mark{
  width:52px;height:52px;border-radius:var(--radius-medium);display:grid;place-items:center;
  background:var(--brand-900);color:var(--brass-500);font-family:var(--font-display);
  font-weight:800;font-size:1rem;letter-spacing:.04em;
}
.leader h3{font-size:1.25rem;font-weight:700;letter-spacing:-.018em;line-height:1.2}
.leader-role{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brass-700)}
.leader p{font-size:.9375rem;line-height:1.62;color:var(--ink-700)}
.leader dl{margin:4px 0 0;display:grid;gap:0;border-top:1px solid var(--border-light)}
.leader dl>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--border-light);font-size:.8125rem}
.leader dt{color:var(--ink-700)}
.leader dd{margin:0;font-weight:700;text-align:right}
.leader--band dl,.leader--band dl>div{border-color:#C6D2E0}

.values{display:grid;gap:0;border-top:2px solid var(--ink-950)}
.value{
  display:grid;gap:12px;padding:clamp(26px,3vw,34px) 0;border-bottom:1px solid var(--border-light);
}
@media(min-width:900px){.value{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,4vw,4rem);align-items:start}}
.value-n{
  font-family:var(--font-display);font-weight:800;font-size:.875rem;letter-spacing:.06em;
  color:var(--brass-600);font-variant-numeric:tabular-nums;margin-bottom:10px;
}
.value h3{font-size:clamp(1.375rem,2.2vw,1.75rem);font-weight:750;letter-spacing:-.025em;line-height:1.12}
.value p{font-size:.9375rem;line-height:1.68;color:var(--ink-700);max-width:56ch}
.value p+p{margin-top:12px}
.value-obs{
  margin-top:14px;padding-left:16px;border-left:2px solid var(--brass-600);
  font-size:.875rem;line-height:1.6;color:var(--ink-950);font-weight:500;
}

/* ---------- document cards (§14.5, §15.8) ---------- */
.docbar{
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(2rem,3vw,2.5rem);
  padding-bottom:22px;border-bottom:1px solid var(--border-light);align-items:center;
}
.docbar-label{
  font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ink-700);margin-right:6px;
}
.filter{
  min-height:44px;padding:0 18px;border-radius:var(--radius-pill);cursor:pointer;
  border:1px solid var(--border-light);background:var(--paper);
  font-size:.875rem;font-weight:600;letter-spacing:.01em;color:var(--ink-700);
  transition:border-color var(--motion-fast),background var(--motion-fast),color var(--motion-fast);
}
.filter:hover{border-color:var(--brand-700);color:var(--ink-950)}
.filter[aria-pressed="true"]{background:var(--brand-700);border-color:var(--brand-700);color:var(--paper)}
.docs{display:grid;gap:0;border-top:1px solid var(--border-light)}
.doc{
  display:grid;gap:14px;padding:24px 0;border-bottom:1px solid var(--border-light);align-items:center;
}
@media(min-width:768px){
  .doc{grid-template-columns:auto minmax(0,1fr) auto auto;gap:24px}
}
.doc[hidden]{display:none}
.doc-icon{
  width:44px;height:44px;border-radius:var(--radius-small);display:grid;place-items:center;
  background:var(--band);color:var(--brand-700);flex:none;
}
.doc-main h3{font-size:1.0625rem;font-weight:700;letter-spacing:-.012em;line-height:1.3}
.doc-meta{
  display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:7px;
  font-size:.8125rem;color:var(--ink-700);letter-spacing:.01em;
}
.doc-meta b{font-weight:700;color:var(--ink-950);font-variant-numeric:tabular-nums}
.doc-state{display:flex;align-items:center}
.doc-act{display:flex;align-items:center}
.doc-act .link-arrow{font-size:.875rem}

/* ---------- contact layout (§19.2) ---------- */
.contact{display:grid;gap:clamp(2.5rem,4vw,3.5rem)}
.contact-l,.contact-r{min-width:0}
@media(min-width:1024px){
  .contact{grid-template-columns:repeat(12,1fr);gap:clamp(2.5rem,4vw,4.5rem);align-items:start}
  .contact-l{grid-column:span 5}
  .contact-r{grid-column:span 7}
}
.contact-form{
  border:1px solid var(--border-light);border-radius:var(--radius-large);
  padding:clamp(26px,3vw,40px);background:var(--paper);box-shadow:var(--shadow-card);
}
.ccard{
  border-top:1px solid var(--border-light);padding:22px 0;display:grid;gap:8px;
}
.ccard:first-of-type{border-top:2px solid var(--ink-950)}
.ccard-type{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--brass-700)}
.ccard-value{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.028em;line-height:1.08;
  font-size:clamp(1.5rem,2.6vw,2rem);text-decoration:none;color:var(--ink-950);
  width:fit-content;font-variant-numeric:tabular-nums;word-break:break-word;
}
a.ccard-value:hover{color:var(--brand-700)}
.ccard p{font-size:.875rem;line-height:1.6;color:var(--ink-700);max-width:42ch}
.ccard-when{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.8125rem;color:var(--ink-700);letter-spacing:.01em}
.ccard-when b{color:var(--ink-950);font-weight:700}
/* persistent phone action on mobile (§19.2) */
.telbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:10px;
  padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
  background:var(--brand-950);border-top:1px solid var(--border-dark);
}
@media(min-width:1024px){.telbar{display:none}}
.telbar .btn{flex:1;min-height:52px}
.telbar~.footer{padding-bottom:calc(2rem + 84px)}
@media(min-width:1024px){.telbar~.footer{padding-bottom:2rem}}

/* ---------- overview / launcher ---------- */
.screens{display:grid;gap:18px}
@media(min-width:700px){.screens{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.screens{grid-template-columns:repeat(3,1fr)}}
.screen{
  display:flex;flex-direction:column;gap:12px;text-decoration:none;
  border:1px solid var(--border-light);border-radius:var(--radius-large);
  padding:clamp(24px,3vw,32px);background:var(--paper);
  transition:box-shadow var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast);
}
.screen:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);border-color:transparent}
.screen--dark{background:var(--brand-900);border-color:transparent;color:var(--surface-100)}
.screen--dark h3{color:var(--paper)}
.screen--dark p{color:rgba(238,242,247,.82)}
.screen--dark .screen-n{color:var(--brass-500)}
.screen-n{
  font-family:var(--font-display);font-weight:800;font-size:.875rem;letter-spacing:.06em;
  color:var(--brass-600);font-variant-numeric:tabular-nums;
}
.screen h3{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;line-height:1.16}
.screen p{font-size:.9375rem;line-height:1.6;color:var(--ink-700)}
.screen-file{
  margin-top:auto;padding-top:12px;font-size:.75rem;font-weight:600;letter-spacing:.04em;
  color:var(--ink-700);font-family:var(--font-body);
}
.screen--dark .screen-file{color:rgba(238,242,247,.6)}
