/* ============================================================
   KINGDOM MINDED ACADEMY — Royal Design System
   Onyx · Royal Gold · Ivory · Crimson
   Cormorant Garamond (display) + Inter (body)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
  /* ---- Palette ---- */
  --onyx:        #0A0A0A;
  --onyx-soft:   #121110;
  --onyx-card:   #16140f;
  --onyx-raise:  #1d1a13;
  --gold:        #D4AF37;
  --gold-bright: #F5D76E;
  --gold-deep:   #a8861f;
  --ivory:       #F5F1E8;
  --ivory-dim:   #cfc7b4;
  --ivory-faint: rgba(245,241,232,0.62);
  --crimson:     #8B0000;
  --crimson-br:  #b21414;

  /* ---- Type ---- */
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;

  --text-xs:  clamp(0.75rem, 0.7rem + 0.2vw, 0.85rem);
  --text-sm:  clamp(0.85rem, 0.8rem + 0.25vw, 0.95rem);
  --text-base:clamp(1rem, 0.95rem + 0.25vw, 1.1rem);
  --text-lg:  clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
  --text-xl:  clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
  --text-2xl: clamp(2.2rem, 1.4rem + 3vw, 4rem);
  --text-3xl: clamp(2.8rem, 1.2rem + 5vw, 6rem);
  --text-hero:clamp(3.2rem, 1rem + 7vw, 7.5rem);

  /* ---- Spacing ---- */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --maxw: 1200px;
  --radius: 4px;
  --gold-grad: linear-gradient(135deg, var(--gold-bright) 0%, var(--gold) 45%, var(--gold-deep) 100%);
  --shadow-gold: 0 10px 40px -12px rgba(212,175,55,0.35);
}

/* ---- Reset ---- */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-body);
  background:var(--onyx);
  color:var(--ivory);
  font-size:var(--text-base);
  line-height:1.7;
  font-weight:300;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }

/* ---- Typography ---- */
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; line-height:1.08; letter-spacing:.005em; }
.eyebrow {
  font-family:var(--font-body); font-size:var(--text-xs); font-weight:600;
  letter-spacing:.32em; text-transform:uppercase; color:var(--gold);
}
.gold-text { color:var(--gold); }
.ivory-dim { color:var(--ivory-dim); }
.serif { font-family:var(--font-display); }

/* ---- Layout ---- */
.wrap { max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(var(--space-5), 5vw, var(--space-12)); }
.wrap-wide { max-width:1380px; margin-inline:auto; padding-inline:clamp(var(--space-5), 5vw, var(--space-12)); }
section { padding-block:clamp(var(--space-16), 8vw, var(--space-32)); position:relative; }
.section-head { max-width:760px; margin-bottom:clamp(var(--space-10),5vw,var(--space-16)); }
.section-head.center { margin-inline:auto; text-align:center; }
.section-head h2 { font-size:var(--text-2xl); margin:var(--space-4) 0 var(--space-5); }
.section-head p { color:var(--ivory-faint); font-size:var(--text-lg); font-weight:300; }

/* ---- Filigree divider ---- */
.filigree {
  display:flex; align-items:center; justify-content:center; gap:var(--space-4);
  color:var(--gold); padding-block:var(--space-2);
}
.filigree::before, .filigree::after {
  content:""; height:1px; flex:1; max-width:220px;
  background:linear-gradient(90deg, transparent, var(--gold-deep), transparent);
}
.filigree svg { width:46px; height:auto; opacity:.9; }

/* ---- Buttons ---- */
.btn {
  display:inline-flex; align-items:center; gap:var(--space-2);
  font-family:var(--font-body); font-size:var(--text-sm); font-weight:600;
  letter-spacing:.04em; padding:var(--space-4) var(--space-8);
  border-radius:var(--radius); cursor:pointer; border:1px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  text-transform:uppercase;
}
.btn-gold { background:var(--gold-grad); color:#1a1500; box-shadow:var(--shadow-gold); }
.btn-gold:hover { transform:translateY(-2px); box-shadow:0 16px 48px -12px rgba(212,175,55,.55); }
.btn-ghost { background:transparent; border-color:var(--gold); color:var(--gold); }
.btn-ghost:hover { background:rgba(212,175,55,.1); transform:translateY(-2px); }
.btn-crimson { background:linear-gradient(135deg,var(--crimson-br),var(--crimson)); color:var(--ivory); }
.btn-crimson:hover { transform:translateY(-2px); box-shadow:0 14px 40px -12px rgba(178,20,20,.55); }
.btn-block { width:100%; justify-content:center; }
.btn-sm { padding:var(--space-3) var(--space-5); font-size:var(--text-xs); }

/* ============ HEADER ============ */
.header {
  position:sticky; top:0; z-index:60;
  background:rgba(10,10,10,.78); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(212,175,55,.18);
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; height:72px; }
.brand { display:flex; align-items:center; gap:var(--space-3); }
.brand svg { width:34px; height:34px; color:var(--gold); }
.brand-name { font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:var(--ivory); line-height:1; }
.brand-name span { display:block; font-family:var(--font-body); font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-top:3px; }
.nav { display:flex; align-items:center; gap:var(--space-6); }
.nav a { font-size:var(--text-sm); color:var(--ivory-dim); transition:color .2s; }
.nav a:hover { color:var(--gold); }
.nav-cta { margin-left:var(--space-2); }
.menu-btn { display:none; background:none; border:none; color:var(--gold); cursor:pointer; }
.menu-btn svg { width:28px; height:28px; }
.mobile-nav { display:none; flex-direction:column; gap:var(--space-2); padding:var(--space-4) 0 var(--space-6); border-top:1px solid rgba(212,175,55,.15); }
.mobile-nav a { padding:var(--space-3) 0; font-size:var(--text-base); color:var(--ivory-dim); border-bottom:1px solid rgba(212,175,55,.07); }
.mobile-nav.open { display:flex; }

/* ============ HERO ============ */
.hero { min-height:92vh; display:flex; align-items:center; padding-block:var(--space-20); position:relative; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-bg::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,10,10,.96) 0%, rgba(10,10,10,.85) 42%, rgba(10,10,10,.45) 100%),
             linear-gradient(0deg, rgba(10,10,10,.85), rgba(10,10,10,.1));
}
.hero-inner { position:relative; z-index:2; max-width:760px; }
.hero h1 { font-size:var(--text-hero); margin:var(--space-5) 0; }
.hero h1 .gold-text { display:block; }
.hero-sub { font-size:var(--text-lg); color:var(--ivory-dim); font-weight:300; max-width:620px; margin-bottom:var(--space-8); }
.hero-cta { display:flex; flex-wrap:wrap; gap:var(--space-4); }
.hero-crest { font-size:var(--text-xs); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-top:var(--space-10); opacity:.8; }

/* ============ PROGRAMS ============ */
.program { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(var(--space-8),5vw,var(--space-20)); align-items:center; margin-bottom:clamp(var(--space-16),9vw,var(--space-32)); }
.program:nth-child(even) .program-media { order:2; }
.program:last-child { margin-bottom:0; }
.program-media { position:relative; }
.program-media img { width:100%; border:1px solid rgba(212,175,55,.3); border-radius:var(--radius); box-shadow:0 30px 70px -30px rgba(0,0,0,.9); }
.program-num { font-family:var(--font-display); font-size:var(--text-3xl); color:rgba(212,175,55,.16); line-height:1; position:absolute; top:-.4em; left:-.1em; z-index:-1; }
.program h3 { font-size:var(--text-xl); margin:var(--space-3) 0 var(--space-5); }
.program-desc p { color:var(--ivory-faint); margin-bottom:var(--space-4); }
.learn-title { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin:var(--space-6) 0 var(--space-3); }
.learn-list { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2) var(--space-5); margin-bottom:var(--space-6); }
.learn-list li { display:flex; gap:var(--space-2); font-size:var(--text-sm); color:var(--ivory-dim); align-items:flex-start; }
.learn-list li::before { content:"✦"; color:var(--gold); font-size:.8em; margin-top:2px; }

/* Sample lesson preview panel */
.lesson-panel { border:1px solid rgba(212,175,55,.25); border-radius:var(--radius); background:linear-gradient(160deg, var(--onyx-card), var(--onyx-soft)); padding:var(--space-6); }
.lesson-panel-head { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-4); }
.lesson-grid { display:grid; gap:var(--space-4); }
.lesson-item { display:grid; grid-template-columns:auto 1fr; gap:var(--space-4); align-items:start; }
.lesson-band { font-family:var(--font-display); font-size:1.05rem; color:var(--gold); font-weight:600; white-space:nowrap; padding-top:1px; min-width:54px; }
.lesson-item h5 { font-family:var(--font-body); font-size:var(--text-sm); font-weight:600; color:var(--ivory); margin-bottom:2px; }
.lesson-item p { font-size:var(--text-sm); color:var(--ivory-faint); line-height:1.5; }

/* ============ GRADE BANDS ============ */
.band-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-6); }
.band-card { background:var(--onyx-soft); border:1px solid rgba(212,175,55,.18); border-radius:var(--radius); overflow:hidden; transition:transform .3s, border-color .3s; }
.band-card:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.45); }
.band-card img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.band-body { padding:var(--space-5) var(--space-5) var(--space-6); }
.band-grades { font-size:var(--text-xs); letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.band-card h3 { font-size:var(--text-lg); margin:var(--space-1) 0 var(--space-4); }
.band-week { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.2em; text-transform:uppercase; color:var(--ivory-dim); margin-bottom:var(--space-2); }
.band-scope li { font-size:var(--text-sm); color:var(--ivory-faint); padding:var(--space-2) 0; border-top:1px solid rgba(212,175,55,.1); display:flex; gap:var(--space-2); }
.band-scope li b { color:var(--gold); font-weight:600; font-family:var(--font-display); font-size:1.02rem; }

/* ============ TRACKS / PRICING ============ */
.track-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); align-items:stretch; }
.card-royal { background:linear-gradient(165deg,var(--onyx-card),var(--onyx-soft)); border:1px solid rgba(212,175,55,.22); border-radius:var(--radius); padding:var(--space-8); display:flex; flex-direction:column; position:relative; transition:transform .3s,border-color .3s; }
.card-royal:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.5); }
.card-royal.featured { border-color:var(--gold); box-shadow:var(--shadow-gold); }
.featured-tag { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--gold-grad); color:#1a1500; font-size:var(--text-xs); font-weight:700; letter-spacing:.18em; text-transform:uppercase; padding:var(--space-2) var(--space-4); border-radius:99px; white-space:nowrap; }
.card-royal h3 { font-size:var(--text-lg); margin-bottom:var(--space-2); }
.card-sub { font-size:var(--text-sm); color:var(--ivory-faint); margin-bottom:var(--space-5); min-height:2.6em; }
.price { font-family:var(--font-display); display:flex; align-items:baseline; gap:var(--space-2); margin-bottom:var(--space-2); }
.price .amt { font-size:var(--text-2xl); color:var(--gold); font-weight:600; line-height:1; }
.price .per { font-size:var(--text-sm); color:var(--ivory-dim); }
.price-alt { font-size:var(--text-sm); color:var(--ivory-dim); margin-bottom:var(--space-5); }
.price-alt b { color:var(--gold-bright); font-weight:600; }
.feat-list { margin:var(--space-4) 0 var(--space-8); flex:1; }
.feat-list li { display:flex; gap:var(--space-3); padding:var(--space-2) 0; font-size:var(--text-sm); color:var(--ivory-dim); align-items:flex-start; }
.feat-list li svg { width:18px; height:18px; color:var(--gold); flex-shrink:0; margin-top:3px; }

/* ============ INSTITUTIONAL ============ */
.inst-section { background:linear-gradient(180deg, var(--onyx), var(--onyx-soft)); border-top:1px solid rgba(212,175,55,.12); border-bottom:1px solid rgba(212,175,55,.12); }

/* ============ WORKBOOKS ============ */
.wb-layout { display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(var(--space-8),5vw,var(--space-16)); align-items:center; }
.wb-media img { width:100%; max-width:440px; margin-inline:auto; filter:drop-shadow(0 40px 60px rgba(0,0,0,.7)); }
.wb-tiers { display:grid; gap:var(--space-5); }
.wb-tier { display:flex; justify-content:space-between; align-items:center; gap:var(--space-5); border:1px solid rgba(212,175,55,.2); border-radius:var(--radius); padding:var(--space-5) var(--space-6); background:var(--onyx-card); transition:border-color .3s; }
.wb-tier:hover { border-color:rgba(212,175,55,.5); }
.wb-tier h4 { font-size:var(--text-lg); margin-bottom:2px; }
.wb-tier p { font-size:var(--text-sm); color:var(--ivory-faint); }
.wb-tier .wb-price { font-family:var(--font-display); font-size:var(--text-xl); color:var(--gold); white-space:nowrap; }

/* ============ FACULTY / INSTRUCTOR ============ */
.fac-section { background:linear-gradient(180deg, var(--onyx-soft), var(--onyx)); }
.covenant-box { border:1px solid rgba(212,175,55,.3); border-radius:var(--radius); background:linear-gradient(160deg,var(--onyx-card),var(--onyx-soft)); padding:clamp(var(--space-6),4vw,var(--space-10)); margin-top:var(--space-8); }
.covenant-box h3 { font-size:var(--text-lg); color:var(--gold); margin-bottom:var(--space-5); }
.req-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4) var(--space-8); }
.req-item { display:flex; gap:var(--space-3); align-items:flex-start; padding-bottom:var(--space-4); border-bottom:1px solid rgba(212,175,55,.1); }
.req-item svg { width:20px; height:20px; color:var(--gold); flex-shrink:0; margin-top:3px; }
.req-item h5 { font-family:var(--font-body); font-size:var(--text-sm); font-weight:600; color:var(--ivory); margin-bottom:2px; }
.req-item p { font-size:var(--text-sm); color:var(--ivory-faint); }
.req-item .req-price { color:var(--gold-bright); font-weight:600; }

.tier-row { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); margin-top:var(--space-6); }
.tier-chip { border:1px solid rgba(212,175,55,.25); border-radius:var(--radius); padding:var(--space-5); background:var(--onyx-soft); }
.tier-chip.feat { border-color:var(--gold); }
.tier-chip h4 { font-size:var(--text-lg); color:var(--gold); }
.tier-chip .amt { font-family:var(--font-display); font-size:var(--text-xl); color:var(--ivory); }
.tier-chip .per { font-size:var(--text-sm); color:var(--ivory-dim); }
.tier-chip p { font-size:var(--text-sm); color:var(--ivory-faint); margin-top:var(--space-2); }

/* ============ INSTRUCTOR GALLERY ============ */
.inst-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-8); }
.inst-card { background:var(--onyx-soft); border:1px solid rgba(212,175,55,.18); border-radius:var(--radius); overflow:hidden; transition:transform .3s,border-color .3s; }
.inst-card:hover { transform:translateY(-6px); border-color:rgba(212,175,55,.45); }
.inst-card img { width:100%; aspect-ratio:1/1; object-fit:cover; }
.inst-body { padding:var(--space-5) var(--space-6) var(--space-6); }
.inst-card h4 { font-size:var(--text-lg); }
.inst-prog { font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:var(--space-1) 0 var(--space-4); }
.inst-test { font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--ivory-dim); line-height:1.4; }

/* ============ FOUNDER ============ */
.founder-section { background:linear-gradient(180deg, var(--onyx), #0d0b07); }
.founder-layout { display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(var(--space-8),5vw,var(--space-16)); align-items:center; }
.founder-media img { width:100%; max-width:420px; border:1px solid rgba(212,175,55,.3); border-radius:var(--radius); box-shadow:0 30px 70px -30px #000; }
.founder-letter p { font-size:var(--text-lg); color:var(--ivory-dim); font-weight:300; margin-bottom:var(--space-5); font-family:var(--font-display); line-height:1.55; }
.founder-sign { font-family:var(--font-display); font-size:var(--text-xl); color:var(--gold); margin-top:var(--space-6); }
.founder-sign span { display:block; font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.24em; text-transform:uppercase; color:var(--ivory-dim); margin-top:var(--space-2); }

/* ============ TRUST STRIP ============ */
.trust { background:#070707; border-top:1px solid rgba(212,175,55,.12); padding-block:var(--space-12); }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-8); }
.trust-item h5 { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-2); }
.trust-item p { font-size:var(--text-sm); color:var(--ivory-faint); }

/* ============ FAQ ============ */
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4) var(--space-10); }
.faq-item { border-bottom:1px solid rgba(212,175,55,.14); }
.faq-q { width:100%; text-align:left; background:none; border:none; color:var(--ivory); font-family:var(--font-display); font-size:var(--text-lg); font-weight:500; padding:var(--space-5) 0; cursor:pointer; display:flex; justify-content:space-between; gap:var(--space-4); align-items:center; }
.faq-q .ico { color:var(--gold); transition:transform .3s; font-family:var(--font-body); font-weight:300; font-size:1.5rem; }
.faq-item.open .ico { transform:rotate(45deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s ease; }
.faq-a p { font-size:var(--text-sm); color:var(--ivory-faint); padding-bottom:var(--space-5); }
.faq-item.open .faq-a { max-height:340px; }

/* ============ PRICING TABLE ============ */
.ptable-wrap { overflow-x:auto; border:1px solid var(--gold); border-radius:var(--radius); }
table.ptable { width:100%; border-collapse:collapse; min-width:680px; }
.ptable caption { font-family:var(--font-display); font-size:var(--text-lg); color:var(--gold); padding:var(--space-5); background:var(--onyx-card); border-bottom:1px solid rgba(212,175,55,.2); text-align:left; }
.ptable th, .ptable td { padding:var(--space-4) var(--space-5); text-align:left; border-bottom:1px solid rgba(212,175,55,.12); font-size:var(--text-sm); }
.ptable thead th { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--gold); background:var(--onyx-soft); }
.ptable td:first-child { color:var(--ivory); font-weight:500; }
.ptable td .p1 { color:var(--gold); font-family:var(--font-display); font-size:1.1rem; }
.ptable tbody tr:hover { background:rgba(212,175,55,.04); }
.ptable .grp td { background:var(--onyx-raise); color:var(--gold); font-family:var(--font-display); font-size:1.1rem; letter-spacing:.04em; }

/* ============ NEWSLETTER / EMAIL ============ */
.briefing { background:linear-gradient(160deg,#100d07,#0a0a0a); border-top:1px solid rgba(212,175,55,.18); }
.briefing-inner { max-width:680px; margin-inline:auto; text-align:center; }
.briefing h2 { font-size:var(--text-2xl); margin:var(--space-4) 0; }
.briefing p { color:var(--ivory-faint); margin-bottom:var(--space-8); }
.signup { display:flex; gap:var(--space-3); max-width:480px; margin-inline:auto; }
.signup input { flex:1; }
.form-msg { margin-top:var(--space-4); font-size:var(--text-sm); min-height:1.4em; }
.form-msg.ok { color:var(--gold-bright); }
.form-msg.err { color:var(--crimson-br); }

/* ============ FORMS ============ */
.field { margin-bottom:var(--space-5); }
.field label { display:block; font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-2); }
input, select, textarea {
  width:100%; font-family:var(--font-body); font-size:var(--text-base);
  background:var(--onyx-card); border:1px solid rgba(212,175,55,.28); color:var(--ivory);
  padding:var(--space-4); border-radius:var(--radius); transition:border-color .2s, box-shadow .2s;
}
input::placeholder, textarea::placeholder { color:rgba(245,241,232,.35); }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55,.15); }
textarea { resize:vertical; min-height:120px; }
.checkbox-row { display:flex; gap:var(--space-3); align-items:flex-start; margin-bottom:var(--space-5); }
.checkbox-row input { width:auto; margin-top:5px; }
.checkbox-row label { text-transform:none; letter-spacing:normal; font-size:var(--text-sm); color:var(--ivory-dim); margin:0; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.file-drop { border:1px dashed rgba(212,175,55,.4); border-radius:var(--radius); padding:var(--space-6); text-align:center; color:var(--ivory-faint); font-size:var(--text-sm); background:var(--onyx-card); }

/* ============ MULTI-STEP ============ */
.steps { display:flex; gap:var(--space-2); margin-bottom:var(--space-8); flex-wrap:wrap; }
.step-dot { display:flex; align-items:center; gap:var(--space-3); flex:1; min-width:140px; }
.step-num { width:34px; height:34px; border-radius:50%; border:1px solid rgba(212,175,55,.4); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.1rem; color:var(--ivory-dim); flex-shrink:0; transition:.3s; }
.step-dot.active .step-num { background:var(--gold-grad); color:#1a1500; border-color:var(--gold); }
.step-dot.done .step-num { background:rgba(212,175,55,.2); color:var(--gold); }
.step-label { font-size:var(--text-xs); letter-spacing:.1em; text-transform:uppercase; color:var(--ivory-dim); }
.step-dot.active .step-label { color:var(--gold); }
.step-panel { display:none; }
.step-panel.active { display:block; }
.step-nav { display:flex; justify-content:space-between; margin-top:var(--space-8); gap:var(--space-4); }

/* ============ INTERIOR PAGE HERO ============ */
.page-hero { padding-block:clamp(var(--space-16),9vw,var(--space-24)) clamp(var(--space-10),5vw,var(--space-16)); text-align:center; border-bottom:1px solid rgba(212,175,55,.12); position:relative; }
.page-hero h1 { font-size:var(--text-2xl); margin:var(--space-4) 0; }
.page-hero p { max-width:620px; margin-inline:auto; color:var(--ivory-faint); font-size:var(--text-lg); font-weight:300; }
.back-link { font-size:var(--text-sm); color:var(--gold); display:inline-flex; gap:var(--space-2); align-items:center; margin-bottom:var(--space-4); }

/* ============ FOOTER ============ */
.footer { background:#050505; border-top:1px solid rgba(212,175,55,.18); padding-block:clamp(var(--space-12),6vw,var(--space-20)) var(--space-8); }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--space-10); margin-bottom:var(--space-12); }
.footer-brand .brand { margin-bottom:var(--space-4); }
.footer-brand p { font-size:var(--text-sm); color:var(--ivory-faint); max-width:340px; }
.footer h5 { font-family:var(--font-body); font-size:var(--text-xs); letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-5); }
.footer-links li { margin-bottom:var(--space-3); }
.footer-links a { font-size:var(--text-sm); color:var(--ivory-dim); transition:color .2s; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(212,175,55,.12); padding-top:var(--space-6); display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-4); align-items:center; }
.footer-bottom p { font-size:var(--text-xs); color:var(--ivory-faint); }
.rose { color:var(--crimson-br); }

/* ============ ANIMATIONS ============ */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.reveal.in { opacity:1; transform:none; }

/* ============ RESPONSIVE ============ */
@media (max-width:980px){
  .nav { display:none; }
  .menu-btn { display:block; }
  .program { grid-template-columns:1fr; gap:var(--space-8); }
  .program:nth-child(even) .program-media { order:0; }
  .band-grid { grid-template-columns:repeat(2,1fr); }
  .track-grid { grid-template-columns:1fr; }
  .inst-grid { grid-template-columns:repeat(2,1fr); }
  .wb-layout, .founder-layout { grid-template-columns:1fr; }
  .founder-media { order:-1; }
  .trust-grid { grid-template-columns:1fr; gap:var(--space-6); }
  .faq-grid { grid-template-columns:1fr; }
  .req-grid, .tier-row, .field-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:var(--space-8); }
  .learn-list { grid-template-columns:1fr; }
}
@media (max-width:560px){
  .band-grid, .inst-grid { grid-template-columns:1fr; }
  .signup { flex-direction:column; }
  .hero-cta .btn { width:100%; justify-content:center; }
  .wb-tier { flex-direction:column; align-items:flex-start; gap:var(--space-3); }
  .steps { gap:var(--space-1); }
  .step-label { display:none; }
  .step-dot { min-width:auto; flex:0; }
}
