/* ==========================================================================
   ORBIT — Align your mind · Orbiting Minds
   Aesthetic: old-fashioned observatory / mission-control terminal.

   Two zones, both built from the logo:
     LIGHT ZONE  pale logo blue #E5EFFB ground, navy #090A1C ink, navy grid
     DARK  ZONE  navy #090A1C instruments — header, footer, ink bands,
                 the solar-system monitor and the session screens
   Accents are the logo hemispheres: green #6CC574, blue #4A73AA.
   Warm tones are reserved for the star, where they are scientifically
   correct (a G-type photosphere reads white-yellow).
   ========================================================================== */

:root{
  /* ---- Logo, exact ---- */
  --sky:#E5EFFB;
  --green:#6CC574;
  --blue:#4A73AA;

  /* ---- Light zone ---- */
  --bg:#E5EFFB;
  --bg-alt:#D9E7F8;
  --surface:#F3F8FE;
  --surface-2:#FFFFFF;
  --line:#B5CBE8;
  --line-soft:#CBDCF1;

  --ink:#090A1C;
  --body:#2E3A57;
  --dim:#4C5B7C;
  --dimmer:#586683;

  --blue-deep:#2F5B96;
  --blue-ink:#1D3E6D;
  --green-deep:#2B7536;
  --rust-deep:#9A4A26;
  --sun-deep:#8A5E08;

  /* ---- Dark zone ---- */
  --void:#05070F;
  --deep:#090A1C;
  --deep-2:#141A31;
  --deep-3:#0E1224;
  --deep-line:#232C4A;
  --deep-line-soft:#1A2138;
  --paper:#E5EFFB;
  --paper-dim:#9FB0C9;
  --paper-dimmer:#6B7A96;
  --green-hi:#8FDC95;
  --blue-hi:#7BA3DC;

  /* ---- Astronomy, scientifically keyed.
         These mirror the body colours used by the simulation in js/main.js,
         and are kept here as the single reference for the palette. ---- */
  --sun-core:#FFF8E7;     /* G2V photosphere: white with a yellow cast */
  --sun-halo:#F5C96B;
  --p-rock:#9B8C7A;
  --p-ocean:#4E93A8;
  --p-rust:#B4674C;
  --p-gas:#C9A87C;
  --p-ice:#8FB7C9;
  --rust:#B4674C;

  --font-display:"Chakra Petch",ui-sans-serif,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --font-body:"IBM Plex Sans",ui-sans-serif,sans-serif;

  --wrap:1180px;
  --r:3px;
  --shadow:0 24px 60px -30px rgba(9,10,28,.38);
  --shadow-dark:0 24px 60px -28px rgba(0,0,0,.9);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--bg);
  color:var(--body);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* Hairline engineering grid — graph paper drawn in logo navy */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1000px 620px at 84% -4%,rgba(74,115,170,.16),transparent 70%),
    radial-gradient(860px 560px at 2% 38%,rgba(108,197,116,.12),transparent 70%),
    radial-gradient(700px 520px at 50% 104%,rgba(74,115,170,.1),transparent 70%),
    linear-gradient(transparent 95%,rgba(9,10,28,.07) 95%) 0 0/100% 34px,
    linear-gradient(90deg,transparent 95%,rgba(9,10,28,.055) 95%) 0 0/34px 100%,
    linear-gradient(transparent 99.4%,rgba(9,10,28,.1) 99.4%) 0 0/100% 170px,
    linear-gradient(90deg,transparent 99.4%,rgba(9,10,28,.08) 99.4%) 0 0/170px 100%;
}
/* CRT scanlines, kept faint so the light ground stays clean */
body::after{
  content:"";
  position:fixed; inset:0; z-index:9; pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(9,10,28,.055) 0 1px,transparent 1px 3px);
  opacity:.7;
}

main,header,footer{position:relative; z-index:1}

/* ---------- Type ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-.015em;
  line-height:1.1;
  margin:0 0 .5em;
  color:var(--ink);
  text-wrap:balance;
}
h1{font-size:clamp(2.35rem,5.4vw,4rem)}
h2{font-size:clamp(1.72rem,3.3vw,2.6rem)}
h3{font-size:1.2rem; letter-spacing:0}
h4{font-size:.98rem; letter-spacing:.02em}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
a{color:var(--blue-deep); text-decoration:none}
a:hover{text-decoration:underline; text-underline-offset:3px}
strong{color:var(--ink); font-weight:600}

.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--green-deep);
  margin:0 0 1.1em;
  display:flex; align-items:center; gap:.7em;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--green-deep); opacity:.8; flex:none}
.eyebrow.blue{color:var(--blue-deep)}
.eyebrow.blue::before{background:var(--blue-deep)}

.lede{font-size:1.1rem; color:var(--dim); max-width:62ch}
.lede.center{margin-left:auto; margin-right:auto}
.center{text-align:center}
.mono{font-family:var(--font-mono); font-size:.86rem; letter-spacing:.02em}
.muted{color:var(--dim)}
.small{font-size:.87rem}

/* ---------- Layout ---------- */
.wrap{width:100%; max-width:var(--wrap); margin:0 auto; padding:0 26px}
section{padding:88px 0; position:relative}
section.tight{padding:56px 0}
.section-alt{
  background:linear-gradient(180deg,var(--bg-alt),rgba(229,239,251,.35));
  border-block:1px solid var(--line-soft);
}
.section-ink{background:var(--deep); border-block:1px solid var(--deep); color:var(--paper)}
.section-head{max-width:64ch; margin-bottom:46px}
.section-head.center{margin-inline:auto; text-align:center}
.section-head.center .eyebrow{justify-content:center}

.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:26px}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center}
.split.wide-left{grid-template-columns:1.35fr .65fr}
.split.wide-right{grid-template-columns:.72fr 1.28fr}
.split.top{align-items:start}

/* ---------- Header (dark instrument bar) ---------- */
.site-header{
  position:sticky; top:0; z-index:40;
  background:rgba(9,10,28,.94);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--deep-line);
  color:var(--paper);
}
.nav{display:flex; align-items:center; gap:18px; min-height:74px}
.brand{display:flex; align-items:center; gap:11px; color:var(--paper); flex:none}
.brand:hover{text-decoration:none}
.brand img{
  width:40px; height:40px; border-radius:9px; display:block;
  border:1px solid var(--deep-line);
}
.brand span{
  font-family:var(--font-display); font-weight:700; font-size:1.3rem;
  letter-spacing:.03em; display:flex; flex-direction:column; line-height:1;
  color:var(--paper);
}
.brand small{
  font-family:var(--font-mono); font-weight:400; font-size:.58rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--green); margin-top:5px;
}
.nav-links{display:flex; align-items:center; gap:1px; margin-left:auto; flex-wrap:wrap}
.nav-links a{
  font-family:var(--font-mono); font-size:.73rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--paper-dim);
  padding:9px 10px; border-radius:var(--r); position:relative; white-space:nowrap;
}
.nav-links a:hover{color:var(--paper); background:rgba(35,44,74,.75); text-decoration:none}
.nav-links a.active{color:var(--green)}
.nav-links a.active::after{
  content:""; position:absolute; left:10px; right:10px; bottom:3px; height:1px; background:var(--green);
}
.nav-cta{display:flex; align-items:center; gap:10px; flex:none}
.nav-toggle{
  display:none; width:42px; height:38px; border:1px solid var(--deep-line);
  background:var(--deep-2); border-radius:var(--r); cursor:pointer; position:relative;
}
.nav-toggle span,.nav-toggle::before,.nav-toggle::after{
  content:""; position:absolute; left:11px; right:11px; height:1.5px; background:var(--paper);
  transition:transform .25s ease,opacity .2s ease;
}
.nav-toggle::before{top:12px}
.nav-toggle span{top:18px}
.nav-toggle::after{top:24px}
.nav-toggle[aria-expanded="true"]::before{transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span{opacity:0}
.nav-toggle[aria-expanded="true"]::after{transform:translateY(-6px) rotate(-45deg)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-mono); font-size:.78rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase;
  padding:14px 22px; border-radius:var(--r); border:1px solid transparent;
  cursor:pointer; text-align:center;
  transition:transform .16s ease,background .18s ease,border-color .18s ease,color .18s ease;
}
.btn:hover{text-decoration:none; transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:2px solid var(--blue-deep); outline-offset:3px}
.btn-primary{background:var(--green-deep); color:#F3FBF4; border-color:var(--green-deep)}
.btn-primary:hover{background:#22682D; border-color:#22682D; color:#fff}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--blue-deep); background:rgba(74,115,170,.12)}
.btn-form{background:transparent; color:var(--blue-deep); border-color:var(--blue)}
.btn-form:hover{background:rgba(74,115,170,.14); color:var(--blue-ink); border-color:var(--blue-deep)}
.btn-sm{padding:10px 15px; font-size:.7rem}
.btn-block{width:100%}
.btn-row{display:flex; flex-wrap:wrap; gap:13px; margin-top:30px}
.btn-row.center{justify-content:center}
.btn-row.tight{margin-top:20px}

/* Buttons sitting on a dark ground */
.site-header .btn-primary,
.section-ink .btn-primary,
.booking .btn-primary{background:var(--green); color:#05140A; border-color:var(--green)}
.site-header .btn-primary:hover,
.section-ink .btn-primary:hover,
.booking .btn-primary:hover{background:var(--green-hi); border-color:var(--green-hi); color:#05140A}
.section-ink .btn-ghost,
.booking .btn-ghost{color:var(--paper); border-color:var(--deep-line)}
.section-ink .btn-ghost:hover,
.booking .btn-ghost:hover{border-color:var(--paper); background:rgba(35,44,74,.6)}
.section-ink .btn-form,
.booking .btn-form{color:var(--blue-hi); border-color:var(--blue)}
.section-ink .btn-form:hover,
.booking .btn-form:hover{background:rgba(74,115,170,.2); color:#A6C6ED; border-color:var(--blue-hi)}
.section-ink .btn:focus-visible,
.booking .btn:focus-visible,
.site-header .btn:focus-visible{outline-color:var(--green-hi)}

/* ---------- Panels ---------- */
.panel{
  background:linear-gradient(165deg,var(--surface-2),var(--surface));
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:30px;
  position:relative;
  box-shadow:0 2px 0 rgba(9,10,28,.04);
}
/* corner registration ticks — instrument-panel detail */
.panel::before,.panel::after{
  content:""; position:absolute; width:9px; height:9px; pointer-events:none;
  border-color:var(--green-deep); opacity:.85;
}
.panel::before{top:-1px; left:-1px; border-top:1.5px solid; border-left:1.5px solid}
.panel::after{bottom:-1px; right:-1px; border-bottom:1.5px solid; border-right:1.5px solid}
.panel.blue::before,.panel.blue::after{border-color:var(--blue-deep)}
.panel.rust::before,.panel.rust::after{border-color:var(--rust-deep)}
.panel.sun::before,.panel.sun::after{border-color:var(--sun-deep)}
.panel.green::before,.panel.green::after{border-color:var(--green-deep)}
.panel h3{margin-bottom:.45em; color:var(--blue-deep)}
.panel.rust h3{color:var(--rust-deep)}
.panel.sun h3{color:var(--sun-deep)}
.panel.green h3{color:var(--green-deep)}
.panel-label{
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--dimmer); display:block; margin-bottom:14px;
}

.card{
  background:var(--surface-2); border:1px solid var(--line-soft);
  border-radius:var(--r); padding:27px; transition:border-color .2s ease,transform .2s ease;
}
.card:hover{border-color:var(--blue); transform:translateY(-3px)}
.card p{color:var(--dim); font-size:.96rem}
.card h3{font-size:1.08rem; color:var(--blue-deep)}

.icon-planet{
  width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-mono); font-size:.74rem; font-weight:500; color:#05070F;
  margin-bottom:17px;
}

/* Panels and cards inside a dark band */
.section-ink h1,.section-ink h2,.section-ink h4{color:var(--paper)}
.section-ink .muted,.section-ink .lede,.section-ink p{color:var(--paper-dim)}
.section-ink strong{color:#fff}
.section-ink .eyebrow{color:var(--green)}
.section-ink .eyebrow::before{background:var(--green)}
.section-ink .eyebrow.blue{color:var(--blue-hi)}
.section-ink .eyebrow.blue::before{background:var(--blue-hi)}
.section-ink a{color:var(--green-hi)}
.section-ink .panel{
  background:linear-gradient(165deg,rgba(20,26,49,.9),rgba(9,10,28,.92));
  border-color:var(--deep-line); box-shadow:none;
}
.section-ink .panel h3{color:var(--blue-hi)}
.section-ink .panel.rust h3{color:#D08E70}
.section-ink .panel.sun h3{color:var(--sun-halo)}
.section-ink .panel.green h3{color:var(--green-hi)}
.section-ink .panel::before,.section-ink .panel::after{border-color:var(--green)}
.section-ink .panel.blue::before,.section-ink .panel.blue::after{border-color:var(--blue-hi)}
.section-ink .panel.sun::before,.section-ink .panel.sun::after{border-color:var(--sun-halo)}
.section-ink .panel.green::before,.section-ink .panel.green::after{border-color:var(--green-hi)}
.section-ink .panel-label{color:var(--paper-dimmer)}
.section-ink .card{background:rgba(14,18,36,.75); border-color:var(--deep-line-soft)}
.section-ink .card h3{color:var(--blue-hi)}
.section-ink .card:hover{border-color:var(--deep-line)}

/* ---------- Lists ---------- */
.list{list-style:none; padding:0; margin:0}
.list li{position:relative; padding-left:26px; margin-bottom:12px; color:var(--dim); font-size:.98rem}
.list li::before{
  content:""; position:absolute; left:4px; top:.62em;
  width:7px; height:7px; border-radius:50%; background:var(--green-deep);
}
.list li strong{color:var(--ink)}
.list.b li::before{background:var(--blue-deep)}
.list.r li::before{background:var(--rust-deep)}
.list.s li::before{background:var(--sun-deep)}
.list.check li::before{
  content:"+"; background:none; width:auto; height:auto; top:-.05em; left:2px;
  font-family:var(--font-mono); color:var(--green-deep); font-size:1.05rem;
}
.section-ink .list li{color:var(--paper-dim)}
.section-ink .list li strong{color:#fff}
.section-ink .list li::before{background:var(--green)}
.section-ink .list.b li::before{background:var(--blue-hi)}
.section-ink .list.check li::before{background:none; color:var(--green)}

/* ---------- Tags ---------- */
.tag-row{display:flex; flex-wrap:wrap; gap:9px}
.tag{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em;
  padding:7px 12px; border:1px solid var(--line); border-radius:100px;
  color:var(--dim); background:var(--surface-2);
}
.tag.green{border-color:rgba(43,117,54,.45); color:var(--green-deep)}
.tag.blue{border-color:rgba(47,91,150,.45); color:var(--blue-deep)}
.tag.rust{border-color:rgba(154,74,38,.45); color:var(--rust-deep)}
.tag.sun{border-color:rgba(138,94,8,.45); color:var(--sun-deep)}
.section-ink .tag{border-color:var(--deep-line); color:var(--paper-dim); background:rgba(14,18,36,.65)}
.section-ink .tag.green{border-color:rgba(108,197,116,.5); color:var(--green-hi)}
.section-ink .tag.blue{border-color:rgba(74,115,170,.55); color:var(--blue-hi)}

/* ---------- Telemetry rows (dotted leaders) ---------- */
.telem{border-top:1px solid var(--line-soft); margin-top:22px}
.telem > div{
  display:flex; align-items:baseline; gap:10px; padding:11px 0;
  border-bottom:1px solid var(--line-soft); font-family:var(--font-mono); font-size:.82rem;
}
.telem .k{color:var(--dim)}
.telem .lead{flex:1; border-bottom:1px dotted var(--line); transform:translateY(-4px); min-width:14px}
.telem .v{margin:0; color:var(--green-deep); white-space:nowrap; font-weight:500; text-align:right}
.section-ink .telem,.section-ink .telem > div{border-color:var(--deep-line-soft)}
.section-ink .telem .k{color:var(--paper-dim)}
.section-ink .telem .lead{border-color:var(--deep-line)}
.section-ink .telem .v{color:var(--green-hi)}

/* ---------- Steps ---------- */
.steps{display:grid; gap:16px}
.step{
  display:grid; grid-template-columns:56px 1fr; gap:20px; align-items:start;
  padding:23px 25px; background:var(--surface-2);
  border:1px solid var(--line-soft); border-left:2px solid var(--green-deep); border-radius:var(--r);
  transition:border-color .2s ease;
}
.step:hover{border-color:var(--line); border-left-color:var(--blue-deep)}
.step-num{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.06em;
  color:var(--paper); border:1px solid var(--deep-line); border-radius:var(--r);
  padding:7px 0; text-align:center; background:var(--deep);
}
.step h3{font-size:1.05rem; margin-bottom:.3em; color:var(--blue-deep)}
.step p{color:var(--dim); font-size:.95rem; margin-bottom:.5em}
.step .free{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-deep); border:1px solid rgba(43,117,54,.45); padding:3px 8px; border-radius:100px;
  display:inline-block; margin-left:8px; vertical-align:2px; white-space:nowrap;
}

/* ---------- Heading icons ---------- */
h3.with-ic{display:flex; align-items:flex-start; gap:11px}
.h-ic{
  flex:0 0 auto; width:25px; height:25px; margin-top:1px;
  stroke:currentColor; fill:none; stroke-width:1.55;
  stroke-linecap:round; stroke-linejoin:round; opacity:.88;
}
@media (max-width:520px){h3.with-ic{gap:9px} .h-ic{width:22px; height:22px}}

/* ---------- Pricing ---------- */
.price{
  background:linear-gradient(165deg,var(--surface-2),var(--surface));
  border:1px solid var(--line); border-radius:var(--r); padding:29px; position:relative; overflow:hidden;
}
.price.feature{border-color:rgba(43,117,54,.6); box-shadow:0 0 0 1px rgba(43,117,54,.18)}
.price.feature::after{
  content:"BEST VALUE"; position:absolute; top:15px; right:-36px;
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.16em;
  background:var(--green-deep); color:#F3FBF4; padding:4px 42px; transform:rotate(45deg);
}
.price .amount{
  font-family:var(--font-display); font-size:2.45rem; font-weight:700; color:var(--green-deep);
  line-height:1; display:block; margin:6px 0 2px;
}
.price .per{
  font-family:var(--font-mono); font-size:.72rem; color:var(--dimmer);
  letter-spacing:.1em; text-transform:uppercase;
}
.price h3{
  font-size:.95rem; font-family:var(--font-mono); letter-spacing:.14em;
  text-transform:uppercase; color:var(--dim); font-weight:500;
}
.price .list{margin-top:18px}

/* ---------- Booking block (repeated CTA, dark instrument) ---------- */
.booking{
  background:
    radial-gradient(700px 320px at 84% 0%,rgba(108,197,116,.16),transparent 70%),
    radial-gradient(600px 300px at 10% 100%,rgba(74,115,170,.18),transparent 70%),
    linear-gradient(165deg,rgba(20,26,49,.98),rgba(6,8,18,.98));
  border:1px solid rgba(108,197,116,.4);
  border-radius:var(--r); padding:38px; position:relative; overflow:hidden;
  color:var(--paper); box-shadow:var(--shadow);
}
.booking::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 30px,rgba(35,44,74,.28) 30px 31px);
}
.booking > *{position:relative}
.booking h2{font-size:clamp(1.5rem,2.6vw,2.1rem); color:var(--paper)}
.booking .lede{max-width:56ch; color:var(--paper-dim)}
.booking .eyebrow{color:var(--green)}
.booking .eyebrow::before{background:var(--green)}
.booking a{color:var(--green-hi)}
.intake-note{
  font-family:var(--font-mono); font-size:.8rem; line-height:1.65; color:var(--paper-dim);
  border-left:2px solid var(--blue); padding:12px 0 12px 16px; margin-top:26px; max-width:72ch;
}
.intake-note strong{color:var(--blue-hi); font-weight:500}
.panel .intake-note,.launch .intake-note{color:var(--dim)}
.panel .intake-note strong,.launch .intake-note strong{color:var(--blue-deep)}
.calendly-inline-widget{
  min-width:280px; height:700px; border:1px solid var(--deep-line); border-radius:var(--r);
  background:var(--sky); margin-top:26px; overflow:hidden; position:relative;
}
@media (max-width:640px){.calendly-inline-widget{height:940px}}
.embed-fallback{
  font-family:var(--font-mono); font-size:.8rem; color:var(--dimmer);
  padding:26px; text-align:center; line-height:1.7;
}

/* ---------- Quote / student voice ---------- */
.quote-card{
  border:1px solid var(--line); border-left:3px solid var(--green-deep);
  background:var(--surface-2); border-radius:var(--r);
  padding:36px 40px; font-size:1.1rem; line-height:1.75; color:var(--ink);
}
.quote-card p{font-style:italic}
.quote-card .attrib{
  font-style:normal; font-family:var(--font-mono); font-size:.74rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--green-deep); margin-top:20px;
}
.section-ink .quote-card{
  background:rgba(14,18,36,.6); border-color:var(--deep-line);
  border-left-color:var(--green); color:var(--paper);
}
.section-ink .quote-card p{color:var(--paper)}
.section-ink .quote-card .attrib{color:var(--green)}

/* ---------- FAQ ---------- */
.faq-item{
  border:1px solid var(--line-soft); border-radius:var(--r);
  background:var(--surface-2); margin-bottom:13px; overflow:hidden;
}
.faq-item[open]{border-color:var(--line)}
.faq-q{
  font-family:var(--font-display); font-weight:600; font-size:1.05rem;
  padding:20px 58px 20px 24px; cursor:pointer; position:relative; list-style:none; color:var(--ink);
}
.faq-q::-webkit-details-marker{display:none}
.faq-q:hover{background:rgba(74,115,170,.08)}
.faq-a{
  padding:20px 24px 24px; color:var(--dim); font-size:.98rem;
  border-top:1px solid var(--line-soft);
}
.faq-q::after{
  content:"+"; position:absolute; right:24px; top:50%; transform:translateY(-50%);
  font-family:var(--font-mono); font-size:1.35rem; color:var(--green-deep); transition:transform .22s ease;
}
.faq-item[open] .faq-q::after{transform:translateY(-50%) rotate(45deg)}
.faq-a .list li{font-size:.95rem}

/* ---------- Faux session screen (dark instrument) ---------- */
.screen{
  border:1px solid var(--deep-line); border-radius:6px; overflow:hidden;
  background:var(--deep); box-shadow:var(--shadow-dark); color:var(--paper);
}
.screen-bar{
  display:flex; align-items:center; gap:8px; padding:10px 14px;
  background:var(--deep-2); border-bottom:1px solid var(--deep-line);
}
.screen-bar i{width:9px; height:9px; border-radius:50%; background:var(--deep-line); display:block; flex:none}
.screen-bar i:nth-child(1){background:var(--rust)}
.screen-bar i:nth-child(2){background:var(--sun-halo)}
.screen-bar i:nth-child(3){background:var(--green)}
.screen-bar .t{
  font-family:var(--font-mono); font-size:.69rem; letter-spacing:.1em; color:var(--paper-dim); margin-left:8px;
}
.screen-bar .rec{
  margin-left:auto; font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em;
  color:var(--green); display:flex; align-items:center; gap:6px; white-space:nowrap;
}
.screen-bar .rec::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--green);
  animation:blink 1.8s steps(1,end) infinite;
}
.screen-body{display:grid; grid-template-columns:1fr 170px}
.screen-share{padding:24px 26px; border-right:1px solid var(--deep-line)}
.screen-share h4{
  font-family:var(--font-mono); font-size:.67rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--paper-dimmer); margin-bottom:18px;
}
.agenda{list-style:none; margin:0; padding:0}
.agenda li{
  display:grid; grid-template-columns:76px 1fr; gap:14px; align-items:baseline;
  padding:11px 0; border-bottom:1px dotted var(--deep-line-soft); font-size:.93rem;
}
.agenda li:last-child{border-bottom:0}
.agenda .t{font-family:var(--font-mono); font-size:.75rem; color:var(--green)}
.agenda .d{color:var(--paper-dim)}
.agenda .d b{color:#fff; font-weight:600; display:block; font-size:.95rem}
.screen-tiles{display:flex; flex-direction:column; gap:1px; background:var(--deep-line)}
.tile{
  background:var(--deep-3); padding:16px 12px; display:grid; place-items:center; gap:9px;
  text-align:center; flex:1; min-height:104px;
}
.tile .av{
  width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-mono); font-size:.8rem; color:#05070F; font-weight:600;
}
.tile .nm{font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; color:var(--paper-dim)}
@media (max-width:760px){
  .screen-body{grid-template-columns:1fr}
  .screen-share{border-right:0; border-bottom:1px solid var(--deep-line)}
  .screen-tiles{flex-direction:row}
}

/* ==========================================================================
   ONLINE MEETING MOCK — shared document + wellbeing battery check-in
   ========================================================================== */
.meet{
  border:1px solid var(--deep-line); border-radius:8px; overflow:hidden;
  background:var(--deep); box-shadow:var(--shadow-dark); color:var(--paper);
}
.meet-bar{
  display:flex; align-items:center; gap:10px; padding:9px 14px;
  background:#1B2238; border-bottom:1px solid var(--deep-line);
}
.meet-bar i{width:9px; height:9px; border-radius:50%; background:var(--deep-line); flex:none}
.meet-bar i:nth-child(1){background:var(--rust)}
.meet-bar i:nth-child(2){background:var(--sun-halo)}
.meet-bar i:nth-child(3){background:var(--green)}
.meet-bar .app{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--paper-dim); margin-left:6px;
}
.meet-bar .live{
  margin-left:auto; display:flex; align-items:center; gap:7px;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.14em; color:var(--green);
  white-space:nowrap;
}
.meet-bar .live::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--green);
  animation:blink 1.8s steps(1,end) infinite;
}
.meet-stage{display:grid; grid-template-columns:1fr 186px; background:#070A14}
.meet-share{padding:18px; border-right:1px solid var(--deep-line); min-width:0}
.meet-share-label{
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--green); margin-bottom:12px;
  display:flex; align-items:center; gap:8px;
}
.meet-share-label::before{
  content:""; width:14px; height:10px; border:1.5px solid var(--green); border-radius:2px; flex:none;
}

/* The shared document itself — real paper inside the dark meeting */
.doc{
  background:var(--surface-2); color:var(--ink); border-radius:4px;
  padding:26px 28px; border:1px solid var(--line);
  box-shadow:0 14px 34px -18px rgba(0,0,0,.7);
}
.doc-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:14px;
  border-bottom:1px solid var(--line-soft); padding-bottom:13px; margin-bottom:18px; flex-wrap:wrap;
}
.doc-head h4{
  font-family:var(--font-display); font-size:1.06rem; margin:0; color:var(--ink); letter-spacing:-.01em;
}
.doc-head .meta{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--dimmer);
}
.doc h5{
  font-family:var(--font-mono); font-size:.63rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--blue-deep); margin:0 0 11px;
}
.doc-cols{display:grid; grid-template-columns:1.15fr 1fr; gap:26px}
@media (max-width:860px){.doc-cols{grid-template-columns:1fr; gap:24px}}

/* Checklist with real tick boxes, part-completed */
.docline{list-style:none; margin:0; padding:0}
.docline li{
  display:grid; grid-template-columns:16px 1fr auto; gap:10px; align-items:baseline;
  padding:7px 0; font-size:.88rem; color:var(--body); border-bottom:1px dotted var(--line-soft);
}
.docline li:last-child{border-bottom:0}
.docline li::before{
  content:""; width:13px; height:13px; border:1.5px solid var(--line);
  border-radius:2px; display:block; transform:translateY(2px);
}
.docline li.done{color:var(--dimmer); text-decoration:line-through; text-decoration-color:var(--line)}
.docline li.done::before{
  background:var(--green-deep); border-color:var(--green-deep);
  box-shadow:inset 0 0 0 2px var(--surface-2);
}
.docline li.now::before{border-color:var(--blue-deep); box-shadow:0 0 0 2px rgba(47,91,150,.18)}
.docline li.now{color:var(--ink); font-weight:600}
.docline .mins{
  font-family:var(--font-mono); font-size:.68rem; color:var(--dimmer); white-space:nowrap;
}
.docline li.now .mins{color:var(--blue-deep)}

/* Wellbeing battery check-in */
.checkin{
  border:1px solid var(--line); border-radius:4px; padding:18px 18px 16px;
  background:linear-gradient(180deg,rgba(229,239,251,.7),rgba(243,248,254,.7));
}
.batt{display:grid; gap:9px; margin:0 0 14px}
.batt-row{display:grid; grid-template-columns:15px 1fr 60px; gap:11px; align-items:center}
.batt-row .radio{
  width:13px; height:13px; border-radius:50%; border:1.5px solid var(--line); display:block;
}
.batt-row.sel .radio{
  border-color:var(--blue-deep); background:radial-gradient(circle,var(--blue-deep) 0 43%,transparent 46%);
}
.batt-cells{display:flex; gap:3px; align-items:center}
.batt-cells i{
  display:block; height:15px; flex:1; border:1px solid var(--line);
  border-radius:1px; background:var(--surface-2);
}
.batt-row .lbl{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--dimmer); text-align:right; white-space:nowrap;
}
.batt-row.sel .lbl{color:var(--blue-deep)}
.batt-cells i.on{background:var(--green); border-color:var(--green-deep)}
.batt-cells i.low{background:var(--sun-halo); border-color:var(--sun-deep)}
.batt-cells i.crit{background:var(--p-rust); border-color:var(--rust-deep)}
.checkin .prompt{
  font-size:.83rem; color:var(--body); margin:0 0 7px; font-weight:600;
}
.typed{
  font-family:var(--font-mono); font-size:.79rem; color:var(--blue-ink);
  background:var(--surface-2); border:1px solid var(--line); border-radius:3px;
  padding:9px 11px; line-height:1.5;
}
.typed .caret{
  display:inline-block; width:.55em; height:1em; background:var(--blue-deep);
  vertical-align:-.14em; margin-left:1px; animation:blink 1.1s steps(1,end) infinite;
}
.checkin .note{
  font-family:var(--font-mono); font-size:.63rem; letter-spacing:.08em; color:var(--dimmer);
  margin:11px 0 0; line-height:1.6;
}

/* Participant rail */
.meet-rail{display:flex; flex-direction:column; gap:1px; background:var(--deep-line)}
.cam{
  position:relative; background:linear-gradient(165deg,#121A31,#0A0E1E);
  min-height:118px; display:grid; place-items:center; padding:14px;
}
.cam .face{
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  font-family:var(--font-mono); font-size:.86rem; font-weight:600; color:#05070F;
}
.cam .tagline{
  position:absolute; left:8px; bottom:7px; right:8px;
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.08em;
  color:var(--paper-dim); display:flex; align-items:center; gap:5px;
}
.cam.speaking{box-shadow:inset 0 0 0 2px var(--green)}
.cam .mic{width:6px; height:6px; border-radius:50%; background:var(--green); flex:none}
.cam .mic.off{background:var(--rust)}
.meet-tools{
  display:flex; align-items:center; gap:7px; flex-wrap:wrap;
  padding:11px 14px; background:#1B2238; border-top:1px solid var(--deep-line);
}
.meet-tools span{
  font-family:var(--font-mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--paper-dim); border:1px solid var(--deep-line); border-radius:100px; padding:5px 11px;
}
.meet-tools span.on{color:var(--green); border-color:rgba(108,197,116,.5)}
.meet-tools span.leave{margin-left:auto; color:#E79B7E; border-color:rgba(180,103,76,.6)}
@media (max-width:760px){
  .meet-stage{grid-template-columns:1fr}
  .meet-share{border-right:0; border-bottom:1px solid var(--deep-line)}
  .meet-rail{flex-direction:row}
  .cam{flex:1; min-height:98px}
}

/* ---------- Timetable ---------- */
.tt{width:100%; border-collapse:collapse; font-size:.92rem}
.tt th,.tt td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--line-soft); vertical-align:top}
.tt thead th{
  font-family:var(--font-mono); font-size:.67rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--green-deep); border-bottom:1px solid var(--line); white-space:nowrap;
}
.tt tbody th{
  font-family:var(--font-mono); font-size:.77rem; color:var(--ink); font-weight:500; white-space:nowrap;
}
.tt td{color:var(--dim)}
.tt td b{color:var(--blue-deep); font-weight:600}
.tt tbody tr:hover td,.tt tbody tr:hover th{background:rgba(74,115,170,.08)}
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); background:var(--surface-2)}
.table-scroll .tt th:first-child,.table-scroll .tt td:first-child{padding-left:22px}
.table-scroll .tt th:last-child,.table-scroll .tt td:last-child{padding-right:22px}

/* ---------- Contact rows ---------- */
.contact-row{
  display:flex; align-items:center; gap:18px; padding:20px 24px;
  border:1px solid var(--line-soft); border-radius:var(--r);
  background:var(--surface-2); margin-bottom:13px; transition:border-color .2s ease;
}
.contact-row:hover{border-color:var(--green-deep)}
.contact-row .ic{
  width:42px; height:42px; flex:none; border-radius:var(--r); border:1px solid var(--deep-line);
  display:grid; place-items:center; color:var(--green); background:var(--deep);
}
.contact-row .k{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--dimmer); display:block;
}
.contact-row .v{font-size:1.02rem; color:var(--ink); font-family:var(--font-mono); word-break:break-word}
.contact-row a.v:hover{color:var(--blue-deep)}

/* ---------- Legal pages ---------- */
.legal{max-width:78ch}
.legal h2{font-size:1.45rem; margin-top:2.2em; padding-top:1.2em; border-top:1px solid var(--line-soft)}
.legal h2:first-of-type{margin-top:.6em; padding-top:0; border-top:0}
.legal h3{font-size:1.02rem; margin-top:1.8em; color:var(--blue-deep)}
.legal p,.legal li{color:var(--dim)}
.legal ul{padding-left:22px; margin:0 0 1.05em}
.legal li{margin-bottom:9px}
.legal .updated{
  font-family:var(--font-mono); font-size:.73rem; letter-spacing:.1em;
  color:var(--dimmer); text-transform:uppercase;
}
.toc{
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface-2);
  padding:22px 26px; margin-bottom:40px;
}
.toc ul{list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px 22px}
.toc a{font-family:var(--font-mono); font-size:.77rem; color:var(--dim)}
.toc a:hover{color:var(--blue-deep)}

/* ---------- Hero ---------- */
.hero{padding:74px 0 68px; overflow:hidden}
.page-hero{
  padding:72px 0 60px;
  border-bottom:1px solid var(--line-soft);
  background:radial-gradient(900px 440px at 84% 8%,rgba(74,115,170,.14),transparent 70%);
}
.hero h1 .cursor{
  display:inline-block; width:.5em; height:.92em; background:var(--green-deep);
  margin-left:.12em; vertical-align:-.06em; animation:blink 1.1s steps(1,end) infinite;
}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.hero-meta{
  display:flex; flex-wrap:wrap; gap:0; margin-top:38px;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.hero-meta div{
  padding:16px 26px 16px 0; margin-right:26px; border-right:1px solid var(--line-soft);
  font-family:var(--font-mono); font-size:.71rem; letter-spacing:.08em; color:var(--dim);
  display:flex; flex-direction:column; gap:4px;
}
.hero-meta div:last-child{border-right:0; margin-right:0; padding-right:0}
.hero-meta strong{
  font-family:var(--font-display); font-size:1.3rem; letter-spacing:0;
  color:var(--blue-deep); font-weight:700;
}
.bizname{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dimmer); margin:22px 0 0;
}
.bizname b{color:var(--ink); font-weight:500}

/* ---------- Quick nav tiles ---------- */
.quicknav{display:grid; grid-template-columns:repeat(5,1fr); gap:14px}
.qn{
  display:block; padding:22px 20px; border:1px solid var(--line-soft); border-radius:var(--r);
  background:var(--surface-2); color:var(--body);
  transition:border-color .2s ease,transform .2s ease,background .2s ease;
}
.qn:hover{border-color:var(--blue-deep); transform:translateY(-4px); background:var(--surface); text-decoration:none}
.qn .n{
  font-family:var(--font-mono); font-size:.63rem; letter-spacing:.18em;
  color:var(--dimmer); display:block; margin-bottom:12px;
}
.qn .ttl{
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  display:block; margin-bottom:6px; color:var(--blue-deep);
}
.qn .sub{font-size:.84rem; color:var(--dim); line-height:1.5; display:block}
.qn:hover .n{color:var(--green-deep)}

/* ---------- Launch / dates callout ---------- */
.launch{
  border:1px solid rgba(43,117,54,.5); border-left:3px solid var(--green-deep);
  background:linear-gradient(165deg,var(--surface-2),rgba(229,239,251,.75));
  border-radius:var(--r); padding:30px 32px; position:relative;
}
.launch .flag{
  font-family:var(--font-mono); font-size:.63rem; letter-spacing:.2em; text-transform:uppercase;
  color:#F3FBF4; background:var(--green-deep); border-radius:100px;
  padding:5px 13px; display:inline-block; margin-bottom:16px;
}
.launch h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.dates{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:8px}
@media (max-width:860px){.dates{grid-template-columns:1fr}}
.date-card{
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface-2);
  padding:24px 26px; position:relative;
}
.date-card .tagline{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dimmer); display:block; margin-bottom:12px;
}
.date-card .when{
  font-family:var(--font-display); font-weight:700; font-size:1.32rem; line-height:1.25;
  color:var(--ink); display:block; margin-bottom:4px;
}
.date-card .when em{font-style:normal; color:var(--green-deep)}
.date-card .span{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blue-deep); display:block; margin-bottom:14px;
}
.date-card p{font-size:.93rem; color:var(--dim); margin:0}
.date-card .weeks{
  position:absolute; top:22px; right:26px;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green-deep); border:1px solid rgba(43,117,54,.45); border-radius:100px; padding:3px 10px;
}

/* ==========================================================================
   SOLAR SYSTEM SIMULATION — home page centrepiece (navy instrument)
   ========================================================================== */
.sim-shell{
  border:1px solid var(--deep-line); border-radius:6px; overflow:hidden;
  background:radial-gradient(120% 95% at 50% 46%,#0A0E1E 0%,#05070F 72%);
  box-shadow:var(--shadow-dark); position:relative;
}
.sim-shell .screen-bar{background:rgba(20,26,49,.92)}
#orbitSim{display:block; width:100%; height:auto}
.sim-legend{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--deep-line); border-top:1px solid var(--deep-line);
}
.sim-legend > div{background:var(--deep); padding:16px 18px}
.sim-legend .k{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.16em; text-transform:uppercase;
  display:flex; align-items:center; gap:8px; margin-bottom:7px;
}
.sim-legend .k::before{content:""; width:9px; height:9px; border-radius:50%; background:currentColor; flex:none}
.sim-legend .sun-k{color:var(--sun-halo)}
.sim-legend .planet-k{color:var(--p-ice)}
.sim-legend .ast-k{color:#D08E70}
.sim-legend p{font-size:.84rem; color:var(--paper-dim); margin:0; line-height:1.55}
@media (max-width:720px){.sim-legend{grid-template-columns:1fr}}
.sim-caption{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.09em; color:var(--dimmer);
  text-align:center; margin-top:14px; text-transform:uppercase; line-height:1.7;
}
.section-ink .sim-caption{color:var(--paper-dimmer)}

/* ---------- Footer (navy) ---------- */
footer{
  background:var(--deep); border-top:1px solid var(--deep-line); padding:64px 0 28px;
  font-size:.92rem; color:var(--paper-dim);
}
.footer-grid{display:grid; grid-template-columns:1.7fr 1fr 1fr 1.15fr; gap:40px}
.footer-brand{display:flex; align-items:center; gap:11px; margin-bottom:16px}
.footer-brand img{width:36px; height:36px; border-radius:8px; border:1px solid var(--deep-line)}
.footer-brand strong{
  font-family:var(--font-display); font-size:1.18rem; color:#fff; letter-spacing:.03em;
  display:flex; flex-direction:column; line-height:1.15;
}
.footer-brand strong small{
  font-family:var(--font-mono); font-size:.57rem; font-weight:400; letter-spacing:.2em;
  text-transform:uppercase; color:var(--green); margin-top:5px;
}
footer h4{
  font-family:var(--font-mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--green); margin-bottom:16px;
}
footer ul{list-style:none; padding:0; margin:0}
footer li{margin-bottom:10px}
footer a{color:var(--paper-dim)}
footer a:hover{color:var(--green-hi)}
footer p{color:var(--paper-dim)}
.footer-bottom{
  display:flex; flex-wrap:wrap; gap:14px 26px; justify-content:space-between;
  border-top:1px solid var(--deep-line-soft); margin-top:46px; padding-top:22px;
  font-family:var(--font-mono); font-size:.71rem; letter-spacing:.05em; color:var(--paper-dimmer);
}
.footer-bottom .legal-name{color:var(--paper-dim)}

/* ---------- Motion ---------- */
.reveal{opacity:0; transform:translateY(14px); animation:rise .7s cubic-bezier(.22,.8,.28,1) forwards}
.reveal.d1{animation-delay:.06s}
.reveal.d2{animation-delay:.14s}
.reveal.d3{animation-delay:.22s}
.reveal.d4{animation-delay:.3s}
.reveal.d5{animation-delay:.38s}
@keyframes rise{to{opacity:1; transform:none}}

.inview{opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s cubic-bezier(.22,.8,.28,1)}
.inview.on{opacity:1; transform:none}

@media (prefers-reduced-motion:reduce){
  .reveal,.inview{animation:none!important; transition:none!important; opacity:1!important; transform:none!important}
  .hero h1 .cursor,.screen-bar .rec::before,.meet-bar .live::before,.typed .caret{animation:none}
  .btn:hover,.card:hover,.qn:hover,.step:hover{transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .quicknav{grid-template-columns:repeat(3,1fr)}
  .split,.split.wide-left,.split.wide-right{grid-template-columns:1fr; gap:44px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .nav-links{
    position:fixed; inset:74px 0 auto; flex-direction:column; align-items:stretch; gap:0;
    background:rgba(9,10,28,.99); backdrop-filter:blur(14px);
    border-bottom:1px solid var(--deep-line); padding:10px 22px 24px;
    max-height:calc(100dvh - 74px); overflow-y:auto;
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .2s ease,transform .2s ease;
  }
  .nav-links.open{transform:none; opacity:1; pointer-events:auto}
  .nav-links a{padding:15px 4px; font-size:.85rem; border-bottom:1px solid var(--deep-line-soft)}
  .nav-links a.active::after{left:4px; right:auto; width:26px; bottom:8px}
  .nav-cta{margin-left:auto}
  .nav-toggle{display:block}
  .nav-cta .btn{display:none}
  .grid-3,.grid-2{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr; gap:32px}
}
@media (max-width:640px){
  body{font-size:16px}
  section{padding:60px 0}
  .wrap{padding:0 19px}
  .panel,.booking,.launch{padding:24px 21px}
  .quote-card{padding:26px 22px; font-size:1rem}
  .quicknav{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .btn{width:100%}
  .btn-row{flex-direction:column}
  .hero-meta div{padding-right:18px; margin-right:18px}
  .step{grid-template-columns:1fr; gap:14px}
  .step-num{width:52px}
  .contact-row{padding:17px 18px; gap:14px}
  .doc{padding:20px 18px}
  .date-card{padding:20px 18px}
  .date-card .weeks{position:static; display:inline-block; margin-bottom:12px}
}
