/* ============================================
   NOVARA — Light home theme (clean, search-first)
   ============================================ */

:root {
  --light-bg: #f7f1e6;        /* warm cream-white */
  --light-bg-2: #ffffff;       /* pure white */
  --ink-deep: #0a3e34;         /* deep emerald for headlines */
  --ink: #0a3e34;              /* near-black charcoal for body */
  --ink-mute: #5b6d68;         /* muted body text */
  --line: rgba(31,135,114,0.10); /* subtle border tone */
  --gold-link: #0d4438;        /* darker gold for use on light bg */
}

body.home-light {
  background: var(--light-bg);
  color: var(--ink);
  /* keep the custom NOVARA cursor (dot + ring) on this page */
}
/* White nav, always — full opacity from the start */
body.home-light .nav {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border-bottom: 1px solid var(--line);
}
body.home-light .nav.is-scrolled {
  background: #ffffff;
  border-bottom: 1px solid var(--line);
}
body.home-light .nav-brand { color: var(--ink-deep); }
body.home-light .nav-brand .dot { background: var(--gold); box-shadow: 0 0 12px rgba(201,162,74,0.5); }
body.home-light .nav-links a { color: var(--ink); opacity: 0.78; }
body.home-light .nav-links a:hover { opacity: 1; }
body.home-light .nav-links a.active { color: var(--gold-link); opacity: 1; }
body.home-light .nav-links a::after { background: var(--gold-link); }
body.home-light .lang-switch { border-color: var(--line); color: var(--ink); background: rgba(255,255,255,0.6); }
body.home-light .lang-switch select { color: var(--ink); }
body.home-light .lang-switch select option { background: #ffffff; color: var(--ink); }
body.home-light .lang-switch::after { color: var(--gold-link); }

/* Custom NOVARA cursor is kept on home-light, but hidden over LIGHT cream/white
   sections (hero, teach, mission, cta) where mix-blend-mode: difference would
   produce odd dark outline rings. JS toggles `cursor-on-light` on body. */
body.cursor-on-light { cursor: auto !important; }
body.cursor-on-light .cursor,
body.cursor-on-light .cursor-ring {
  opacity: 0;
  transition: opacity 0.15s;
}
body.cursor-on-light a,
body.cursor-on-light button,
body.cursor-on-light input,
body.cursor-on-light textarea,
body.cursor-on-light select,
body.cursor-on-light .hlt-chip,
body.cursor-on-light .cat-tile-light {
  cursor: pointer !important;
}
body.cursor-on-light input[type="text"],
body.cursor-on-light input[type="search"],
body.cursor-on-light textarea {
  cursor: text !important;
}

/* ============================================
   HERO — dark emerald gradient + faded image layer
   ============================================ */
.hero-light {
  position: relative;
  z-index: 50;          /* outrank the marquee + sibling sections so the dropdown sits in front */
  min-height: 92vh;
  /* overflow: visible — let the autocomplete dropdown extend below the hero */
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 130px var(--pad-page) 80px;
  background:
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(31,135,114,0.35) 0%, transparent 65%),
    linear-gradient(180deg, #04140f 0%, #0a3e34 38%, #14695a 78%, #1f8772 100%);
}
/* The faded library image sits beneath everything — clip it via its own
   bounds since the section is no longer overflow:hidden. */
.hero-light-img,
.hero-light-overlay { clip-path: inset(0); }

/* Background image layer — faded, blended with the green gradient */
.hero-light-img {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 1;
  background-image: url('https://images.unsplash.com/photo-1481627834876-b7833e8f5570?auto=format&fit=crop&w=2400&q=80');
  background-size: cover;
  background-position: center;
  opacity: 0.28;
  mix-blend-mode: luminosity;
  filter: contrast(1.05) brightness(0.9);
}

/* Soft inner light to lift the centre */
.hero-light-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse 65% 55% at 50% 50%, rgba(4,20,15,0.4) 0%, transparent 75%),
    radial-gradient(ellipse 60% 45% at 50% 55%, rgba(255,255,255,0.04) 0%, transparent 70%);
  pointer-events: none;
}

.hero-light-inner {
  position: relative;
  z-index: 3;
  max-width: 1200px;        /* wide enough for the longer headline line */
  width: 100%;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-light-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 16px;
  border: 1px solid rgba(224,191,114,0.45);
  background: rgba(201,162,74,0.08);
  border-radius: 100px;
  font-family: var(--font-mono-mod);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-warm);
  margin-bottom: 40px;
  backdrop-filter: blur(6px);
}

.hero-light-title {
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.9rem, 3.8vw, 4rem);
  font-weight: 400;
  letter-spacing: -0.005em;
  line-height: 1.2;
  color: var(--cream);
  margin: 0 auto 56px;
  max-width: none;
  width: 100%;
  text-align: center;
}
.hlt-line {
  display: block;
  white-space: nowrap;
  text-align: center;
}
.hero-light-title em {
  font-style: italic;
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  background: var(--grad-gold);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 0 30px rgba(201,162,74,0.3);
}
@media (max-width: 760px) {
  .hlt-line { white-space: normal; }
  .hero-light-title { font-size: clamp(1.8rem, 8vw, 3.2rem); }
}

.hero-light-sub {
  font-family: var(--font-small);
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--cream-dim);
  max-width: 680px;
  margin: 0 auto 40px;
}

/* THE SEARCH BAR — white, prominent, the hero of the page */
.hero-light-search {
  position: relative;
  width: 100%;
  max-width: 760px;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 4px;
  padding: 10px 10px 10px 8px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 100px;
  box-shadow:
    0 20px 50px rgba(31,135,114,0.12),
    0 4px 12px rgba(31,135,114,0.06);
  transition: box-shadow 0.4s, border-color 0.4s;
  margin-bottom: 28px;
}
.hero-light-search:hover, .hero-light-search:focus-within {
  border-color: rgba(201,162,74,0.5);
  box-shadow:
    0 24px 60px rgba(31,135,114,0.16),
    0 0 0 4px rgba(201,162,74,0.1);
}
.hls-icon {
  font-size: 1.5rem;
  color: var(--gold-link);
  text-align: center;
}
.hero-light-search input {
  width: 100%;
  padding: 20px 0;
  background: transparent;
  border: none;
  outline: none;
  color: var(--ink-deep);
  font-family: var(--font-small);
  font-size: 1.08rem;
  letter-spacing: 0.005em;
}
.hero-light-search input::placeholder { color: #94a39e; font-weight: 400; }
.hero-light-search input::-webkit-search-cancel-button { -webkit-appearance: none; }

.hls-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 17px 32px;
  border-radius: 100px;
  background: var(--ink-deep);
  color: #ffffff;
  font-family: var(--font-small);
  font-weight: 600;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background 0.4s, transform 0.4s var(--ease-out);
}
.hls-btn:hover { background: #0d4438; transform: translateY(-1px); }
.hls-btn .arrow { transition: transform 0.4s var(--ease-out); }
.hls-btn:hover .arrow { transform: translateX(4px); }

@media (max-width: 600px) {
  .hero-light-search { grid-template-columns: 48px 1fr; padding: 6px; }
  .hero-light-search input { padding: 14px 0; font-size: 0.95rem; }
  .hls-btn { grid-column: 1 / -1; justify-content: center; padding: 14px; margin-top: 6px; }
}

/* TOPIC CHIPS */
.hero-light-topics {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 32px;
}
.hlt-lbl {
  font-family: var(--font-mono-mod);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cream-faint);
  margin-right: 8px;
}
.hlt-chip {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border-radius: 100px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  font-family: var(--font-small);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--cream);
  transition: all 0.3s;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.hlt-chip:hover { border-color: var(--gold-warm); color: var(--gold-warm); background: rgba(201,162,74,0.12); transform: translateY(-2px); }
.hlt-chip--more { background: var(--gold-warm); color: var(--forest-deep); border-color: var(--gold-warm); font-weight: 500; }
.hlt-chip--more:hover { background: var(--gold); color: var(--forest-deep); border-color: var(--gold); }

/* TRUST STRIP */
.hero-light-trust {
  display: inline-flex;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 18px 32px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 100px;
  background: rgba(4,20,15,0.4);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.hlt-block { display: flex; flex-direction: column; gap: 2px; align-items: center; }
.hlt-num {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--gold-warm);
  line-height: 1;
}
.hlt-num span { font-size: 0.6em; vertical-align: top; opacity: 0.7; }
.hlt-lbl-sm {
  font-family: var(--font-mono-mod);
  font-size: 0.65rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cream-dim);
}
@media (max-width: 600px) {
  .hero-light-trust { gap: 18px; padding: 16px 22px; }
}

/* ============================================
   MARQUEE
   ============================================ */
.marquee {
  position: relative;
  padding: 24px 0;
  overflow: hidden;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.marquee-track {
  display: flex;
  white-space: nowrap;
  animation: marquee 40s linear infinite;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.6rem;
  letter-spacing: 0.01em;
}
.marquee-track span { padding: 0 26px; flex-shrink: 0; }
.marquee-track .accent { font-style: normal; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.marquee-light {
  background: #ffffff;
  z-index: auto;
}
.marquee-light .marquee-track { color: var(--ink-deep); }
.marquee-light .marquee-track .accent { color: var(--gold-link); }

/* ============================================
   GENERIC LIGHT SECTION STYLES
   ============================================ */
.eyebrow-light {
  font-family: var(--font-mono-mod);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-link);
  margin-bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.eyebrow-light::before {
  content: '';
  width: 28px; height: 1px;
  background: var(--gold-link);
}
.section-title-light {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.2vw, 3.6rem);
  font-weight: 300;
  letter-spacing: -0.025em;
  line-height: 1.08;
  color: var(--ink-deep);
  margin-bottom: 18px;
}
.section-title-light em {
  font-style: italic;
  font-family: var(--font-stylish);
  color: var(--gold-link);
  font-weight: 400;
}
.section-intro-light {
  font-family: var(--font-small);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--ink-mute);
  max-width: 720px;
}

.btn-light {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-small);
  font-weight: 500;
  font-size: 0.92rem;
  transition: all 0.4s var(--ease-out);
  cursor: pointer;
}
.btn-light--primary { background: var(--ink-deep); color: #fff; }
.btn-light--primary:hover { background: #0d4438; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(31,135,114,0.2); }
.btn-light--ghost { border: 1px solid var(--ink-deep); color: var(--ink-deep); }
.btn-light--ghost:hover { background: var(--ink-deep); color: #fff; }
.btn-light .arrow { transition: transform 0.4s var(--ease-out); }
.btn-light:hover .arrow { transform: translateX(4px); }

/* ============================================
   TEACH LIGHT
   ============================================ */
.teach-light {
  background: var(--light-bg);
  padding: 50px var(--pad-page) 90px;
  border-top: 1px solid var(--line);
}
.teach-light-head { text-align: center; max-width: 760px; margin: 0 auto 40px; }
.teach-light-head .section-intro-light { margin: 0 auto; }
.teach-light-head .eyebrow-light { justify-content: center; }

.cat-grid-light {
  max-width: var(--maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
  perspective: 1400px;            /* 3D context for the whole grid */
}

/* ----- 3D CATEGORY TILES ----- */
.cat-tile-light {
  --grad-1: #1f8772;
  --grad-2: #0a3e34;
  --accent: #c9a24a;
  position: relative;
  padding: 38px 32px 32px;
  background:
    radial-gradient(circle at 100% 0%, rgba(201,162,74,0.10) 0%, transparent 55%),
    linear-gradient(160deg, #ffffff 0%, #f6f8f5 100%);
  border: 1px solid rgba(31,135,114,0.08);
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 220px;
  transform-style: preserve-3d;
  transform: perspective(1400px) translateY(0) rotateX(0) rotateY(0);
  transition:
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.5s,
    opacity 0.9s ease-out;
  /* Stack of shadows = real 3D depth */
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    0 1px 2px rgba(10,62,52,0.06),
    0 8px 18px rgba(10,62,52,0.06),
    0 24px 48px rgba(10,62,52,0.08);
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
}

/* Color sweep blob — drifts behind the content, varies per card */
.cat-tile-light::before {
  content: '';
  position: absolute;
  inset: -40% -30% auto auto;
  width: 80%;
  aspect-ratio: 1;
  background: radial-gradient(circle at 30% 30%, var(--grad-1) 0%, var(--grad-2) 55%, transparent 75%);
  opacity: 0.10;
  filter: blur(24px);
  transition: opacity 0.7s, transform 0.7s var(--ease-out);
  z-index: -1;
  pointer-events: none;
}
/* Bottom-corner accent glow */
.cat-tile-light::after {
  content: '';
  position: absolute;
  inset: auto auto -30% -20%;
  width: 60%;
  aspect-ratio: 1;
  background: radial-gradient(circle at 70% 70%, var(--accent) 0%, transparent 70%);
  opacity: 0.08;
  filter: blur(18px);
  transition: opacity 0.7s;
  z-index: -1;
  pointer-events: none;
}

/* Per-card gradient palettes (cycles emerald → gold → forest variants) */
.cat-tile-light:nth-child(10n+1) { --grad-1: #1f8772; --grad-2: #0a3e34; --accent: #c9a24a; }
.cat-tile-light:nth-child(10n+2) { --grad-1: #14695a; --grad-2: #04140f; --accent: #e0bf72; }
.cat-tile-light:nth-child(10n+3) { --grad-1: #c9a24a; --grad-2: #14695a; --accent: #1f8772; }
.cat-tile-light:nth-child(10n+4) { --grad-1: #1f8772; --grad-2: #c9a24a; --accent: #0a3e34; }
.cat-tile-light:nth-child(10n+5) { --grad-1: #0a3e34; --grad-2: #1f8772; --accent: #e0bf72; }
.cat-tile-light:nth-child(10n+6) { --grad-1: #e0bf72; --grad-2: #1f8772; --accent: #0a3e34; }
.cat-tile-light:nth-child(10n+7) { --grad-1: #14695a; --grad-2: #c9a24a; --accent: #1f8772; }
.cat-tile-light:nth-child(10n+8) { --grad-1: #1f8772; --grad-2: #14695a; --accent: #c9a24a; }
.cat-tile-light:nth-child(10n+9) { --grad-1: #0a3e34; --grad-2: #c9a24a; --accent: #14695a; }
.cat-tile-light:nth-child(10n+0) { --grad-1: #c9a24a; --grad-2: #0a3e34; --accent: #1f8772; }

/* ----- STAGGERED REVEAL ON SCROLL ----- */
.cat-reveal {
  opacity: 0;
  transform: perspective(1400px) translateY(60px) rotateX(-12deg) rotateY(0);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.cat-reveal.is-visible {
  opacity: 1;
  transform: perspective(1400px) translateY(0) rotateX(0) rotateY(0);
}

/* ----- HOVER LIFT + 3D TILT ----- */
.cat-tile-light:hover {
  transform: perspective(1400px) translateY(-10px) rotateX(2deg) rotateY(-3deg);
  border-color: rgba(201,162,74,0.5);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(10,62,52,0.06),
    0 16px 28px rgba(10,62,52,0.12),
    0 40px 80px rgba(10,62,52,0.18);
}
.cat-tile-light:hover::before { opacity: 0.32; transform: scale(1.1); }
.cat-tile-light:hover::after { opacity: 0.22; }

/* ----- NUMBER (big gradient) ----- */
.ctl-num {
  font-family: var(--font-display);
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  background: linear-gradient(160deg, var(--grad-1) 0%, var(--accent) 70%, var(--grad-2) 110%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  margin-bottom: auto;
  transform: translateZ(20px);
}

/* ----- NAME ----- */
.ctl-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.32rem;
  font-weight: 500;
  color: var(--ink-deep);
  line-height: 1.2;
  letter-spacing: -0.005em;
  transform: translateZ(10px);
}

/* ----- COURSE COUNT META ----- */
.ctl-meta {
  font-family: var(--font-mono-mod);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* Arrow indicator on hover */
.cat-tile-light > .ctl-name::after {
  content: '→';
  display: inline-block;
  margin-left: 8px;
  color: var(--accent);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.4s, transform 0.4s var(--ease-out);
}
.cat-tile-light:hover > .ctl-name::after { opacity: 1; transform: translateX(0); }

@media (max-width: 600px) {
  .cat-tile-light { padding: 28px 24px; min-height: 200px; }
  .ctl-num { font-size: 2.2rem; }
  .ctl-name { font-size: 1.18rem; }
}

/* ----- EXPLORE MORE — distinct gradient-filled CTA card ----- */
.cat-tile-light--more {
  background:
    radial-gradient(circle at 100% 0%, rgba(224,191,114,0.25) 0%, transparent 55%),
    linear-gradient(160deg, #0a3e34 0%, #14695a 60%, #1f8772 100%);
  border-color: rgba(201,162,74,0.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    0 2px 4px rgba(10,62,52,0.18),
    0 16px 32px rgba(10,62,52,0.25),
    0 32px 64px rgba(10,62,52,0.22);
}
.cat-tile-light--more::before {
  background: radial-gradient(circle at 30% 30%, #e0bf72 0%, #c9a24a 55%, transparent 75%);
  opacity: 0.18;
}
.cat-tile-light--more::after {
  background: radial-gradient(circle at 70% 70%, #1f8772 0%, transparent 70%);
  opacity: 0.25;
}
.cat-tile-light--more .ctl-num--more {
  font-family: var(--font-display);
  font-size: 3.2rem;
  background: linear-gradient(160deg, #fff0c8 0%, #e0bf72 60%, #c9a24a 110%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  line-height: 0.8;
}
.cat-tile-light--more .ctl-name {
  color: var(--cream);
  font-weight: 500;
}
.cat-tile-light--more .ctl-meta {
  color: var(--gold-warm);
  font-weight: 500;
}
.cat-tile-light--more:hover {
  border-color: var(--gold-warm);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    0 4px 8px rgba(10,62,52,0.2),
    0 24px 40px rgba(10,62,52,0.3),
    0 48px 80px rgba(10,62,52,0.32);
}
.cat-tile-light--more:hover::before { opacity: 0.42; }
.cat-tile-light--more:hover::after { opacity: 0.4; }
.cat-tile-light--more > .ctl-name::after { color: var(--gold-warm); }

/* ============================================
   DELIVERY METHODS — 5 cards cascading in on scroll
   ============================================ */
.methods {
  position: relative;
  background: linear-gradient(180deg, #020a08 0%, #04140f 30%, #0a3e34 100%);
  overflow: hidden;
  padding: 120px var(--pad-page) 140px;
}
.experience-3d {                      /* canvas — kept as ambient bg */
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 1;
  opacity: 0.55;
  cursor: grab;
}
.experience-3d:active { cursor: grabbing; }
.methods-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 90% 60% at 50% 30%, rgba(4,20,15,0.45) 0%, transparent 70%),
    rgba(4,20,15,0.55) 100%);
}
.methods-inner {
  position: relative;
  z-index: 3;
  max-width: 1100px;
  margin: 0 auto;
  color: var(--cream);
}
.methods-head { text-align: center; max-width: 720px; margin: 0 auto 90px; }
.methods-head .exp-eyebrow { justify-content: center; display: inline-flex; }
.exp-eyebrow {
  font-family: var(--font-mono-mod);
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold-warm);
  margin-bottom: 22px;
}
.methods-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.4rem, 5.4vw, 5rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
}
.methods-title span { display: block; color: var(--cream); }
.methods-title .em {
  font-style: italic;
  background: var(--grad-gold);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.methods-list {
  display: flex;
  flex-direction: column;
  gap: 60px;
  perspective: 1600px;
}

.method-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(220px, 300px) 1fr;
  gap: 48px;
  align-items: center;
  padding: 50px 56px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 90% 0%, rgba(224,191,114,0.16) 0%, transparent 60%),
    linear-gradient(135deg, rgba(20,105,90,0.30) 0%, rgba(4,20,15,0.65) 100%);
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 30px 60px rgba(0,0,0,0.4),
    0 4px 12px rgba(0,0,0,0.2);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  transform-style: preserve-3d;
  transition:
    transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.5s,
    box-shadow 0.5s;
}
.method-card:hover {
  transform: perspective(1600px) translateY(-6px) rotateX(1deg) scale(1.005);
  border-color: rgba(224,191,114,0.35);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 40px 80px rgba(0,0,0,0.55);
}

.mc-side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}
.mc-num {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(4rem, 7vw, 6rem);
  font-weight: 400;
  line-height: 1;
  background: linear-gradient(160deg, #fff4d4 0%, #e0bf72 50%, #c9a24a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  letter-spacing: -0.02em;
  padding: 0.05em 0.12em 0.05em 0.02em;
  display: inline-block;
}
.mc-tag {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border: 1px solid rgba(224,191,114,0.4);
  border-radius: 100px;
  font-family: var(--font-mono-mod);
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-warm);
  background: rgba(201,162,74,0.08);
}

.mc-body { color: var(--cream); }
.mc-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  font-weight: 500;
  color: var(--cream);
  letter-spacing: -0.01em;
  line-height: 1.1;
  margin-bottom: 16px;
}
.mc-text {
  font-family: var(--font-small);
  font-size: 1.02rem;
  line-height: 1.65;
  color: var(--cream-dim);
  margin-bottom: 22px;
  max-width: 520px;
}
.mc-feats {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.mc-feats li {
  font-family: var(--font-small);
  font-size: 0.82rem;
  padding: 7px 14px;
  border-radius: 100px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  color: var(--cream);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.mc-feats li::before {
  content: '✓';
  color: var(--gold-warm);
  font-weight: 700;
  font-size: 0.85em;
}

.method-reveal { opacity: 0; }
.method-reveal[data-side="left"]  { transform: perspective(1600px) translateX(-100px) translateY(60px) rotateY(8deg) rotateX(-10deg) scale(0.94); }
.method-reveal[data-side="right"] { transform: perspective(1600px) translateX( 100px) translateY(60px) rotateY(-8deg) rotateX(-10deg) scale(0.94); }
.method-reveal.is-visible {
  opacity: 1;
  transform: perspective(1600px) translate(0, 0) rotateY(0) rotateX(0) scale(1);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (max-width: 760px) {
  .method-card { grid-template-columns: 1fr; gap: 24px; padding: 36px 28px; }
  .mc-side { flex-direction: row; align-items: center; }
  .mc-num { font-size: 3.4rem; }
  .methods-list { gap: 40px; }
  .methods-head { margin-bottom: 60px; }
}

/* ============================================
   MISSION — big 3D stat cards with scroll reveal
   ============================================ */
.mission-light {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(31,135,114,0.08) 0%, transparent 60%),
    var(--light-bg);
  padding: 40px var(--pad-page) 110px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.ml-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  position: relative;
}

/* ----- Centered head ----- */
.ml-head {
  text-align: center;
  max-width: 880px;
  margin: 0 auto 50px;
}
.ml-head .eyebrow-light { justify-content: center; }
.ml-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.08;
  color: var(--ink-deep);
  margin-bottom: 22px;
}
.ml-title em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(160deg, #c9a24a 0%, #0d4438 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.ml-lead {
  font-family: var(--font-small);
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--ink-mute);
  max-width: 680px;
  margin: 0 auto;
}

/* ----- 4 STAT CARDS GRID ----- */
.ml-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  perspective: 1600px;
  margin-bottom: 60px;
}
@media (max-width: 1000px) { .ml-stats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .ml-stats-grid { grid-template-columns: 1fr; } }

/* The 3D stat card — glass + gradient + lift */
.ml-stat-card {
  --grad-1: #1f8772;
  --grad-2: #0a3e34;
  --accent: #c9a24a;
  position: relative;
  padding: 44px 32px 38px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0%, rgba(201,162,74,0.12) 0%, transparent 55%),
    linear-gradient(160deg, #ffffff 0%, #f8faf6 60%, #f1f5ef 100%);
  border: 1px solid rgba(31,135,114,0.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 2px 4px rgba(10,62,52,0.06),
    0 12px 24px rgba(10,62,52,0.08),
    0 32px 64px rgba(10,62,52,0.10);
  transform-style: preserve-3d;
  transition:
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.5s,
    opacity 0.9s ease-out;
  isolation: isolate;
  overflow: hidden;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
/* Drifting color blob behind */
.ml-stat-card::before {
  content: '';
  position: absolute;
  inset: -30% -25% auto auto;
  width: 70%;
  aspect-ratio: 1;
  background: radial-gradient(circle at 30% 30%, var(--grad-1) 0%, var(--grad-2) 55%, transparent 75%);
  opacity: 0.12;
  filter: blur(22px);
  z-index: -1;
  transition: opacity 0.6s, transform 0.6s var(--ease-out);
}
.ml-stat-card::after {
  content: '';
  position: absolute;
  inset: auto auto -25% -15%;
  width: 50%;
  aspect-ratio: 1;
  background: radial-gradient(circle at 70% 70%, var(--accent) 0%, transparent 70%);
  opacity: 0.10;
  filter: blur(20px);
  z-index: -1;
  transition: opacity 0.6s;
}
/* Each card a different green/gold palette */
.ml-stat-card:nth-child(1) { --grad-1: #1f8772; --grad-2: #0a3e34; --accent: #c9a24a; }
.ml-stat-card:nth-child(2) { --grad-1: #c9a24a; --grad-2: #14695a; --accent: #1f8772; }
.ml-stat-card:nth-child(3) { --grad-1: #14695a; --grad-2: #c9a24a; --accent: #e0bf72; }
.ml-stat-card:nth-child(4) { --grad-1: #e0bf72; --grad-2: #1f8772; --accent: #0a3e34; }

.ml-stat-card:hover {
  transform: perspective(1600px) translateY(-12px) rotateX(2deg) rotateY(-3deg) scale(1.02);
  border-color: rgba(201,162,74,0.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 4px 8px rgba(10,62,52,0.08),
    0 20px 36px rgba(10,62,52,0.14),
    0 48px 96px rgba(10,62,52,0.20);
}
.ml-stat-card:hover::before { opacity: 0.35; transform: scale(1.1); }
.ml-stat-card:hover::after { opacity: 0.25; }

/* Decorative icon (top-left mark) */
.msc-icon {
  font-family: var(--font-mono-mod);
  font-size: 1.4rem;
  color: var(--accent);
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: 1px solid rgba(201,162,74,0.35);
  border-radius: 12px;
  background: rgba(201,162,74,0.06);
  margin-bottom: 6px;
  transform: translateZ(20px);
}

/* HUGE gradient number — the hero of the card */
.msc-num {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(3.4rem, 4.6vw, 5rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  background: linear-gradient(160deg, var(--grad-1) 0%, var(--accent) 70%, var(--grad-2) 110%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  padding: 0.05em 0.08em 0.05em 0;
  display: inline-block;
  margin-top: auto;
  transform: translateZ(20px);
}
.msc-num span {
  font-size: 0.55em;
  vertical-align: top;
  margin-left: 2px;
  opacity: 0.7;
}

/* Label & sub */
.msc-label {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--ink-deep);
  line-height: 1.2;
}
.msc-sub {
  font-family: var(--font-mono-mod);
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* ----- SCROLL REVEAL (one card at a time) ----- */
.ml-stat-card.stat-reveal {
  opacity: 0;
  transform: perspective(1600px) translateY(80px) rotateX(-20deg) rotateY(-4deg) scale(0.92);
  transition:
    opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.6s,
    border-color 0.5s;
  transition-delay: calc(var(--i, 0) * 140ms);
}
.ml-stat-card.stat-reveal.is-visible {
  opacity: 1;
  transform: perspective(1600px) translateY(0) rotateX(0) rotateY(0) scale(1);
}

/* CTA centered */
.ml-cta {
  text-align: center;
  margin-top: 30px;
}

/* Fix "+" sign visibility + Multi word styling */
.msc-num .plus {
  font-size: 0.6em;
  vertical-align: top;
  margin-left: 4px;
  opacity: 0.85;
  -webkit-text-fill-color: inherit;
}
.msc-num--word {
  font-size: clamp(2.6rem, 3.6vw, 4rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: -0.02em;
}

/* Force "+" to render in gold (parent has text-fill: transparent for gradient) */
.msc-num .plus {
  display: inline-block;
  font-size: 0.55em;
  vertical-align: top;
  margin-left: 4px;
  margin-top: 0.15em;
  font-weight: 500;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #c9a24a !important;
  color: #c9a24a !important;
}

/* ============================================
   LEARNING PATH — inline on the homepage (light theme)
   ============================================ */
.lp-section {
  background: var(--light-bg);
  padding: 90px var(--pad-page) 120px;
  position: relative;
}
.lp-inner {
  max-width: var(--maxw);
  margin: 0 auto;
}
.lp-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 40px;
}
.lp-head .eyebrow-light { justify-content: center; }
.lp-intro {
  font-family: var(--font-small);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--ink-mute);
  max-width: 580px;
  margin: 18px auto 0;
}

/* Chips */
.lp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 36px;
}
.lp-chip {
  font-family: var(--font-small);
  font-size: 0.9rem;
  font-weight: 500;
  padding: 11px 22px;
  border-radius: 100px;
  background: #ffffff;
  border: 1px solid var(--line);
  color: var(--ink-deep);
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 2px 6px rgba(31,135,114,0.04);
}
.lp-chip:hover { border-color: var(--gold-link); color: var(--gold-link); transform: translateY(-2px); }
.lp-chip.is-active {
  background: var(--ink-deep);
  color: #fff;
  border-color: var(--ink-deep);
  box-shadow: 0 6px 14px rgba(31,135,114,0.18);
}

/* Stage that holds the SVG graph */
.lp-stage {
  position: relative;
  background:
    radial-gradient(ellipse 60% 80% at 50% 50%, rgba(31,135,114,0.06) 0%, transparent 70%),
    linear-gradient(135deg, #04140f 0%, #0a3e34 100%);
  border-radius: 24px;
  padding: 48px 32px 60px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 30px 60px rgba(10,62,52,0.18);
  overflow: hidden;
  min-height: 520px;
}
#path-svg {
  width: 100%;
  height: 460px;
  display: block;
}
#path-svg .edge {
  fill: none;
  stroke: #e0bf72;
  stroke-width: 1.2;
  stroke-dasharray: 6 6;
  opacity: 0;
  animation: edge-in 0.8s var(--ease-out) forwards, dash-flow 3s linear infinite;
}
@keyframes edge-in {
  from { opacity: 0; }
  to { opacity: 0.65; }
}
@keyframes dash-flow {
  to { stroke-dashoffset: -100; }
}

/* IMPORTANT: do not animate transform — overrides SVG translate */
#path-svg .node-bg {
  fill: rgba(255,255,255,0.04);
  stroke: rgba(255,255,255,0.18);
  stroke-width: 1.2;
  transition: fill 0.4s, stroke 0.4s;
}
#path-svg .node-group:hover .node-bg {
  fill: rgba(201,162,74,0.12);
  stroke: var(--gold-warm);
}
#path-svg .node-ring {
  fill: none;
  stroke: var(--gold-warm);
  stroke-width: 1;
  opacity: 0.3;
  animation: ring-pulse 3s ease-in-out infinite;
}
@keyframes ring-pulse {
  0%, 100% { opacity: 0.2; }
  50%      { opacity: 0.55; }
}
#path-svg .node-num {
  font-family: 'Space Grotesk', monospace;
  font-size: 11px;
  fill: var(--gold-warm);
  letter-spacing: 2px;
}
#path-svg .node-title {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 400;
  fill: var(--cream);
}
#path-svg .node-meta {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  fill: rgba(255,255,255,0.55);
}
.node-group {
  cursor: pointer;
  opacity: 0;
  animation: node-in 0.6s var(--ease-out) forwards;
}
@keyframes node-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.path-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-stylish);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--cream-faint);
}

.path-legend {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 24px;
  font-family: var(--font-mono-mod);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--cream-dim);
}
.path-legend span { display: inline-flex; align-items: center; gap: 10px; }
.path-legend .dot { width: 10px; height: 10px; border-radius: 50%; }
.path-legend .d1 { background: #1f8772; }
.path-legend .d2 { background: #c9a24a; }
.path-legend .d3 { background: #e0bf72; }
.path-legend .d4 { background: #f7f1e6; }

/* Tooltip */
.path-tip {
  position: fixed;
  background: #04140f;
  border: 1px solid var(--gold-warm);
  padding: 14px 18px;
  border-radius: 12px;
  max-width: 240px;
  pointer-events: none;
  z-index: 200;
  opacity: 0;
  transform: translate(-50%, -110%) scale(0.95);
  transition: opacity 0.25s, transform 0.25s var(--ease-out);
  font-family: var(--font-small);
  font-size: 0.85rem;
  color: var(--cream);
}
.path-tip.is-visible { opacity: 1; transform: translate(-50%, -120%) scale(1); }
.path-tip h4 {
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--gold-warm);
  margin-bottom: 6px;
}

.lp-cta {
  text-align: center;
  margin-top: 36px;
}

/* ============================================
   LEARNING PATH SECTION on the homepage
   (matches learning-path.html dark emerald style)
   ============================================ */
.lp-hero-section {
  position: relative;
  background:
    radial-gradient(circle at 70% 25%, rgba(31,135,114,0.18) 0%, transparent 55%),
    radial-gradient(circle at 15% 80%, rgba(201,162,74,0.10) 0%, transparent 55%),
    var(--forest-deep);
  padding: 130px 0 80px;   /* top clears the fixed navbar; bottom frames the graph */
  overflow: hidden;
}
.lp-hero-inner {
  position: relative;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad-page);
}
.lp-hero-eyebrow {
  font-family: var(--font-mono-mod);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--gold-warm);
  margin-bottom: 24px;
  display: inline-block;
}
.lp-hero-h1 {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5.6vw, 5.2rem);
  font-weight: 300;
  letter-spacing: -0.03em;
  line-height: 0.98;
  color: var(--cream);
  margin-bottom: 26px;
}
.lp-hero-h1 .em {
  font-style: italic;
  font-family: var(--font-stylish);
  background: var(--grad-gold);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  margin-left: 14px;
}
.lp-hero-intro {
  max-width: 620px;
  font-family: var(--font-small);
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--cream-dim);
  margin-bottom: 36px;
}
.lp-hero-search {
  position: relative;
  max-width: 620px;
  margin-bottom: 24px;
}
.lp-hero-search input {
  width: 100%;
  padding: 18px 50px 18px 22px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 100px;
  color: var(--cream);
  font-family: var(--font-small);
  font-size: 1rem;
  outline: none;
  transition: border-color 0.4s, background 0.4s;
}
.lp-hero-search input:focus { border-color: var(--gold-warm); background: rgba(201,162,74,0.06); }
.lp-hero-search input::placeholder { color: var(--cream-faint); }
.lp-hero-search .icon {
  position: absolute; right: 22px; top: 50%;
  transform: translateY(-50%);
  color: var(--gold-warm);
  font-size: 1.2rem;
  pointer-events: none;
}
.lp-hero-chips {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.lp-graph-wrap {
  background: transparent;   /* inside .lp-hero-section — shares the green frame */
  padding: 48px var(--pad-page) 0;
  margin-top: 8px;
  position: relative;
  overflow-x: auto;        /* horizontal scroll for long paths */
  overflow-y: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,162,74,0.55) rgba(255,255,255,0.05);
}
.lp-graph-wrap::-webkit-scrollbar { height: 8px; }
.lp-graph-wrap::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); }
.lp-graph-wrap::-webkit-scrollbar-thumb {
  background: linear-gradient(90deg, rgba(31,135,114,0.6), rgba(201,162,74,0.85));
  border-radius: 4px;
}
.lp-graph-wrap::-webkit-scrollbar-thumb:hover { background: var(--gold-warm); }
.lp-graph-wrap > #path-svg,
.lp-graph-wrap > .path-empty,
.lp-graph-wrap > #path-svg,
.lp-graph-wrap > .path-empty,
.lp-graph-wrap > .path-legend {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.lp-graph-wrap #path-svg {
  /* The SVG carries explicit width/height attributes (e.g. 3480x600 for 15
     courses). Override the global "img, svg { max-width:100% }" so the SVG
     renders at its intrinsic width and the container scrolls horizontally
     when the path is longer than the viewport. */
  display: block !important;
  margin: 0 auto;
  max-width: none !important;
  width: auto !important;
  height: auto !important;
}
.lp-graph-wrap .path-legend { margin-top: 16px; }

/* ============================================
   HERO SEARCH DROPDOWN — live autocomplete with Topic / Course sections
   ============================================ */
.hero-search-stack {
  position: relative;
  width: 100%;
  max-width: 760px;
  z-index: 200;        /* lift the whole search above the marquee + nav */
}
.hero-search-stack .hero-light-search { margin-bottom: 0; }

.hero-search-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  right: 0;
  z-index: 200;        /* float above the marquee strip below the hero */
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow:
    0 28px 60px rgba(13,68,56,0.18),
    0 8px 20px rgba(13,68,56,0.08);
  max-height: 60vh;
  overflow-y: auto;
  padding: 6px;
}
.hero-search-dropdown .hsd-head {
  font-family: var(--font-mono-mod);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-mute);
  padding: 12px 14px 6px;
}
.hero-search-dropdown .hsd-item {
  padding: 11px 14px;
  border-radius: 12px;
  cursor: pointer;
  color: var(--ink);
  font-family: var(--font-small);
  font-size: 0.95rem;
  transition: background 0.18s, color 0.18s;
}
.hero-search-dropdown .hsd-item:hover,
.hero-search-dropdown .hsd-item.is-active {
  background: rgba(31,135,114,0.08);
  color: var(--ink-deep);
}
.hero-search-dropdown .hsd-item mark {
  background: transparent;
  color: var(--gold-link);
  font-weight: 600;
}
.hero-search-dropdown .hsd-empty {
  padding: 16px;
  text-align: center;
  color: var(--ink-mute);
  font-family: var(--font-small);
  font-size: 0.9rem;
}

/* ============================================
   CTA (light)
   ============================================ */
.cta-light {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 55% 90% at 50% -10%, rgba(201,162,74,0.12) 0%, transparent 70%),
    var(--light-bg);
  padding: clamp(90px, 13vw, 150px) var(--pad-page);
  text-align: center;
  border-top: 1px solid var(--line);
}
.cta-light-inner {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cta-light-eyebrow {
  font-family: var(--font-mono-mod);
  font-size: 0.7rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-link);
  margin-bottom: 22px;
}
.cta-light-title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300;
  letter-spacing: -0.03em;
  line-height: 1.04;
  color: var(--ink-deep);
  margin-bottom: 20px;
}
.cta-light-title em {
  font-style: italic;
  font-family: var(--font-stylish);
  color: var(--gold-link);
}
.cta-light-body {
  font-family: var(--font-small);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.7;
  color: var(--ink-mute);
  max-width: 520px;
  margin: 0 auto 40px;
}
.cta-light-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 480px) {
  .cta-light-actions { flex-direction: column; width: 100%; max-width: 320px; }
  .cta-light-actions .btn-light { width: 100%; justify-content: center; }
}
