/* ============================================================
   HealthcareQuote — Ease Health Design System
   Botanical greenhouse on cream paper
   ============================================================ */

:root {
  --color-forest-ink: #0f3e17;
  --color-sage-mist: #b1dbb8;
  --color-keylime-wash: #e1f4df;
  --color-mint-veil: #cfe7d3;
  --color-slate-hush: #b6ced5;
  --color-cream-paper: #fffefc;
  --color-charcoal: #222222;
  --color-border-mist: #efeeeb;
  --color-forest-shadow: #0c2f10;

  --font-serif: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --font-sans: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --text-caption: 10px;
  --leading-caption: 1.61;
  --text-body: 14px;
  --leading-body: 1.5;
  --text-subheading: 18px;
  --leading-subheading: 1.3;
  --text-heading-sm: 23px;
  --leading-heading-sm: 1.5;
  --text-heading: 40px;
  --leading-heading: 1.35;
  --tracking-heading: -0.4px;
  --text-heading-lg: 56px;
  --leading-heading-lg: 1.2;
  --tracking-heading-lg: -1.68px;
  --text-display: 74px;
  --leading-display: 1.05;
  --tracking-display: -2.22px;

  --weight-light: 300;
  --weight-regular: 400;
  --weight-semibold: 600;

  --space-4: 4px;
  --space-7: 7px;
  --space-9: 9px;
  --space-11: 11px;
  --space-14: 14px;
  --space-18: 18px;
  --space-21: 21px;
  --space-28: 28px;
  --space-35: 35px;
  --space-42: 42px;
  --space-49: 49px;
  --space-56: 56px;
  --space-70: 70px;
  --space-76: 76px;
  --space-99: 99px;
  --space-156: 156px;

  --radius-nav: 7px;
  --radius-card: 14px;
  --radius-badge: 999px;
  --radius-button: 14px;

  --max-width: 1200px;
}

/* ===== Reset ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }
body {
  background: var(--color-cream-paper);
  color: var(--color-charcoal);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font-family: inherit; }

/* ===== Layout ===== */
.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-35);
}

/* ===== Nav ===== */
.nav {
  background: var(--color-cream-paper);
  border-bottom: 1px solid var(--color-border-mist);
  position: sticky;
  top: 0;
  z-index: 100;
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-21) 0;
  gap: var(--space-28);
}
.nav-logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  white-space: nowrap;
}
.nav-logo svg { flex-shrink: 0; }
.nav-logo-text {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
}
.nav-logo-primary {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 23px;
  letter-spacing: -0.4px;
  color: var(--color-forest-ink);
}
.nav-logo-secondary {
  font-family: var(--font-sans);
  font-weight: var(--weight-semibold);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
  opacity: 0.55;
  padding-bottom: 2px;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: var(--space-7);
  list-style: none;
  flex: 1;
  justify-content: center;
}
.nav-links a {
  color: var(--color-charcoal);
  text-decoration: none;
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  padding: var(--space-7) var(--space-11);
  border-radius: var(--radius-nav);
  transition: background 0.15s;
  white-space: nowrap;
}
.nav-links a:hover { background: var(--color-keylime-wash); }
.nav-links a.active { background: var(--color-keylime-wash); color: var(--color-forest-ink); }

/* ===== Buttons ===== */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: var(--space-9);
  background: var(--color-forest-ink);
  color: var(--color-cream-paper);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  padding: var(--space-14) var(--space-21);
  border-radius: var(--radius-button);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  white-space: nowrap;
  line-height: 1;
}
.btn-primary:hover { background: var(--color-forest-shadow); }

.btn-primary-lg {
  padding: var(--space-18) var(--space-35);
  font-size: var(--text-subheading);
}

.btn-light {
  display: inline-flex;
  align-items: center;
  gap: var(--space-9);
  background: var(--color-cream-paper);
  color: var(--color-forest-ink);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  padding: var(--space-14) var(--space-28);
  border-radius: var(--radius-button);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s;
}
.btn-light:hover { opacity: 0.88; }

.btn-ghost {
  background: none;
  border: none;
  color: var(--color-charcoal);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  cursor: pointer;
  opacity: 0.55;
  padding: var(--space-9) 0;
  transition: opacity 0.15s;
}
.btn-ghost:hover { opacity: 1; }

/* ===== Eyebrow ===== */
.eyebrow {
  display: block;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
  margin-bottom: var(--space-14);
}

/* ===== Typography ===== */
h1, h2, h3, .serif {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  color: var(--color-forest-ink);
}
h1 {
  font-size: var(--text-heading-lg);
  line-height: var(--leading-heading-lg);
  letter-spacing: var(--tracking-heading-lg);
}
h2 {
  font-size: var(--text-heading);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-heading);
}
h3 {
  font-size: var(--text-heading-sm);
  line-height: var(--leading-heading-sm);
}

/* ===== Badge / Pill ===== */
.badge {
  display: inline-block;
  background: var(--color-cream-paper);
  color: var(--color-forest-ink);
  border-radius: var(--radius-badge);
  padding: var(--space-7) var(--space-14);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: var(--weight-regular);
}
.badge-keylime {
  background: var(--color-keylime-wash);
}
.badge-mint {
  background: var(--color-mint-veil);
}

/* ===== Section spacing ===== */
.section { padding: var(--space-99) 0; }
.section-sm { padding: var(--space-70) 0; }
.section-header { margin-bottom: var(--space-56); }

/* ===== Hero Carrier Animation ===== */
/* Fall-in: drops from above with a spring overshoot */
@keyframes carrier-fall-in {
  0%   { opacity: 0; transform: translateY(-48px); }
  70%  { opacity: 1; transform: translateY(6px); }
  100% { opacity: 1; transform: translateY(0); }
}
/* Fall-out: drops through to below */
@keyframes carrier-fall-out {
  0%   { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(40px); }
}
/* Name slide animations */
@keyframes name-slide-in {
  from { opacity: 0; transform: translateY(-16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes name-slide-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(14px); }
}
.carrier-anim-in  { animation: carrier-fall-in  0.45s cubic-bezier(0.34,1.3,0.64,1) forwards; }
.carrier-anim-out { animation: carrier-fall-out 0.32s ease-in forwards; }
.name-anim-in  { animation: name-slide-in  0.35s ease forwards 0.1s; }
.name-anim-out { animation: name-slide-out 0.25s ease-in forwards; }
@media (prefers-reduced-motion: reduce) {
  .carrier-anim-in, .carrier-anim-out,
  .name-anim-in, .name-anim-out { animation: none; opacity: 1; transform: none; }
}

/* ===== Hero ===== */
.hero {
  padding: var(--space-99) 0 var(--space-76);
}
.hero-open {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-56);
  align-items: center;
}
.hero-copy { display: flex; flex-direction: column; gap: var(--space-21); }
.hero-copy h1 {
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.08;
  letter-spacing: -0.03em;
}
.hero-copy p {
  font-size: var(--text-subheading);
  line-height: 1.7;
  color: var(--color-charcoal);
  max-width: 480px;
}
.hero-ctas {
  display: flex;
  gap: var(--space-14);
  flex-wrap: wrap;
  align-items: center;
  margin-top: var(--space-7);
}
.btn-outline-forest {
  display: inline-flex;
  align-items: center;
  gap: var(--space-9);
  background: transparent;
  color: var(--color-forest-ink);
  border: 1.5px solid var(--color-forest-ink);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  padding: var(--space-14) var(--space-21);
  border-radius: var(--radius-button);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.btn-outline-forest:hover {
  background: var(--color-forest-ink);
  color: var(--color-cream-paper);
}
/* Carrier animation — right column, no box */
.hero-carrier-float {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-18);
  padding: var(--space-14) 0;
}
.hero-carrier-float .hero-carrier-label {
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
  opacity: 0.4;
}
.hero-carrier-float .hero-carrier-frame {
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  overflow: hidden;
  position: relative;
}
.hero-carrier-float .hero-carrier-name {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 46px;
  color: var(--color-forest-ink);
  letter-spacing: -0.8px;
  line-height: 1.1;
  min-height: 1.2em;
  text-align: center;
}
/* Medium screens: two-column but text gets more room */
@media (max-width: 960px) and (min-width: 701px) {
  .hero-open { grid-template-columns: 1.4fr 1fr; gap: var(--space-35); }
  .hero-carrier-float .hero-carrier-frame { height: 180px; }
  .hero-carrier-float .hero-carrier-name { font-size: 30px; }
}

/* Small screens: single column, centered, animation below */
@media (max-width: 700px) {
  .hero { padding: var(--space-56) 0 var(--space-56); }
  .hero-open { grid-template-columns: 1fr; gap: var(--space-35); }
  .hero-copy { text-align: center; align-items: center; }
  .hero-copy p { margin-left: auto; margin-right: auto; }
  .hero-copy h1 { font-size: clamp(30px, 8vw, 44px); }
  .hero-ctas { flex-direction: column; align-items: center; width: 100%; }
  .btn-outline-forest.btn-primary-lg,
  .btn-primary.btn-primary-lg { width: 100%; justify-content: center; }
  .hero-copy > p:last-child { text-align: center; }
  /* Animation — smaller frame, centered, capped so logos don't overflow */
  .hero-carrier-float { padding: var(--space-21) 0 0; }
  .hero-carrier-float .hero-carrier-frame {
    height: 120px;
  }
  .hero-carrier-float .hero-carrier-frame img {
    max-height: 100px !important;
    max-width: 260px !important;
  }
  .hero-carrier-float .hero-carrier-name { font-size: 24px; }
}

/* ===== Plan Types (homepage) ===== */
.plan-types-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-21);
}
.plan-type-card {
  border-radius: var(--radius-card);
  padding: var(--space-42);
}
.plan-type-card h3 {
  font-size: 28px;
  margin: var(--space-14) 0 var(--space-14);
}
.plan-type-card p {
  font-size: var(--text-body);
  line-height: 1.65;
  color: var(--color-charcoal);
}
.plan-type-card-ma { background: var(--color-keylime-wash); }
.plan-type-card-medigap { background: var(--color-mint-veil); }
.plan-type-card-partd { background: var(--color-sage-mist); }

.feature-list {
  list-style: none;
  margin-top: var(--space-21);
  display: flex;
  flex-direction: column;
  gap: var(--space-9);
}
.feature-list li {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  display: flex;
  align-items: flex-start;
  gap: var(--space-9);
}
.feature-list li::before {
  content: "✓";
  color: var(--color-forest-ink);
  font-weight: var(--weight-semibold);
  flex-shrink: 0;
  margin-top: 1px;
}

/* ===== How It Works ===== */
.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-21);
}
.step-card {
  background: var(--color-cream-paper);
  border: 1px solid var(--color-border-mist);
  border-radius: var(--radius-card);
  padding: var(--space-42);
}
.step-number {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 56px;
  color: var(--color-forest-ink);
  opacity: 0.18;
  line-height: 1;
  margin-bottom: var(--space-18);
}
.step-card h3 { font-size: var(--text-heading-sm); margin-bottom: var(--space-11); }
.step-card p { font-size: var(--text-body); color: var(--color-charcoal); line-height: 1.65; }

/* ===== About Bryce ===== */
.about-grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: var(--space-70);
  align-items: center;
}
.about-photo-wrap {
  position: relative;
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--color-sage-mist);
  aspect-ratio: 1 / 1;
}
.about-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.about-content { display: flex; flex-direction: column; gap: var(--space-21); }
.about-name {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 46px;
  color: var(--color-forest-ink);
  letter-spacing: -0.8px;
  line-height: 1.05;
}
.about-title {
  font-size: 13px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
  opacity: 0.5;
}
.about-bio {
  font-size: var(--text-subheading);
  line-height: 1.7;
  color: var(--color-charcoal);
}
.about-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-9);
  margin-top: var(--space-7);
}
.about-credential {
  background: var(--color-keylime-wash);
  color: var(--color-forest-ink);
  border-radius: var(--radius-badge);
  padding: var(--space-9) var(--space-18);
  font-size: 13px;
  font-weight: var(--weight-regular);
}
@media (max-width: 960px) {
  .about-grid { grid-template-columns: 1fr; }
  .about-photo-wrap { max-width: 320px; }
}

/* ===== Why Section ===== */
.why-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: var(--space-56);
  align-items: center;
}
.why-content h2 { margin-bottom: var(--space-18); }
.why-content p {
  font-size: var(--text-subheading);
  line-height: 1.65;
  color: var(--color-charcoal);
  margin-bottom: var(--space-35);
}
.why-panel {
  background: var(--color-sage-mist);
  border-radius: var(--radius-card);
  padding: var(--space-42);
}
.why-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-14);
}
.why-stat {
  background: var(--color-cream-paper);
  border-radius: var(--radius-card);
  padding: var(--space-28);
}
.why-stat-number {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 42px;
  color: var(--color-forest-ink);
  line-height: 1;
  margin-bottom: var(--space-7);
}
.why-stat-label {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  line-height: 1.4;
}

/* ===== FAQ ===== */
.faq-panel {
  background: var(--color-keylime-wash);
  border-radius: var(--radius-card);
  padding: var(--space-70) var(--space-56);
}
.faq-list { margin-top: var(--space-49); }
.faq-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-56);
  padding: var(--space-42) 0;
  border-bottom: 1px solid var(--color-border-mist);
  align-items: start;
}
.faq-row:first-child { padding-top: 0; }
.faq-row:last-child { border-bottom: none; padding-bottom: 0; }
.faq-question {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: var(--text-heading);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-heading);
  color: var(--color-forest-ink);
}
.faq-answer {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  line-height: 1.75;
  color: var(--color-charcoal);
  padding-top: var(--space-9);
}

/* ===== CTA Banner ===== */
.cta-banner {
  background: var(--color-forest-ink);
  border-radius: var(--radius-card);
  padding: var(--space-76) var(--space-56);
  text-align: center;
}
.cta-banner h2 {
  color: var(--color-cream-paper);
  margin-bottom: var(--space-18);
}
.cta-banner p {
  color: var(--color-cream-paper);
  opacity: 0.75;
  font-size: var(--text-subheading);
  line-height: 1.6;
  margin-bottom: var(--space-35);
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

/* ===== Footer ===== */
.footer {
  padding: var(--space-56) 0;
  border-top: 1px solid var(--color-border-mist);
  margin-top: var(--space-70);
}
.footer-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-56);
}
.footer-brand {}
.footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  margin-bottom: var(--space-9);
}
.footer-logo svg { flex-shrink: 0; }
.footer-logo .nav-logo-primary { font-size: 20px; }
.footer-logo .nav-logo-dot { font-size: 16px; }
.footer-logo .nav-logo-secondary { font-size: 9px; }
.footer-tagline {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  opacity: 0.55;
  max-width: 260px;
  line-height: 1.55;
}
.footer-links-group h4 {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
  margin-bottom: var(--space-14);
}
.footer-links-group ul { list-style: none; display: flex; flex-direction: column; gap: var(--space-9); }
.footer-links-group a {
  color: var(--color-charcoal);
  text-decoration: none;
  font-size: var(--text-body);
  opacity: 0.65;
  transition: opacity 0.15s;
}
.footer-links-group a:hover { opacity: 1; }
.footer-bottom {
  margin-top: var(--space-42);
  padding-top: var(--space-21);
  border-top: 1px solid var(--color-border-mist);
  font-size: var(--text-caption);
  color: var(--color-charcoal);
  opacity: 0.45;
  line-height: 1.7;
}

/* ===== Carrier Ticker ===== */
.carrier-ticker {
  padding: var(--space-56) 0;
  border-top: 1px solid var(--color-border-mist);
  border-bottom: 1px solid var(--color-border-mist);
  background: var(--color-cream-paper);
}
.ticker-label {
  text-align: center;
  margin-bottom: var(--space-21);
}
.ticker-wrapper {
  overflow: hidden;
  position: relative;
  width: 100%;
}
.ticker-wrapper::before,
.ticker-wrapper::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}
.ticker-wrapper::before {
  left: 0;
  background: linear-gradient(to right, var(--color-cream-paper) 20%, transparent);
}
.ticker-wrapper::after {
  right: 0;
  background: linear-gradient(to left, var(--color-cream-paper) 20%, transparent);
}
.ticker-track {
  display: flex;
  width: max-content;
  animation: ticker-scroll 45s linear infinite;
}
.ticker-wrapper:hover .ticker-track {
  animation-play-state: paused;
}
.ticker-set {
  display: flex;
  align-items: center;
  gap: var(--space-35);
  padding-right: var(--space-35);
  flex-shrink: 0;
}
.ticker-logo {
  height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ticker-logo img {
  /* height set per-carrier via inline style from JS */
  width: auto;
  object-fit: contain;
  display: block;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.ticker-wrapper:hover .ticker-logo img {
  opacity: 1;
}
.ticker-sep {
  color: var(--color-border-mist);
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
  user-select: none;
}
.ticker-name-fallback {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 20px;
  color: var(--color-forest-ink);
  white-space: nowrap;
  letter-spacing: -0.2px;
}

@keyframes ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: none; }
}

/* ===== Page Hero (interior pages) ===== */
.page-hero {
  background: var(--color-keylime-wash);
  border-radius: var(--radius-card);
  padding: var(--space-56) var(--space-49);
  margin: var(--space-42) 0;
}
.page-hero p {
  font-size: var(--text-subheading);
  line-height: 1.6;
  color: var(--color-charcoal);
  max-width: 560px;
  margin-top: var(--space-18);
}

/* ===== Plans Page ===== */
.plans-filter-bar {
  display: flex;
  gap: var(--space-9);
  margin-bottom: var(--space-42);
  flex-wrap: wrap;
  align-items: center;
}
.filter-btn {
  background: var(--color-cream-paper);
  border: 1px solid var(--color-border-mist);
  color: var(--color-charcoal);
  border-radius: var(--radius-badge);
  padding: var(--space-9) var(--space-18);
  font-family: var(--font-sans);
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.filter-btn:hover { border-color: var(--color-sage-mist); background: var(--color-keylime-wash); }
.filter-btn.active {
  background: var(--color-forest-ink);
  color: var(--color-cream-paper);
  border-color: var(--color-forest-ink);
}
.plans-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-21);
}
.plan-card {
  background: var(--color-cream-paper);
  border: 1px solid var(--color-border-mist);
  border-radius: var(--radius-card);
  padding: var(--space-28);
  display: flex;
  flex-direction: column;
  gap: var(--space-18);
  transition: border-color 0.15s;
}
.plan-card:hover { border-color: var(--color-sage-mist); }
.plan-card-carrier-logo {
  /* height/width set per-carrier via inline style from JS */
  object-fit: contain;
  display: block;
  margin-bottom: var(--space-9);
  max-width: 140px;
}
.plan-card-carrier-logo[data-missing] {
  display: none;
}
.plan-card-carrier {
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-forest-ink);
}
.plan-card-name {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: var(--text-heading-sm);
  color: var(--color-forest-ink);
  line-height: 1.3;
  margin-top: var(--space-4);
}
.plan-card-premium {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
  margin-top: var(--space-4);
}
.plan-card-premium .amount {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 42px;
  color: var(--color-forest-ink);
  line-height: 1;
}
.plan-card-premium .label {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  opacity: 0.55;
}
.plan-card-divider {
  height: 1px;
  background: var(--color-border-mist);
  flex-shrink: 0;
}
.plan-card-details { display: flex; flex-direction: column; gap: var(--space-9); }
.plan-card-detail-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: var(--text-body);
  gap: var(--space-9);
}
.plan-card-detail-row .lbl { color: var(--color-charcoal); opacity: 0.55; }
.plan-card-detail-row .val { color: var(--color-charcoal); font-weight: var(--weight-regular); text-align: right; }
.plan-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-7);
}
.plan-card-badge {
  background: var(--color-keylime-wash);
  color: var(--color-forest-ink);
  border-radius: var(--radius-badge);
  padding: var(--space-4) var(--space-11);
  font-size: 11px;
  font-weight: var(--weight-regular);
}
.plan-card-highlight {
  font-size: 13px;
  color: var(--color-charcoal);
  line-height: 1.55;
  font-style: italic;
}
.plan-card-cta { margin-top: auto; }
.plan-card-note {
  font-size: 12px;
  color: var(--color-charcoal);
  opacity: 0.6;
  line-height: 1.6;
  background: var(--color-keylime-wash);
  border-radius: var(--radius-nav);
  padding: var(--space-11) var(--space-14);
}
.plans-disclaimer {
  font-size: var(--text-caption);
  color: var(--color-charcoal);
  opacity: 0.5;
  line-height: 1.7;
  margin-bottom: var(--space-35);
  max-width: 720px;
}
.section-type-label {
  display: flex;
  align-items: center;
  gap: var(--space-14);
  margin-bottom: var(--space-28);
  margin-top: var(--space-56);
}
.section-type-label:first-child { margin-top: 0; }
.section-type-label h2 { font-size: 32px; }
.section-type-label-count {
  font-size: 13px;
  color: var(--color-charcoal);
  opacity: 0.45;
}
.plans-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--space-70) 0;
  color: var(--color-charcoal);
  opacity: 0.45;
}

/* ===== Quiz Page ===== */
.quiz-page {
  min-height: calc(100vh - 72px);
  display: flex;
  align-items: flex-start;
  padding: var(--space-70) 0 var(--space-99);
}
.quiz-outer {
  max-width: 680px;
  margin: 0 auto;
  width: 100%;
}
.quiz-progress-wrap { margin-bottom: var(--space-49); }
.quiz-progress-label {
  font-size: var(--text-caption);
  color: var(--color-charcoal);
  opacity: 0.45;
  margin-bottom: var(--space-9);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.quiz-progress-bar {
  display: flex;
  gap: var(--space-7);
}
.quiz-progress-seg {
  height: 3px;
  flex: 1;
  background: var(--color-border-mist);
  border-radius: var(--radius-badge);
  transition: background 0.35s;
}
.quiz-progress-seg.done { background: var(--color-sage-mist); }
.quiz-progress-seg.active { background: var(--color-forest-ink); }

.quiz-step { display: none; }
.quiz-step.active { display: block; animation: fadeUp 0.22s ease; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.quiz-question {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: var(--text-heading);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-heading);
  color: var(--color-forest-ink);
  margin-bottom: var(--space-35);
}
.quiz-options { display: flex; flex-direction: column; gap: var(--space-11); }
.quiz-option {
  background: var(--color-cream-paper);
  border: 1px solid var(--color-border-mist);
  border-radius: var(--radius-card);
  padding: var(--space-21) var(--space-28);
  cursor: pointer;
  text-align: left;
  width: 100%;
  display: flex;
  align-items: center;
  gap: var(--space-18);
  transition: all 0.15s;
}
.quiz-option:hover { border-color: var(--color-sage-mist); background: var(--color-keylime-wash); }
.quiz-option.selected { border-color: var(--color-forest-ink); background: var(--color-keylime-wash); }
.quiz-option-radio {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.5px solid var(--color-border-mist);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.quiz-option.selected .quiz-option-radio {
  border-color: var(--color-forest-ink);
  background: var(--color-forest-ink);
}
.quiz-option.selected .quiz-option-radio::after {
  content: '';
  width: 7px;
  height: 7px;
  background: var(--color-cream-paper);
  border-radius: 50%;
}
.quiz-option-text { flex: 1; }
.quiz-option-title {
  font-size: var(--text-body);
  font-weight: var(--weight-regular);
  color: var(--color-charcoal);
  line-height: 1.4;
}
.quiz-option-sub {
  font-size: 12px;
  color: var(--color-charcoal);
  opacity: 0.55;
  margin-top: var(--space-4);
  line-height: 1.4;
}
.quiz-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--space-35);
}

/* Quiz Results */
.quiz-results { display: none; }
.quiz-results.active { display: block; animation: fadeUp 0.3s ease; }
.result-rec {
  background: var(--color-sage-mist);
  border-radius: var(--radius-card);
  padding: var(--space-42);
  margin-bottom: var(--space-21);
}
.result-rec-badge {
  display: inline-block;
  background: var(--color-cream-paper);
  color: var(--color-forest-ink);
  border-radius: var(--radius-badge);
  padding: var(--space-7) var(--space-14);
  font-size: 11px;
  font-weight: var(--weight-semibold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: var(--space-18);
}
.result-rec-headline {
  font-family: var(--font-serif);
  font-weight: var(--weight-light);
  font-size: 32px;
  color: var(--color-forest-ink);
  line-height: 1.3;
  margin-bottom: var(--space-18);
}
.result-rec-reason {
  font-size: var(--text-subheading);
  line-height: 1.65;
  color: var(--color-charcoal);
  margin-bottom: var(--space-18);
}
.result-rec-note {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  opacity: 0.65;
  line-height: 1.7;
  padding-top: var(--space-18);
  border-top: 1px solid var(--color-border-mist);
}
.result-partd {
  background: var(--color-mint-veil);
  border-radius: var(--radius-card);
  padding: var(--space-28) var(--space-35);
  margin-bottom: var(--space-21);
  font-size: var(--text-body);
  color: var(--color-charcoal);
  line-height: 1.65;
}
.result-partd strong { color: var(--color-forest-ink); font-weight: var(--weight-semibold); }
.result-cta-panel {
  background: var(--color-keylime-wash);
  border-radius: var(--radius-card);
  padding: var(--space-49) var(--space-42);
  text-align: center;
}
.result-cta-panel h3 { font-size: 28px; margin-bottom: var(--space-14); }
.result-cta-panel p {
  font-size: var(--text-body);
  color: var(--color-charcoal);
  opacity: 0.7;
  line-height: 1.7;
  margin-bottom: var(--space-28);
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}
.result-cta-meta {
  display: flex;
  justify-content: center;
  gap: var(--space-28);
  flex-wrap: wrap;
  margin-top: var(--space-21);
}
.result-cta-meta-item {
  font-size: 12px;
  color: var(--color-charcoal);
  opacity: 0.55;
}
.quiz-restart {
  display: block;
  text-align: center;
  margin-top: var(--space-28);
  font-size: var(--text-body);
  color: var(--color-charcoal);
  opacity: 0.45;
  cursor: pointer;
  background: none;
  border: none;
  width: 100%;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.15s;
}
.quiz-restart:hover { opacity: 0.8; }

/* ===== Dual CTA ===== */
.dual-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-21);
}
.dual-cta-card {
  border-radius: var(--radius-card);
  padding: var(--space-42);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-35);
}
.dual-cta-self { background: var(--color-keylime-wash); }
.dual-cta-pro  { background: var(--color-forest-ink); }
.dual-cta-card h3 { font-size: 28px; margin-top: var(--space-11); }
.dual-cta-pro h3  { color: var(--color-cream-paper); }
.dual-cta-card > div:first-child p {
  font-size: var(--text-body);
  line-height: 1.7;
  color: var(--color-charcoal);
  margin-top: var(--space-14);
}
.dual-cta-pro > div:first-child p { color: var(--color-cream-paper); opacity: 0.72; }
.dual-cta-pro .eyebrow { color: var(--color-sage-mist); }
.option-meta {
  font-size: 11px;
  color: var(--color-charcoal);
  opacity: 0.45;
  margin-top: var(--space-11);
  line-height: 1.55;
}
.option-meta-light { color: var(--color-cream-paper); opacity: 0.4; }
@media (max-width: 720px) {
  .dual-cta { grid-template-columns: 1fr; }
}

/* ===== Sunfire split buttons ===== */
.sunfire-split {
  display: flex;
  flex-direction: column;
  gap: var(--space-9);
}
.sunfire-split-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-9);
}
.btn-split {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  background: var(--color-forest-ink);
  color: var(--color-cream-paper);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: var(--weight-regular);
  padding: var(--space-11) var(--space-14);
  border-radius: var(--radius-button);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  text-align: center;
  line-height: 1.35;
}
.btn-split:hover { background: var(--color-forest-shadow); }
.btn-split-label {
  font-size: 10px;
  opacity: 0.6;
  font-weight: var(--weight-regular);
}
.btn-split-light {
  background: var(--color-cream-paper);
  color: var(--color-forest-ink);
}
.btn-split-light:hover { opacity: 0.9; background: var(--color-cream-paper); }
.sunfire-disclaimer {
  font-size: 11px;
  color: var(--color-charcoal);
  opacity: 0.55;
  line-height: 1.6;
  padding-top: var(--space-9);
  border-top: 1px solid var(--color-border-mist);
}
.sunfire-disclaimer-light {
  color: var(--color-cream-paper);
  opacity: 0.45;
  border-top-color: rgba(255,255,255,0.15);
}

/* ===== Or-divider (plan cards) ===== */
.plan-card-or {
  display: flex;
  align-items: center;
  gap: var(--space-9);
  margin: var(--space-4) 0;
}
.plan-card-or::before,
.plan-card-or::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--color-border-mist);
}
.plan-card-or span {
  font-size: 11px;
  color: var(--color-charcoal);
  opacity: 0.35;
  white-space: nowrap;
}

/* ===== Disclaimer ===== */
.disclaimer {
  font-size: var(--text-caption);
  color: var(--color-charcoal);
  opacity: 0.45;
  line-height: 1.75;
  max-width: 640px;
}
.disclaimer-center { text-align: center; margin: var(--space-35) auto 0; }

/* ===== Education Page (learn.html) ===== */
.learn-hero { padding: var(--space-76) 0 var(--space-56); }
.learn-hero h1 { max-width: 720px; margin-bottom: var(--space-18); }
.learn-hero p { font-size: var(--text-subheading); line-height: 1.7; color: var(--color-charcoal); max-width: 580px; }

.learn-toc {
  background: var(--color-keylime-wash);
  border-radius: var(--radius-card);
  padding: var(--space-28) var(--space-35);
  margin-bottom: var(--space-76);
}
.learn-toc-title {
  font-size: 11px; font-weight: var(--weight-semibold); letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-forest-ink); margin-bottom: var(--space-14);
}
.learn-toc-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-7) var(--space-28);
}
.learn-toc-list a {
  color: var(--color-forest-ink); font-size: var(--text-body);
  text-decoration: none; opacity: 0.65; display: flex; align-items: center; gap: var(--space-7);
}
.learn-toc-list a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 2px; }
.learn-toc-list a::before { content: '→'; font-size: 12px; opacity: 0.5; }

.learn-section {
  padding: var(--space-76) 0;
  border-top: 1px solid var(--color-border-mist);
  scroll-margin-top: 80px;
}
.learn-section-header { margin-bottom: var(--space-49); }
.learn-section-header h2 { margin-top: var(--space-11); }
.learn-section-header p {
  font-size: var(--text-subheading); line-height: 1.7;
  color: var(--color-charcoal); max-width: 620px; margin-top: var(--space-14);
}

/* The Four Parts */
.parts-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-18); }
.part-card { border-radius: var(--radius-card); padding: var(--space-35); display: flex; flex-direction: column; gap: var(--space-14); }
.part-card-a { background: var(--color-keylime-wash); }
.part-card-b { background: var(--color-mint-veil); }
.part-card-c { background: var(--color-sage-mist); }
.part-card-d { background: var(--color-slate-hush); }
.part-letter { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 64px; color: var(--color-forest-ink); line-height: 1; opacity: 0.18; }
.part-card h3 { font-size: 20px; margin: 0; }
.part-card p { font-size: var(--text-body); line-height: 1.65; color: var(--color-charcoal); flex: 1; }
.part-cost { background: var(--color-cream-paper); border-radius: var(--radius-badge); padding: var(--space-7) var(--space-14); font-size: 12px; color: var(--color-forest-ink); font-weight: var(--weight-semibold); display: inline-block; }

/* Comparison Table */
.compare-wrap { overflow-x: auto; border-radius: var(--radius-card); }
.compare-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.compare-table th, .compare-table td { padding: var(--space-14) var(--space-21); text-align: left; border-bottom: 1px solid var(--color-border-mist); font-size: var(--text-body); vertical-align: top; line-height: 1.5; }
.compare-table th { font-size: 11px; font-weight: var(--weight-semibold); letter-spacing: 0.07em; text-transform: uppercase; padding: var(--space-18) var(--space-21); }
.compare-table th.col-feature { background: var(--color-charcoal); color: var(--color-cream-paper); }
.compare-table th.col-original { background: var(--color-forest-ink); color: var(--color-cream-paper); }
.compare-table th.col-advantage { background: var(--color-sage-mist); color: var(--color-forest-ink); }
.compare-table th.col-medigap { background: var(--color-keylime-wash); color: var(--color-forest-ink); }
.compare-table td.col-feature { font-weight: var(--weight-semibold); font-size: 13px; color: var(--color-charcoal); background: var(--color-cream-paper); }
.compare-table td.col-original { background: rgba(225,244,223,0.5); }
.compare-table td.col-advantage { background: rgba(177,219,184,0.4); }
.compare-table td.col-medigap { background: rgba(207,231,211,0.4); }
.compare-table tr:last-child td { border-bottom: none; }
.chk { color: var(--color-forest-ink); font-size: 16px; }
.xmark { color: var(--color-charcoal); opacity: 0.25; }

/* Medigap Matrix */
.medigap-wrap { overflow-x: auto; border-radius: var(--radius-card); }
.medigap-table { width: 100%; border-collapse: collapse; min-width: 720px; font-size: 13px; }
.medigap-table th, .medigap-table td { padding: var(--space-11) var(--space-14); text-align: center; border: 1px solid var(--color-border-mist); }
.medigap-table thead th { background: var(--color-forest-ink); color: var(--color-cream-paper); font-weight: var(--weight-semibold); font-size: 12px; }
.medigap-table thead th:first-child { text-align: left; width: 200px; }
.medigap-table thead th.popular { background: var(--color-sage-mist); color: var(--color-forest-ink); }
.medigap-table td:first-child { text-align: left; font-size: var(--text-body); color: var(--color-charcoal); background: var(--color-cream-paper); }
.medigap-table td.full { background: var(--color-keylime-wash); color: var(--color-forest-ink); font-weight: var(--weight-semibold); }
.medigap-table td.half { background: var(--color-mint-veil); color: var(--color-forest-ink); font-size: 11px; font-weight: var(--weight-semibold); }
.medigap-table td.none { background: transparent; color: var(--color-charcoal); opacity: 0.2; }
.medigap-table th.popular { position: relative; }

/* Advantage Benefits Grid */
.benefit-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-18); }
.benefit-card { background: var(--color-keylime-wash); border-radius: var(--radius-card); padding: var(--space-28); display: flex; flex-direction: column; gap: var(--space-11); }
.benefit-card.alt { background: var(--color-mint-veil); }
.benefit-icon-wrap { width: 42px; height: 42px; background: var(--color-cream-paper); border-radius: var(--radius-card); display: flex; align-items: center; justify-content: center; color: var(--color-forest-ink); flex-shrink: 0; }
.benefit-card h4 { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 20px; color: var(--color-forest-ink); }
.benefit-card p { font-size: 13px; line-height: 1.6; color: var(--color-charcoal); flex: 1; }
.benefit-card .benefit-note { font-size: 11px; color: var(--color-forest-ink); opacity: 0.5; margin-top: var(--space-4); }

/* Part D Tiers */
.partd-tiers { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-14); }
.tier-card { border-radius: var(--radius-card); padding: var(--space-28); text-align: center; }
.tier-1 { background: var(--color-keylime-wash); }
.tier-2 { background: var(--color-mint-veil); }
.tier-3 { background: var(--color-sage-mist); }
.tier-4 { background: var(--color-slate-hush); }
.tier-num { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 48px; color: var(--color-forest-ink); opacity: 0.18; line-height: 1; }
.tier-card h4 { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 18px; color: var(--color-forest-ink); margin: var(--space-9) 0 var(--space-11); }
.tier-card p { font-size: 13px; color: var(--color-charcoal); line-height: 1.6; }
.tier-badge { font-size: 11px; font-weight: var(--weight-semibold); background: var(--color-cream-paper); color: var(--color-forest-ink); border-radius: var(--radius-badge); padding: var(--space-4) var(--space-11); display: inline-block; margin-top: var(--space-14); }

/* Part D Coverage Phases */
.partd-phases { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-14); margin-top: var(--space-35); }
.phase-card { border-radius: var(--radius-card); padding: var(--space-28); border: 1px solid var(--color-border-mist); }
.phase-card h4 { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 20px; color: var(--color-forest-ink); margin-bottom: var(--space-11); }
.phase-card p { font-size: 13px; color: var(--color-charcoal); line-height: 1.65; }

/* Venn Diagram */
.venn-container { display: flex; align-items: center; justify-content: center; padding: var(--space-42) 0; flex-wrap: wrap; gap: var(--space-21); }
.venn-side { flex: 1; min-width: 200px; max-width: 300px; background: var(--color-keylime-wash); border-radius: var(--radius-card); padding: var(--space-35); }
.venn-side.medicaid { background: var(--color-slate-hush); }
.venn-center { flex: 0 0 220px; background: var(--color-sage-mist); border-radius: var(--radius-card); padding: var(--space-35); text-align: center; }
.venn-side h3, .venn-center h3 { font-size: 22px; margin-bottom: var(--space-14); }
.venn-list { list-style: none; font-size: var(--text-body); color: var(--color-charcoal); line-height: 2; }
.venn-list li::before { content: '· '; color: var(--color-sage-mist); }
.venn-center .venn-list li::before { color: var(--color-forest-ink); opacity: 0.4; }

/* Enrollment Timeline */
.enroll-timeline { display: flex; flex-direction: column; gap: 0; padding-left: var(--space-28); border-left: 2px solid var(--color-border-mist); margin-top: var(--space-35); }
.enroll-period { display: grid; grid-template-columns: 180px 1fr; gap: var(--space-28); padding-bottom: var(--space-42); position: relative; }
.enroll-period::before { content: ''; position: absolute; left: calc(-1 * var(--space-28) - 7px); top: 4px; width: 12px; height: 12px; background: var(--color-forest-ink); border-radius: 50%; border: 3px solid var(--color-cream-paper); box-shadow: 0 0 0 2px var(--color-forest-ink); }
.enroll-period-date { font-size: 11px; font-weight: var(--weight-semibold); letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-forest-ink); opacity: 0.55; padding-top: 4px; line-height: 1.7; }
.enroll-period-content h4 { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 22px; color: var(--color-forest-ink); margin-bottom: var(--space-9); }
.enroll-period-content p { font-size: var(--text-body); color: var(--color-charcoal); line-height: 1.65; }
.enroll-badge { display: inline-block; background: var(--color-sage-mist); color: var(--color-forest-ink); border-radius: var(--radius-badge); padding: var(--space-4) var(--space-11); font-size: 11px; font-weight: var(--weight-semibold); margin-top: var(--space-11); }
.enroll-badge.warning { background: var(--color-slate-hush); }

/* Glossary */
.glossary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-18); }
.glossary-card { border: 1px solid var(--color-border-mist); border-radius: var(--radius-card); padding: var(--space-28); }
.glossary-term { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 22px; color: var(--color-forest-ink); margin-bottom: var(--space-9); }
.glossary-def { font-size: var(--text-body); color: var(--color-charcoal); line-height: 1.65; }

/* Cost Breakdown */
.cost-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-14); }
.cost-panel { background: var(--color-keylime-wash); border-radius: var(--radius-card); padding: var(--space-35); }
.cost-panel.alt { background: var(--color-mint-veil); }
.cost-item { display: flex; justify-content: space-between; align-items: baseline; padding: var(--space-11) 0; border-bottom: 1px solid var(--color-border-mist); font-size: var(--text-body); gap: var(--space-14); }
.cost-item:last-child { border-bottom: none; }
.cost-item-label { color: var(--color-charcoal); }
.cost-item-value { font-family: var(--font-serif); font-weight: var(--weight-light); font-size: 20px; color: var(--color-forest-ink); white-space: nowrap; }

/* Callout box */
.learn-callout { background: var(--color-sage-mist); border-radius: var(--radius-card); padding: var(--space-28) var(--space-35); margin: var(--space-35) 0; }
.learn-callout p { font-size: var(--text-body); color: var(--color-charcoal); line-height: 1.7; }
.learn-callout strong { color: var(--color-forest-ink); }

/* Education responsive */
@media (max-width: 960px) {
  .parts-grid { grid-template-columns: repeat(2,1fr); }
  .benefit-grid { grid-template-columns: repeat(2,1fr); }
  .partd-tiers { grid-template-columns: repeat(2,1fr); }
  .partd-phases { grid-template-columns: 1fr; }
  .learn-toc-list { grid-template-columns: repeat(2,1fr); }
  .glossary-grid { grid-template-columns: repeat(2,1fr); }
  .cost-row { grid-template-columns: 1fr; }
  .enroll-period { grid-template-columns: 1fr; gap: var(--space-7); }
  .enroll-period-date { padding-top: 0; }
}
@media (max-width: 640px) {
  .parts-grid, .benefit-grid, .partd-tiers { grid-template-columns: 1fr; }
  .learn-toc-list, .glossary-grid { grid-template-columns: 1fr; }
  .venn-container { flex-direction: column; }
  .venn-side, .venn-center { max-width: 100%; flex: auto; }
  .compare-table th, .compare-table td { padding: var(--space-9) var(--space-14); font-size: 12px; }
}

/* ===== Responsive ===== */
@media (max-width: 960px) {
  h1 { font-size: 42px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-right { display: none; }
  .hero-left { padding: var(--space-42) var(--space-35); }
  .plan-types-grid { grid-template-columns: 1fr; }
  .steps-grid { grid-template-columns: 1fr; }
  .faq-row { grid-template-columns: 1fr; gap: var(--space-18); }
  .faq-question { font-size: 28px; }
  .why-grid { grid-template-columns: 1fr; }
  .plans-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { flex-direction: column; gap: var(--space-42); }
}
/* ===== Mobile hamburger + drawer ===== */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  padding: 6px;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: var(--radius-nav);
  margin-left: var(--space-11);
  flex-shrink: 0;
}
.nav-hamburger:hover { background: var(--color-keylime-wash); }
.nav-hamburger span {
  display: block;
  height: 1.5px;
  width: 20px;
  background: var(--color-forest-ink);
  border-radius: 2px;
  transition: transform 0.22s ease, opacity 0.18s ease;
  transform-origin: center;
}
.nav-hamburger-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger-active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.nav-drawer {
  display: none;
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  background: #fff;
  border-bottom: 1px solid var(--color-border-mist);
  box-shadow: 0 8px 24px rgba(15,62,23,0.10);
  z-index: 999;
  padding: var(--space-14) var(--space-21) var(--space-21);
}
.nav-drawer.nav-drawer-open { display: block; }
.nav-drawer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nav-drawer ul li a {
  display: block;
  padding: 11px 14px;
  font-size: 15px;
  font-weight: 500;
  color: var(--color-forest-ink);
  text-decoration: none;
  border-radius: var(--radius-nav);
  letter-spacing: 0.01em;
}
.nav-drawer ul li a:hover,
.nav-drawer ul li a.active { background: var(--color-keylime-wash); }
.nav-drawer .drawer-cta {
  display: block;
  margin-top: var(--space-14);
  text-align: center;
}

@media (max-width: 640px) {
  .container { padding: 0 var(--space-21); }
  h1 { font-size: 36px; }
  h2 { font-size: 30px; }
  .plans-grid { grid-template-columns: 1fr; }
  .nav-links { display: none; }
  .nav-inner { gap: var(--space-11); }
  /* Shrink the header Book a Free Call button so the hamburger fits */
  .nav-inner > .btn-primary {
    font-size: 12.5px;
    padding: 8px 12px;
    gap: 0;
  }
  .nav-inner > .btn-primary svg { display: none; }
  .nav-hamburger { display: flex; margin-left: 0; }
  .faq-panel { padding: var(--space-42) var(--space-28); }
  .cta-banner { padding: var(--space-49) var(--space-28); }
  .why-stat-grid { grid-template-columns: 1fr; }
  .quiz-question { font-size: 28px; }
}
