/* TriageTrail homepage — "clean clinical editorial" direction (founder-selected 2026-10-04).
 * Loaded last, after style.css/catalogue.css/corporate.css/experience.css/tokens.css, so it can
 * deliberately override those shared, multi-page files rather than editing them — this is a
 * homepage-only redesign; other pages keep their existing dark navy/mint treatment until a
 * matching pass is done there too (see ENGINEERING-LOG.md).
 *
 * Palette: warm cream, deep navy-charcoal ink, one restrained deep-teal accent. Serif display
 * type (Fraunces) for headlines, Inter for everything else. Minimal imagery — a single thin
 * line-art pulse trace stands in for photography/video, used once, quietly.
 */
:root{
  --ed-bg:#f7f4ee;
  --ed-bg-alt:#efece2;
  --ed-ink:#1c2b2e;
  --ed-muted:#5b6b6a;
  --ed-teal:#0f5f5c;
  --ed-teal-soft:#e3efed;
  --ed-line:#d9d3c5;
  --ed-serif:'Fraunces',Georgia,serif;
}

/* ---------- Turn off the dark-tech ambient effects for this page ---------- */
.dimensional-field,.signal-cursor{display:none!important}
body{background:var(--ed-bg);background-image:none}
.hero-copy,.corporate-hero>div:first-child,.corporate-hero:after{transform:none!important}

/* ---------- Base type ---------- */
body{color:var(--ed-ink)}
h1,h2,h3,.brand .brand-word{font-family:var(--ed-serif);letter-spacing:-.01em;font-weight:500}
.eyebrow{font-family:'Inter',sans-serif;letter-spacing:.14em}
.mint,.eyebrow.mint{color:var(--ed-teal)!important}
main>section:not(.hero){background:var(--ed-bg)}

/* ---------- Header ---------- */
.site-header{background:var(--ed-bg)!important;border-bottom:1px solid var(--ed-line)!important;backdrop-filter:none!important;color:var(--ed-ink)}
.site-header .utility-nav,.site-header .utility-nav a{color:var(--ed-muted)}
.site-header .primary-nav nav a{color:var(--ed-ink)}
.site-header .primary-nav nav a:after{background:var(--ed-teal)}
.site-header .button.ghost{background:transparent;border-color:var(--ed-ink);color:var(--ed-ink);backdrop-filter:none}
.brand{display:inline-flex;align-items:baseline;gap:10px;color:var(--ed-ink)}
.brand:before{content:none}
.brand .brand-word{font-size:1.3rem;color:var(--ed-ink)}
.brand .brand-word em{color:var(--ed-teal);font-style:italic}
.brand .brand-rule{width:64px;height:7px;color:var(--ed-teal);flex:none;align-self:center}
.brand small{color:var(--ed-muted)!important;letter-spacing:.2em}
footer .brand,.site-footer .brand{color:#f7f4ee}
footer .brand .brand-word,.site-footer .brand .brand-word{color:#f7f4ee}
/* The generic .brand-word em/small rules below are tuned for the light header (dark teal /
   muted grey against cream) and read as low-contrast on this dark footer — found live via a
   luminance-diff audit, not visually obvious at a glance. Bright mint + lighter muted-on-dark,
   matching the footer's other accent colour and copy tone. */
footer .brand .brand-word em,.site-footer .brand .brand-word em{color:#79f2be}
footer .brand small,.site-footer .brand small{color:#9db3ae!important}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:auto;height:auto;padding:190px 6% 110px;background:var(--ed-bg);color:var(--ed-ink);display:block;overflow:hidden}
.hero-trace{position:absolute;inset:auto 0 0 0;height:55%;width:100%;color:var(--ed-teal);opacity:.14;pointer-events:none}
.hero-copy{position:relative;z-index:1;width:min(720px,92%);margin:0 auto;padding-top:0;text-align:center}
.hero .eyebrow{color:var(--ed-teal);justify-content:center}
.hero h1{font-size:clamp(2.8rem,6vw,5.2rem);line-height:1.03;letter-spacing:-.02em;color:var(--ed-ink);font-weight:500}
.hero h1 em{font-family:var(--ed-serif);font-style:italic;color:var(--ed-teal);font-weight:400}
/* !important here: style.css's .hero-copy>p:not(.eyebrow) is a class+:not+type selector,
   more specific than a bare .hero-lede/.draft class despite loading first — found live
   (computed colour was still the old pale `#d5e1de`, not this rule's value). */
.hero-lede{max-width:560px;margin:0 auto;color:var(--ed-muted)!important;font-size:1.1rem}
.hero .actions{justify-content:center}
.hero .draft{border-left-color:var(--ed-teal);color:var(--ed-muted)!important;max-width:560px;margin:28px auto 0;text-align:left}
.hero-stats{justify-content:center}
.hero-stats div{border-left-color:var(--ed-line);transition:transform .2s ease}
.hero-stats div:hover{transform:translateY(-3px)}
.hero-stats strong{color:var(--ed-teal)}
.hero-stats span{color:var(--ed-muted)}
.scroll-cue{left:50%;transform:translateX(-50%);color:var(--ed-muted)}
.button.primary{background:var(--ed-ink);border-color:var(--ed-ink);color:#f7f4ee!important;position:relative;overflow:hidden}
.button.primary:hover{background:var(--ed-teal);border-color:var(--ed-teal)}
.button.primary:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.25),transparent);transform:translateX(-120%);transition:transform .6s ease}
.button.primary:hover:after{transform:translateX(120%)}
.hero .button.ghost{border-color:var(--ed-ink)!important;color:var(--ed-ink)!important;background:transparent!important}

/* ---------- Signal deck -> editorial pathway list ---------- */
/* !important throughout this section's text colours: experience.css has a shared
   "every heading/p/li/small/span/strong/a inside these dark-surface sections turns light"
   rule whose selector list includes ".product.featured" (a compound selector), which makes
   :is()'s computed specificity (0,0,2,1) for every item in that list, not (0,0,1,1) as it
   looks at a glance — quietly beating a plain ".signal-deck h2"-style override even though
   this file loads later. Found live (computed colour was the old near-white `#f7fffc`, not
   this rule's value) rather than guessed from reading the selector. Cheapest reliable fix is
   !important; chasing exact specificity per element is fragile against that shared rule.
   Same reasoning applies to every ".review-panel" override below. */
.signal-deck{background:var(--ed-bg-alt)!important;color:var(--ed-ink);padding:100px 6%!important}
.signal-deck:before{display:none}
.signal-deck h2{color:var(--ed-ink)!important;font-size:clamp(2rem,4vw,3.2rem)}
.signal-deck__head p{color:var(--ed-muted)!important}
.signal-deck__console{grid-template-columns:260px 1fr}
.signal-tabs button{background:transparent;border:0;border-bottom:1px solid var(--ed-line);color:var(--ed-ink);border-radius:0;padding:18px 4px}
.signal-tabs button span{color:var(--ed-muted)!important}
.signal-tabs button strong{color:var(--ed-ink)!important}
.signal-tabs button.active,.signal-tabs button:hover{background:transparent;color:var(--ed-teal);transform:translateX(6px)}
.signal-tabs button.active span,.signal-tabs button:hover span{color:var(--ed-teal)!important}
.signal-tabs button.active strong,.signal-tabs button:hover strong{color:var(--ed-teal)!important}
.signal-screen{background:var(--ed-bg);border:1px solid var(--ed-line);box-shadow:none;transform:none!important}
.signal-screen h3{color:var(--ed-ink)!important;font-size:clamp(1.6rem,3vw,2.6rem)}
.signal-screen p{color:var(--ed-muted)!important}
.signal-meter{background:var(--ed-line)}
.signal-meter i{background:var(--ed-teal)}
.signal-points span{border-color:var(--ed-line);color:var(--ed-ink)!important}

/* ---------- Sample-check: live interactive demo ---------- */
.sample-check{background:var(--ed-bg)!important;padding:100px 6%!important;color:var(--ed-ink)}
.waitlist-cta{background:var(--ed-ink)!important;padding:72px 6%;color:#fff}
.waitlist-cta__inner{max-width:640px;margin:0 auto;text-align:center}
.waitlist-cta__inner p{color:#cfe3de}
.waitlist-cta form{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:24px;align-items:flex-end}
.waitlist-cta label{display:block;text-align:left;font-size:.78rem;color:#9eb5b0}
.waitlist-cta input[type=email]{display:block;margin-top:6px;padding:12px 14px;border-radius:4px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:#fff;min-width:260px;font-size:.95rem}
.waitlist-cta [data-waitlist-status]{width:100%;margin-top:10px;font-size:.82rem;color:#79f2be}

.sample-check__head{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end;margin-bottom:48px;max-width:1180px;margin-left:auto;margin-right:auto}
.sample-check__head h2{font-size:clamp(2rem,4vw,3rem);line-height:1.02;margin:0 0 14px;color:var(--ed-ink)}
.sample-check__head p{color:var(--ed-muted);font-size:1.02rem;margin:0}
.sample-check__card{max-width:1180px;margin:0 auto;background:var(--ed-ink);border-radius:4px;padding:clamp(28px,4vw,52px);box-shadow:none;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);align-items:center}
.sample-check__prompt{color:#9eb5b0;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 18px}
.sample-check__strip{display:block;width:100%;height:auto;background:#13201f;border:1px solid rgba(121,242,190,.2);border-radius:4px}
.sample-check__strip path{fill:none;stroke:#79f2be;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sample-check__strip .grid-line{stroke:rgba(121,242,190,.08);stroke-width:1}
.sample-check__panel h3{color:#f7fffc;font-size:1.5rem;margin:0 0 18px;line-height:1.2;font-family:var(--ed-serif);font-weight:500}
.sample-check__options{display:grid;gap:10px}
.sample-check__options button{text-align:left;border:1px solid rgba(121,242,190,.3);background:rgba(121,242,190,.06);color:#eef4f1;padding:16px 18px;border-radius:4px;font:inherit;font-size:.95rem;cursor:pointer;transition:.2s}
.sample-check__options button:hover{background:rgba(121,242,190,.14);border-color:rgba(121,242,190,.55)}
.sample-check__options button:focus-visible{outline:3px solid #f3ad5d;outline-offset:2px}
.sample-check__card[data-answered] .sample-check__options{display:none}
.sample-check__result{display:none}
.sample-check__card[data-answered] .sample-check__result{display:block;animation:resultIn .4s ease}
.sample-check__card[data-answered="correct"] .result-correct,.sample-check__card[data-answered="wrong"] .result-wrong{display:flex}
.sample-check__result p{display:none;gap:12px;align-items:flex-start;margin:0 0 20px;font-size:.98rem;line-height:1.55;padding:16px 18px;border-radius:4px}
.sample-check__result p:before{flex:none;font-weight:900;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem}
.result-correct{background:rgba(121,242,190,.1);border:1px solid rgba(121,242,190,.35);color:#dff7ec}
.result-correct:before{content:"✓";background:#79f2be;color:#06221f}
.result-wrong{background:rgba(243,173,93,.1);border:1px solid rgba(243,173,93,.4);color:#ffe9cf}
.result-wrong:before{content:"i";background:#f3ad5d;color:#3a2206}
.sample-check__reset{background:none;border:0;color:#9eb5b0;text-decoration:underline;font-size:.78rem;cursor:pointer;padding:0;margin-right:18px}
.sample-check__card a.button{margin-top:4px}
@keyframes resultIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ---------- Pathways / course levels ---------- */
.pathways{background:var(--ed-bg)!important}
.section-head h2{color:var(--ed-ink)}
.section-head>p{color:var(--ed-muted)}
.level-grid{border-color:var(--ed-line)}
.level-grid article{border-color:var(--ed-line);transition:background .2s ease}
.level-grid article:hover{background:var(--ed-bg-alt)}
.level-no{color:var(--ed-line)}
.level-grid h3{font-family:var(--ed-serif);font-weight:500}
.level-grid article>p:not(.eyebrow){color:var(--ed-muted)}
.catalogue-controls input,.catalogue-controls select{background:var(--ed-bg);border-color:var(--ed-line);color:var(--ed-ink)}
.filter{border-color:var(--ed-line);color:var(--ed-ink)}
.filter.active,.filter:hover{background:var(--ed-ink);color:#f7f4ee}
.course{background:var(--ed-bg);border:1px solid var(--ed-line);border-top:3px solid transparent}
.course:hover{border-top-color:var(--ed-teal);border-color:var(--ed-line);box-shadow:0 20px 45px rgba(28,43,46,.08)}
.course h3{font-family:var(--ed-serif);font-weight:500}
.course>p:not(.eyebrow){color:var(--ed-muted)}
.status{background:var(--ed-teal);color:#f7f4ee}
.course-icon{color:var(--ed-teal)}
.course-foot{border-top-color:var(--ed-line)}
/* "Featured"/in-development courses use the old product teal (#0d3539) as a dark card — swap
   to the new ink so it reads as "the dark accent card" consistently with .sample-check__card
   rather than a leftover colour from the old palette. */
.course.featured{background:var(--ed-ink)}
.course.featured .status{background:var(--ed-teal-soft);color:var(--ed-ink)}

/* ---------- Reviews ---------- */
.review-panel{background:var(--ed-bg-alt)!important;color:var(--ed-ink)}
.review-panel h2{color:var(--ed-ink)!important}
.review-panel>div>p:not(.eyebrow){color:var(--ed-muted)!important}
.review-card{border-top-color:var(--ed-teal)}
/* .review-card is meant to be protected by experience.css's own "light card on dark surface"
   rule, but that rule loses this same specificity trap (a compound selector elsewhere in its
   own :is() list, ".analyte-grid article", inflates it less than the dark-surface rule's
   ".product.featured" does) when the card sits inside .review-panel, which is itself in the
   dark-surface list. Found live: "Verified reviews only" rendered near-white on the card's
   white background. !important again, for the same reason as the signal-deck block above. */
.review-card h3{color:var(--ed-ink)!important}
.review-card p{color:var(--ed-muted)!important}

/* ---------- Checkout flow ---------- */
.checkout{background:var(--ed-bg)!important}
.checkout h2{color:var(--ed-ink)}
.checkout-flow span{border-color:var(--ed-line);color:var(--ed-ink)}
.checkout>p:last-child{color:var(--ed-muted)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ed-ink)!important}

/* ---------- Kill the pointer-tilt/parallax effects from experience.js for this page ---------- */
.course,.product,.corporate-card,.support-card,.review-card{transform:none!important}

@media(prefers-reduced-motion:reduce){
  .hero-stats div:hover,.level-grid article:hover{transition:none}
  .button.primary:after{display:none}
  .sample-check__card[data-answered] .sample-check__result{animation:none}
}

@media(max-width:860px){
  .signal-deck__console{grid-template-columns:1fr}
  .sample-check__card{grid-template-columns:1fr}
  .hero{padding-top:160px}
}
@media(max-width:600px){
  .sample-check__head{grid-template-columns:1fr;gap:18px}
}

/* TriageTrail brand asset */
.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none}
.brand-icon{display:block;width:54px;height:54px;object-fit:contain;flex:0 0 auto}
.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
footer .brand-icon{width:58px;height:58px}
@media(max-width:700px){.brand-icon{width:42px;height:42px}.brand{gap:.55rem}}

/* TriageTrail brand asset */
.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none}
.brand-icon{display:block;width:54px;height:54px;object-fit:contain;flex:0 0 auto}
.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
footer .brand-icon{width:58px;height:58px}
@media(max-width:700px){.brand-icon{width:42px;height:42px}.brand{gap:.55rem}}
