/* ============ HelpMeMarketing — Premium Generalist ============ */
/* Canonical tokens live in docs/HMM_Design_System.md. Phase 1 re-points the old token names
   at the new palette so layouts keep rendering while colors shift. Legacy
   aliases are removed progressively as pages migrate (Phases 3-6). */
:root {
  /* Surfaces */
  --ivory:          #FAF9F6;
  --gray-surface:   #F1EFEB;
  --border:         #E8E4DC;

  /* Text */
  --text-primary:   #1A1A1A;
  --text-secondary: #6B7280;
  --text-tertiary:  #9CA3AF;

  /* Dark sections */
  --navy:           #0A1628;
  --navy-dark:      #050B14;
  --navy-light:     #1E2D47;

  /* Accent */
  --gold:           #C9A96E;
  --gold-soft:      #E4D4A8;

  /* Data-viz only — never UI chrome */
  --chart-blue:     #2563EB;
  --chart-green:    #10B981;
  --chart-red:      #EF4444;

  /* ----- Legacy aliases (pre-repositioning code still references these) ----- */
  --primary:       var(--navy);
  --primary-dark:  var(--navy-dark);
  --deep:          var(--navy);
  --deep-soft:     var(--navy-light);
  --mint:          var(--gold);
  --mint-soft:     #F5EDD8;
  --cream:         var(--gray-surface);
  --cream-warm:    var(--gray-surface);
  --ink:           var(--text-primary);
  --ink-60:        var(--text-secondary);
  --ink-40:        var(--text-tertiary);
  --ink-80:        #2A3534;
  --line:          var(--border);
  --line-soft:     var(--border);
  --coral:         var(--chart-red);
  --butter:        #F6B44B;
  --sand:          #E89A2E;
  --white:         #ffffff;

  /* Radii + shadows (warmer tint to match ivory base) */
  --radius:    14px;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px rgba(26,22,14,0.04), 0 2px 6px rgba(26,22,14,0.03);
  --shadow-md: 0 4px 14px rgba(26,22,14,0.06), 0 12px 28px rgba(26,22,14,0.05);
  --shadow-lg: 0 10px 30px rgba(26,22,14,0.08), 0 30px 60px rgba(26,22,14,0.08);

  /* Type */
  --serif: 'Fraunces', Georgia, serif;
  --sans:  'Inter', -apple-system, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--white);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 { margin: 0; line-height: 1.08; letter-spacing: -0.02em; color: var(--deep); font-weight: 500;}
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 4px;}

::selection { background: var(--mint); color: var(--deep);}

@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }

.serif { font-family: var(--serif); font-weight: 400; letter-spacing: -0.01em;}
.mono { font-family: 'JetBrains Mono', monospace; }

.container { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.container-narrow { max-width: 860px; margin: 0 auto; padding: 0 32px; }

/* ============ App shell ============ */
.app { min-height: 100vh; background: var(--white); }

/* ============ Nav ============ */
.nav {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(12px);
  background: rgba(250, 249, 246, 0.95);
  border-bottom: 1px solid var(--border);
}
.nav-inner {
  max-width: 1240px; margin: 0 auto; padding: 14px 32px;
  display: flex; align-items: center; gap: 28px;
}
.logo {
  display: flex; align-items: center; gap: 10px;
  font-weight: 600; font-size: 17px; color: var(--text-primary); letter-spacing: -0.01em;
}
.logo-mark {
  width: 32px; height: 32px; border-radius: 6px;
  background: var(--navy); color: var(--ivory);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 13px; font-weight: 500;
  letter-spacing: -0.02em;
  position: relative;
}
.logo-mark .me-italic {
  font-style: italic; color: var(--gold); margin-left: 1px;
}
.nav-links { display: flex; gap: 2px; margin-left: 12px; flex: 1; }
.nav-link {
  padding: 8px 14px; border-radius: 8px;
  font-size: 14px; color: var(--ink-60); font-weight: 500;
  cursor: pointer; transition: background 0.15s, color 0.15s;
}
.nav-link:hover { background: var(--cream); color: var(--deep); }
.nav-link.active { color: var(--deep); background: var(--cream); }
.nav-cta { display: flex; gap: 10px; align-items: center;}

@media (max-width: 900px){
  .nav-links { display: none; }
  .nav-signin { display: none; }
  .nav-inner { gap: 16px; }
}
@media (max-width: 680px){
  .logo-pill { display: none; }
  .nav-main-cta { display: none; }
}
@media (max-width: 520px){
  .nav-inner { padding: 12px 20px; gap: 10px; }
  .nav-cta .btn-accent { padding: 10px 14px; font-size: 13px; }
  .logo-text { font-size: 15px; }
}

/* ============ Buttons ============ */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px; border-radius: 999px;
  font-size: 14px; font-weight: 500;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  white-space: nowrap;
}
.btn-primary { background: var(--deep); color: white; box-shadow: 0 1px 2px rgba(10,46,44,0.1);}
.btn-primary:hover { background: var(--deep-soft); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(10,46,44,0.18); }
.btn-accent { background: var(--primary); color: white; box-shadow: 0 1px 2px rgba(0,181,165,0.2);}
.btn-accent:hover { background: var(--primary-dark); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(0,181,165,0.28);}
.btn-ghost { color: var(--deep); }
.btn-ghost:hover { background: var(--cream); }
.btn-outline { border: 1px solid var(--line); color: var(--deep); background: white;}
.btn-outline:hover { border-color: var(--deep); background: var(--cream);}
.btn-lg { padding: 14px 24px; font-size: 15px; }
.btn-sm { padding: 8px 14px; font-size: 13px; }
.btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }

/* ============ Hero grid — stacks below 1100px ============ */
.hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 80px;
  align-items: center;
}
@media (max-width: 1100px){
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ============ Sections ============ */
section { padding: 88px 0; }
@media (max-width: 900px){ section { padding: 56px 0; } }
.section-tight { padding: 48px 0; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 500; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--navy);
}
.eyebrow-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }

/* ============ Pills / Chips ============ */
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 999px;
  font-size: 12px; font-weight: 500;
  background: var(--mint-soft); color: var(--deep);
}

/* ============ Cards ============ */
.card {
  background: white; border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 28px;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.card:hover { border-color: var(--mint); box-shadow: 0 14px 30px rgba(10,46,44,0.08); transform: translateY(-3px);}

/* ============ Utility ============ */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
@media (max-width: 1000px){
  .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  section { padding: 48px 0; }
  .container, .container-narrow { padding: 0 20px; }
}
.flex { display: flex; }
.flex-col { display: flex; flex-direction: column; }
.gap-8 { gap: 8px; } .gap-12 { gap: 12px; } .gap-16 { gap: 16px; } .gap-24 { gap: 24px; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.mt-8{margin-top:8px;} .mt-16{margin-top:16px;} .mt-24{margin-top:24px;} .mt-32{margin-top:32px;} .mt-48{margin-top:48px;} .mt-64{margin-top:64px;}

/* ============ Footer ============ */
.footer {
  background: var(--navy); color: rgba(250, 249, 246, 0.8);
  padding: 80px 0 40px;
}
.footer h4 {
  color: rgba(250, 249, 246, 0.5); font-family: var(--sans); font-size: 12px;
  font-weight: 500; letter-spacing: 0.15em; text-transform: uppercase;
  margin-bottom: 20px;
}
.footer a {
  color: rgba(250, 249, 246, 0.8); font-size: 14px;
  display: block; padding: 5px 0; transition: color 0.2s;
}
.footer a:hover { color: var(--gold); }
.footer-brand-col p {
  color: rgba(250, 249, 246, 0.6); font-size: 14px;
  line-height: 1.6; max-width: 280px;
}
.footer-brand-col p.footer-roster {
  font-size: 12px; line-height: 1.55;
  color: rgba(250, 249, 246, 0.4);
  margin-top: 14px; max-width: 320px;
}
.footer-badges {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px;
}
.footer-badge {
  font-size: 11px; padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 100px;
  color: rgba(250, 249, 246, 0.8); display: inline-block;
}
.footer-bottom {
  margin-top: 0; padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex; justify-content: space-between;
  color: rgba(250, 249, 246, 0.5); font-size: 13px;
}
.footer-bottom a {
  color: rgba(250, 249, 246, 0.7); display: inline-block; padding: 0;
}

/* ============ Page transitions ============ */
.page-enter { animation: pageIn 0.35s cubic-bezier(.2,.8,.2,1); }
@keyframes pageIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; }}

/* ============================================================
   Responsive 2-col stack utilities
   ============================================================ */
.stack-lg { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.stack-md { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.stack-asym-lg { display: grid; grid-template-columns: 1.2fr 1fr; gap: 64px; align-items: center; }
.stack-asym-right { display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px; align-items: start; }
.stack-contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; }
.stack-about { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
@media (max-width: 960px){
  .stack-lg, .stack-md, .stack-asym-lg, .stack-asym-right, .stack-contact, .stack-about {
    grid-template-columns: 1fr; gap: 40px;
  }
}

/* ============ Compliance section ============ */
.compliance-head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 48px;
  align-items: end;
  margin-bottom: 56px;
}
.compliance-sub {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-60);
  max-width: 440px;
  padding-bottom: 8px;
}
.compliance-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 24px;
  align-items: stretch;
}
.compliance-frameworks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.compliance-card {
  background: white;
  border: 1px solid var(--line-soft);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.compliance-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -16px rgba(10,46,44,0.14);
  border-color: rgba(0,181,165,0.35);
}
.compliance-card-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: var(--mint-soft);
  color: var(--primary-dark);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.compliance-card-body { flex: 1; min-width: 0; }
.compliance-abbr {
  font-size: 14px;
  font-weight: 700;
  color: var(--deep);
  letter-spacing: -0.005em;
  line-height: 1.2;
}
.compliance-region {
  font-size: 11px;
  color: var(--ink-60);
  margin-top: 3px;
  letter-spacing: 0.02em;
  font-weight: 500;
}
.compliance-note {
  font-size: 12.5px;
  color: var(--ink-60);
  margin-top: 10px;
  line-height: 1.5;
}
.compliance-aside {
  background: var(--deep);
  border-radius: 20px;
  padding: 28px;
  color: white;
  position: relative;
  overflow: hidden;
}
.compliance-aside::before {
  content: '';
  position: absolute;
  top: -50px; right: -50px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0,181,165,0.2) 0%, transparent 70%);
  pointer-events: none;
}
.compliance-aside-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mint);
  position: relative;
}
.compliance-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  display: grid;
  gap: 10px;
  position: relative;
}
.compliance-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: rgba(255,255,255,0.85);
  line-height: 1.45;
  padding-left: 0;
}
.compliance-list li::before {
  content: '✕';
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255,138,101,0.18);
  color: var(--coral);
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1;
  margin-top: 1px;
}
.compliance-aside-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.12);
  position: relative;
}
.compliance-foot {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px dashed var(--line);
}
.compliance-foot-num {
  font-family: var(--serif);
  font-size: 44px;
  line-height: 1;
  color: var(--deep);
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.compliance-foot-label {
  font-size: 13px;
  color: var(--ink-60);
  line-height: 1.5;
}

@media (max-width: 960px){
  .compliance-head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 36px; }
  .compliance-sub { max-width: 100%; }
  .compliance-grid { grid-template-columns: 1fr; }
  .compliance-foot { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 560px){
  .compliance-frameworks { grid-template-columns: 1fr; }
  .compliance-foot-num { font-size: 36px; }
}

.hero-break { display: none; }

/* Ad-calculator breakdown — 2-col layout for "How we got there" rows.
   Inputs/process column (rows 1-5) | outcomes/economics column (rows 6-9).
   Mobile collapses to single column via the @media rule below. */
.bd-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }

/* ============ Resources pages ============ */
@media (max-width: 960px){
  .blog-feature { grid-template-columns: 1fr !important; }
  .blog-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .blog-news { grid-template-columns: 1fr !important; padding: 32px !important; }
  .calc-grid { grid-template-columns: 1fr !important; }
  .calc-inputs { position: static !important; }
  .calc-stats { grid-template-columns: 1fr !important; }
  .bd-cols { grid-template-columns: 1fr !important; }
  .hipaa-cta { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px){
  .blog-grid { grid-template-columns: 1fr !important; }
}

/* ============ Contact page — refined ============ */
.contact-page .stack-contact {
  grid-template-columns: 380px 1fr;
  gap: 80px;
  align-items: start;
}
.contact-aside {
  position: sticky;
  top: 100px;
}
.contact-contacts {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--line-soft);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* --- Form card --- */
.contact-form {
  background: white;
  border: 1px solid var(--line-soft);
  border-radius: 24px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 24px 64px -32px rgba(10,46,44,0.08), 0 0 0 1px rgba(10,46,44,0.02);
}

.form-label {
  font-size: 12px;
  color: var(--ink-60);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 10px;
}
.form-label-hint {
  color: var(--ink-60);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: 12px;
  margin-left: 6px;
}
.form-input {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-family: inherit;
  font-size: 15px;
  background: white;
  color: var(--deep);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.form-input::placeholder { color: var(--ink-60); }
.form-input:hover { border-color: var(--ink-60); }
.form-input:focus {
  outline: none;
  border-color: var(--primary);
  background: white;
  box-shadow: 0 0 0 4px rgba(0, 181, 165, 0.12);
}
.form-select-wrap { position: relative; }
.form-select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  cursor: pointer;
}
.form-select-caret {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-60);
  pointer-events: none;
}
.form-prefix-wrap {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: white;
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.form-prefix-wrap:hover { border-color: var(--ink-60); }
.form-prefix-wrap:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(0, 181, 165, 0.12);
}
.form-prefix {
  display: grid;
  place-items: center;
  padding: 0 14px;
  background: var(--cream);
  border-right: 1px solid var(--line-soft);
  font-size: 13px;
  color: var(--ink-60);
  font-weight: 500;
  white-space: nowrap;
}
.form-input-prefixed {
  border: none;
  border-radius: 0;
  background: white;
  flex: 1;
}
.form-input-prefixed:hover, .form-input-prefixed:focus { border: none; box-shadow: none; }
.form-textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-family: inherit;
  font-size: 15px;
  background: white;
  color: var(--deep);
  resize: vertical;
  min-height: 110px;
  line-height: 1.55;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.form-textarea:hover { border-color: var(--ink-60); }
.form-textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(0, 181, 165, 0.12);
}

.chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.chip {
  padding: 10px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink-80);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: all 0.15s ease;
}
.chip:hover { border-color: var(--ink-60); background: var(--cream); }
.chip-on {
  border-color: var(--primary-dark);
  background: var(--mint-soft);
  color: var(--primary-dark);
}

.contact-privacy-mini {
  padding: 14px 40px 18px;
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  color: var(--ink-60);
  line-height: 1.4;
  border-top: 1px solid var(--line-soft);
  background: var(--cream);
}
.contact-form-compact .chip { padding: 9px 14px; font-size: 13px; }
.contact-submit {
  margin: 0;
  padding: 18px 24px;
  border-radius: 0;
  border: none;
  background: var(--deep);
  color: white;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.005em;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  transition: background 0.15s ease;
}
.contact-submit:hover { background: var(--primary); }

/* Thank-you state */
.contact-thanks {
  background: white;
  border: 1px solid var(--line-soft);
  border-radius: 24px;
  padding: 80px 40px;
  text-align: center;
  box-shadow: 0 24px 64px -32px rgba(10,46,44,0.08);
}
.contact-thanks-glyph {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--primary);
  display: grid;
  place-items: center;
  margin: 0 auto 24px;
  box-shadow: 0 12px 24px -10px rgba(0,181,165,0.5);
}

@media (max-width: 960px){
  .contact-page .stack-contact { grid-template-columns: 1fr !important; gap: 40px !important; }
  .contact-aside { position: static; }
  .contact-submit { margin: 18px 24px 28px; width: calc(100% - 48px); }
}
@media (max-width: 560px){
  .contact-contacts { grid-template-columns: 1fr; }
}

/* ============ Reviews carousel ============ */
.reviews-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 28px;
}
.reviews-controls {
  display: flex;
  gap: 10px;
  flex-shrink: 0;
}
.review-nav {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: white;
  color: var(--deep);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all 0.2s ease;
}
.review-nav:hover {
  background: var(--deep);
  color: white;
  border-color: var(--deep);
  transform: translateY(-1px);
}

.reviews-track-wrap {
  width: 100%;
  overflow: hidden;
}
.reviews-track {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 6px 0 14px;
  scroll-behavior: smooth;
}
.reviews-track::-webkit-scrollbar { display: none; }
.reviews-spacer {
  flex: 0 0 max(24px, calc((100vw - 1200px) / 2));
}

.review-card {
  flex: 0 0 min(380px, 85vw);
  scroll-snap-align: start;
  background: white;
  border-radius: 16px;
  padding: 24px 24px 20px;
  border: 1px solid var(--line-soft);
  box-shadow: 0 8px 24px -10px rgba(10,46,44,0.08);
  display: flex;
  flex-direction: column;
  position: relative;
}

.review-quote {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.35;
  color: var(--deep);
  letter-spacing: -0.005em;
  margin: 0 0 20px;
  flex: 1;
}

.review-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding: 14px 0;
  margin-bottom: 14px;
  border-top: 1px dashed var(--line);
  border-bottom: 1px dashed var(--line);
}
.review-metric-label {
  font-size: 9px;
  color: var(--ink-60);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 4px;
  line-height: 1.3;
}
.review-metric-value {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--deep);
  letter-spacing: -0.01em;
  line-height: 1.1;
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
}
.review-metric-arrow {
  font-size: 14px;
  font-weight: 700;
}
.review-metric-arrow.up { color: var(--primary); }
.review-metric-arrow.down { color: var(--primary); }

.review-attribution {
  display: flex;
  flex-direction: column;
}
.review-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--deep);
  letter-spacing: -0.005em;
}
.review-role {
  font-size: 12px;
  color: var(--ink-60);
  margin-top: 2px;
  line-height: 1.4;
}
.review-location {
  font-size: 11px;
  color: var(--ink-40);
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.reviews-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 22px;
}
.review-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: none;
  background: var(--line);
  cursor: pointer;
  padding: 0;
  transition: all 0.25s ease;
}
.review-dot.active {
  background: var(--primary);
  width: 22px;
  border-radius: 999px;
}

@media (max-width: 720px){
  .reviews-header { flex-direction: column; align-items: flex-start; }
  .review-card { padding: 28px 24px 24px; }
  .review-quote { font-size: 20px; }
  .review-metric-value { font-size: 17px; }
}
@media (max-width: 560px) { .hero-pill-pharmacy { display: none; } }
@media (min-width: 1200px) { .hero-break { display: inline; } }
.hero-visual { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 16px; height: 560px; }
.hero-visual-2x2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
  height: 500px;
}
.hero-visual-2x2 .hero-card { min-height: 0; }
@media (max-width: 1100px){
  .hero-visual { grid-template-columns: 1fr; grid-template-rows: auto auto auto; height: auto; max-width: 520px; margin: 0 auto; }
  .hero-visual-2x2 { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; height: auto; max-width: 720px; margin: 0 auto; gap: 14px; }
}
@media (max-width: 520px){
  .hero-visual-2x2 { grid-template-columns: 1fr; grid-template-rows: auto auto auto auto; max-width: 380px; }
}

/* Stats row */
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 48px; border-top: 1px solid rgba(255,255,255,0.1);}
@media (max-width: 720px){ .stats-row { grid-template-columns: repeat(2, 1fr); gap: 20px 16px; padding-top: 32px;} }

/* Pain points */
.pain-row { display: grid; grid-template-columns: 60px 1fr auto; gap: 24px; align-items: center; padding: 28px 4px; border-top: 1px solid var(--line); }
@media (max-width: 640px){
  .pain-row { grid-template-columns: 48px 1fr; gap: 16px; padding: 22px 0;}
  .pain-row > .pain-arrow { display: none; }
}

/* About values */
.about-value-row { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 28px 0; border-top: 1px solid var(--line); }
@media (max-width: 480px){
  .about-value-row { grid-template-columns: 44px 1fr; gap: 14px; padding: 22px 0; }
}

/* Form 2-col rows */
.form-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px){ .form-2col { grid-template-columns: 1fr; } }

/* ============================================================
   Footer responsive
   ============================================================ */
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 48px; margin-bottom: 64px; }
@media (max-width: 1000px){ .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 40px 32px; } .footer-brand-col { grid-column: 1 / -1; } }
@media (max-width: 640px){ .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; } .footer-brand-col { grid-column: 1 / -1; } }
@media (max-width: 420px){ .footer-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px){
  .footer { padding: 56px 0 32px; }
  .footer-bottom { flex-direction: column; gap: 14px; margin-top: 40px; }
}

/* ============================================================
   Nav hamburger (mobile)
   ============================================================ */
.nav-hamburger {
  display: none; width: 40px; height: 40px; border-radius: 10px;
  background: var(--cream); border: 1px solid var(--line);
  align-items: center; justify-content: center; cursor: pointer;
}
.nav-hamburger span { display: block; width: 18px; height: 2px; background: var(--deep); position: relative; transition: transform 0.2s;}
.nav-hamburger span::before, .nav-hamburger span::after {
  content: ''; position: absolute; left: 0; width: 18px; height: 2px; background: var(--deep); transition: transform 0.2s;
}
.nav-hamburger span::before { top: -6px; }
.nav-hamburger span::after { top: 6px; }
.nav-hamburger.open span { background: transparent; }
.nav-hamburger.open span::before { transform: translateY(6px) rotate(45deg); }
.nav-hamburger.open span::after { transform: translateY(-6px) rotate(-45deg); }
.nav-mobile-menu {
  position: fixed; top: 64px; left: 0; right: 0; z-index: 49;
  background: white; border-bottom: 1px solid var(--line-soft);
  padding: 16px 20px 24px;
  box-shadow: 0 20px 40px rgba(10,46,44,0.08);
  display: none;
}
.nav-mobile-menu.open { display: flex; flex-direction: column; gap: 2px; }
.nav-mobile-menu .nav-link { padding: 14px 16px; font-size: 16px; border-radius: 10px; }
.nav-mobile-menu .nav-link.active { background: var(--mint-soft); }
.nav-mobile-menu .mobile-cta-row { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.nav-mobile-menu .mobile-cta-row .btn { justify-content: center; }

@media (max-width: 900px){
  .nav-hamburger { display: inline-flex; }
  .nav-signin { display: none; }
}

/* ============================================================
   Mobile typography scale
   ============================================================ */
@media (max-width: 640px){
  body { font-size: 15px; }
  .container, .container-narrow { padding: 0 20px; }

  .hero-h1 { font-size: 40px !important; line-height: 1.05 !important; }
  .display-xl { font-size: 40px !important; line-height: 1.05 !important; }
  .display-lg { font-size: 34px !important; line-height: 1.08 !important; }
  .display-md { font-size: 28px !important; line-height: 1.1 !important; }
  .display-sm { font-size: 24px !important; line-height: 1.15 !important; }
  .eyebrow-stat { font-size: 40px !important; }
  .stat-big { font-size: 44px !important; }

  .btn-lg { padding: 13px 20px; font-size: 14px; }
  section { padding: 56px 0; }
  .card { padding: 22px; border-radius: 18px; }
}

@media (max-width: 420px){
  .hero-h1 { font-size: 34px !important; }
  .display-xl { font-size: 34px !important; }
  .display-lg { font-size: 30px !important; }
}

.cta-card { padding: 80px 60px; border-radius: 32px; }
@media (max-width: 900px){ .cta-card { padding: 56px 32px; border-radius: 24px; } }
@media (max-width: 640px){ .cta-card { padding: 40px 24px; border-radius: 20px; } }

.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1000px){ .pricing-grid { grid-template-columns: 1fr; gap: 16px; max-width: 440px; margin: 0 auto; } }

/* ============================================
   SERVICE PAGE COMPONENTS — Hero, body, cards, related reading
   ============================================
   Shared by the 9 /services/[name] pages and Bundle Builder. All
   classes here are template; do not redefine in page-local style
   blocks.

   - Hero:        .hero-zone / .services-hero / .hero-content /
                  .hero-headline / .services-hero-visual
   - Body prose:  .prose-block (with descendants) / .section-deck /
                  .caveat-list
   - Tier cards:  .tier-card-grid + .tier-card variants
                  (Foundation / Growth / Scale)
   - Outcomes:    .outcome-grid + .outcome-card variants
   - Disclosure:  .disclosure-card variants
   - Related:     .related-grid + .related-card variants
   - Sections:    .tiers-section / .outcomes-section /
                  .disclosure-section / .related-reading wrappers

   Hero values mirror .home-hero (search ".home-hero {" for source).
   Section wrappers inherit the global `section { padding: 88px 0 }`
   rule. */

.tier-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .tier-card-grid { grid-template-columns: 1fr; }
}

.tier-card {
  background: #fff;
  border: 1px solid var(--border);
  border-top: 4px solid var(--gold);
  border-radius: 20px;
  padding: 32px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.tier-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.tier-card-eyebrow {
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gold);
}

.tier-card-who {
  font-size: 14px;
  color: var(--navy);
}

.tier-card-pricing {
  font-size: 22px;
  font-weight: 700;
  color: var(--gold);
}

.tier-card-pricing-meta {
  font-size: 13px;
  font-style: italic;
  color: var(--text-secondary);
}

.tier-card-section-heading {
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
}

.tier-card-fits-list,
.tier-card-excluded-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tier-card-fits-list li,
.tier-card-excluded-list li {
  position: relative;
  padding-left: 18px;
  font-size: 14px;
  line-height: 1.5;
}
.tier-card-fits-list li { color: var(--navy); }
.tier-card-excluded-list li { color: var(--text-secondary); }
.tier-card-fits-list li::before,
.tier-card-excluded-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}
.tier-card-excluded-list li::before {
  background: var(--text-tertiary);
}

.tier-card-focus {
  font-size: 14px;
  font-style: italic;
  color: var(--navy);
}

/* Outcome card — "What this looks like in practice" results */
.outcome-card {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 16px;
}
.outcome-card-eyebrow {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gold);
}
.outcome-card-metric {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
}
.outcome-card-profile {
  font-size: 14px;
  font-style: italic;
  color: var(--text-tertiary);
}

/* Disclosure card — "About our pricing" footnote block */
.disclosure-card {
  background: var(--ivory);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
}
.disclosure-card-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gold);
}
.disclosure-card-body {
  font-size: 14px;
  color: var(--navy);
}

.hero-zone {
  background: var(--gray-surface);
  padding: 80px 0 104px;
  position: relative;
  overflow: hidden;
}
@media (max-width: 900px) {
  .hero-zone { padding: 56px 0 72px; }
}
.services-hero .container {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 80px;
  align-items: center;
}
@media (max-width: 900px) {
  .services-hero .container { grid-template-columns: 1fr; gap: 40px; }
}
.hero-headline {
  font-family: var(--serif);
  font-size: clamp(48px, 6.5vw, 84px);
  margin: 24px 0 28px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--deep);
  font-weight: 400;
}
.services-hero-visual { display: block; }
.services-hero-visual img {
  width: 100%;
  height: auto;
  border-radius: 14px;
  display: block;
}

/* Long-form content (prose-block) */
.prose-block h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--deep);
  margin-bottom: 24px;
}
.prose-block p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-primary);
  margin-bottom: 18px;
}
.prose-block p:last-child { margin-bottom: 0; }
.prose-block ol,
.prose-block ul {
  margin: 18px 0;
  padding-left: 24px;
  font-size: 17px;
  line-height: 1.7;
  color: var(--text-primary);
}
.prose-block li { margin-bottom: 10px; }
.prose-block li:last-child { margin-bottom: 0; }
.prose-block strong { font-weight: 600; color: var(--deep); }

/* Section subtitle (after h2 in tier/outcome sections) */
.section-deck {
  font-size: 18px;
  line-height: 1.5;
  color: var(--text-secondary);
  max-width: 620px;
  margin-bottom: 40px;
}

/* Tier / outcome / disclosure section wrappers
   (inherit section { padding: 88px 0 } from line 176) */
.tiers-section h2,
.outcomes-section h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--deep);
  margin-bottom: 16px;
}

/* Outcome card grid — mirrors .tier-card-grid */
.outcome-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .outcome-grid { grid-template-columns: 1fr; }
}

/* Caveat list ("Not for you if") */
.caveat-list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.caveat-list li {
  position: relative;
  padding-left: 24px;
  font-size: 17px;
  line-height: 1.6;
  color: var(--text-primary);
}
.caveat-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
}

/* Related reading (3-up blog card grid) */
.related-reading {
  /* inherits default section padding 88px 0 */
}
.related-reading h2 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--deep);
  margin-bottom: 32px;
}
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 768px) {
  .related-grid { grid-template-columns: 1fr; }
}
.related-card {
  display: block;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: white;
  text-decoration: none;
  transition: border-color 0.2s, transform 0.2s;
}
.related-card:hover {
  border-color: var(--gold);
  transform: translateY(-2px);
}
.related-card-eyebrow {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-secondary);
  margin-bottom: 12px;
}
.related-card h3 {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.3;
  color: var(--deep);
  margin: 0 0 12px;
}
.related-card p {
  font-size: 15px;
  line-height: 1.5;
  color: var(--text-primary);
  margin: 0;
}

.results-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1000px){ .results-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px){ .results-grid { grid-template-columns: 1fr; gap: 16px; } }

.services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 800px){ .services-grid { grid-template-columns: 1fr; } }

.loved-strip { display: flex; align-items: center; gap: 60px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 640px){ .loved-strip { gap: 20px 28px; } .loved-strip .loved-logo { font-size: 16px !important; } }

.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
@media (max-width: 900px){ .process-grid { grid-template-columns: repeat(2, 1fr); gap: 40px 24px; } .process-grid .process-line { display: none; } }
@media (max-width: 520px){ .process-grid { grid-template-columns: 1fr; gap: 32px; } }

.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
@media (max-width: 900px){ .team-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px){ .team-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

.service-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px){ .service-features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .service-features { grid-template-columns: 1fr; } }

.section-head { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 56px; }
@media (max-width: 720px){ .section-head { flex-direction: column; align-items: start; gap: 20px; margin-bottom: 36px; } }

.testimonial-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
@media (max-width: 900px){ .testimonial-grid { grid-template-columns: 1fr; gap: 32px; } .testimonial-portrait { max-width: 360px; margin: 0 auto; } }

@media (max-width: 640px){
  .contact-form { padding: 24px !important; border-radius: 18px !important; }
}

.svc-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding-top: 22px;
  border-top: 1px solid var(--line-soft);
}
.svc-stat-value {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--deep);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.svc-stat-label {
  font-size: 12px;
  color: var(--ink-60);
  margin-top: 6px;
  line-height: 1.4;
  font-weight: 500;
}
@media (max-width: 520px){
  .svc-stats { gap: 16px; }
  .svc-stat-value { font-size: 19px; }
}

.filter-row { display: flex; gap: 8px; flex-wrap: wrap; }

@media (hover: none) {
  .card:hover { transform: none; }
  .btn-primary:hover, .btn-accent:hover { transform: none; }
}

/* ============================================================
   Phase 2 shared components (new design system)
   ============================================================ */

/* Italic-gold accent — one per headline, most important word only */
.italic-accent {
  font-style: italic;
  color: var(--gold);
  font-weight: 400;
}

/* Eyebrow on dark backgrounds (footer, CTA, process) */
.eyebrow.on-dark { color: var(--gold-soft); }
.eyebrow.on-dark .eyebrow-dot { background: var(--gold); }

/* FAQ section (homepage, above final CTA) */
.faq-section { padding: 88px 0 56px; background: var(--ivory); }
@media (max-width: 900px) { .faq-section { padding: 56px 0 32px; } }
.faq-item {
  border-bottom: 1px solid var(--border);
  padding: 22px 0;
}
.faq-item:first-of-type { border-top: 1px solid var(--border); }
.faq-item summary {
  font-size: 18px; font-weight: 500; color: var(--text-primary);
  cursor: pointer; list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  gap: 24px; line-height: 1.3;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::marker { content: ''; }
.faq-icon {
  font-size: 22px; color: var(--gold); font-weight: 400;
  line-height: 1; transition: transform 0.2s ease;
  flex-shrink: 0;
}
.faq-item[open] .faq-icon { transform: rotate(45deg); }
.faq-item > p {
  font-size: 15.5px; line-height: 1.65;
  color: var(--text-secondary);
  margin: 14px 0 0; max-width: 720px;
}

/* Final CTA — navy card with ambient gold radials */
.final-cta { padding: 64px 0 104px; }
@media (max-width: 900px) { .final-cta { padding: 48px 0 72px; } }
.cta-card {
  background: var(--navy); color: var(--ivory);
  border-radius: 24px; padding: 80px 72px;
  position: relative; overflow: hidden;
}
.cta-card::before {
  content: ''; position: absolute;
  top: -100px; right: -100px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,110,0.12) 0%, transparent 70%);
}
.cta-card::after {
  content: ''; position: absolute;
  bottom: -200px; right: 100px;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,110,0.08) 0%, transparent 70%);
}
.cta-card .cta-inner {
  position: relative; z-index: 2; max-width: 620px;
}
.cta-card .cta-inner h2 {
  color: var(--ivory); font-size: clamp(44px, 5.2vw, 60px);
  line-height: 1.05; margin: 20px 0 24px;
}
.cta-card .cta-inner p {
  color: rgba(250, 249, 246, 0.7); font-size: 17px;
  line-height: 1.5; margin-bottom: 40px; max-width: 480px;
}
.cta-buttons { display: flex; gap: 16px; flex-wrap: wrap; }

@media (max-width: 720px) {
  .cta-card { padding: 56px 32px; }
}

/* Dark-CTA button variants */
.btn-cta-primary {
  background: var(--navy-dark); color: var(--ivory);
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.btn-cta-primary:hover { background: #000; }
.btn-outline-light {
  background: transparent; color: var(--ivory);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.btn-outline-light:hover { border-color: rgba(255, 255, 255, 0.5); }

/* ============================================================
   Phase 3: Homepage components
   ============================================================ */

section.alt { background: var(--gray-surface); }

/* Section headers (homepage pattern) */
.section-header { margin-bottom: 56px; }
.section-header.centered { text-align: center; }
.section-header.centered h2,
.section-header.centered > p { margin-left: auto; margin-right: auto; }
.section-header h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 56px);
  margin-top: 20px; max-width: 720px; line-height: 1.05;
  font-weight: 400; letter-spacing: -0.02em;
}
.section-header p {
  color: var(--text-secondary); margin-top: 24px;
  max-width: 620px; font-size: 16px;
}
.section-header-row {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 56px; gap: 40px;
}
.section-header-row h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 5vw, 56px);
  margin-top: 20px; max-width: 720px; line-height: 1.05;
  font-weight: 400; letter-spacing: -0.02em;
}
@media (max-width: 720px) {
  .section-header-row { flex-direction: column; align-items: flex-start; gap: 20px; }
}

/* Text link with gold underline */
.text-link {
  color: var(--text-primary); text-decoration: none;
  font-size: 14px; font-weight: 500;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px; transition: color 0.2s;
}
.text-link:hover { color: var(--gold); }

/* Homepage hero */
.home-hero {
  background: var(--gray-surface);
  padding: 80px 0 104px;
  position: relative; overflow: hidden;
}
@media (max-width: 900px) { .home-hero { padding: 56px 0 72px; } }
.home-hero h1 {
  font-family: var(--serif);
  font-size: clamp(48px, 6.5vw, 84px);
  margin: 24px 0 28px;
  line-height: 1.05; letter-spacing: -0.02em; font-weight: 400;
}
.hero-subtitle {
  font-size: 18px; color: var(--text-secondary);
  line-height: 1.5; margin-bottom: 40px; max-width: 520px;
}
.hero-ctas-row {
  display: flex; gap: 20px; align-items: center; flex-wrap: wrap;
}

/* Metric card cluster */
.metric-card {
  background: white; border-radius: 14px; padding: 24px;
  box-shadow: 0 1px 3px rgba(26, 22, 14, 0.04);
  border: 1px solid var(--border);
}
.metric-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 20px;
}
.metric-label {
  font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--text-secondary); font-weight: 500;
}
.live-indicator {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; color: var(--chart-green); font-weight: 500;
}
.live-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--chart-green); animation: pulse 2s infinite;
}
.metric-value {
  font-family: var(--serif); font-size: 56px; font-weight: 400;
  letter-spacing: -0.03em; line-height: 1;
  display: flex; align-items: baseline; gap: 8px;
  color: var(--text-primary);
}
.metric-delta {
  font-size: 14px; color: var(--chart-green); font-weight: 500;
}
.metric-sparkline { margin-top: 20px; height: 60px; }
.metric-value-label {
  font-size: 13px; font-weight: 500;
  color: var(--text-secondary); margin-top: 6px;
  letter-spacing: 0.01em;
}
.metric-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 12px; margin-top: 12px;
}
.metric-small {
  background: white; border: 1px solid var(--border);
  border-radius: 12px; padding: 18px;
}
.metric-small-label {
  font-size: 11px; color: var(--text-secondary);
  text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px;
}
.metric-small-value {
  font-family: var(--serif); font-size: 22px; font-weight: 400;
  color: var(--text-primary);
}
.metric-small-delta {
  font-size: 12px; color: var(--chart-green); margin-left: 4px;
}

/* Pain points */
.pain-grid {
  display: grid; grid-template-columns: 1fr 1.3fr;
  gap: 80px; align-items: start;
}
@media (max-width: 900px) { .pain-grid { grid-template-columns: 1fr; gap: 40px; } }
.pain-left h2 {
  font-family: var(--serif);
  font-size: clamp(36px, 4.5vw, 52px); line-height: 1.05;
  font-weight: 400; letter-spacing: -0.02em; margin-top: 20px;
}
.pain-left > p {
  color: var(--text-secondary); margin-top: 24px;
  font-size: 16px; max-width: 400px;
}
.pain-list { list-style: none; padding: 0; margin: 0; }
.pain-item {
  display: grid; grid-template-columns: 48px 1fr auto;
  gap: 24px; padding: 28px 0;
  border-top: 1px solid var(--border);
  align-items: center; transition: padding-left 0.2s;
}
.pain-item:last-child { border-bottom: 1px solid var(--border); }
.pain-item:hover { padding-left: 8px; }
.pain-num {
  font-family: var(--serif); font-size: 16px;
  color: var(--gold); font-weight: 500;
}
.pain-text h4 {
  font-family: var(--sans); font-size: 18px; font-weight: 500;
  margin: 0 0 4px 0; color: var(--text-primary);
  letter-spacing: 0; line-height: 1.3;
}
.pain-text p {
  font-size: 14px; color: var(--text-secondary); margin: 0;
  line-height: 1.5;
}
.pain-arrow { color: var(--text-tertiary); font-size: 16px; }

/* Home services grid (3-col, distinct from /services page's .services-grid) */
.home-services-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
@media (max-width: 960px) { .home-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .home-services-grid { grid-template-columns: 1fr; } }

.service-card {
  background: var(--ivory); border: 1px solid var(--border);
  border-radius: 16px; padding: 32px;
  transition: border-color 0.25s, transform 0.25s;
  display: block; text-decoration: none; color: inherit;
}
.service-card:hover {
  border-color: var(--navy); transform: translateY(-2px);
}
.service-icon {
  width: 44px; height: 44px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 28px;
}
.svc-icon-svg { width: 20px; height: 20px; }
.ic-blue    { background: #E6F1FB; color: #185FA5; }
.ic-gold    { background: #F5EDD8; color: #8B6F2E; }
.ic-sand    { background: #EDE7DD; color: #5F5144; }
.ic-green   { background: #E1F5EE; color: #0F6E56; }
.ic-navy    { background: #E1E6EE; color: #0A1628; }
.ic-crimson { background: #FCEBEB; color: #A32D2D; }
.service-card h3 {
  font-family: var(--serif); font-size: 22px;
  margin: 0 0 10px 0; font-weight: 400;
  color: var(--text-primary); letter-spacing: -0.01em;
}
.service-card p {
  font-size: 14px; color: var(--text-secondary);
  margin: 0 0 24px 0; line-height: 1.6;
}
.service-link {
  font-size: 13px; color: var(--text-primary); font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.1em;
  display: inline-flex; align-items: center; gap: 6px;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px; text-decoration: none;
}

/* Industries */
.industries-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
@media (max-width: 960px) { .industries-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } }
@media (max-width: 520px) { .industries-grid { grid-template-columns: 1fr; } }
.industry-tile {
  background: var(--ivory); border: 1px solid var(--border);
  border-radius: 16px; padding: 36px 28px;
  transition: border-color 0.25s, transform 0.25s;
  display: block; text-decoration: none; color: inherit;
}
.industry-tile:hover {
  border-color: var(--navy); transform: translateY(-2px);
}
.industry-illustration {
  width: 56px; height: 56px; margin-bottom: 28px;
  display: flex; align-items: center; justify-content: center;
}
.illus-circle {
  background: var(--gray-surface);
  width: 56px; height: 56px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.industry-tile h3 {
  font-family: var(--sans); font-size: 17px; font-weight: 500;
  margin: 0 0 8px 0; color: var(--text-primary);
  letter-spacing: 0; line-height: 1.3;
}
.industry-tile > p {
  font-size: 13px; color: var(--text-secondary);
  margin: 0 0 24px 0; line-height: 1.5; min-height: 40px;
}
.industry-metric { padding-top: 20px; border-top: 1px solid var(--border); }
.industry-metric-value {
  font-family: var(--serif); font-size: 28px; font-weight: 400;
  color: var(--navy); line-height: 1;
}
.industry-metric-label {
  font-size: 12px; color: var(--text-secondary); margin-top: 4px;
}
.industry-metric-proof {
  font-size: 11px; color: var(--text-tertiary);
  margin-top: 8px; letter-spacing: 0.02em;
  line-height: 1.4;
}

/* Case studies */
.case-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
@media (max-width: 960px) { .case-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .case-grid { grid-template-columns: 1fr; } }
.case-card {
  border-radius: 16px; overflow: hidden; position: relative;
  aspect-ratio: 4 / 5; transition: transform 0.3s;
  display: block; text-decoration: none;
}
.case-card:hover { transform: translateY(-3px); }
.case-image {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.case-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(10,22,40,0.15) 0%, rgba(10,22,40,0.35) 50%, rgba(10,22,40,0.85) 100%);
}
.case-content {
  position: absolute; inset: 0; padding: 24px;
  display: flex; flex-direction: column; justify-content: space-between;
  color: white;
}
.case-top { display: flex; justify-content: space-between; }
.case-pill {
  background: rgba(255, 255, 255, 0.95); color: var(--navy);
  font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.1em;
  padding: 6px 12px; border-radius: 100px;
}
.case-metric {
  font-family: var(--serif); font-size: 72px; font-weight: 400;
  line-height: 1; letter-spacing: -0.03em; margin-bottom: 8px;
  color: white;
}
.case-duration-inline {
  font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,0.85);
  margin-bottom: 16px; letter-spacing: 0.01em;
}
.case-name { font-size: 14px; font-weight: 500; margin-bottom: 4px; color: white; }
.case-vertical { font-size: 12px; opacity: 0.8; margin-bottom: 14px; color: white; }
.case-quote {
  font-family: var(--serif); font-style: italic;
  font-size: 14px; opacity: 0.9; line-height: 1.4; color: white;
}
.case-1 { background: linear-gradient(135deg, #D4A574 0%, #8B5A3C 100%); }
.case-2 { background: linear-gradient(135deg, #4A6B8A 0%, #1E2D47 100%); }
.case-3 { background: linear-gradient(135deg, #A8AFB8 0%, #4A5159 100%); }

/* Proof card (single, centered, above final-CTA on service pages) */
.proof-section { padding: 56px 0; background: var(--gray-surface); }
@media (max-width: 900px) { .proof-section { padding: 40px 0; } }
.proof-section .section-header { margin-bottom: 40px; }
.proof-card-wrap { max-width: 480px; margin: 0 auto; padding: 0 8px; }
.proof-section .case-card { aspect-ratio: 4 / 5; }
.case-context {
  font-size: 13px;
  color: rgba(255, 249, 246, 0.82);
  margin-top: 14px;
  padding-top: 14px;
  line-height: 1.5;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

/* Service prose — methodology + who-for + success */
.svc-prose { padding: 96px 0; background: var(--ivory); }
@media (max-width: 900px) { .svc-prose { padding: 64px 0; } }
.svc-prose-inner { max-width: 920px; margin: 0 auto; }
.svc-prose-block h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(32px, 3.6vw, 44px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  margin: 0 0 28px;
  color: var(--text-primary);
}
.svc-prose-block p {
  font-size: 18px;
  line-height: 1.7;
  color: var(--text-secondary);
  margin: 0 0 18px;
}
.svc-prose-block p:last-child { margin-bottom: 0; }
.svc-prose-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 48px;
  padding-top: 40px;
  border-top: 1px solid rgba(10, 22, 40, 0.08);
}
@media (max-width: 700px) {
  .svc-prose-meta { grid-template-columns: 1fr; gap: 24px; }
}
.svc-prose-meta .eyebrow { margin-bottom: 12px; display: inline-flex; }
.svc-prose-meta p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-secondary);
  margin: 0;
}

/* Process section (dark navy) */
.process {
  background: var(--navy); color: var(--ivory);
  padding: 104px 0; position: relative; overflow: hidden;
}
@media (max-width: 900px) { .process { padding: 72px 0; } }
.process::before {
  content: ''; position: absolute; top: -100px; right: -100px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,110,0.08) 0%, transparent 70%);
}
.process::after {
  content: ''; position: absolute; bottom: -150px; left: -100px;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,169,110,0.05) 0%, transparent 70%);
}
.process .section-header h2 { color: var(--ivory); }
.process-steps {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px; position: relative; margin-top: 20px;
}
@media (max-width: 900px) {
  .process-steps { grid-template-columns: repeat(2, 1fr); gap: 48px 24px; }
  .process-line { display: none; }
}
@media (max-width: 520px) {
  .process-steps { grid-template-columns: 1fr; gap: 32px; }
}
.process-line {
  position: absolute; top: 24px; left: 12%; right: 12%;
  height: 1px; background: rgba(201, 169, 110, 0.3);
}
.process-step { position: relative; z-index: 2; }
.step-circle {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--navy); border: 1px solid var(--gold);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 18px;
  color: var(--gold); margin-bottom: 28px;
}
.process-step-label {
  font-size: 11px; text-transform: uppercase;
  letter-spacing: 0.15em; color: var(--gold);
  margin-bottom: 8px;
}
.process-step h3 {
  font-family: var(--sans); font-size: 18px; font-weight: 500;
  color: var(--ivory); margin: 0 0 8px 0; letter-spacing: 0;
}
.process-step p {
  font-size: 14px; color: rgba(250, 249, 246, 0.6);
  line-height: 1.5; margin: 0;
}

/* Testimonial carousel — scroll-snap, auto-advance, keyboard-accessible */
.testimonial-section { padding: 96px 0; text-align: center; }
@media (max-width: 900px) { .testimonial-section { padding: 64px 0; } }

.testimonial-carousel {
  position: relative;
  margin: 16px 0 0;
  padding: 0 56px;
}
.carousel-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  outline: none;
}
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-slide {
  flex: 0 0 100%;
  scroll-snap-align: center;
  scroll-snap-stop: always;
  display: flex;
  justify-content: center;
  padding: 16px 8px 24px;
}

.testimonial-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 40px 36px;
  margin: 0;
  max-width: 680px;
  width: 100%;
  text-align: left;
  display: flex; flex-direction: column; gap: 28px;
  box-shadow: 0 2px 4px rgba(26,22,14,0.03), 0 12px 32px rgba(26,22,14,0.06);
}
.testimonial-text {
  font-family: var(--serif);
  font-size: 24px; line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--text-primary); font-weight: 400;
  flex: 1;
}

.testimonial-footer {
  display: flex; align-items: center; gap: 14px;
  padding-top: 20px; border-top: 1px solid var(--border);
}
.author-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--navy); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--sans); font-size: 14px; font-weight: 500;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.author-info { text-align: left; }
.author-name {
  font-size: 15px; font-weight: 500; color: var(--text-primary);
}
.author-title { font-size: 13px; color: var(--text-secondary); }

.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px; height: 44px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--navy);
  color: var(--navy);
  display: flex; align-items: center; justify-content: center;
  padding: 0; cursor: pointer;
  z-index: 2;
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.carousel-arrow:hover {
  color: var(--gold); border-color: var(--gold);
}
.carousel-arrow:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 3px;
}
.carousel-arrow-prev { left: 0; }
.carousel-arrow-next { right: 0; }

.carousel-dots {
  display: flex; justify-content: center; gap: 10px;
  margin-top: 20px;
}
.carousel-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--border);
  border: none; padding: 0; cursor: pointer;
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.carousel-dot:hover { background: var(--text-tertiary); }
.carousel-dot.is-active { background: var(--navy); transform: scale(1.15); }
.carousel-dot.is-active:hover { background: var(--navy); }
.carousel-dot:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 3px;
}

@media (max-width: 720px) {
  .testimonial-carousel { padding: 0 8px 0; }
  .testimonial-card { padding: 32px 24px; }
  .testimonial-text { font-size: 20px; }
  .carousel-arrow {
    top: auto; bottom: 0; transform: none;
    width: 40px; height: 40px;
  }
  .carousel-arrow-prev { left: calc(50% - 84px); }
  .carousel-arrow-next { right: calc(50% - 84px); }
  .carousel-dots { margin-top: 56px; }
}

/* Stats strip (homepage, below hero) — reinforces stats-driven messaging */
.stats-strip {
  padding: 40px 0;
  border-bottom: 1px solid var(--border);
  background: var(--ivory);
}
.trust-anchor-line {
  text-align: center;
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 28px;
  letter-spacing: 0.01em;
}
.trust-anchor-line strong {
  color: var(--text-primary);
  font-weight: 600;
}
.stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px; align-items: baseline;
}
.stat-item { text-align: left; }
.stat-value {
  font-family: var(--serif); font-size: clamp(32px, 3.4vw, 44px);
  line-height: 1; color: var(--navy);
  letter-spacing: -0.02em; font-weight: 400;
}
.stat-label {
  font-size: 11px; color: var(--text-secondary);
  text-transform: uppercase; letter-spacing: 0.14em;
  margin-top: 10px; font-weight: 500;
}
@media (max-width: 900px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
  .stats-strip { padding: 32px 0; }
}

/* Loved-by strip — client names + one-line descriptor, between stats and pain */
.loved-by-section {
  padding: 48px 0 56px;
  background: var(--ivory);
  border-bottom: 1px solid var(--border);
}
.loved-by-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 36px 28px;
  align-items: start;
}
.loved-by-item { text-align: left; }
.loved-by-name {
  font-family: var(--serif);
  font-size: 20px;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  font-weight: 500;
  line-height: 1.15;
}
.loved-by-desc {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 6px;
  letter-spacing: 0.02em;
}
@media (max-width: 960px) {
  .loved-by-grid { grid-template-columns: repeat(3, 1fr); gap: 28px 20px; }
  .loved-by-section { padding: 40px 0 44px; }
}
@media (max-width: 560px) {
  .loved-by-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============ Blog article (long-form post body) ============ */
.blog-article {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 32px;
  font-size: 18px;
  line-height: 1.75;
  color: var(--text-primary);
}
.blog-article > h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(28px, 3.2vw, 38px);
  line-height: 1.18;
  letter-spacing: -0.015em;
  margin: 56px 0 20px;
  color: var(--text-primary);
}
.blog-article > h3 {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.3;
  margin: 36px 0 12px;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
.blog-article > p {
  margin: 0 0 20px;
  color: var(--text-secondary);
}
.blog-article > p strong,
.blog-article > ol strong,
.blog-article > ul strong {
  color: var(--text-primary);
  font-weight: 600;
}
.blog-article > ul,
.blog-article > ol {
  padding-left: 22px;
  margin: 0 0 24px;
  color: var(--text-secondary);
}
.blog-article > ol > li,
.blog-article > ul > li {
  margin-bottom: 14px;
  line-height: 1.65;
}
.blog-article a.blog-inline-link {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--gold);
  font-weight: 500;
}
.blog-tldr {
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  background: var(--gray-surface);
  padding: 24px 28px;
  margin: 40px 0 32px;
  border-radius: 6px;
}
.blog-tldr .blog-tldr-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 12px;
}
.blog-tldr ul {
  margin: 0;
  padding-left: 18px;
  list-style: disc;
}
.blog-tldr li {
  font-size: 16px;
  color: var(--text-primary);
  line-height: 1.55;
  margin-bottom: 10px;
}
.blog-tldr li:last-child { margin-bottom: 0; }
.blog-pullquote {
  margin: 44px 0;
  padding: 0 0 0 24px;
  border-left: 3px solid var(--gold);
  font-family: var(--serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.3;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
.blog-cta-inline {
  margin: 48px 0;
  padding: 36px 40px;
  background: var(--navy);
  color: var(--ivory);
  border-radius: 14px;
}
.blog-cta-inline strong {
  display: block;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(24px, 2.6vw, 28px);
  line-height: 1.2;
  color: var(--ivory);
  letter-spacing: -0.01em;
  margin-bottom: 10px;
}
.blog-cta-inline p {
  color: rgba(250,249,246,0.75);
  margin: 0 0 22px;
  font-size: 16px;
  line-height: 1.55;
}
.blog-cta-inline .btn {
  background: var(--ivory);
  color: var(--navy);
  padding: 14px 22px;
  border-radius: 999px;
  font-weight: 500;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.blog-data-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0 14px;
  font-size: 15px;
}
.blog-data-table th,
.blog-data-table td {
  padding: 14px 14px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.blog-data-table th {
  font-weight: 600;
  color: var(--text-primary);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--gray-surface);
}
.blog-data-table td { color: var(--text-secondary); }
.blog-data-table td:first-child { color: var(--text-primary); font-weight: 500; }
.blog-data-table tr:last-child td { border-bottom: none; }
.blog-table-note {
  font-size: 13px;
  color: var(--text-secondary);
  margin: 0 0 32px;
  line-height: 1.55;
}
.blog-breadcrumb-strip {
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
  background: var(--ivory);
  font-size: 13px;
  color: var(--text-secondary);
}
.blog-breadcrumb-strip a { color: var(--text-secondary); }
.blog-breadcrumb-strip a:hover { color: var(--text-primary); }
.blog-author {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin: 56px 0 8px;
  padding: 24px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.blog-author-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--navy);
  color: white;
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 500;
  flex-shrink: 0;
}
.blog-author-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.blog-author-role {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}
.blog-author-bio {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0;
}
.blog-related {
  margin-top: 56px;
}
.blog-related-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 24px;
  color: var(--text-primary);
  letter-spacing: -0.015em;
  margin-bottom: 20px;
}
.blog-related-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.blog-related-card {
  display: block;
  padding: 22px 22px 24px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--ivory);
  transition: background 0.2s;
}
.blog-related-card:hover { background: var(--gray-surface); }
.blog-related-tag {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold);
  margin-bottom: 10px;
}
.blog-related-headline {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 18px;
  line-height: 1.25;
  color: var(--text-primary);
  letter-spacing: -0.01em;
  margin: 0 0 8px;
}
.blog-related-meta {
  font-size: 12px;
  color: var(--text-secondary);
}
.blog-final-cta {
  background: var(--navy);
  color: var(--ivory);
  padding: 80px 0;
  text-align: center;
}
.blog-final-cta .eyebrow,
.blog-final-cta .eyebrow-dot {
  color: var(--gold);
}
.blog-final-cta h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 4.2vw, 48px);
  line-height: 1.1;
  color: var(--ivory);
  letter-spacing: -0.015em;
  margin: 14px 0 18px;
}
.blog-final-cta p {
  color: rgba(250,249,246,0.75);
  font-size: 18px;
  line-height: 1.55;
  max-width: 520px;
  margin: 0 auto 32px;
}
.blog-final-cta-actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.blog-final-cta .btn-primary-solid {
  background: var(--ivory);
  color: var(--navy);
  padding: 15px 26px;
  border-radius: 999px;
  font-weight: 500;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.blog-final-cta .btn-ghost-inverse {
  background: transparent;
  color: var(--ivory);
  border: 1px solid rgba(250,249,246,0.45);
  padding: 15px 26px;
  border-radius: 999px;
  font-weight: 500;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.blog-final-cta .btn-ghost-inverse:hover { border-color: var(--ivory); }
@media (max-width: 720px) {
  .blog-article { padding: 0 24px; font-size: 17px; }
  .blog-article > h2 { margin: 44px 0 16px; }
  .blog-cta-inline { padding: 28px 24px; }
  .blog-data-table { font-size: 14px; }
  .blog-data-table th, .blog-data-table td { padding: 10px 10px; }
  .blog-related-grid { grid-template-columns: 1fr; }
  .blog-final-cta { padding: 64px 0; }
}

/* ========================================
   BLOG TEMPLATE V2 — D-HYBRID LAYOUT
   Sticky TOC sidebar + hero, applied to all blog pages
   First applied: /blog/healthcare-marketing-channels
   Pass 2: retrofit existing 11 blogs to use these classes
   ======================================== */

/* Two-column layout: article + sticky sidebar */
.blog-body {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 48px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 24px 80px;
}

.blog-content {
  min-width: 0;
  max-width: 760px;
}

.blog-sidebar {
  position: sticky;
  top: 80px;
  align-self: start;
  height: fit-content;
}

/* Hero block */
.blog-hero { margin-bottom: 32px; }

.blog-hero .breadcrumb {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 20px;
}
.blog-hero .breadcrumb a {
  color: var(--text-secondary);
  text-decoration: none;
}
.blog-hero .breadcrumb a:hover { color: var(--navy); }
.blog-hero .breadcrumb span { margin: 0 8px; }

.blog-hero .author-block {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  flex-wrap: wrap;
}
.blog-hero .author-block .avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--ivory);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 13px;
  flex-shrink: 0;
}
.blog-hero .author-block .author-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-right: auto;
}
.blog-hero .author-block .author-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
}
.blog-hero .author-block .author-title {
  font-size: 12px;
  color: var(--text-secondary);
}
.blog-hero .author-block .meta-icons {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: var(--text-secondary);
}

/* Article body typography */
.blog-content h2 {
  font-size: 22px;
  font-weight: 500;
  color: var(--navy);
  line-height: 1.25;
  letter-spacing: -0.01em;
  margin: 40px 0 16px;
  position: relative;
}
.blog-content h2::before {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--gold);
  margin-bottom: 16px;
}
.blog-content h2 em {
  font-style: italic;
  color: var(--gold);
}
.blog-content h2[id] {
  scroll-margin-top: 100px;
}

.blog-content p {
  margin: 0 0 16px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--text-primary);
}

/* Inline prose links — gold, always underlined, scoped to <p> and <li>
   so .related-card / .btn / .cta-button / .breadcrumb / .share-icon are excluded. */
.blog-content p a,
.blog-content li a {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.blog-content p a:hover,
.blog-content li a:hover {
  color: #B8945F;
  text-decoration-color: #B8945F;
}
.blog-content p a:focus-visible,
.blog-content li a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Pull quote — overrides legacy inline styles when inside .blog-content */
.blog-content .pull-quote,
.blog-content blockquote.pull-quote {
  margin: 24px 0;
  padding: 18px 24px;
  border-left: 3px solid var(--gold);
  background: rgba(201, 169, 110, 0.06);
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: 15px;
  line-height: 1.5;
  color: var(--navy);
  border-radius: 0;
}
.blog-content .pull-quote::before,
.blog-content .pull-quote::after,
.blog-content blockquote.pull-quote::before,
.blog-content blockquote.pull-quote::after {
  content: none;
}
.blog-content .pull-quote em {
  font-family: inherit;
  font-style: italic;
  font-size: inherit;
  color: inherit;
}

/* Featured table card — wraps the specialty recommendations table */
.blog-content .featured-table-card {
  background: #fff;
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  margin: 32px 0;
  box-shadow: 0 1px 3px rgba(10, 22, 40, 0.04);
}
.blog-content .featured-table-card .comparison-table {
  margin: 0;
}
.blog-content .featured-table-card .table-source {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 0.5px solid var(--border);
  font-size: 11px;
  font-style: italic;
  color: var(--text-tertiary);
}

/* Featured conclusion card — relocated "honest answer" content */
.blog-content .featured-conclusion-card {
  background: #fff;
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  margin: 32px 0;
  box-shadow: 0 1px 3px rgba(10, 22, 40, 0.04);
}
.blog-content .featured-conclusion-card h3 {
  font-size: 18px;
  font-weight: 500;
  color: var(--navy);
  margin: 0 0 14px;
  letter-spacing: -0.01em;
}
.blog-content .featured-conclusion-card p {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-primary);
}
.blog-content .featured-conclusion-card .conclusion-emphasis {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 14px;
  font-weight: 500;
  color: var(--navy);
  padding-top: 14px;
  margin-top: 4px;
  border-top: 0.5px solid var(--border);
}
.blog-content .featured-conclusion-card .conclusion-emphasis::before {
  content: "★";
  color: var(--gold);
  font-size: 14px;
  flex-shrink: 0;
  line-height: 1.5;
}

/* Inline diagram breakouts (framework + outcome moved from old right column) */
.blog-content .framework-diagram,
.blog-content .outcome-diagram {
  margin: 28px auto;
  max-width: 560px;
}

/* TOC card (desktop sidebar) */
.toc-card {
  background: #fff;
  border: 0.5px solid var(--border);
  border-radius: 10px;
  padding: 18px;
  margin-bottom: 14px;
}

.toc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 0.5px solid var(--border);
}

.toc-title {
  font-size: 11px;
  font-weight: 500;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 1.2px;
}

.toc-share {
  display: flex;
  gap: 6px;
}

.share-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  cursor: pointer;
  background: var(--ivory);
  border: 0.5px solid var(--border);
  color: var(--text-secondary);
  transition: all 0.15s ease;
  text-decoration: none;
  position: relative;
}
.share-icon:hover {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}

.share-icon-tooltip {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy);
  color: var(--ivory);
  font-size: 10px;
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 4px;
  white-space: nowrap;
  pointer-events: none;
  z-index: 10;
}
.share-icon-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: var(--navy);
}

.toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.toc-item {
  padding: 8px 0 8px 16px;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
  color: var(--text-secondary);
  position: relative;
  transition: color 0.15s ease;
}
.toc-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 11px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  opacity: 0.5;
  transition: all 0.15s ease;
}
.toc-item:hover {
  color: var(--navy);
}
.toc-item:hover::before {
  opacity: 1;
}
.toc-item.active {
  color: var(--navy);
  font-weight: 600;
}
.toc-item.active::before {
  opacity: 1;
  width: 9px;
  height: 9px;
  top: 12px;
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.2);
}
.toc-item:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Sidebar CTA card */
.sidebar-cta {
  background: var(--navy);
  color: var(--ivory);
  border-radius: 10px;
  padding: 18px;
  position: relative;
}

.sidebar-cta .cta-eyebrow {
  font-size: 9px;
  font-weight: 500;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 6px;
}

.sidebar-cta .cta-title {
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 10px;
  line-height: 1.3;
  color: var(--ivory);
}

.sidebar-cta .cta-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}

.sidebar-cta .cta-list li {
  padding: 4px 0 4px 18px;
  position: relative;
  font-size: 11px;
  line-height: 1.45;
  color: var(--ivory);
  opacity: 0.85;
}

.sidebar-cta .cta-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 3px;
  color: var(--gold);
  font-size: 10px;
  font-weight: 600;
}

.sidebar-cta .cta-button {
  display: block;
  width: 100%;
  padding: 9px 12px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  border: none;
  background: var(--gold);
  color: var(--navy);
  text-decoration: none;
  transition: background 0.15s ease;
  box-sizing: border-box;
}
.sidebar-cta .cta-button:hover {
  background: var(--gold-soft);
}

.sidebar-cta .cta-subnote {
  font-size: 9px;
  color: var(--ivory);
  opacity: 0.55;
  text-align: center;
  margin-top: 8px;
  font-style: italic;
}

/* Mobile collapsible TOC (visible only at <900px) */
.toc-mobile {
  display: none;
  margin: 16px 0 24px;
}

.toc-mobile-toggle {
  width: 100%;
  background: var(--ivory);
  border: 0.5px solid var(--border);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 500;
  color: var(--navy);
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: inherit;
}
.toc-mobile-toggle.open .toc-mobile-chevron {
  transform: rotate(180deg);
}

.toc-mobile-chevron {
  transition: transform 0.2s ease;
  font-size: 10px;
  color: var(--gold);
}

.toc-mobile-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.toc-mobile-panel.open {
  max-height: 600px;
  padding-top: 8px;
}

.toc-list-mobile {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #fff;
  border: 0.5px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.toc-list-mobile li {
  padding: 12px 16px;
  border-bottom: 0.5px solid var(--border);
  font-size: 14px;
  color: var(--text-secondary);
  cursor: pointer;
}
.toc-list-mobile li:last-child {
  border-bottom: none;
}
.toc-list-mobile li:hover {
  background: var(--ivory);
  color: var(--navy);
}

/* Mobile breakpoint — sidebar hides, mobile TOC shows, single column */
@media (max-width: 900px) {
  .blog-body {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 24px 16px 64px;
  }
  .blog-sidebar {
    display: none;
  }
  .blog-content {
    max-width: 100%;
  }
  .toc-mobile {
    display: block;
  }
}


/* ===================================================================
   Promoted from embedded blocks - Phase 1 de-drift consolidation
   ===================================================================
   16 non-conflicting blog tokens promoted to shared :root + 142
   byte-identical component rules + 2 drift selectors resolved to
   canon (.post-title font-size = clamp(28px,4vw,44px); .related-grid
   = 1fr 1fr) + 1 new .related-grid--3col modifier (V5 healthcare
   opts in via class on the markup).

   Source: V1-V6 embedded <style> blocks of 12 V2-grouping blog pages.
   meta-attribution.html untouched (legacy non-V2 architecture).

   Token strategy (Option B, conservative): 5 CONFLICTING tokens
   (--navy, --navy-light, --border, --white, --text) remain in each
   blog's embedded :root override to preserve byte-identical rendering
   (they override the legacy/prototype definitions at page level
   exactly as today). The 16 NEW tokens promote safely to shared
   :root - verified zero refs in non-blog regions. --text was moved
   to the conflicting set as a robustness choice: cascade trace shows
   promotion works today via body.redesign-prototype shadowing on
   <body>, but a future html-targeting rule that consumes var(--text)
   could introduce a surprise. Embedding --text removes that latent
   trap entirely for the cost of one token-line per blog.

   Architecture caveat (Phase 2): only V5 (healthcare) uses the
   .blog-content/.blog-body/sticky-TOC architecture matching the
   existing 73 shared rules above. The other 11 blogs use an older
   .article-content/.body-layout/.blog-container 2-column architecture.
   Both architectures preserved verbatim - live rules stay live, dead
   rules stay dead. Phase 2 will decide unify-vs-keep-two.

   Phase 2 prerequisite logged: 5 blogs (digital-marketing-cost,
   marketing-kpis, seo-ppc-or-social, marketing-strategy-from-zero,
   dtc-cac-reduction) have an HTML structural bug - unclosed <div>s
   cause the footer to nest INSIDE .blog-container. Harmless today
   (page-level :root override is moot), but must be fixed before any
   scoping or dark-theming work in Phase 2.
   =================================================================== */

/* ============= BLOG ARTICLE TOKENS ============= */
:root {
  --navy-deep: #0B1E33;
  --accent-blue: #2563EB;
  --accent-blue-light: #DBEAFE;
  --soft-bg: #F4F7FA;
  --muted: #6B7B8C;
  --light: #9CA3AF;
  --purple: #8B5CF6;
  --purple-bg: #F3E8FF;
  --green: #10B981;
  --green-bg: #D1FAE5;
  --orange: #F59E0B;
  --orange-bg: #FEF3C7;
  --pink: #EC4899;
  --pink-bg: #FCE7F3;
  --teal: #14B8A6;
  --teal-bg: #CCFBF1;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont,
    'Segoe UI', sans-serif;
  color: var(--text);
  line-height: 1.65;
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
}

.blog-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 24px 80px;
}

/* Breadcrumbs */
.breadcrumbs {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 32px;
}
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--accent-blue); }
.breadcrumbs span { margin: 0 8px; }

/* Hero zone */
.hero-zone {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  margin-bottom: 40px;
  padding-top: 16px;
  align-items: center;
}

.category-tags {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--navy-light);
  margin-top: 8px;
  margin-bottom: 12px;
  text-transform: uppercase;
}
.category-tags .sep { color: var(--light); margin: 0 10px; font-weight: 400; }

.post-title {
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 800;
  line-height: 1.15;
  color: var(--text);
  margin-bottom: 20px;
  letter-spacing: -0.02em;
}
.post-title .accent { color: var(--gold); font-style: italic; font-weight: 400; }

.post-subtitle {
  font-size: 17px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 28px;
}

.author-line {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
  color: var(--muted);
  font-size: 14px;
}
.author-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--navy); color: white;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px;
}
.author-line .dot {
  width: 3px; height: 3px; border-radius: 50%;
  background: var(--light);
}

/* Element 1 — Hero illustration */
.hero-illustration {
  background: var(--soft-bg);
  border-radius: 16px;
  padding: 32px;
  margin-top: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 360px;
}

/* Element 2 — Key Takeaways */
.takeaways {
  background: var(--soft-bg);
  border-left: 3px solid var(--accent-blue);
  border-radius: 12px;
  padding: 24px 28px 24px 28px;
  margin: 40px 0 0 0;
  max-width: 100%;
}
.takeaways h3 {
  font-size: 16px; font-weight: 700;
  color: var(--navy); margin-bottom: 14px;
}
.takeaways ul { list-style: none; padding: 0; }
.takeaways li {
  padding: 7px 0 7px 34px;
  position: relative;
  font-size: 14.5px; color: var(--text); line-height: 1.6;
}
.takeaways li::before {
  content: "✓";
  position: absolute; left: 0; top: 7px;
  width: 22px; height: 22px;
  background: var(--accent-blue); color: white;
  border-radius: 50%; text-align: center;
  line-height: 20px; font-size: 12px; font-weight: 700;
}

/* Two-column body */
.body-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  margin-top: 56px;
  align-items: start;
}
.visual-content { padding-top: 4px; }

/* Article text */
.article-content h2 {
  font-size: 26px; font-weight: 700;
  color: var(--text); margin: 48px 0 18px; line-height: 1.3;
  letter-spacing: -0.01em;
}
.article-content h2:first-child { margin-top: 0; }
.article-content p {
  font-size: 16px; color: var(--text);
  margin-bottom: 18px; line-height: 1.75;
}
.article-content p strong { font-weight: 700; }
.stat-inline { color: var(--accent-blue); font-weight: 700; }

/* Element 3 — Pull quote */
.pull-quote {
  background: var(--soft-bg);
  border-radius: 12px;
  padding: 28px 32px 32px 44px;
  margin: 40px 0;
  position: relative;
  font-size: 15px; color: var(--text); line-height: 1.55;
}
.pull-quote::before {
  content: "\201C";
  position: absolute; top: 8px; left: 14px;
  font-size: 40px; color: var(--accent-blue);
  font-family: Georgia, serif; line-height: 1;
}
.pull-quote::after {
  content: "\201D";
  position: absolute; bottom: 0; right: 20px;
  font-size: 40px; color: var(--accent-blue);
  font-family: Georgia, serif; line-height: 1;
}
.pull-quote em {
  font-family: 'Instrument Serif', serif;
  font-size: 19px;
  font-style: italic;
  line-height: 1.5;
  color: var(--navy);
}

/* Element 4 — Dark CTA card */
.dark-cta {
  background: var(--navy-deep);
  border-radius: 14px;
  padding: 24px 28px;
  margin: 36px 0; color: white;
}
.dark-cta h4 {
  font-size: 17px; font-weight: 700;
  color: white; margin-bottom: 10px; line-height: 1.4;
}
.dark-cta p {
  color: #B8C5D6; font-size: 13px;
  margin-bottom: 16px; line-height: 1.5;
}
.dark-cta .btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: white; color: var(--navy);
  padding: 11px 22px; border-radius: 999px;
  font-size: 14px; font-weight: 600; text-decoration: none;
}
.dark-cta .btn:hover { background: var(--soft-bg); }

/* Element 5 — Numbered levers */
.levers-section { margin: 32px 0; }
.levers-list { list-style: none; padding: 0; }
.levers-list li {
  display: flex; gap: 18px;
  padding: 20px 0; border-bottom: 1px solid var(--border);
}
.levers-list li:last-child { border-bottom: none; }
.lever-icon {
  flex-shrink: 0; width: 44px; height: 44px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.lever-icon.purple { background: var(--purple-bg); color: var(--purple); }
.lever-icon.blue   { background: var(--accent-blue-light); color: var(--accent-blue); }
.lever-icon.green  { background: var(--green-bg); color: var(--green); }
.lever-icon.orange { background: var(--orange-bg); color: var(--orange); }
.lever-icon.pink   { background: var(--pink-bg); color: var(--pink); }
.lever-content h4 {
  font-size: 15.5px; font-weight: 700;
  color: var(--text); margin-bottom: 6px;
}
.lever-content p { font-size: 14px; color: var(--muted); line-height: 1.65; }
.rule-of-thumb {
  display: flex; gap: 8px; align-items: center;
  margin-top: 20px; padding: 12px;
  font-size: 13px; color: var(--text);
  background: var(--soft-bg); border-radius: 10px;
}
.rule-of-thumb strong { color: var(--accent-blue); }

/* Element 6 — Framework diagram */
.framework-diagram {
  background: var(--soft-bg);
  border-radius: 14px;
  padding: 28px 24px; margin-top: 0; margin-bottom: 32px;
}
.framework-diagram h3 {
  font-size: 14px; font-weight: 700;
  text-align: center; color: var(--text);
  margin-bottom: 20px; letter-spacing: 1px;
}
.framework-row {
  display: flex; align-items: center;
  gap: 12px; margin-bottom: 12px;
}
.framework-row:last-child { margin-bottom: 0; }
.framework-stage {
  flex: 1; background: white; border-radius: 10px;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 12px;
  border: 1px solid var(--border);
}
.framework-stage.s1 { background: var(--accent-blue-light); border-color: var(--accent-blue-light); }
.framework-stage.s2 { background: var(--purple-bg); border-color: var(--purple-bg); }
.framework-stage.s3 { background: var(--green-bg); border-color: var(--green-bg); }
.framework-stage.s4 { background: var(--orange-bg); border-color: var(--orange-bg); }
.stage-icon {
  width: 32px; height: 32px; border-radius: 8px;
  background: white;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.stage-text h5 {
  font-size: 13px; font-weight: 700;
  color: var(--text); margin-bottom: 1px;
}
.stage-text p { font-size: 11px; color: var(--muted); }
.framework-arrow { color: var(--muted); font-size: 14px; flex-shrink: 0; }
.framework-issue {
  font-size: 11px; color: var(--muted);
  line-height: 1.4; flex-shrink: 0; width: 90px;
}
.framework-issue strong {
  color: var(--text); font-weight: 600;
  display: block; margin-bottom: 1px;
}

/* Element 7 — Outcome diagram */
.outcome-diagram {
  background: var(--soft-bg);
  border-radius: 14px;
  padding: 32px 24px; margin-bottom: 24px; text-align: center;
}
.outcome-diagram h3 {
  font-size: 20px; font-weight: 700;
  color: var(--text); margin-bottom: 24px;
}
.outcome-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 100px 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 16px; align-items: center;
}
.outcome-card {
  background: white; border-radius: 12px;
  padding: 14px 12px; border: 1px solid var(--border);
  display: flex; flex-direction: column;
  align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: var(--text);
}
.outcome-card .icon {
  width: 32px; height: 32px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
}
.outcome-card.tl { grid-column: 1; grid-row: 1; }
.outcome-card.tr { grid-column: 3; grid-row: 1; }
.outcome-card.bl { grid-column: 1; grid-row: 2; }
.outcome-card.br { grid-column: 3; grid-row: 2; }
.outcome-card.tl .icon { background: var(--green-bg); color: var(--green); }
.outcome-card.tr .icon { background: var(--orange-bg); color: var(--orange); }
.outcome-card.bl .icon { background: var(--accent-blue-light); color: var(--accent-blue); }
.outcome-card.br .icon { background: var(--green-bg); color: var(--green); }
.outcome-center {
  grid-column: 2; grid-row: 1 / span 2;
  width: 100px; height: 100px; border-radius: 50%;
  background: var(--navy-deep); color: white;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-weight: 700; margin: auto; font-size: 13px;
}
.outcome-center .lower {
  font-size: 10px; opacity: 0.7; font-weight: 500;
}

/* Element 8 — Comparison table */
.table-section { margin-bottom: 32px; }
.table-section h3 {
  font-size: 18px; font-weight: 700;
  color: var(--text); margin-top: 32px; margin-bottom: 16px;
}
.comparison-table {
  width: 100%; border-collapse: collapse;
  border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden; font-size: 13px;
}
.comparison-table thead { background: var(--navy); }
.comparison-table th {
  padding: 14px 12px; text-align: left;
  font-weight: 600; font-size: 11px;
  color: white; background: var(--navy);
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--border);
}
.comparison-table td {
  padding: 13px 12px; border-bottom: 1px solid var(--border);
  color: var(--text); line-height: 1.5;
}
.comparison-table tbody tr:last-child td { border-bottom: none; }
.comparison-table td:first-child { font-weight: 600; }
.comparison-table td.cac { color: var(--accent-blue); font-size: 14px; font-weight: 700; }
.comparison-table tbody tr:hover td { background: var(--soft-bg); }

.channel-cta {
  background: var(--navy-deep); border-radius: 12px;
  padding: 18px 22px; color: white; margin-top: 16px;
}
.channel-cta h4 {
  font-size: 14px; font-weight: 700;
  color: white; margin-bottom: 4px;
}
.channel-cta p { color: #B8C5D6; font-size: 12px; margin-bottom: 12px; }
.channel-cta .btn {
  display: inline-flex; align-items: center; gap: 4px;
  background: white; color: var(--navy);
  padding: 8px 14px; border-radius: 999px;
  font-size: 12px; font-weight: 600; text-decoration: none;
}

/* Bottom row */
.bottom-row {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 40px; margin: 80px 0 32px;
}
.insight-card {
  background: var(--soft-bg); border-radius: 12px; padding: 32px;
}
.insight-card h3 {
  font-size: 18px; font-weight: 700;
  color: var(--text); margin-bottom: 16px; line-height: 1.4;
}
.insight-card p {
  font-size: 14px; color: var(--muted);
  margin-bottom: 12px; line-height: 1.6;
}
.insight-card .think-long {
  display: flex; gap: 8px; align-items: center;
  color: var(--accent-blue); font-size: 14px; font-weight: 600;
  margin-top: 12px;
}
.audit-card {
  background: var(--soft-bg); border-radius: 12px; padding: 32px;
}
.audit-card h3 {
  font-size: 18px; font-weight: 700;
  color: var(--text); margin-bottom: 16px;
}

/* Element 9 — Audit checklist */
.audit-list { list-style: none; padding: 0; }
.audit-list li {
  display: flex; gap: 10px; padding: 10px 0;
  font-size: 13px; color: var(--text); line-height: 1.5;
  border-bottom: 1px solid var(--border);
}
.audit-list li:last-child { border-bottom: none; }
.audit-badge {
  flex-shrink: 0; width: 22px; height: 22px;
  border-radius: 50%; background: var(--accent-blue);
  color: white;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 11px; margin-top: 1px;
}

/* Related + final CTA */
.related-and-cta {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 32px; margin-top: 64px;
}
.related-section h3 {
  font-size: 17px; font-weight: 700;
  color: var(--text); margin-bottom: 18px;
}
.related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.related-grid--3col { grid-template-columns: 1fr 1fr 1fr; }
.related-card {
  background: white; border: 1px solid var(--border);
  border-radius: 12px; padding: 22px; text-decoration: none;
  display: block; transition: border-color 0.2s, box-shadow 0.2s;
}
.related-card:hover {
  border-color: var(--navy-light);
  box-shadow: 0 4px 16px rgba(10,46,44,0.08);
}
.related-card h4 {
  font-size: 14px; font-weight: 600;
  color: var(--text); margin-bottom: 12px; line-height: 1.45;
}
.related-card .read-link {
  color: var(--accent-blue); font-size: 12px;
  font-weight: 600; text-decoration: none;
}
.final-cta {
  background: var(--navy-deep); border-radius: 14px;
  padding: 36px 32px; color: white; text-align: center;
}
.final-cta h3 {
  font-family: 'Instrument Serif', serif;
  font-size: 24px; font-weight: 400;
  color: white; margin-bottom: 14px; line-height: 1.3;
}
.final-cta p {
  color: #B8C5D6; font-size: 14px;
  margin-bottom: 22px; line-height: 1.6;
}
.final-cta .btn-row {
  display: flex; gap: 16px;
  justify-content: center; flex-wrap: wrap;
}
.final-cta .btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 12px 20px; border-radius: 999px;
  font-size: 13px; font-weight: 600; text-decoration: none;
}
.final-cta .btn.primary { background: white; color: var(--navy); }
.final-cta .btn.secondary {
  background: transparent; color: white;
  border: 1px solid rgba(255,255,255,0.3);
}

/* Author bio */
.author-bio {
  display: flex; gap: 16px; align-items: flex-start;
  margin-top: 72px; padding-top: 40px;
  border-top: 1px solid var(--border);
}
.bio-avatar {
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--navy); color: white;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px; flex-shrink: 0;
}
.bio-text h4 {
  font-size: 14px; font-weight: 700;
  color: var(--text); margin-bottom: 4px;
}
.bio-text p { font-size: 13px; color: var(--muted); line-height: 1.6; }

/* Mobile */
@media (max-width: 900px) {
  .hero-zone {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .post-title {
    font-size: clamp(26px, 6vw, 38px);
  }
  .body-layout {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .bottom-row {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .related-and-cta {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .related-grid {
    grid-template-columns: 1fr;
  }
}

/* AEO: FAQ section */
.blog-faq {
  max-width: 720px;
  margin: 64px auto 0;
  padding: 0 32px;
}
.blog-faq-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}
.faq-item {
  border-top: 1px solid var(--border);
  padding: 0;
}
.faq-item:last-child {
  border-bottom: 1px solid var(--border);
}
.faq-question {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  padding: 18px 40px 18px 0;
  cursor: pointer;
  list-style: none;
  position: relative;
  line-height: 1.5;
}
.faq-question::-webkit-details-marker {
  display: none;
}
.faq-question::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  color: var(--accent-blue);
  font-weight: 400;
  transition: transform 0.2s;
}
details[open] .faq-question::after {
  content: "\D7";
}
.faq-answer {
  padding: 0 0 18px;
}
.faq-answer p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.table-source {
  font-size: 11px;
  color: var(--muted);
  margin-top: 8px;
  line-height: 1.5;
  font-style: italic;
}

/* ===================================================================
   BLOG DARK THEME (body.blog-dark)
   ===================================================================
   Scoped dark theme for D-hybrid blog pages carrying class="blog-dark"
   on <body>. Other blogs (no body class) inherit existing light styles
   via the BLOG TEMPLATE V2 section above; non-blog pages unaffected.

   Token strategy: 11 dark tokens defined under body.blog-dark scope. A
   handful of legacy blog tokens (--soft-bg, --muted, --accent-blue) are
   remapped to dark equivalents so existing component rules that use
   var(--soft-bg) etc. automatically pick up dark surfaces without
   touching the BLOG TEMPLATE V2 section above.

   Color discipline (per HMM Color System Golden Rules):
   - Signal Orange (--cta): CTAs (nav, sidebar button, dark-cta button),
     H2 accent rules, title italic accent, hero glow, "Paid wins" cells,
     center "Lower CAC" node ring.
   - Mint (--mint): functional/positive ONLY — takeaway checks, "Organic
     wins" cells, sidebar bullet ticks, compounding-phase icons, all four
     outcome-quadrant icons. NEVER a CTA.
   - Neutral grey (--text-tertiary): owned-asset phase, structural muted.
   =================================================================== */

body.blog-dark {
  /* Dark theme tokens */
  --bg: #0E0E0E;
  --bg-elevated: #1A1A1A;
  --text: #FFFFFF;
  --text-muted: #999999;
  --text-tertiary: #737373;
  --cta: #FF5C1A;
  --cta-hover: #FF7038;
  --mint: #00D4AA;
  --border: rgba(255, 255, 255, 0.08);
  --grid-line: rgba(255, 255, 255, 0.045);
  --orange-glow: rgba(255, 92, 26, 0.18);

  /* Legacy blog-token remaps so existing component rules pick up dark surfaces */
  --soft-bg: var(--bg-elevated);
  --muted: var(--text-muted);
  --accent-blue: var(--cta);
  --accent-blue-light: rgba(255, 92, 26, 0.12);
  --navy: var(--bg-elevated);
  --navy-deep: #0A0A0A;
  --navy-light: var(--text-tertiary);
  --light: var(--text-tertiary);

  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ============= NAV (dark) ============= */
body.blog-dark .nav {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
body.blog-dark .nav-link {
  color: var(--text-muted);
}
body.blog-dark .nav-link:hover {
  color: var(--text);
}
body.blog-dark .nav-cta .btn-accent {
  background: var(--cta);
  color: var(--text);
}
body.blog-dark .nav-cta .btn-accent:hover {
  background: var(--cta-hover);
}

/* ============= LAYOUT ============= */
body.blog-dark .blog-body {
  background: var(--bg);
}
body.blog-dark article.blog-content {
  background: transparent;
  color: var(--text);
}

/* ============= HERO ============= */
body.blog-dark .blog-hero {
  background: transparent;
  color: var(--text);
}
body.blog-dark .hero-zone {
  background: transparent;
  padding-bottom: 40px;
  grid-template-columns: 1fr;
}
body.blog-dark .breadcrumb {
  color: var(--text-tertiary);
  font-size: 13px;
}
body.blog-dark .breadcrumb a {
  color: var(--text-muted);
  text-decoration: none;
}
body.blog-dark .breadcrumb a:hover {
  color: var(--cta);
}
body.blog-dark .breadcrumb span {
  color: var(--text-tertiary);
  margin: 0 8px;
}
body.blog-dark .post-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  color: var(--text);
  letter-spacing: -0.015em;
}
body.blog-dark .post-title .accent {
  color: var(--cta);
  font-style: italic;
  font-weight: 400;
}
body.blog-dark .post-subtitle {
  color: var(--text-muted);
}
body.blog-dark .category-tags {
  color: var(--text-tertiary);
}
body.blog-dark .category-tags .sep {
  color: var(--text-tertiary);
}
body.blog-dark .author-line {
  color: var(--text-muted);
  border-top: 1px solid var(--border);
  padding-top: 16px;
}
body.blog-dark .author-line .dot {
  background: var(--text-muted);
}
body.blog-dark .author-avatar {
  background: var(--bg-elevated);
  color: var(--text);
  border: 1px solid var(--border);
}
body.blog-dark .hero-illustration {
  background: transparent;
  padding: 0;
}
body.blog-dark .hero-illustration--image {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 60px var(--orange-glow);
}
body.blog-dark .hero-illustration--image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
}
/* ============= MOBILE TOC ============= */
body.blog-dark .toc-mobile {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 12px;
}
body.blog-dark .toc-mobile-toggle {
  background: transparent;
  color: var(--text);
  border: none;
}
body.blog-dark .toc-mobile-toggle:hover {
  color: var(--cta);
}
body.blog-dark .toc-mobile-chevron {
  color: var(--text-tertiary);
  transition: transform 0.2s ease;
}
body.blog-dark .toc-mobile-toggle.open .toc-mobile-chevron {
  transform: rotate(180deg);
  color: var(--cta);
}
body.blog-dark .toc-mobile-panel {
  border-top: 1px solid var(--border);
}
body.blog-dark .toc-list-mobile li {
  border-bottom: 1px solid var(--border);
}
body.blog-dark .toc-list-mobile li:last-child {
  border-bottom: none;
}
body.blog-dark .toc-list-mobile li a {
  color: var(--text-muted);
  text-decoration: none;
}
body.blog-dark .toc-list-mobile li a:hover,
body.blog-dark .toc-list-mobile li a.active {
  color: var(--cta);
}

/* ============= TAKEAWAYS ============= */
body.blog-dark .takeaways {
  background: var(--bg-elevated);
  border-left: 3px solid var(--cta);
  border-radius: 16px;
  padding: 32px;
  margin: 40px 0;
  color: var(--text);
}
body.blog-dark .takeaways h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  color: var(--text);
  letter-spacing: -0.005em;
}
body.blog-dark .takeaways li {
  color: var(--text-muted);
  padding-left: 34px;
}
body.blog-dark .takeaways li::before {
  content: "\2713";
  background: rgba(0, 212, 170, 0.12);
  color: var(--mint);
  font-weight: 700;
  border-radius: 50%;
}

/* ============= PROSE (h2 with orange accent rule, p, a, strong) ============= */
body.blog-dark article.blog-content h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
  margin: 56px 0 20px;
  position: relative;
  padding-top: 18px;
}
body.blog-dark article.blog-content h2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 36px;
  height: 2px;
  background: var(--cta);
  border-radius: 1px;
}
body.blog-dark article.blog-content h2:first-of-type {
  margin-top: 24px;
}
body.blog-dark article.blog-content p {
  color: var(--text-muted);
}
body.blog-dark article.blog-content p strong {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark article.blog-content a {
  color: var(--cta);
  text-decoration: none;
  transition: color 0.18s ease;
}
body.blog-dark article.blog-content a:hover {
  color: var(--cta-hover);
}
body.blog-dark .stat-inline {
  color: var(--cta);
  font-weight: 600;
}

/* ============= PULL QUOTE ============= */
body.blog-dark .pull-quote {
  background: var(--orange-glow);
  border-left: 3px solid var(--cta);
  border-radius: 16px;
  color: var(--text);
}
body.blog-dark .pull-quote em {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  color: var(--text);
}
body.blog-dark .pull-quote::before,
body.blog-dark .pull-quote::after {
  color: var(--cta);
}

/* ============= DARK CTA box ============= */
body.blog-dark .dark-cta {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin: 40px 0;
  position: relative;
  overflow: hidden;
}
body.blog-dark .dark-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .dark-cta h4 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  color: var(--text);
}
body.blog-dark .dark-cta p {
  color: var(--text-muted);
}
body.blog-dark .dark-cta .btn {
  background: var(--cta);
  color: var(--text);
}
body.blog-dark .dark-cta .btn:hover {
  background: var(--cta-hover);
}

/* ============= LEVERS ============= */
body.blog-dark .levers-list li {
  border-bottom: 1px solid var(--border);
}
body.blog-dark .levers-list li:last-child {
  border-bottom: none;
}
body.blog-dark .lever-icon {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
}
body.blog-dark .lever-icon.purple,
body.blog-dark .lever-icon.blue,
body.blog-dark .lever-icon.green,
body.blog-dark .lever-icon.orange,
body.blog-dark .lever-icon.pink {
  background: var(--bg-elevated);
  color: var(--cta);
}
body.blog-dark .lever-content h4 {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark .lever-content p {
  color: var(--text-muted);
}
body.blog-dark .rule-of-thumb {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  color: var(--text-muted);
}
body.blog-dark .rule-of-thumb strong {
  color: var(--mint);
}

/* ============= FRAMEWORK DIAGRAM (timeline) ============= */
body.blog-dark .framework-diagram {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;
}
body.blog-dark .framework-diagram::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .framework-diagram h3 {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--cta);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
}
body.blog-dark .framework-row {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-bottom: 8px;
}
body.blog-dark .framework-stage {
  background: transparent;
  border: none;
  padding: 10px 14px;
}
body.blog-dark .framework-stage.s1 {
  color: var(--cta);
  background: transparent;
}
body.blog-dark .framework-stage.s2 {
  color: var(--mint);
  background: transparent;
}
body.blog-dark .framework-stage.s3,
body.blog-dark .framework-stage.s4 {
  color: var(--text-tertiary);
  background: transparent;
}
body.blog-dark .stage-icon {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  color: inherit;
  width: 28px;
  height: 28px;
}
body.blog-dark .framework-stage.s1 .stage-icon {
  background: var(--orange-glow);
  border-color: rgba(255, 92, 26, 0.3);
}
body.blog-dark .framework-stage.s2 .stage-icon {
  background: rgba(0, 212, 170, 0.12);
  border-color: rgba(0, 212, 170, 0.3);
}
body.blog-dark .stage-text h5 {
  color: var(--text);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
}
body.blog-dark .stage-text p {
  color: var(--text-muted);
}
body.blog-dark .framework-arrow {
  color: var(--text-tertiary);
}
body.blog-dark .framework-issue {
  color: var(--text-muted);
}
body.blog-dark .framework-issue strong {
  color: var(--text);
}

/* SVG icon defaults in diagrams */
body.blog-dark .stage-icon svg,
body.blog-dark .outcome-card .icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ============= OUTCOME DIAGRAM (quadrant) ============= */
body.blog-dark .outcome-diagram {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;
}
body.blog-dark .outcome-diagram::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .outcome-diagram h3 {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--cta);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
}
body.blog-dark .outcome-card {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
  padding: 18px 14px;
  gap: 10px;
  font-size: 14px;
  font-weight: 600;
}
body.blog-dark .outcome-card span {
  color: var(--text);
}
body.blog-dark .outcome-card .icon {
  color: var(--mint);
  background: rgba(0, 212, 170, 0.12);
  border: 1px solid rgba(0, 212, 170, 0.25);
}
body.blog-dark .outcome-card.tl .icon,
body.blog-dark .outcome-card.tr .icon,
body.blog-dark .outcome-card.bl .icon,
body.blog-dark .outcome-card.br .icon {
  color: var(--mint);
  background: rgba(0, 212, 170, 0.12);
  border-color: rgba(0, 212, 170, 0.25);
}
body.blog-dark .outcome-center {
  background: var(--bg-elevated);
  color: var(--text);
  border: 2px solid var(--cta);
  box-shadow: 0 0 40px var(--orange-glow);
  width: 108px;
  height: 108px;
  font-size: 14px;
}
body.blog-dark .outcome-center .lower {
  color: var(--text-tertiary);
  opacity: 1;
  font-size: 11px;
}

/* ============= COMPARISON TABLE ============= */
body.blog-dark .table-section {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 40px;
}
body.blog-dark .table-section h3 {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--cta);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 13px;
}
body.blog-dark .comparison-table {
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
body.blog-dark .comparison-table thead,
body.blog-dark .comparison-table th {
  background: rgba(255, 255, 255, 0.03);
  color: var(--text);
  font-weight: 600;
  letter-spacing: 0.04em;
  border-bottom: 1px solid var(--border);
  padding: 14px 14px;
}
body.blog-dark .comparison-table td {
  background: transparent;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border);
  padding: 14px 14px;
}
body.blog-dark .comparison-table td:first-child {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark .comparison-table td.cac {
  color: var(--cta);
  font-weight: 700;
}
body.blog-dark .comparison-table tbody tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}
body.blog-dark .comparison-table tbody tr:last-child td {
  border-bottom: none;
}
/* Winner column semantics: cells with .win-paid orange, .win-organic mint */
body.blog-dark .comparison-table td.win-paid {
  color: var(--cta);
  font-weight: 700;
}
body.blog-dark .comparison-table td.win-organic {
  color: var(--mint);
  font-weight: 700;
}
body.blog-dark .comparison-table td.win-either {
  color: var(--text);
  font-weight: 700;
}
body.blog-dark .table-source {
  color: var(--text-tertiary);
  font-style: italic;
}

/* ============= CHANNEL CTA ============= */
body.blog-dark .channel-cta {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
  color: var(--text);
}
body.blog-dark .channel-cta h4 {
  color: var(--text);
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
}
body.blog-dark .channel-cta p {
  color: var(--text-muted);
}
body.blog-dark .channel-cta .btn {
  background: var(--cta);
  color: var(--text);
}
body.blog-dark .channel-cta .btn:hover {
  background: var(--cta-hover);
}

/* ============= INSIGHT + AUDIT CARDS (post-content) ============= */
body.blog-dark .insight-card,
body.blog-dark .audit-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  margin-bottom: 40px;
}
body.blog-dark .insight-card h3,
body.blog-dark .audit-card h3 {
  color: var(--text);
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
}
body.blog-dark .insight-card p {
  color: var(--text-muted);
}
body.blog-dark .insight-card .think-long {
  color: var(--cta);
  font-weight: 600;
}
body.blog-dark .audit-list li {
  color: var(--text-muted);
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
  font-size: 14px;
}
body.blog-dark .audit-list li:last-child {
  border-bottom: none;
}
body.blog-dark .audit-badge {
  background: var(--mint);
  color: var(--bg);
  font-weight: 700;
}

/* ============= RELATED + FINAL CTA ============= */
body.blog-dark .related-section h3 {
  color: var(--text);
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
}
body.blog-dark .related-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
  color: var(--text);
}
body.blog-dark .related-card:hover {
  border-color: var(--cta);
  box-shadow: 0 4px 24px var(--orange-glow);
}
body.blog-dark .related-card h4 {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark .related-card .read-link {
  color: var(--cta);
  font-weight: 600;
}
body.blog-dark .final-cta {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 48px;
  color: var(--text);
  position: relative;
  overflow: hidden;
}
body.blog-dark .final-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .final-cta h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  color: var(--text);
}
body.blog-dark .final-cta p {
  color: var(--text-muted);
}
body.blog-dark .final-cta .btn {
  border-radius: 999px;
  font-weight: 600;
}
body.blog-dark .final-cta .btn.primary {
  background: var(--cta);
  color: var(--text);
}
body.blog-dark .final-cta .btn.primary:hover {
  background: var(--cta-hover);
}
body.blog-dark .final-cta .btn.secondary {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
}
body.blog-dark .final-cta .btn.secondary:hover {
  border-color: var(--cta);
  color: var(--cta);
}

/* ============= AUTHOR BIO ============= */
body.blog-dark .author-bio {
  border-top: 1px solid var(--border);
}
body.blog-dark .bio-avatar {
  background: var(--bg-elevated);
  color: var(--text);
  border: 1px solid var(--border);
  font-weight: 700;
}
body.blog-dark .bio-text h4 {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark .bio-text p {
  color: var(--text-muted);
}

/* ============= FAQ ============= */
body.blog-dark .blog-faq {
  color: var(--text);
}
body.blog-dark .blog-faq-title {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--text);
  font-weight: 500;
  letter-spacing: -0.01em;
}
body.blog-dark .faq-item {
  border-top: 1px solid var(--border);
}
body.blog-dark .faq-item:last-child {
  border-bottom: 1px solid var(--border);
}
body.blog-dark .faq-question {
  color: var(--text);
  font-weight: 600;
}
body.blog-dark .faq-question:hover {
  color: var(--cta);
}
body.blog-dark .faq-question::after {
  color: var(--cta);
}
body.blog-dark details[open] .faq-question::after {
  color: var(--cta);
}
body.blog-dark .faq-answer p {
  color: var(--text-muted);
}

/* ============= SIDEBAR ============= */
body.blog-dark .blog-sidebar {
  background: transparent;
}
body.blog-dark .toc-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
body.blog-dark .toc-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .toc-header {
  border-bottom: 1px solid var(--border);
}
body.blog-dark .toc-title {
  color: var(--text-tertiary);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.blog-dark .toc-share .share-icon {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-muted);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.18s ease;
}
body.blog-dark .toc-share .share-icon:hover {
  color: var(--cta);
  border-color: var(--cta);
  background: var(--orange-glow);
}
body.blog-dark .toc-list {
  padding: 0;
  margin: 0;
  list-style: none;
}
body.blog-dark .toc-item {
  color: var(--text-muted);
  padding: 8px 0 8px 18px;
  position: relative;
  cursor: pointer;
  transition: color 0.15s ease;
}
body.blog-dark .toc-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 1px;
  background: var(--text-tertiary);
  transition: background 0.15s ease, width 0.15s ease;
}
body.blog-dark .toc-item:hover {
  color: var(--text);
}
body.blog-dark .toc-item:hover::before {
  background: var(--cta);
  width: 12px;
}
body.blog-dark .toc-item.active {
  color: var(--cta);
  font-weight: 600;
}
body.blog-dark .toc-item.active::before {
  background: var(--cta);
  width: 12px;
}

/* ============= SIDEBAR CTA ============= */
body.blog-dark .sidebar-cta {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px;
  position: relative;
  overflow: hidden;
}
body.blog-dark .sidebar-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--cta), transparent);
}
body.blog-dark .sidebar-cta .cta-eyebrow {
  color: var(--text-tertiary);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body.blog-dark .sidebar-cta .cta-title {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--text);
  font-weight: 500;
  letter-spacing: -0.005em;
}
body.blog-dark .sidebar-cta .cta-list {
  list-style: none;
  padding: 0;
}
body.blog-dark .sidebar-cta .cta-list li {
  color: var(--text-muted);
  padding-left: 24px;
  position: relative;
}
body.blog-dark .sidebar-cta .cta-list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--mint);
  font-weight: 700;
}
body.blog-dark .sidebar-cta .cta-button {
  background: var(--cta);
  color: var(--text);
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.blog-dark .sidebar-cta .cta-button:hover {
  background: var(--cta-hover);
}
body.blog-dark .sidebar-cta .cta-subnote {
  color: var(--text-tertiary);
  font-size: 11px;
  font-style: italic;
}

/* ============= COMPOUND-CLASS OVERRIDES (option-c chrome adoption) =============
   Reasserts dark-blog Tier-C .final-cta tuning (from e06841c) over
   body.redesign-prototype .final-cta (which sets 56px 64px / 24px radius
   for prototype hero CTAs). Specificity 0,3,0 + later source order wins.
   Required only on blogs that carry BOTH class="blog-dark" AND
   class="redesign-prototype" on <body> (option-c multi-class). */
body.blog-dark.redesign-prototype .final-cta {
  padding: 48px;
  border-radius: 20px;
}

/* ============= RESPONSIVE (mobile) ============= */
@media (max-width: 900px) {
  body.blog-dark article.blog-content h2 {
    font-size: 22px;
    margin-top: 40px;
  }
}

/* ============================================
   MARKETING AUDIT TOOL
   ============================================
   Lives at /tools/marketing-audit. Page is content-heavy
   (~5,000 words across 8 questions + 4 tier results).
   Single column, max-width capped for readability. */

.audit-page {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 24px 80px;
}

/* Hero */
.audit-hero { margin-bottom: 28px; }
.audit-hero h1 {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 12px 0 18px;
}
.audit-hero h1 .italic-accent {
  color: var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}
.audit-subtitle {
  font-size: 18px;
  line-height: 1.55;
  color: var(--text-muted);
  margin: 0 0 14px;
  max-width: 640px;
}
.audit-meta {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-tertiary);
  margin: 0;
}

.audit-intro {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text);
  margin: 0 0 40px;
  padding-bottom: 32px;
  border-bottom: 0.5px solid var(--border);
}

/* Question stack */
.audit-questions {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 0 0 28px;
  padding: 0;
  border: none;
}

.audit-question {
  background: var(--bg-elevated);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 24px 28px;
  margin: 0;
}
.audit-question legend {
  display: block;
  padding: 0;
  margin: 0 0 16px;
  width: 100%;
}
.audit-dimension {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 8px;
}
.audit-q-text {
  display: block;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text);
  letter-spacing: -0.01em;
}

.audit-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.audit-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 0.5px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elevated);
  cursor: pointer;
  font-size: 15px;
  line-height: 1.5;
  color: var(--text);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.audit-option:hover {
  border-color: var(--gold);
  background: rgba(201, 169, 110, 0.10);
}
.audit-option input[type="radio"] {
  margin: 4px 0 0;
  flex-shrink: 0;
  accent-color: var(--gold);
}
.audit-option input[type="radio"]:checked + span {
  color: var(--text);
  font-weight: 500;
}
.audit-option:has(input[type="radio"]:checked) {
  border: 1.5px solid var(--gold);
  background: rgba(201, 169, 110, 0.12);
}

/* Submit button */
.audit-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  align-self: flex-start;
  margin-top: 8px;
  padding: 14px 28px;
  background: var(--cta);
  color: var(--text);
  border: none;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, opacity 0.15s ease;
}
.audit-submit:hover:not(:disabled) {
  background: var(--cta-hover);
}
.audit-submit:disabled {
  background: var(--bg-elevated);
  color: var(--text-tertiary);
  cursor: not-allowed;
  opacity: 0.5;
}
.audit-submit-progress {
  font-size: 12px;
  font-weight: 400;
  opacity: 0.7;
}

/* Email gate */
.audit-email-gate {
  background: var(--bg-elevated);
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 32px;
  margin-top: 32px;
}
.audit-tier-preview {
  font-size: 22px;
  font-weight: 500;
  color: var(--text);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.audit-tier-preview .audit-tier-score {
  color: var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
}
.audit-gate-preview {
  margin: 22px 0;
}
.audit-gate-preview-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 10px;
}
.audit-gate-preview-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--text);
}
.audit-gate-preview-list li {
  padding: 0 0 0 22px;
  position: relative;
}
.audit-gate-preview-list li + li {
  margin-top: 9px;
}
.audit-gate-preview-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 2px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 600;
}
.audit-email-prompt {
  font-size: 15px;
  color: var(--text-muted);
  margin: 0 0 18px;
}
.audit-email-form {
  display: flex;
  gap: 10px;
  align-items: stretch;
  margin: 0 0 12px;
}
.audit-email-input {
  flex: 1;
  min-width: 0;
  padding: 12px 16px;
  border: 0.5px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elevated);
  color: var(--text);
  font-size: 15px;
  font-family: inherit;
}
.audit-email-input:focus {
  outline: 2px solid var(--gold);
  outline-offset: 1px;
  border-color: var(--gold);
}
.audit-email-submit {
  padding: 12px 22px;
  background: var(--cta);
  color: var(--text);
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease;
}
.audit-email-submit:hover {
  background: var(--cta-hover);
}
.audit-email-privacy {
  font-size: 12px;
  color: var(--text-tertiary);
  margin: 0;
  font-style: italic;
}
.audit-email-error {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(239, 68, 68, 0.08);
  border: 0.5px solid rgba(239, 68, 68, 0.4);
  border-radius: 8px;
  font-size: 13px;
  color: #FCA5A5;
}

/* Results section */
.audit-results { margin-top: 40px; }
.audit-tier-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  padding: 14px 22px;
  background: var(--navy);
  color: var(--ivory);
  border-radius: 999px;
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}
.audit-tier-badge .audit-tier-score {
  color: var(--gold);
  font-family: var(--serif);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
}

.audit-tier-description,
.audit-recommendations,
.audit-service-mapping {
  margin: 0 0 36px;
}
.audit-tier-description h4,
.audit-recommendations h4,
.audit-service-mapping h4 {
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text);
  margin: 28px 0 12px;
}
.audit-tier-description p,
.audit-recommendations p,
.audit-service-mapping p,
.audit-service-mapping ul li {
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
  margin: 0 0 14px;
}
.audit-tier-description p.audit-tier-diagnosis {
  font-size: 18px;
  line-height: 1.5;
  color: var(--text);
  margin: 0 0 18px;
}
.audit-tier-description p.audit-tier-mirror {
  padding: 18px 22px;
  border-left: 3px solid var(--gold);
  background: rgba(201, 169, 110, 0.12);
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--text);
  margin: 0 0 22px;
}
.audit-tier-description p.audit-tier-mirror em {
  font-style: italic;
}

/* Recommendations */
.audit-rec-primary {
  background: var(--bg-elevated);
  border-left: 3px solid var(--gold);
  border-radius: 0 10px 10px 0;
  padding: 20px 24px;
  margin: 0 0 28px;
}
.audit-rec-primary-label,
.audit-rec-supporting-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  margin: 24px 0 12px;
}
.audit-rec-supporting {
  list-style: none;
  padding: 0;
  margin: 0;
}
.audit-rec-supporting > li {
  padding: 18px 0;
  border-top: 0.5px solid var(--border);
}
.audit-rec-supporting > li:first-child {
  border-top: none;
  padding-top: 0;
}
.audit-rec-supporting .audit-why,
.audit-recommendations .audit-timeline,
.audit-rec-primary .audit-timeline {
  font-size: 14px;
  color: var(--text-tertiary);
}

/* Service mapping */
.audit-service-mapping ul {
  margin: 0 0 18px;
  padding-left: 24px;
}

/* Internal links + final CTA */
.audit-internal-links {
  margin: 36px 0 24px;
  padding: 24px;
  background: var(--bg-elevated);
  border-radius: 12px;
}
.audit-internal-links h4 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 14px;
}
.audit-internal-links ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.audit-internal-links li {
  padding: 6px 0;
  font-size: 15px;
}
.audit-internal-links a {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-color: var(--gold);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 0.15s ease;
}
.audit-internal-links a:hover { color: #B8945F; }

.audit-final-cta {
  display: block;
  margin: 32px 0 0;
  padding: 24px 28px;
  background: var(--cta);
  color: var(--text);
  border-radius: 12px;
  text-align: center;
  text-decoration: none;
}
.audit-final-cta:hover { background: var(--cta-hover); }
.audit-final-cta-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 6px;
}
.audit-final-cta-text {
  display: block;
  font-size: 18px;
  font-weight: 500;
}

/* Mobile breakpoint */
@media (max-width: 768px) {
  .audit-page { padding: 32px 16px 64px; }
  .audit-question { padding: 18px 20px; }
  .audit-option { padding: 10px 12px; font-size: 14.5px; }
  .audit-email-form { flex-direction: column; }
  .audit-email-submit { width: 100%; }
  .audit-email-gate { padding: 24px; }
}

@media (max-width: 380px) {
  .audit-hero h1 { font-size: 28px; }
  .audit-intro { font-size: 16px; }
  .audit-tier-badge { font-size: 17px; padding: 12px 18px; }
}

/* ============================================
   MARKETING AUDIT — WIZARD UX (refactor)
   ============================================
   One-question-at-a-time wizard pattern on top of the
   audit-questions form. Coexists with the original
   .audit-questions layout (form keeps both classes).
*/

/* ----- Sticky progress bar (sits below sticky .nav) -----
   The 64px / 56px values are tied to .nav inner padding (14px top/bottom
   desktop, 12px top/bottom at <=520px). If nav padding changes, update
   these offsets in lockstep. */
.audit-progress {
  position: sticky;
  top: 64px;
  z-index: 50;
  background: var(--bg);
  border-bottom: 0.5px solid var(--border);
  padding: 16px 0;
  margin: 0 0 32px;
}

.audit-progress-bar {
  background: var(--border);
  height: 4px;
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 10px;
}

.audit-progress-fill {
  background: var(--gold);
  height: 100%;
  width: 0%;
  transition: width 0.4s ease;
}

.audit-progress-meta {
  font-size: 12px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: 0.3px;
}

.audit-progress-dot {
  color: var(--text-tertiary);
}

#audit-progress-dimension {
  color: var(--text);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 11px;
}

/* ----- Wizard question visibility (one at a time) ----- */
.audit-wizard .audit-question {
  display: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  scroll-margin-top: 80px; /* offset for sticky progress bar (Finding 4) */
}

.audit-wizard .audit-question--active {
  display: block;
  opacity: 1;
}

.audit-wizard .audit-question--fading {
  display: block;  /* keep rendered while opacity transitions to 0 */
  opacity: 0;
}

/* ----- Wizard navigation (inline on desktop, sticky on mobile) ----- */
.audit-wizard-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: 32px 0 16px;
  padding: 16px 0;
  border-top: 0.5px solid var(--border);
}

.audit-nav-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  padding: 12px 28px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  letter-spacing: 0.2px;
}

.audit-nav-btn:hover:not(:disabled) {
  background: var(--bg-elevated);
  border-color: var(--text);
}

.audit-nav-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.audit-nav-btn--next {
  background: var(--cta);
  color: var(--text);
  border-color: var(--cta);
}

.audit-nav-btn--next:hover:not(:disabled) {
  background: var(--cta-hover);
}

.audit-nav-btn--next:disabled {
  background: var(--text-tertiary);
  border-color: var(--text-tertiary);
}

/* Q8 variant: "See my results" */
.audit-nav-btn--final {
  background: var(--gold);
  color: var(--bg);
  border-color: var(--gold);
  padding: 12px 32px;
  font-weight: 600;
}

.audit-nav-btn--final:hover:not(:disabled) {
  background: #B89B5F;
}

.audit-nav-btn:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* ----- Mobile sticky bottom nav ----- */
@media (max-width: 768px) {
  .audit-progress {
    top: 56px;  /* tied to .nav padding shrink at small breakpoints */
    padding: 12px 0;
    margin-bottom: 24px;
  }

  .audit-wizard-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--bg-elevated);
    border-top: 0.5px solid var(--border);
    padding: 12px 16px;
    margin: 0;
    z-index: 50;
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.4);
  }

  .audit-wizard {
    padding-bottom: 80px; /* clear sticky nav */
  }

  .audit-nav-btn {
    padding: 12px 18px;
    font-size: 13px;
    flex: 1;
    max-width: 48%;
  }
}

@media (max-width: 380px) {
  .audit-progress-meta {
    font-size: 11px;
  }

  .audit-nav-btn {
    padding: 10px 12px;
    font-size: 12px;
  }
}

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion: reduce) {
  .audit-progress-fill,
  .audit-wizard .audit-question {
    transition: none;
  }
}

/* ============================================================
   REDESIGN PROTOTYPE — DARK MODE
   Scoped under body.redesign-prototype
   Active only on prototype pages during evaluation
   Remove this section if migration is rejected
   ============================================================ */

/* Design tokens — scoped to prototype only */
body.redesign-prototype {
  --bg: #0E0E0E;
  --bg-elevated: #1A1A1A;
  --text: #FFFFFF;
  --text-muted: #999999;
  --text-tertiary: #737373;
  --cta: #FF5C1A;
  --cta-hover: #FF7038;
  --mint: #00D4AA;
  --border: rgba(255, 255, 255, 0.08);
  --grid-line: rgba(255, 255, 255, 0.045);
  --orange-glow: rgba(255, 92, 26, 0.18);
  --warm-bg: #F8F4ED;
  --warm-text: #1A1A1A;
  --warm-cta: #C8542B;
  /* Error surface — derived from legacy --chart-red (#EF4444), tuned
     for dark-theme contrast. Used by forms (any prototype page). */
  --error-bg: rgba(239, 68, 68, 0.08);
  --error-border: rgba(239, 68, 68, 0.35);
  --error-text: #FCA5A5;
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Inter', -apple-system, system-ui, sans-serif;
}

/* Body baseline + subtle grid background */
body.redesign-prototype {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--text);
  background-color: var(--bg);
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 56px 56px;
}

/* .app wrapper is sitewide infrastructure (29 pages). Legacy sets
   background: var(--white) at styles.css:92. For dark prototype
   pages, transparent lets body's var(--bg) Obsidian + grid pattern
   show through naturally. Auto-applies to all future Phase 2 pages
   that adopt body.redesign-prototype. */
body.redesign-prototype .app {
  background: transparent;
}

/* Dark-scope heading color: the global default (L74) sets h1-h4 to var(--deep) (navy),
   invisible on Obsidian. Restore to --text for prototype-scoped pages. Blog POSTS get
   correct heading color from V2-region rules with higher specificity; this does not affect them. */
body.redesign-prototype h1,
body.redesign-prototype h2,
body.redesign-prototype h3,
body.redesign-prototype h4 {
  color: var(--text);
}

/* Headings */
body.redesign-prototype h1.hero-headline {
  font-family: var(--serif);
  font-size: 64px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}

body.redesign-prototype h1.hero-headline em {
  color: var(--cta);
  font-style: italic;
  font-weight: 400;
}

body.redesign-prototype h2.section-heading {
  font-family: var(--serif);
  font-size: 40px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--text);
  margin: 0;
}

body.redesign-prototype h3.subsection,
body.redesign-prototype h3.card-title {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.25;
  color: var(--text);
  margin: 0;
}

/* Supporting text */
body.redesign-prototype .hero-subtitle {
  font-size: 19px;
  line-height: 1.55;
  color: var(--text-muted);
  margin: 24px 0 0;
}

body.redesign-prototype .section-deck {
  font-size: 18px;
  line-height: 1.6;
  color: var(--text-muted);
  margin: 24px 0 0;
  max-width: 720px;
}

body.redesign-prototype .table-leadin {
  color: var(--text-muted);
  margin-top: 32px;
}

body.redesign-prototype .section-closing {
  color: var(--text);
  margin-top: 32px;
}

/* Layout */
body.redesign-prototype .container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}

body.redesign-prototype section.content-section {
  padding: 64px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

body.redesign-prototype .hero {
  padding: 96px 0;
  position: relative;
  overflow: hidden;
}

body.redesign-prototype .hero::before {
  content: "";
  position: absolute;
  top: 20%;
  left: 10%;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, var(--orange-glow) 0%, transparent 70%);
  pointer-events: none;
}

body.redesign-prototype .hero-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: center;
  position: relative;
  z-index: 1;
}

body.redesign-prototype .hero-text {
  min-width: 0;
}

body.redesign-prototype .hero-ctas {
  display: flex;
  flex-direction: row;
  gap: 16px;
  margin-top: 32px;
  flex-wrap: wrap;
}

body.redesign-prototype .hero-visual {
  display: block;
  height: auto;
  min-width: 0;
}

body.redesign-prototype .hero-image {
  width: 100%;
  height: auto;
  aspect-ratio: 5 / 3;
  object-fit: cover;
  object-position: center center;
  border-radius: 16px;
  display: block;
}

/* Eyebrow with Mint dot */
body.redesign-prototype .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin: 0 0 24px;
}

body.redesign-prototype .eyebrow::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 16px var(--mint), 0 0 4px var(--mint);
}

/* Buttons */
body.redesign-prototype .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.2s ease;
  cursor: pointer;
  border: 1px solid transparent;
}

body.redesign-prototype .btn-primary {
  background: var(--cta);
  color: var(--bg);
  box-shadow: 0 4px 16px rgba(255, 92, 26, 0.25);
}

body.redesign-prototype .btn-primary:hover {
  background: var(--cta-hover);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(255, 92, 26, 0.35);
}

body.redesign-prototype .btn-outline {
  background: transparent;
  color: var(--text);
  border-color: var(--border);
}

body.redesign-prototype .btn-outline:hover {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.02);
}

/* Comparison cards (side-by-side) */
body.redesign-prototype .comparison-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 40px 0 32px;
}

body.redesign-prototype .comparison-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 36px;
}

body.redesign-prototype .comparison-card-hmm {
  border-color: rgba(255, 92, 26, 0.2);
}

body.redesign-prototype .comparison-card-title {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin: 0 0 24px;
}

body.redesign-prototype .comparison-card-hmm .comparison-card-title {
  color: var(--cta);
}

body.redesign-prototype .comparison-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.redesign-prototype .comparison-list li {
  padding: 14px 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--text-muted);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

body.redesign-prototype .comparison-list li:last-child {
  border-bottom: none;
}

body.redesign-prototype .comparison-card-hmm .comparison-list li {
  color: var(--text);
}

/* Service card grid */
body.redesign-prototype .service-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 40px;
  max-width: 1080px;
  margin-right: auto;
}

body.redesign-prototype .service-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 36px;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
  display: block;
}

body.redesign-prototype .service-card:hover {
  border-color: rgba(255, 255, 255, 0.16);
  transform: translateY(-2px);
}

body.redesign-prototype .service-card h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  margin: 0 0 12px;
  color: var(--text);
}

body.redesign-prototype .service-card p {
  color: var(--text-muted);
  margin: 0 0 24px;
  font-size: 15px;
  line-height: 1.6;
}

body.redesign-prototype .service-card .card-arrow {
  color: var(--cta);
  font-size: 14px;
  font-weight: 500;
}

/* Bullet list */
body.redesign-prototype .bullet-list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
}

body.redesign-prototype .bullet-list li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 12px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--text-muted);
}

body.redesign-prototype .bullet-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cta);
}

body.redesign-prototype .bullet-list li strong {
  color: var(--text);
  font-weight: 500;
}

/* Final CTA */
body.redesign-prototype .final-cta {
  background: var(--bg-elevated);
  border-radius: 24px;
  padding: 56px 64px;
  text-align: center;
}

body.redesign-prototype .final-cta h2 {
  max-width: 640px;
  margin: 0 auto 24px;
}

body.redesign-prototype .final-cta .subhead {
  max-width: 540px;
  margin: 0 auto 32px;
  color: var(--text-muted);
}

body.redesign-prototype .final-cta .microcopy {
  margin-top: 16px;
  font-size: 13px;
  color: var(--text-tertiary);
  font-style: italic;
}

/* ============================================================
   PROTOTYPE SERVICE-PAGE PATTERNS
   Promoted from byte-identical inline styles on the 6
   /services/* category pages (zero drift, verified). These
   reproduce the prior inline rendering exactly.
   Deferred enhancements (NOT applied here, refactor only):
   step-flow 720px mobile stacking; FAQ summary
   ::-webkit-details-marker hardening.
   ============================================================ */

/* Methodology 3-step flow */
body.redesign-prototype .step-flow {
  display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px;
  margin-top: 40px; max-width: 1080px; position: relative;
}
body.redesign-prototype .step-flow .step-line {
  position: absolute; top: 28px; left: 11%; right: 11%;
  height: 2px; background: rgba(255, 255, 255, 0.08); z-index: 0;
}
body.redesign-prototype .step-flow .step { position: relative; z-index: 1; }
body.redesign-prototype .step-flow .step-num {
  width: 56px; height: 56px; border-radius: 50%; background: var(--bg);
  border: 2px solid var(--cta); display: flex; align-items: center;
  justify-content: center; font-family: var(--serif); font-size: 24px;
  font-weight: 500; color: var(--cta); margin-bottom: 20px;
}
body.redesign-prototype .step-flow .step h3 {
  font-family: var(--serif); font-size: 20px; font-weight: 500;
  color: var(--text); margin: 0 0 12px;
}
body.redesign-prototype .step-flow .step p {
  font-size: 15px; line-height: 1.6; color: var(--text-muted); margin: 0;
}

/* Compact related reading */
body.redesign-prototype .related-reading-compact { padding: 32px 0; }
body.redesign-prototype .related-reading-compact p {
  font-size: 12px; font-weight: 500; color: var(--text-tertiary);
  text-transform: uppercase; letter-spacing: 1.5px; margin: 0 0 16px;
}
body.redesign-prototype .related-reading-compact ul {
  list-style: none; padding: 0; margin: 0; display: flex; gap: 24px; flex-wrap: wrap;
}

/* Inline-details FAQ (svc- prefix: .faq-item is owned by legacy pages) */
body.redesign-prototype .svc-faq-item {
  border-bottom: 1px solid var(--border); padding: 20px 0;
}
body.redesign-prototype .svc-faq-item summary {
  font-size: 18px; font-weight: 500; color: var(--text); cursor: pointer;
  list-style: none; display: flex; justify-content: space-between;
  align-items: center; gap: 16px;
}
body.redesign-prototype .svc-faq-item summary span[aria-hidden] {
  color: var(--cta); font-size: 22px; line-height: 1;
}
body.redesign-prototype .svc-faq-item > p {
  margin: 16px 0 0; color: var(--text-muted); line-height: 1.65;
}

/* Final CTA section wrapper (inner .final-cta is the existing shared class) */
body.redesign-prototype .final-cta-section { padding: 64px 0 0; }
body.redesign-prototype .final-cta-section .final-cta { padding: 40px 64px; }
body.redesign-prototype .final-cta-section .final-cta-actions {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin: 32px 0 20px;
}
body.redesign-prototype .final-cta .subhead.final-cta-note {
  font-style: normal; opacity: 0.6; font-size: 13px; margin: 0 auto;
}

/* ============================================================
   WORK PAGE PATTERNS
   Page-specific dark patterns for /work (Case Studies).
   Scoped under body.redesign-prototype.
   ============================================================ */

/* Proof strip — 7 metrics, Signal-Orange figures, wraps responsively */
body.redesign-prototype .proof-strip {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 32px 24px; max-width: 1080px;
}
body.redesign-prototype .proof-strip-item {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  flex: 1 1 120px; min-width: 120px; max-width: 180px; text-align: center;
}
body.redesign-prototype .proof-strip-figure {
  font-family: var(--serif); font-size: clamp(28px, 3vw, 40px);
  font-weight: 500; color: var(--cta); line-height: 1;
}
body.redesign-prototype .proof-strip-label {
  font-size: 12px; color: var(--text-muted); line-height: 1.3;
  text-transform: uppercase; letter-spacing: 0.06em;
}

/* Case-study grid + cards */
body.redesign-prototype .case-study-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  margin-top: 40px; max-width: 1080px;
}
@media (max-width: 900px) {
  body.redesign-prototype .case-study-grid { grid-template-columns: 1fr; }
}
body.redesign-prototype .case-study-card {
  background: var(--bg-elevated); border: 1px solid var(--border);
  border-radius: 16px; padding: 28px;
}
body.redesign-prototype .case-study-card-header {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; margin-bottom: 16px;
}
body.redesign-prototype .case-study-card h3 {
  font-family: var(--serif); font-size: 22px; font-weight: 500;
  color: var(--text); margin: 0;
}
body.redesign-prototype .case-study-tag {
  font-size: 11px; font-weight: 500; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--text-muted); white-space: nowrap;
}
body.redesign-prototype .case-study-metric {
  font-family: var(--serif); font-size: 32px; font-weight: 500;
  color: var(--cta); line-height: 1.1; margin: 0 0 20px;
}
body.redesign-prototype .case-study-metric-qual {
  font-family: var(--sans); font-size: 14px; color: var(--text-muted);
  font-weight: 400; margin-left: 4px;
}
body.redesign-prototype .case-study-card p {
  font-size: 15px; line-height: 1.6; color: var(--text-muted); margin: 0 0 12px;
}
body.redesign-prototype .case-study-card p:last-child { margin-bottom: 0; }

/* DEPRECATED: F1 footer styles, superseded by F2 below (canon locked at a53cddd).
   F1 markup classes (.footer-grid, .footer-column wrapper, .footer-baseline original
   variant) are no longer used by F2-migrated prototype pages. Retained here because
   the F1 add-on classes (.footer-column h4, .footer-column ul li, etc.) collide with
   F2 class names, and F2 source-ordered after these rules wins on cascade. Do not
   delete — F2 relies on F1's structural defaults (list-style: none, etc.). */
/* Footer */
body.redesign-prototype .footer {
  background: var(--bg);
  border-top: 1px solid var(--border);
  padding: 64px 0 40px;
}

body.redesign-prototype .footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 64px;
  margin-bottom: 64px;
}

body.redesign-prototype .footer-column h4 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin: 0 0 20px;
}

body.redesign-prototype .footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.redesign-prototype .footer-column ul li {
  margin-bottom: 10px;
}

body.redesign-prototype .footer-column ul li a {
  color: var(--text-muted);
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s ease;
}

body.redesign-prototype .footer-column ul li a:hover {
  color: var(--text);
}

body.redesign-prototype .footer-baseline {
  padding-top: 32px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 13px;
  color: var(--text-tertiary);
}

body.redesign-prototype .footer-baseline a {
  color: var(--text-tertiary);
  text-decoration: none;
  margin: 0 12px;
}

body.redesign-prototype .footer-baseline a:hover {
  color: var(--text);
}

/* Mobile responsive — single breakpoint at 900px */
@media (max-width: 900px) {
  body.redesign-prototype h1.hero-headline { font-size: 40px; }
  body.redesign-prototype h2.section-heading { font-size: 28px; }
  body.redesign-prototype h3.subsection,
  body.redesign-prototype h3.card-title { font-size: 20px; }

  body.redesign-prototype .container { padding: 0 20px; }
  body.redesign-prototype section.content-section { padding: 40px 0; }
  body.redesign-prototype .hero { padding: 64px 0; }

  body.redesign-prototype .hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  body.redesign-prototype .service-grid { grid-template-columns: 1fr; gap: 16px; }
  body.redesign-prototype .footer { padding: 40px 0 40px; }
  body.redesign-prototype .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  body.redesign-prototype .final-cta { padding: 40px 24px; }

  /* Comparison cards stack on mobile */
  body.redesign-prototype .comparison-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  /* Hero CTAs stack on mobile */
  body.redesign-prototype .hero-ctas { flex-direction: column; align-items: flex-start; }
  body.redesign-prototype .hero-ctas .btn { width: auto; }

  /* Hide nav CTA on mobile — hamburger takes over nav access at this breakpoint.
     Higher specificity than the legacy `.btn` rule that was unintentionally
     overriding the legacy `.nav-main-cta { display: none }` at <=680px. */
  body.redesign-prototype .nav-main-cta { display: none; }
}

/* Dark-mode nav variant (overrides legacy nav, scoped to prototype only) */
body.redesign-prototype .nav {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}

body.redesign-prototype .nav .logo {
  color: var(--text);
}

body.redesign-prototype .nav .logo em {
  color: var(--cta);
}

/* Logo mark dark variant: H is a bare text node (color cascades from .logo-mark); m uses existing .me-italic class */
body.redesign-prototype .logo-mark {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
}

body.redesign-prototype .logo-mark .me-italic {
  color: var(--cta);
}

body.redesign-prototype .nav-link {
  color: var(--text-muted);
}

body.redesign-prototype .nav-link:hover {
  color: var(--text);
  background: rgba(255, 255, 255, 0.05);
}

body.redesign-prototype .nav-link.active {
  color: var(--text);
  background: rgba(255, 255, 255, 0.05);
}

body.redesign-prototype .btn-accent {
  background: var(--cta);
  color: var(--bg);
  border: none;
  box-shadow: 0 4px 16px rgba(255, 92, 26, 0.25);
}

body.redesign-prototype .btn-accent:hover {
  background: var(--cta-hover);
}

body.redesign-prototype .nav-mobile-menu {
  background: var(--bg);
}

body.redesign-prototype .nav-mobile-menu a {
  color: var(--text);
}

/* Hamburger dark variant: transparent box, visible border, white lines.
   Border was previously var(--border) (rgba(255,255,255,0.08) — 8% white),
   invisible on the Obsidian background. Bumped to 25% (base) / 45% (hover)
   so the button is findable on real devices. */
body.redesign-prototype .nav-hamburger {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: var(--text);
}

body.redesign-prototype .nav-hamburger:hover {
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.05);
}

body.redesign-prototype .nav-hamburger span,
body.redesign-prototype .nav-hamburger span::before,
body.redesign-prototype .nav-hamburger span::after {
  background: var(--text);
}

/* ============================================================
   PROTOTYPE — CONTACT PAGE
   ============================================================ */

/* Token shimming: redefine custom properties locally to override
   inline style="color:var(--text-primary)" without !important.
   Inline-style custom-property lookups resolve at the element's
   effective scope, so redefining here repaints the inline rules.
   Mechanism is intentional — do not refactor without understanding.

   Specifics: the contact page uses inline style="color:var(--text-primary)"
   and var(--text-secondary) on .contact-aside, and var(--deep) +
   var(--ink-60) inside .contact-thanks. Those legacy tokens aren't
   redefined at body scope, so they fall back to :root dark values
   (invisible on Obsidian). Local redefinition here avoids both the
   !important pattern and the sitewide cascade risk of redefining
   them at body.redesign-prototype scope. */
body.redesign-prototype .contact-aside {
  --text-primary: var(--text);
  --text-secondary: var(--text-muted);
}

body.redesign-prototype .contact-thanks {
  --deep: var(--text);
  --ink-60: var(--text-muted);
}

/* Contact form card — dark elevated surface */
body.redesign-prototype .contact-form {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  box-shadow: none;
}

/* Form labels */
body.redesign-prototype .form-label {
  color: var(--text-muted);
}

body.redesign-prototype .form-label-hint {
  color: var(--text-tertiary);
}

/* Form inputs + textarea */
body.redesign-prototype .form-input,
body.redesign-prototype .form-textarea {
  background: var(--bg);
  border: 1px solid var(--border);
  color: var(--text);
}

body.redesign-prototype .form-input::placeholder,
body.redesign-prototype .form-textarea::placeholder {
  color: var(--text-tertiary);
}

body.redesign-prototype .form-input:hover,
body.redesign-prototype .form-textarea:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

body.redesign-prototype .form-input:focus,
body.redesign-prototype .form-textarea:focus {
  border-color: var(--cta);
  background: var(--bg);
  box-shadow: 0 0 0 4px rgba(255, 92, 26, 0.15);
}

/* Prefixed input (https:// + website) */
body.redesign-prototype .form-prefix-wrap {
  background: var(--bg);
  border: 1px solid var(--border);
}

body.redesign-prototype .form-prefix-wrap:hover {
  border-color: rgba(255, 255, 255, 0.2);
}

body.redesign-prototype .form-prefix-wrap:focus-within {
  border-color: var(--cta);
  box-shadow: 0 0 0 4px rgba(255, 92, 26, 0.15);
}

body.redesign-prototype .form-prefix {
  background: rgba(255, 255, 255, 0.03);
  border-right: 1px solid var(--border);
  color: var(--text-muted);
}

body.redesign-prototype .form-input-prefixed {
  background: transparent;
  color: var(--text);
}

/* Chips */
body.redesign-prototype .chip {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--text-muted);
}

body.redesign-prototype .chip:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.3);
  color: var(--text);
}

body.redesign-prototype .chip.chip-on {
  background: rgba(255, 92, 26, 0.1);
  border-color: var(--cta);
  color: var(--cta);
}

/* Error banner (replaces legacy inline light styles). Uses the
   prototype-scope --error-* tokens declared at the top of the
   prototype section. Reusable across any prototype-scoped form. */
body.redesign-prototype .contact-err {
  margin: 0 40px;
  padding: 12px 14px;
  background: var(--error-bg);
  border: 1px solid var(--error-border);
  border-radius: 10px;
  font-size: 13px;
  color: var(--error-text);
  line-height: 1.5;
}

/* Submit button — Signal Orange CTA, matches prototype primary button */
body.redesign-prototype .contact-submit {
  background: var(--cta);
  color: var(--bg);
}

body.redesign-prototype .contact-submit:hover {
  background: var(--cta-hover);
}

/* Privacy mini strip at bottom of form */
body.redesign-prototype .contact-privacy-mini {
  background: rgba(255, 255, 255, 0.02);
  border-top: 1px solid var(--border);
  color: var(--text-tertiary);
}

/* Thank-you panel */
body.redesign-prototype .contact-thanks {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  box-shadow: none;
}

body.redesign-prototype .contact-thanks-glyph {
  background: var(--cta);
  box-shadow: 0 12px 24px -10px rgba(255, 92, 26, 0.45);
}

/* DEPRECATED: F1 footer-baseline meta + badges (added during /contact migration).
   F2 redefines .footer-baseline-meta as a <p> text element (vs F1's flex wrapper)
   and overrides .footer-badges display + .footer-badge typography. F2 source-ordered
   after these rules wins on cascade. F1 mobile rules below at @media (max-width:720px)
   are similarly deprecated. */
/* Footer-baseline right-side meta cluster (badges + email) */
body.redesign-prototype .footer-baseline-meta {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* Reset the inherited margin: 0 12px from .footer-baseline a so the
   email link sits cleanly inside the flex-gap layout of meta. */
body.redesign-prototype .footer-baseline-meta a {
  margin: 0;
}

/* Partner badges (dark variant) */
body.redesign-prototype .footer-badges {
  display: inline-flex;
  gap: 8px;
  flex-wrap: wrap;
}

body.redesign-prototype .footer-badge {
  font-size: 11px;
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-muted);
  background: transparent;
}

/* Mobile — footer-baseline stacks below ~720px so badges + email don't
   crush the copyright/legal row. */
@media (max-width: 720px) {
  body.redesign-prototype .footer-baseline {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }

  body.redesign-prototype .footer-baseline-meta {
    width: 100%;
  }
}

/* ============================================
   F2 FOOTER (two-band: brand+tools + sitemap+baseline)
   Canon locked in a53cddd. Spec at /docs/HMM_Design_System.md §8.
   Replaces F1 3-column flat footer in prototype scope.
   F1 rules above (lines 4037-4101 + 4375-4416) marked DEPRECATED;
   F2 source-ordered after them so cascade naturally favors F2 on
   class collisions (.footer, .footer-column h4, .footer-column ul li,
   .footer-column ul li a, .footer-baseline, .footer-baseline-meta,
   .footer-badges, .footer-badge). Class collisions resolved via
   explicit overrides where F1 inheritance would corrupt F2 layout.
   ============================================ */

/* .italic-accent in prototype scope renders Signal Orange.
   Legacy .italic-accent rule at styles.css:1430 uses var(--gold),
   which resolves to legacy gold (#C9A96E) — wrong for prototype.
   Currently used only by the F2 footer brand headline. */
body.redesign-prototype .italic-accent {
  color: var(--cta);
  font-style: italic;
  font-weight: 400;
}

body.redesign-prototype .footer {
  background: var(--bg);
  color: var(--text);
  margin-top: 80px;
}

body.redesign-prototype .footer .container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}

/* BAND 1: brand statement + tool cards */
body.redesign-prototype .footer-band-brand {
  padding: 48px 0;
  border-bottom: 1px solid var(--border);
}

body.redesign-prototype .footer-brand-row {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 56px;
  align-items: start;
}

body.redesign-prototype .footer-brand-headline {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.35;
  color: var(--text);
  margin: 0 0 14px;
}

body.redesign-prototype .footer-brand-descriptor {
  font-size: 13px;
  line-height: 1.65;
  color: var(--text-muted);
  margin: 0;
  max-width: 460px;
}

body.redesign-prototype .footer-tools-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

body.redesign-prototype .footer-tool-card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 22px;
  text-decoration: none;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.2s ease;
}

body.redesign-prototype .footer-tool-card:hover {
  border-color: rgba(255, 255, 255, 0.16);
}

body.redesign-prototype .footer-tool-icon {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: var(--orange-glow);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--cta);
  margin-bottom: 2px;
}

body.redesign-prototype .footer-tool-title {
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  line-height: 1.3;
}

body.redesign-prototype .footer-tool-description {
  font-size: 12px;
  font-weight: 400;
  color: var(--text-muted);
  line-height: 1.55;
  margin: 0;
}

body.redesign-prototype .footer-tool-affordance {
  font-size: 12px;
  font-weight: 500;
  color: var(--cta);
  margin-top: 4px;
}

/* BAND 2: sitemap + baseline */
body.redesign-prototype .footer-band-utility {
  padding: 36px 0 24px;
}

body.redesign-prototype .footer-utility-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 28px;
}

/* Override F1 .footer-column h4 (F2 values: 10px / letter-spacing 1.5px) */
body.redesign-prototype .footer-column h4 {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin: 0 0 14px;
}

/* F1 .footer-column ul applies (list-style none); F2 adds flex + gap */
body.redesign-prototype .footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Override F1 .footer-column ul li { margin-bottom: 10px }
   to neutralize the 10px margin that would compound with F2's gap (= 18px effective). */
body.redesign-prototype .footer-column ul li {
  margin-bottom: 0;
}

/* Override F1 .footer-column ul li a (F2 uses 12px not 14px) */
body.redesign-prototype .footer-column ul li a {
  font-size: 12px;
  font-weight: 400;
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}

body.redesign-prototype .footer-column ul li a:hover {
  color: var(--text);
}

/* Override F1 .footer-baseline (F2 has different padding/align/gap/size) */
body.redesign-prototype .footer-baseline {
  border-top: 1px solid var(--border);
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  font-size: 11px;
  color: var(--text-tertiary);
}

body.redesign-prototype .footer-baseline-left {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Override F1 .footer-badges (F2: flex vs F1 inline-flex; same gap/wrap) */
body.redesign-prototype .footer-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Override F1 .footer-badge (F2: 10px / padding 4px 10px) */
body.redesign-prototype .footer-badge {
  padding: 4px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 10px;
  color: var(--text-muted);
}

/* Override F1 .footer-baseline-meta (F1 was a flex wrapper; F2 is <p> text element).
   display:block + gap:0 neutralize F1's display:flex; gap:20px inheritance. */
body.redesign-prototype .footer-baseline-meta {
  display: block;
  gap: 0;
  font-size: 11px;
  color: var(--text-tertiary);
  margin: 0;
}

body.redesign-prototype .footer-baseline-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}

body.redesign-prototype .footer-baseline-right a {
  color: var(--text-tertiary);
  text-decoration: none;
  font-size: 11px;
  transition: color 0.15s ease;
}

body.redesign-prototype .footer-baseline-right a:hover {
  color: var(--text);
}

/* F2 Mobile: ≤900px (upper band stacks; sitemap 3→2 col) */
@media (max-width: 900px) {
  body.redesign-prototype .footer .container {
    padding: 0 24px;
  }
  body.redesign-prototype .footer-band-brand {
    padding: 32px 0;
  }
  body.redesign-prototype .footer-brand-row {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  body.redesign-prototype .footer-utility-grid {
    grid-template-columns: 1fr 1fr;
  }
  body.redesign-prototype .footer-band-utility {
    padding: 28px 0 20px;
  }
}

/* F2 Mobile: ≤720px (sitemap 2→1 col; tool cards stack; baseline stacks) */
@media (max-width: 720px) {
  body.redesign-prototype .footer-utility-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  body.redesign-prototype .footer-tools-grid {
    grid-template-columns: 1fr;
  }
  body.redesign-prototype .footer-baseline {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  body.redesign-prototype .footer-baseline-right {
    align-items: flex-start;
  }
}

/* === END REDESIGN PROTOTYPE — DARK MODE === */
