/* ============================================================
   MILLER CRANE WORKS — "Industrial Trust" design system
   Source of truth: Miller-New design language (June 2026).
   Multi-page adaptation for the offline demo site.
   ============================================================ */

/* ---------- Fonts (local, offline) ---------- */
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:400; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:500; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:600; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:700; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:800; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'Archivo'; font-style:normal; font-weight:900; font-stretch:100%; font-display:swap;
  src:url("../fonts/archivo-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:400; font-stretch:100%; font-display:swap;
  src:url("../fonts/plex-sans-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:500; font-stretch:100%; font-display:swap;
  src:url("../fonts/plex-sans-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:600; font-stretch:100%; font-display:swap;
  src:url("../fonts/plex-sans-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Sans'; font-style:normal; font-weight:700; font-stretch:100%; font-display:swap;
  src:url("../fonts/plex-sans-var-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/plex-mono-400-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url("../fonts/plex-mono-500-latin.woff2") format('woff2'); }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap;
  src:url("../fonts/plex-mono-600-latin.woff2") format('woff2'); }

/* ---------- Tokens ---------- */
:root{
  /* Brand / accents */
  --hivis:      #FFB200;   /* safety amber — primary brand accent */
  --hivis-deep: #D98800;
  --hivis-soft: #FFF3D6;
  --steel:      #2D6CB5;   /* trust blue — verification + links */
  --steel-deep: #1F4E86;
  --steel-soft: #E4EDF8;
  --verify:     #15894E;   /* verified green */
  --verify-soft:#DDF1E6;
  --alert:      #D8412F;
  --alert-soft: #FBE3DF;
  --warn:       #E08A00;
  --warn-soft:  #FBEACB;

  /* Ink / neutrals (warm asphalt) */
  --ink:    #16181C;
  --ink-2:  #23272E;
  --ink-3:  #32373F;
  --slate:  #565E69;
  --slate-2:#878F9C;
  --line:   #E5E2D9;
  --line-2: #D7D3C7;
  --paper:  #F7F5EF;
  --paper-2:#EFECE3;
  --card:   #FFFFFF;

  /* Type */
  --display: 'Archivo', system-ui, sans-serif;
  --body: 'IBM Plex Sans', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, monospace;

  /* Geometry */
  --r-sm: 6px; --r: 12px; --r-lg: 20px; --r-xl: 28px;
  --shadow-sm: 0 1px 2px rgba(20,22,26,.06), 0 2px 6px rgba(20,22,26,.05);
  --shadow: 0 4px 14px rgba(20,22,26,.08), 0 12px 32px rgba(20,22,26,.07);
  --shadow-lg: 0 18px 48px rgba(20,22,26,.16);
  --maxw: 1180px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; scroll-padding-top: 76px; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.62;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
::selection{ background:var(--hivis); color:var(--ink); }

h1,h2,h3,h4{ font-family:var(--display); font-weight:800; letter-spacing:-.02em; line-height:1.05; margin:0; color:var(--ink); }
p{ margin:0 0 1em; color:var(--ink-2); }
p:last-child{ margin-bottom:0; }
a{ color:var(--steel); text-decoration:none; }
strong{ font-weight:600; color:var(--ink); }
small{ font-size:.82em; }
img{ max-width:100%; display:block; }

.mono{ font-family:var(--mono); }
.up{ text-transform:uppercase; letter-spacing:.14em; }

/* ---------- Layout ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.section{ padding:104px 0; position:relative; }
.section--site{ padding:88px 0; }
.section--tight{ padding:56px 0; }
@media(max-width:760px){ .section--site{ padding:60px 0; } .section{ padding:72px 0; } }

.eyebrow{
  font-family:var(--mono); font-size:12.5px; font-weight:600;
  text-transform:uppercase; letter-spacing:.2em; color:var(--hivis-deep);
  display:inline-flex; align-items:center; gap:10px; margin-bottom:20px;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--hivis); display:inline-block; }
.section-title{ font-size:clamp(30px,4.6vw,52px); max-width:20ch; }
.section-lead{ font-size:20px; line-height:1.55; color:var(--slate); max-width:62ch; margin-top:22px; }
.lede-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:30px; flex-wrap:wrap; }

/* ---------- Utility top bar ---------- */
.ubar{ background:var(--ink); color:#C9CFD8; font-family:var(--mono);
  font-size:12px; letter-spacing:.04em; }
.ubar__in{ max-width:var(--maxw); margin:0 auto; padding:8px 32px;
  display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.ubar a{ color:#C9CFD8; transition:.15s; }
.ubar a:hover{ color:var(--hivis); }
.ubar__dot{ width:6px; height:6px; border-radius:99px; background:var(--hivis); flex:none; }
.ubar__spacer{ margin-left:auto; }
.ubar__soc{ display:inline-flex; gap:14px; }
@media(max-width:720px){
  .ubar__hide, .ubar__dot{ display:none; }
  .ubar{ font-size:11px; }
  .ubar__in{ padding:7px 16px; gap:12px; flex-wrap:nowrap; }
  .ubar__in > span:not(.ubar__soc){ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
}

/* ---------- Sticky nav ---------- */
.nav{
  position:sticky; top:0; z-index:50; background:rgba(247,245,239,.86);
  backdrop-filter:saturate(1.4) blur(14px); border-bottom:1px solid var(--line);
}
.nav__in{ max-width:var(--maxw); margin:0 auto; padding:0 32px; height:64px;
  display:flex; align-items:center; gap:24px; }
.brand{ display:flex; align-items:center; gap:11px; font-family:var(--display);
  font-weight:800; font-size:16.5px; letter-spacing:-.01em; text-decoration:none; }
.brand__mark{ width:42px; height:42px; flex:none; }
.lockup__wm{ display:flex; flex-direction:column; line-height:1; }
.lockup__m{ font-family:var(--display); font-weight:900; font-size:20px; letter-spacing:.01em; color:var(--ink); }
.lockup__cw{ font-family:var(--mono); font-weight:600; font-size:8.5px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--slate); margin-top:4px; }
.foot .lockup__m{ color:var(--hivis); }
.foot .lockup__cw{ color:var(--slate-2); }
.nav__links{ display:flex; gap:4px; margin-left:auto; overflow-x:auto; scrollbar-width:none; }
.nav__links::-webkit-scrollbar{ display:none; }
.nav__links a{ font-size:13.5px; font-weight:500; color:var(--slate); padding:7px 12px;
  border-radius:99px; white-space:nowrap; transition:.16s; }
.nav__links a:hover{ color:var(--ink); background:var(--paper-2); }
.nav__links a.active{ background:var(--ink); color:var(--paper); }
.nav__cta{ display:flex; align-items:center; gap:16px; margin-left:12px; }
.nav__cta .btn--primary{ padding:9px 17px; font-size:13.5px; white-space:nowrap; }
.navphone{ display:inline-flex; align-items:center; gap:7px; font-family:var(--display); font-weight:800;
  font-size:14px; color:var(--ink); white-space:nowrap; transition:.15s; }
.navphone svg{ color:var(--hivis-deep); flex:none; }
.navphone span{ border-bottom:2px solid var(--hivis); padding-bottom:1px; }
.navphone:hover{ color:var(--hivis-deep); }
.navtoggle{ display:none; background:none; border:1px solid var(--line-2); border-radius:10px;
  width:42px; height:38px; cursor:pointer; align-items:center; justify-content:center; margin-left:auto; }
.navtoggle svg{ stroke:var(--ink); }
@media(max-width:1080px){
  .nav__links{ display:none; }
  .navtoggle{ display:inline-flex; }
}
@media(max-width:560px){ .nav__cta .navphone{ display:none; } }

/* mobile drawer */
.drawer{ position:fixed; inset:0; z-index:90; background:rgba(20,22,26,.5); overflow:hidden;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s, visibility .2s; }
.drawer.open{ opacity:1; visibility:visible; pointer-events:auto; }
.drawer__panel{ position:absolute; top:0; right:0; bottom:0; width:min(86vw,360px);
  background:var(--paper); padding:26px 24px; transform:translateX(100%); transition:.26s cubic-bezier(.3,.7,.2,1);
  display:flex; flex-direction:column; gap:6px; overflow-y:auto; }
.drawer.open .drawer__panel{ transform:none; }
.drawer__panel a{ font-family:var(--display); font-weight:700; font-size:18px; color:var(--ink);
  padding:13px 10px; border-bottom:1px solid var(--line); }
.drawer__close{ align-self:flex-end; background:none; border:none; cursor:pointer; margin-bottom:8px; }

/* ---------- Hazard band ---------- */
.hazard{ height:8px; width:100%;
  background:repeating-linear-gradient(-45deg, var(--hivis) 0 18px, var(--ink) 18px 36px); }
.hazard--thin{ height:5px; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--body);
  font-weight:600; font-size:15px; padding:13px 22px; border-radius:99px;
  border:1px solid transparent; cursor:pointer; transition:.18s; text-decoration:none; }
.btn--primary{ background:var(--hivis); color:var(--ink); }
.btn--primary:hover{ background:var(--hivis-deep); transform:translateY(-1px); }
.btn--dark{ background:var(--ink); color:#fff; }
.btn--dark:hover{ background:var(--ink-3); }
.btn--ghost{ background:transparent; border-color:var(--line-2); color:var(--ink); }
.btn--ghost:hover{ border-color:var(--ink); }
.btn--ondark{ background:transparent; border-color:#3a414b; color:#fff; }
.btn--ondark:hover{ border-color:var(--hivis); color:var(--hivis); }

/* ---------- Pills / chips ---------- */
.chip{ display:inline-flex; align-items:center; gap:7px; font-family:var(--mono);
  font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  padding:5px 11px; border-radius:99px; white-space:nowrap; }
.chip--verify{ background:var(--verify-soft); color:var(--verify); }
.chip--warn{ background:var(--warn-soft); color:var(--warn); }
.chip--alert{ background:var(--alert-soft); color:var(--alert); }
.chip--steel{ background:var(--steel-soft); color:var(--steel-deep); }
.chip--ink{ background:var(--ink); color:#fff; }
.chip--hivis{ background:var(--hivis); color:var(--ink); }
.chip__dot{ width:7px; height:7px; border-radius:99px; background:currentColor; }

/* ---------- Cards / grids ---------- */
.card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm); }
.grid{ display:grid; gap:22px; }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:980px){ .g3,.g4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:680px){ .g2,.g3,.g4{ grid-template-columns:1fr; } }

/* ---------- Stat ---------- */
.stat__num{ font-family:var(--display); font-weight:900; font-size:clamp(34px,5vw,52px);
  letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.stat__lab{ font-size:14px; color:var(--slate); margin-top:10px; line-height:1.4; }

/* ---------- Breadcrumbs ---------- */
.crumbs{ background:var(--paper-2); border-bottom:1px solid var(--line); }
.crumbs__in{ max-width:var(--maxw); margin:0 auto; padding:10px 32px; font-family:var(--mono);
  font-size:11.5px; letter-spacing:.05em; color:var(--slate); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.crumbs__in a{ color:var(--slate); }
.crumbs__in a:hover{ color:var(--ink); }
.crumbs__in .sep{ color:var(--line-2); }
.crumbs__in .here{ color:var(--ink); font-weight:600; }

/* ---------- Dark hero (home) ---------- */
.hero{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.hero__glow{ position:absolute; right:-180px; top:-140px; width:640px; height:640px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,178,0,.12), transparent 64%); z-index:0; }
.hero__in{ max-width:var(--maxw); margin:0 auto; padding:72px 32px 84px; position:relative; z-index:2;
  display:grid; grid-template-columns:1.08fr .92fr; gap:54px; align-items:center; }
@media(max-width:920px){ .hero__in{ grid-template-columns:1fr; gap:40px; padding:56px 24px 64px; } }
.hero h1{ color:#fff; font-size:clamp(38px,5.6vw,64px); line-height:1; letter-spacing:-.025em;
  max-width:16ch; margin-top:22px; }
.hero h1 em{ font-style:normal; color:var(--hivis); }
.hero__lead{ font-size:clamp(16.5px,1.7vw,20px); color:#B7BEC9; max-width:50ch; margin-top:24px; line-height:1.55; }
.hero__cta{ display:flex; gap:13px; margin-top:34px; flex-wrap:wrap; }
.hero__trust{ display:flex; gap:24px; flex-wrap:wrap; margin-top:40px; padding-top:28px;
  border-top:1px solid #262b32; }
.hero__trust div{ display:flex; flex-direction:column; gap:3px; }
.hero__trust b{ font-family:var(--display); font-weight:800; font-size:15px; color:#fff; }
.hero__trust span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#7E8693; }
.hero__visual{ position:relative; }
.hero__photo{ width:100%; aspect-ratio:4/4.4; border-radius:var(--r-xl); overflow:hidden;
  border:1px solid #2a2f37; background:#0F1115; display:block; }
.hero__photo img{ width:100%; height:100%; object-fit:cover; }
.hero__badge{ position:absolute; left:18px; bottom:18px; background:var(--hivis); color:var(--ink);
  border-radius:var(--r-lg); padding:15px 19px; box-shadow:var(--shadow-lg); max-width:230px; }
.hero__badge .mono{ font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; opacity:.8; }
.hero__count{ font-family:var(--display); font-weight:900; font-size:28px; letter-spacing:-.02em;
  line-height:1; margin-top:6px; font-variant-numeric:tabular-nums; }
.hero__count small{ font-size:13px; font-weight:600; }
@media(max-width:920px){ .hero__badge{ left:auto; right:18px; } }

/* ---------- Inner page hero ---------- */
.phero{ background:var(--ink); color:#fff; position:relative; overflow:hidden; }
.phero__glow{ position:absolute; right:-200px; top:-160px; width:560px; height:560px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,178,0,.10), transparent 64%); }
.phero__in{ max-width:var(--maxw); margin:0 auto; padding:58px 32px 62px; position:relative; z-index:2; }
.phero--split .phero__in{ display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; }
/* A form beside the hero is taller than the text: start both at the top so no empty band opens above the headline (Tiago, 30 Oct 2026). */
.phero--split .phero__in:has(form){ align-items:start; }
.phero--split .phero__in:has(form) > div:first-child{ padding-top:12px; }
@media(max-width:900px){ .phero--split .phero__in{ grid-template-columns:1fr; gap:34px; } }
.phero .eyebrow{ color:var(--hivis); }
.phero h1{ color:#fff; font-size:clamp(32px,4.6vw,52px); max-width:20ch; letter-spacing:-.025em; }
.phero h1 em{ font-style:normal; color:var(--hivis); }
.phero__lead{ font-size:18px; color:#B7BEC9; max-width:56ch; margin-top:20px; line-height:1.55; }
.phero__chips{ display:flex; gap:9px; flex-wrap:wrap; margin-top:22px; }
.phero__chips .chip{ background:#22262d; color:#C9CFD8; border:1px solid #2c3138; }
.phero__chips .chip svg{ color:var(--hivis); }
.phero__cta{ display:flex; gap:13px; margin-top:30px; flex-wrap:wrap; }

/* price card (transparent pricing, on course heroes) */
.pricecard{ background:#fff; color:var(--ink); border-radius:var(--r-xl); padding:28px 30px;
  box-shadow:var(--shadow-lg); position:relative; overflow:hidden; }
.pricecard::before{ content:""; position:absolute; top:0; left:0; right:0; height:6px;
  background:repeating-linear-gradient(-45deg, var(--hivis) 0 14px, var(--ink) 14px 28px); }
.pricecard .mono{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); }
.pricecard__amt{ font-family:var(--display); font-weight:900; font-size:52px; letter-spacing:-.03em; line-height:1; margin:8px 0 2px; }
.pricecard__amt small{ font-size:16px; font-weight:700; color:var(--slate); letter-spacing:0; }
.pricecard__name{ font-size:14.5px; color:var(--slate); margin-bottom:16px; }
.pricecard__rows{ border-top:1px solid var(--line); }
.pricecard__row{ display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px solid var(--line);
  font-size:13.5px; color:var(--ink-2); }
.pricecard__row b{ font-family:var(--mono); font-size:12px; color:var(--slate); font-weight:500; text-transform:uppercase; letter-spacing:.06em; }
.pricecard .btn{ width:100%; justify-content:center; margin-top:18px; }
.pricecard__foot{ font-size:12px; color:var(--slate); margin-top:12px; text-align:center; }

/* ---------- Accreditation strip ---------- */
.accred{ background:#fff; border-bottom:1px solid var(--line); }
.accred__in{ max-width:var(--maxw); margin:0 auto; padding:26px 32px;
  display:grid; grid-template-columns:repeat(4,auto); align-items:center; gap:20px 32px; justify-content:space-between; }
@media(max-width:980px){ .accred__in{ grid-template-columns:repeat(2,minmax(0,1fr)); justify-content:stretch; } }
@media(max-width:560px){ .accred__in{ padding:22px 20px; gap:18px 16px; } }
.accred__item{ display:flex; align-items:center; gap:11px; }
.accred__ic{ width:34px; height:34px; flex:none; border-radius:9px; background:var(--hivis-soft);
  display:flex; align-items:center; justify-content:center; color:var(--hivis-deep); }
.accred__t{ font-family:var(--display); font-weight:700; font-size:14.5px; line-height:1.15; }
.accred__t span{ display:block; font-family:var(--mono); font-weight:500; font-size:10px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--slate-2); margin-top:2px; }

/* ---------- Audience router strip ---------- */
.router{ background:var(--paper); }
.router__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:34px; }
@media(max-width:980px){ .router__grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .router__grid{ grid-template-columns:1fr; } }
.rcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px 24px 22px;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:10px; transition:.18s; text-decoration:none; }
.rcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--line-2); }
.rcard__ic{ width:44px; height:44px; border-radius:12px; background:var(--hivis-soft); color:var(--hivis-deep);
  display:flex; align-items:center; justify-content:center; }
.rcard h3{ font-size:18px; color:var(--ink); }
.rcard p{ font-size:14px; color:var(--slate); margin:0; flex:1; }
.rcard__go{ display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:14px; color:var(--ink); }
.rcard__go svg{ transition:.16s; }
.rcard:hover .rcard__go svg{ transform:translateX(3px); }

/* ---------- Course cards ---------- */
.coursegrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
@media(max-width:980px){ .coursegrid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:620px){ .coursegrid{ grid-template-columns:1fr; } }
.ccard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; transition:.18s; text-decoration:none; }
.ccard:hover, .ccard:focus-visible{ transform:translateY(-3px); box-shadow:var(--shadow), 0 0 0 2px var(--hivis); border-color:var(--hivis); outline:none; }
.ccard__img{ aspect-ratio:16/9; background:var(--ink); position:relative; overflow:hidden; }
.ccard__img img{ width:100%; height:100%; object-fit:cover; }
.ccard__std{ position:absolute; top:12px; left:12px; }
.ccard__hrs{ position:absolute; top:12px; right:12px; background:var(--ink); color:#fff;
  font-family:var(--mono); font-size:10.5px; font-weight:600; letter-spacing:.06em; padding:5px 10px; border-radius:99px; }
.ccard__b{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.ccard__b h3{ font-size:19px; color:var(--ink); }
.ccard__b p{ font-size:14px; color:var(--slate); margin:9px 0 0; flex:1; }
.ccard__meta{ display:flex; justify-content:space-between; align-items:center; margin-top:16px; gap:10px; }
.ccard__price{ font-family:var(--display); font-weight:900; font-size:21px; letter-spacing:-.02em; color:var(--ink); }
.ccard__price small{ display:block; font-family:var(--mono); font-weight:500; font-size:9.5px; color:var(--slate);
  text-transform:uppercase; letter-spacing:.08em; margin-top:1px; }
.ccard__link{ display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:14px; color:var(--ink); }
.ccard__link svg{ transition:.16s; }
.ccard:hover .ccard__link svg{ transform:translateX(3px); }
.flag-house{ position:absolute; bottom:12px; left:12px; background:var(--hivis); color:var(--ink);
  font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  padding:5px 10px; border-radius:99px; }

/* ---------- Dark bands ---------- */
.missionband{ background:var(--ink); color:#fff; }
.missionband .eyebrow{ color:var(--hivis); }
.missionband h2{ color:#fff; }
.missionband .section-lead{ color:#9AA3B0; }
.missionband p{ color:#B7BEC9; }
.statgrid{ display:grid; grid-template-columns:repeat(5,1fr); gap:24px; margin-top:48px; }
@media(max-width:1000px){ .statgrid{ grid-template-columns:repeat(2,1fr); } .statgrid > :first-child{ grid-column:1 / -1; } }
.statgrid .stat__lab{ color:#9AA3B0; }

/* ---------- Enrollment steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:48px;
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:#fff; }
@media(max-width:820px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .steps{ grid-template-columns:1fr; } }
.step{ padding:30px 26px; border-right:1px solid var(--line); position:relative; }
.step:last-child{ border-right:none; }
@media(max-width:820px){ .step:nth-child(2){ border-right:none; } }
.step__n{ font-family:var(--display); font-weight:900; font-size:40px; color:var(--hivis-soft);
  line-height:1; -webkit-text-stroke:1.4px var(--hivis-deep); }
.step h3{ font-size:18px; margin:14px 0 8px; }
.step p{ font-size:14px; color:var(--slate); margin:0; }

/* ---------- Trip planner ---------- */
.trip{ background:var(--paper-2); }
.trip__grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; margin-top:42px; align-items:start; }
@media(max-width:920px){ .trip__grid{ grid-template-columns:1fr; gap:32px; } }
.trip__planner{ background:#fff; border:1px solid var(--line); border-radius:var(--r-xl);
  box-shadow:var(--shadow-sm); padding:28px 30px; }
.trip__seg{ display:flex; gap:8px; background:var(--paper); padding:5px; border-radius:99px; margin:6px 0 22px; }
.trip__seg button{ flex:1; border:none; background:none; cursor:pointer; padding:11px; border-radius:99px;
  font-family:var(--body); font-weight:600; font-size:14px; color:var(--slate); transition:.15s; }
.trip__seg button.active{ background:var(--ink); color:#fff; }
.trip__info{ display:none; }
.trip__info.active{ display:block; animation:revealIn .35s; }
.trip__line{ display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); }
.trip__line:last-child{ border-bottom:none; }
.trip__line svg{ flex:none; color:var(--hivis-deep); margin-top:2px; }
.trip__line b{ display:block; font-size:15px; }
.trip__line span{ font-size:13.5px; color:var(--slate); }
.trip__feats{ display:grid; gap:16px; }
.trip__feat{ display:flex; gap:15px; align-items:flex-start; }
.trip__feat .ic{ width:46px; height:46px; border-radius:13px; background:#fff; border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; flex:none; color:var(--hivis-deep); }
.trip__feat h3{ font-size:18px; margin:0 0 5px; }
.trip__feat p{ font-size:14.5px; color:var(--slate); margin:0; }
.trip--compact{ padding:72px 0; }
.trip--compact .trip__grid{ grid-template-columns:1fr 1fr; gap:48px; margin-top:0; }
.trip--compact .section-title{ font-size:clamp(28px,3.4vw,42px); }
.trip--compact .section-lead{ font-size:17px; margin:14px 0 28px; }
.trip--compact .trip__feats{ gap:18px; }
.trip--compact .trip__feat .ic{ width:40px; height:40px; border-radius:11px; }
.trip--compact .trip__feat h3{ font-size:17px; margin-bottom:3px; }
.trip--compact .trip__feat p{ font-size:14px; line-height:1.5; }
.trip--compact .trip__planner{ padding:24px 26px; }
.trip--compact .trip__seg{ display:grid; grid-template-columns:repeat(9,1fr); gap:2px; margin:8px 0 10px; }
.trip--compact .trip__seg button{ padding:9px 0; font-size:13px; }
.trip--compact .trip__line{ padding:12px 0; }
@media(max-width:920px){ .trip--compact .trip__grid{ grid-template-columns:1fr; gap:32px; } }
@media(max-width:560px){ .trip--compact{ padding:56px 0; } .trip--compact .trip__seg{ grid-template-columns:repeat(5,1fr); border-radius:20px; } .trip--compact .trip__planner{ padding:20px 18px; } }

/* ---------- Practice / rentals / countdown ---------- */
.prow{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:48px; }
@media(max-width:760px){ .prow{ grid-template-columns:1fr; } }
.pbox{ border-radius:var(--r-xl); padding:34px 34px; border:1px solid var(--line); }
.pbox--dark{ background:var(--ink); color:#fff; border:none; }
.pbox--dark h3{ color:#fff; }
.pbox--dark p{ color:#B7BEC9; }
.pbox h3{ font-size:24px; margin-bottom:10px; }
.pbox p{ color:var(--slate); margin-bottom:20px; }
.countstrip{ display:flex; gap:16px; margin-top:18px; }
.countcell{ background:#0F1115; border:1px solid #2a2f37; border-radius:14px; padding:16px 10px;
  text-align:center; flex:1; }
.countcell b{ display:block; font-family:var(--display); font-weight:900; font-size:34px; color:var(--hivis);
  line-height:1; font-variant-numeric:tabular-nums; }
.countcell span{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#8a92a0; margin-top:6px; display:block; }
.countcell{ min-width:0; }
@media(max-width:560px){
  .countstrip{ gap:8px; }
  .countcell{ padding:12px 4px; }
  .countcell b{ font-size:24px; }
  .countcell span{ font-size:8.5px; letter-spacing:.06em; }
}
.countnote{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:#8a92a0; margin-top:12px; text-transform:uppercase; }

/* ---------- Review band ---------- */
.tcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:28px 28px;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; }
.tcard__stars{ display:flex; gap:3px; color:var(--hivis); margin-bottom:14px; font-size:18px; letter-spacing:2px; }
.tcard p{ font-size:15.5px; color:var(--ink-2); line-height:1.55; flex:1; }
.revband{ display:flex; align-items:center; gap:34px; flex-wrap:wrap; margin-top:40px; }
.revband__score{ background:var(--ink); color:#fff; border-radius:var(--r-xl); padding:30px 36px; text-align:center; }
.revband__score b{ display:block; font-family:var(--display); font-weight:900; font-size:52px; letter-spacing:-.03em; line-height:1; color:var(--hivis); }
.revband__score span{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#8a92a0; margin-top:8px; display:block; }

/* ---------- News ---------- */
.newsgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:46px; }
@media(max-width:900px){ .newsgrid{ grid-template-columns:1fr; } }
.ncard{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:.16s; text-decoration:none; }
.ncard:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.ncard__img{ aspect-ratio:16/9; background:var(--paper-2); overflow:hidden; }
.ncard__img img{ width:100%; height:100%; object-fit:cover; }
.ncard__b{ padding:20px 22px; }
.ncard__date{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--hivis-deep); }
.ncard__b h3{ font-size:18px; margin:9px 0 0; line-height:1.25; color:var(--ink); }
.ncard__b p{ font-size:13.5px; color:var(--slate); margin:8px 0 0; }

/* ---------- Contact / enroll form ---------- */
.contact{ background:var(--ink); color:#fff; }
.contact__grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; margin-top:42px; }
@media(max-width:900px){ .contact__grid{ grid-template-columns:1fr; gap:36px; } }
.contact h2{ color:#fff; }
.contact .eyebrow{ color:var(--hivis); }
.contact .section-lead{ color:#9AA3B0; }
.cinfo{ display:grid; gap:4px; }
.cinfo__item{ display:flex; gap:15px; padding:18px 0; border-bottom:1px solid #262b32; }
.cinfo__item svg{ flex:none; color:var(--hivis); margin-top:2px; }
.cinfo__item b{ display:block; color:#fff; font-size:15.5px; }
.cinfo__item a, .cinfo__item span{ color:#9AA3B0; font-size:14.5px; }
.cinfo__item a:hover{ color:var(--hivis); }
.cform{ background:#fff; border-radius:var(--r-xl); padding:32px 34px; }
/* Compact contact (home, D-102): heading sits beside the form; contact rows keep their own height. */
.cinfo{ align-content:start; }
.contact--compact{ padding:72px 0; }
.contact--compact .contact__grid{ grid-template-columns:1fr 1.15fr; gap:48px; margin-top:0; align-items:start; }
.contact--compact .section-title{ font-size:clamp(28px,3.4vw,42px); margin-bottom:24px; }
.contact--compact .cinfo{ grid-template-columns:1fr 1fr; gap:0 24px; }
.contact--compact .cinfo__item{ padding:14px 0; gap:12px; }
.contact--compact .cform{ padding:24px 28px; }
.contact--compact .cform > form > p{ margin-bottom:14px; }
.contact--compact .field{ margin-bottom:11px; }
.contact--compact .field label{ margin-bottom:5px; }
.contact--compact .field input, .contact--compact .field select, .contact--compact .field textarea{ padding:10px 13px; }
.contact--compact .field textarea{ height:64px; min-height:44px; }
.contact--compact .cform__consent{ margin:4px 0 14px; }
.contact--compact .cform__note{ margin-top:10px; }
@media(max-width:900px){ .contact--compact .contact__grid{ grid-template-columns:1fr; gap:28px; } }
@media(max-width:560px){ .contact--compact .cinfo{ grid-template-columns:1fr; } .contact--compact{ padding:56px 0; } }
.cform h3{ color:var(--ink); font-size:23px; margin-bottom:6px; }
.cform > form > p{ color:var(--slate); font-size:14.5px; margin-bottom:22px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--slate); margin-bottom:7px; }
.field input, .field select, .field textarea{ width:100%; border:1px solid var(--line-2); border-radius:var(--r);
  padding:13px 15px; font-family:var(--body); font-size:15px; background:#fff; color:var(--ink); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--ink); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:480px){ .field-row{ grid-template-columns:1fr; } }
.cform__ok{ display:none; text-align:center; padding:30px 10px; }
.cform__ok.show{ display:block; animation:revealIn .4s; }
.cform__ok .ic{ width:64px; height:64px; border-radius:99px; background:var(--verify-soft); color:var(--verify);
  display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.cform__note{ font-size:12px; color:var(--slate-2); margin-top:14px; text-align:center; }
.cform__consent{ display:flex; gap:10px; align-items:flex-start; margin:2px 0 18px; font-size:12px; line-height:1.5;
  color:var(--slate); cursor:pointer; }
.cform__consent input{ flex:none; width:18px; height:18px; margin-top:1px; accent-color:var(--ink); cursor:pointer; }
.cform__consent b{ color:var(--ink); font-weight:600; }
.cform__consent a{ color:var(--ink); text-decoration:underline; }

/* ---------- Hiring banner ---------- */
.hiring{ background:var(--hivis); }
.hiring__in{ max-width:var(--maxw); margin:0 auto; padding:30px 32px; display:flex; align-items:center;
  gap:24px; flex-wrap:wrap; justify-content:space-between; }
.hiring__l{ display:flex; align-items:center; gap:18px; }
.hiring__tag{ font-family:var(--mono); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  background:var(--ink); color:var(--hivis); padding:6px 12px; border-radius:99px; flex:none; }
.hiring__l b{ font-family:var(--display); font-weight:800; font-size:18px; color:var(--ink); }
.hiring__l div span{ display:block; font-size:13.5px; color:#5b4a08; }
.hiring__tag{ color:#fff; } /* white on ink; the amber text was too dim (Hitesh, 27 Oct 2026) */

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:12px; margin-top:42px; max-width:820px; }
.faq details{ background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
  gap:16px; padding:18px 22px; font-family:var(--display); font-weight:700; font-size:16.5px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-family:var(--mono); font-size:20px; color:var(--hivis-deep); flex:none; transition:.18s; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details > div{ padding:0 22px 20px; color:var(--ink-2); font-size:15px; }
.faq details > div p{ margin:0 0 .7em; }

/* ---------- Checklist ---------- */
.checklist{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
/* Block, not flex: a flex item would split <b>, text runs and links into side-by-side columns. */
.checklist li{ position:relative; padding-left:32px; font-size:15.5px; color:var(--ink-2); }
.checklist li::before{ content:""; position:absolute; left:0; top:3px; width:20px; height:20px; border-radius:99px;
  background:var(--verify-soft) url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2315894E" stroke-width="3" stroke-linecap="round"%3E%3Cpath d="M5 12l5 5L20 7"/%3E%3C/svg%3E') center/12px no-repeat; }
.checklist li b{ font-weight:600; color:var(--ink); }

/* ---------- Feature rows ---------- */
.feat{ display:flex; gap:15px; align-items:flex-start; }
.feat .ic{ width:46px; height:46px; border-radius:13px; background:var(--hivis-soft); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; flex:none; color:var(--hivis-deep); }
.feat h3{ font-size:17.5px; margin:0 0 5px; }
.feat p{ font-size:14.5px; color:var(--slate); margin:0; }

/* ---------- Callout ---------- */
.callout{ display:flex; gap:14px; align-items:flex-start; background:var(--hivis-soft); border:1px solid var(--hivis);
  border-radius:var(--r-lg); padding:20px 22px; margin-top:28px; }
.callout svg{ flex:none; color:var(--hivis-deep); margin-top:2px; }
.callout p{ margin:0; font-size:14.5px; color:var(--ink-2); }
.callout b{ color:var(--ink); }
.callout--warn{ background:var(--warn-soft); border-color:var(--warn); }
.callout--warn svg{ color:var(--warn); }

/* ---------- Timeline ---------- */
.timeline{ position:relative; margin-top:46px; display:grid; gap:0; }
.tl{ position:relative; padding:0 0 34px 42px; }
.tl::before{ content:""; position:absolute; left:11px; top:6px; bottom:0; width:2px; background:var(--line-2); }
.tl:last-child::before{ display:none; }
.tl::after{ content:""; position:absolute; left:4px; top:4px; width:16px; height:16px; border-radius:99px;
  background:var(--hivis); border:3px solid var(--paper); box-shadow:0 0 0 2px var(--hivis-deep); }
.tl__tag{ font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--hivis-deep); }
.tl h3{ font-size:19px; margin:6px 0 6px; }
.tl p{ font-size:14.5px; color:var(--slate); margin:0; max-width:64ch; }

/* ---------- People ---------- */
.people{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:42px; }
@media(max-width:980px){ .people{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:640px){ .people{ grid-template-columns:repeat(2,1fr); } }
.person{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 18px; text-align:center; }
.person__ava{ width:56px; height:56px; border-radius:99px; background:var(--ink); color:var(--hivis); margin:0 auto 12px;
  display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:800; font-size:20px; }
.person b{ display:block; font-family:var(--display); font-size:15.5px; }
.person span{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); margin-top:5px; line-height:1.5; }

/* ---------- Interlinks ---------- */
.linkgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:42px; }
@media(max-width:900px){ .linkgrid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .linkgrid{ grid-template-columns:1fr; } }
.lcard{ background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:18px 20px;
  display:flex; flex-direction:column; gap:5px; transition:.16s; text-decoration:none; }
.lcard:hover{ border-color:var(--ink); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.lcard b{ font-family:var(--display); font-weight:700; font-size:15.5px; color:var(--ink); display:flex; align-items:center; gap:8px; justify-content:space-between; }
.lcard span{ font-size:13.5px; color:var(--slate); }

/* ---------- CTA band ---------- */
.ctaband{ background:var(--ink); color:#fff; }
.ctaband--hivis{ background:var(--hivis); color:var(--ink); }
.ctaband__in{ max-width:var(--maxw); margin:0 auto; padding:64px 32px; text-align:center; }
.ctaband h2{ color:inherit; font-size:clamp(28px,3.8vw,42px); max-width:24ch; margin:0 auto; }
.ctaband p{ color:#9AA3B0; max-width:56ch; margin:18px auto 0; }
.ctaband--hivis p{ color:#5b4a08; }
.ctaband__cta{ display:flex; gap:13px; justify-content:center; margin-top:30px; flex-wrap:wrap; }

/* ---------- Geo pages ---------- */
.geo{ display:grid; grid-template-columns:1.5fr .9fr; gap:48px; align-items:start; }
@media(max-width:900px){ .geo{ grid-template-columns:minmax(0,1fr); } }
.geo__body h2{ font-size:24px; margin:34px 0 12px; }
.geo__body h2:first-child{ margin-top:0; }
.geo__body p{ font-size:15.5px; color:var(--ink-2); }
.geo__side{ position:sticky; top:84px; display:grid; gap:18px; }
.sidecard{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px 24px; box-shadow:var(--shadow-sm); }
.sidecard h3{ font-size:16px; margin-bottom:14px; }
.sidecard--dark{ background:var(--ink); border:none; color:#fff; }
.sidecard--dark h3{ color:#fff; }
.sidecard--dark p{ color:#B7BEC9; font-size:14px; }
.sidecard .courserow{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line);
  font-size:13.5px; }
.sidecard .courserow:last-of-type{ border-bottom:none; }
.sidecard .courserow a{ color:var(--ink-2); }
.sidecard .courserow a:hover{ color:var(--steel); }
.sidecard .courserow b{ font-family:var(--mono); font-size:12.5px; color:var(--ink); font-weight:600; white-space:nowrap; }

/* ---------- Tables ---------- */
.tbl{ width:100%; border-collapse:collapse; font-size:14.5px; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.tbl th{ text-align:left; font-family:var(--mono); font-size:11.5px; text-transform:uppercase;
  letter-spacing:.1em; color:var(--slate); font-weight:600; padding:12px 14px;
  border-bottom:2px solid var(--line-2); background:var(--paper); }
.tbl td{ padding:13px 14px; border-bottom:1px solid var(--line); vertical-align:top; color:var(--ink-2); }
.tbl tr:last-child td{ border-bottom:none; }

/* ---------- Reveal — base state is VISIBLE. The .reveal-pre hidden state is
   only ever added by JS to below-the-fold elements, and removing it returns
   the element to its natural (visible) stylesheet values, so content can never
   be stranded hidden in non-animating contexts (print, screenshots, no-JS). */
.reveal{ transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.reveal-pre{ opacity:0; transform:translateY(20px); }
@keyframes revealIn{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce){ .reveal{ transition:none; } .reveal-pre{ opacity:1; transform:none; } }
@media print{ .reveal-pre{ opacity:1; transform:none; } }

/* ---------- Footer ---------- */
.foot{ background:var(--ink); color:#fff; }
.foot__in{ max-width:var(--maxw); margin:0 auto; padding:64px 32px 40px; }
.foot__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; }
@media(max-width:860px){ .foot__top{ grid-template-columns:1fr 1fr; gap:32px; } }
@media(max-width:480px){ .foot__top{ grid-template-columns:1fr; } }
.foot__col h4{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--hivis); margin-bottom:16px; }
.foot__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.foot__col a{ color:#9AA3B0; font-size:14px; transition:.15s; }
.foot__col a:hover{ color:#fff; }
.foot__about p{ color:#9AA3B0; font-size:14px; margin:16px 0 18px; max-width:34ch; }
.foot__badges{ display:flex; gap:8px; flex-wrap:wrap; }
.foot__badge{ font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  border:1px solid #2c3138; color:#C9CFD8; padding:5px 10px; border-radius:99px; }
.foot__bottom{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-top:48px; padding-top:26px; border-top:1px solid #262b32; }
.foot__bottom p{ color:#7E8693; font-size:13px; margin:0; }
.foot__soc{ display:flex; gap:10px; }
.foot__soc a{ width:38px; height:38px; border-radius:99px; border:1px solid #2c3138; color:#C9CFD8;
  display:flex; align-items:center; justify-content:center; transition:.15s; font-size:14px; }
.foot__soc a:hover{ border-color:var(--hivis); color:var(--hivis); }
.foot__disc{ font-size:12px; color:#6B7480; margin-top:20px; max-width:82ch; line-height:1.6; }

/* ---------- floating call btn (mobile) ---------- */
.fab{ position:fixed; right:18px; bottom:18px; z-index:60; background:var(--hivis); color:var(--ink);
  width:58px; height:58px; border-radius:99px; display:none; align-items:center; justify-content:center;
  box-shadow:var(--shadow-lg); }
@media(max-width:980px){ .fab{ display:flex; } }

/* Practice time block */
.practice{ background:var(--paper-2, #f4f1ea); }
.practice__in{ display:grid; gap:32px; grid-template-columns:1.4fr 1fr; align-items:center; }
.sidecard--dark{ background:#14202b; color:#fff; border-color:#14202b; }
.sidecard--dark h3{ color:#fff; margin-top:0; }
@media (max-width:820px){ .practice__in{ grid-template-columns:1fr; } }
/* Staging-only Bob placeholder (data/site.json chat.placeholder) */
.bob{ position:fixed; left:16px; bottom:16px; z-index:50; display:flex; gap:10px; align-items:center;
  background:#14202b; color:#fff; padding:10px 16px; border-radius:99px; box-shadow:0 6px 20px rgba(0,0,0,.25); font-size:14px; }
.bob small{ display:block; opacity:.75; font-size:12px; }
.bob__dot{ width:10px; height:10px; border-radius:99px; background:#f5b301; }

.hiring--team{ background:#14202b; color:#fff; }
.hiring--team .hiring__l b{ color:#fff; }
.hiring--team .btn--dark{ background:var(--hivis); color:var(--ink); }

/* Photo strip: continuous scroll, pauses on hover, static for reduced motion */
.photostrip{ overflow:hidden; }
/* Spacing is a right margin on each photo, not gap or padding, so half the track is exactly one
   repeat and the -50% loop point lands with no jump. */
.photostrip__track{ display:flex; width:max-content; margin-top:24px;
  animation:photostrip calc(var(--n) * 6s) linear infinite; }
.photostrip__track:hover{ animation-play-state:paused; }
.photostrip__track img{ height:260px; width:auto; margin-right:14px; border-radius:var(--r-lg, 14px); object-fit:cover; flex:none; }
@keyframes photostrip{ to{ transform:translateX(-50%); } }
@media (max-width:640px){ .photostrip__track img{ height:180px; } }
@media (prefers-reduced-motion:reduce){ .photostrip__track{ animation:none; overflow-x:auto; width:auto; padding:0 16px; } .photostrip__track img[aria-hidden]{ display:none; } }
/* Crane Watch embed */
.cwatch{ border:1px solid var(--line); border-radius:var(--r-lg, 14px); overflow:hidden; height:78vh; min-height:520px; }
.cwatch iframe{ width:100%; height:100%; border:0; display:block; }
.cwatch__note{ font-size:14px; color:var(--ink-2); margin-top:12px; }

/* Lead forms: after a failed send, outline the fields still missing (30 Oct 2026). */
form.tried input:invalid, form.tried select:invalid, form.tried textarea:invalid{ border-color:#b23a2b; box-shadow:0 0 0 2px rgba(178,58,43,.22); }
