/* =========================================================
   TEST TOPPERS — Design System
   Palette sampled directly from brand mark:
   gold #F0C300, deep gold #A9821E, pale gold #F7DE6B
   ========================================================= */

:root{
  --black: #0A0A0B;
  --black-soft: #111113;
  --charcoal: #18181B;
  --charcoal-line: #2A2A2E;
  --gold: #F0C300;
  --gold-deep: #A9821E;
  --gold-pale: #F7DE6B;
  --cream: #F3EEDD;
  --cream-dim: #C9C4B4;

  --font-display: "Fraunces", serif;
  --font-body: "Inter", -apple-system, sans-serif;
  --font-mono: "JetBrains Mono", monospace;

  --container: 1180px;
  --radius: 2px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--black);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.1;
  margin: 0 0 .5em;
  color: var(--cream);
}
p{ margin: 0 0 1em; color: var(--cream-dim); }
.eyebrow{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  color: var(--gold);
}
.wrap{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 28px;
}
:focus-visible{
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}

/* ---------- Pillar motif (signature element) ----------
   Twin vertical rules with a capital, echoing the TT mark.
   Used as section dividers throughout the site. */
.pillar-divider{
  display:flex;
  align-items:center;
  gap: 18px;
  margin: 88px 0 48px;
}
.pillar-divider .col{
  width: 10px;
  height: 34px;
  border-left: 2px solid var(--gold);
  border-right: 2px solid var(--gold);
  position: relative;
  flex-shrink:0;
}
.pillar-divider .col::before{
  content:"";
  position:absolute;
  top:-6px; left:-4px; right:-4px;
  height:4px;
  background: var(--gold);
}
.pillar-divider .label{
  font-family: var(--font-mono);
  letter-spacing:.16em;
  text-transform: uppercase;
  font-size:.72rem;
  color: var(--gold-pale);
  white-space: nowrap;
}
.pillar-divider .line{
  height:1px;
  background: var(--charcoal-line);
  flex:1;
}

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky;
  top:0;
  z-index: 100;
  background: rgba(10,10,11,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--charcoal-line);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content: space-between;
  height: 76px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand img{
  height: 46px;
  width:auto;
}
.nav-links{
  display:flex;
  gap: 34px;
  align-items:center;
  list-style:none;
  margin:0; padding:0;
}
.nav-links a{
  font-size:.92rem;
  font-weight:500;
  color: var(--cream-dim);
  position:relative;
  padding: 6px 0;
  transition: color .2s ease;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  color: var(--gold);
}
.nav-links a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:2px;
  background: var(--gold);
}
.nav-cta{
  background: var(--gold);
  color: var(--black) !important;
  padding: 10px 22px;
  font-weight:700;
  border-radius: var(--radius);
  font-size:.88rem;
}
.nav-cta:hover{ background: var(--gold-pale); }
.nav-toggle{
  display:none;
  background:none;
  border:1px solid var(--charcoal-line);
  color: var(--gold);
  width: 42px; height:42px;
  font-size: 1.3rem;
  cursor:pointer;
}

@media (max-width: 900px){
  .nav-toggle{ display:block; }
  .nav-links{
    position: fixed;
    top: 76px; left:0; right:0;
    background: var(--black-soft);
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 28px;
    gap: 20px;
    border-bottom: 1px solid var(--charcoal-line);
    transform: translateY(-130%);
    transition: transform .25s ease;
  }
  .nav-links.open{ transform: translateY(0); }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 14px 30px;
  font-weight:700;
  font-size: .92rem;
  border-radius: var(--radius);
  border: 1px solid transparent;
  cursor:pointer;
  transition: all .2s ease;
}
.btn-primary{
  background: var(--gold);
  color: var(--black);
}
.btn-primary:hover{ background: var(--gold-pale); transform: translateY(-1px); }
.btn-outline{
  border-color: var(--gold-deep);
  color: var(--gold);
  background: transparent;
}
.btn-outline:hover{ border-color: var(--gold); background: rgba(240,195,0,.08); }

/* ---------- Hero ---------- */
.hero{
  position: relative;
  padding: 110px 0 90px;
  overflow:hidden;
  border-bottom: 1px solid var(--charcoal-line);
}
.hero-columns{
  position:absolute;
  inset:0;
  display:flex;
  justify-content: center;
  gap: 90px;
  opacity: .07;
  pointer-events:none;
}
.hero-columns .c{
  width: 70px;
  background: linear-gradient(var(--gold), transparent);
  height: 100%;
}
.hero .wrap{ position: relative; }
.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 60px;
  align-items:center;
}
@media (max-width: 900px){
  .hero-grid{ grid-template-columns: 1fr; }
}
.hero h1{
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  letter-spacing: -.01em;
}
.hero h1 em{
  font-style: italic;
  color: var(--gold);
}
.hero p.lead{
  font-size: 1.12rem;
  max-width: 46ch;
}
.hero-actions{
  display:flex;
  gap:16px;
  margin-top: 34px;
  flex-wrap: wrap;
}
.stat-row{
  display:flex;
  gap: 42px;
  margin-top: 56px;
  flex-wrap:wrap;
}
.stat-row .stat b{
  font-family: var(--font-mono);
  font-size: 1.9rem;
  color: var(--gold);
  display:block;
}
.stat-row .stat span{
  font-size:.8rem;
  color: var(--cream-dim);
  text-transform: uppercase;
  letter-spacing:.08em;
}

/* Hero side panel: mock score card */
.score-card{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-line);
  padding: 30px;
  position:relative;
}
.score-card::before{
  content:"";
  position:absolute;
  top:0; left:0; width:100%; height:3px;
  background: var(--gold);
}
.score-card .row{
  display:flex;
  justify-content: space-between;
  align-items:center;
  padding: 14px 0;
  border-bottom: 1px solid var(--charcoal-line);
}
.score-card .row:last-child{ border-bottom:none; }
.score-card .test{ font-weight:600; color: var(--cream); }
.score-card .range{ font-family: var(--font-mono); color: var(--gold); font-size:.95rem; }

/* ---------- Pillars grid (signature homepage element) ---------- */
.pillars{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--charcoal-line);
  border: 1px solid var(--charcoal-line);
}
@media (max-width: 1100px){
  .pillars{ grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 700px){
  .pillars{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 480px){
  .pillars{ grid-template-columns: 1fr; }
}
.pillar-card{
  background: var(--black-soft);
  padding: 40px 28px;
  position:relative;
  transition: background .25s ease;
}
.pillar-card:hover{ background: var(--charcoal); }
.pillar-card .cap{
  width: 44px; height: 4px;
  background: var(--gold);
  margin-bottom: 22px;
}
.pillar-card h3{ font-size: 1.25rem; }
.pillar-card p{ font-size: .93rem; margin-bottom: 0; }
.pillar-card .num{
  position:absolute;
  top: 20px; right: 24px;
  font-family: var(--font-mono);
  color: var(--charcoal-line);
  font-size: .85rem;
}

/* ---------- Generic section ---------- */
.section{ padding: 20px 0 60px; }
.section-head{
  max-width: 640px;
  margin-bottom: 48px;
}
.section-head h2{ font-size: clamp(1.8rem, 3.4vw, 2.5rem); }

/* ---------- Cards / grid ---------- */
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
@media (max-width: 900px){ .grid-3{ grid-template-columns: 1fr; } }
.grid-4{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
}
@media (max-width: 900px){ .grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .grid-4{ grid-template-columns: 1fr; } }
.card{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-line);
  padding: 30px;
}
.card h3{ font-size: 1.15rem; }
.card p{ font-size: .93rem; margin-bottom: 0; }

/* ---------- Trainer / person card ---------- */
.person{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-line);
  padding: 28px;
  display:flex;
  gap: 20px;
}
.person .avatar{
  width: 64px; height:64px;
  border-radius:50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-deep));
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display);
  font-weight:600;
  color: var(--black);
  font-size: 1.3rem;
}
.person h4{ margin:0 0 2px; font-size: 1.05rem; }
.person .role{ font-family: var(--font-mono); color: var(--gold); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.person p{ font-size:.88rem; margin: 10px 0 0; }

/* ---------- Table (used for score/scholarship data) ---------- */
table{ width:100%; border-collapse: collapse; font-size:.92rem; }
th,td{ text-align:left; padding: 12px 16px; border-bottom: 1px solid var(--charcoal-line); }
th{
  font-family: var(--font-mono);
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .08em;
  color: var(--gold);
}
tr:hover td{ background: rgba(240,195,0,.04); }

/* ---------- University finder ---------- */
.finder{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-line);
  padding: 28px;
}
.finder-controls{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 26px;
}
@media (max-width: 900px){ .finder-controls{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .finder-controls{ grid-template-columns: 1fr; } }
.finder label{
  display:block;
  font-family: var(--font-mono);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--cream-dim);
  margin-bottom: 8px;
}
select, input[type="text"], input[type="email"], input[type="tel"], textarea{
  width:100%;
  background: var(--black-soft);
  border: 1px solid var(--charcoal-line);
  color: var(--cream);
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: .92rem;
  border-radius: var(--radius);
}
select:focus, input:focus, textarea:focus{ border-color: var(--gold); }

.uni-results{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap: 18px;
  margin-top: 24px;
}
@media (max-width: 900px){ .uni-results{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px){ .uni-results{ grid-template-columns: 1fr; } }
.uni-card{
  border: 1px solid var(--charcoal-line);
  background: var(--black-soft);
  padding: 22px;
}
.uni-card .uni-country{
  font-family: var(--font-mono);
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--gold);
}
.uni-card h4{ margin: 6px 0 10px; font-size: 1.05rem; }
.uni-card .uni-meta{
  display:flex;
  justify-content: space-between;
  font-size: .82rem;
  color: var(--cream-dim);
  border-top: 1px solid var(--charcoal-line);
  padding-top: 10px;
  margin-top: 12px;
}
.uni-card .uni-meta b{ color: var(--gold-pale); font-family: var(--font-mono); font-weight:500; }
.scholarship-tag{
  display:inline-block;
  margin-top:10px;
  font-size:.7rem;
  padding: 3px 9px;
  border: 1px solid var(--gold-deep);
  color: var(--gold-pale);
  font-family: var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.no-results{
  grid-column: 1/-1;
  text-align:center;
  padding: 40px 20px;
  color: var(--cream-dim);
  font-family: var(--font-mono);
  font-size: .85rem;
}

/* ---------- CTA band ---------- */
.cta-band{
  background: var(--charcoal);
  border-top: 1px solid var(--charcoal-line);
  border-bottom: 1px solid var(--charcoal-line);
  padding: 70px 0;
  text-align:center;
}
.cta-band h2{ font-size: clamp(1.7rem, 3.2vw, 2.3rem); }
.cta-band p{ max-width: 50ch; margin: 0 auto 28px; }

/* ---------- Footer ---------- */
footer{
  padding: 56px 0 34px;
  border-top: 1px solid var(--charcoal-line);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}
@media (max-width: 760px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
.footer-grid h5{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .72rem;
  color: var(--gold);
  margin-bottom: 16px;
}
.footer-grid ul{ list-style:none; margin:0; padding:0; }
.footer-grid li{ margin-bottom: 10px; }
.footer-grid a{ color: var(--cream-dim); font-size: .9rem; }
.footer-grid a:hover{ color: var(--gold); }
.footer-bottom{
  display:flex;
  justify-content: space-between;
  padding-top: 24px;
  border-top: 1px solid var(--charcoal-line);
  font-size: .8rem;
  color: var(--cream-dim);
  flex-wrap: wrap;
  gap: 10px;
}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  padding: 64px 0 48px;
  border-bottom: 1px solid var(--charcoal-line);
}
.page-hero .eyebrow{ margin-bottom: 14px; display:block; }
.page-hero h1{ font-size: clamp(2rem, 4vw, 2.8rem); }
.page-hero p{ max-width: 60ch; font-size: 1.05rem; }

/* ---------- Tabs (Programs page) ---------- */
.tabs{
  display:flex;
  gap: 6px;
  border-bottom: 1px solid var(--charcoal-line);
  margin-bottom: 36px;
  flex-wrap:wrap;
}
.tab-btn{
  background:none;
  border:none;
  color: var(--cream-dim);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .95rem;
  padding: 14px 6px;
  margin-right: 28px;
  cursor:pointer;
  border-bottom: 2px solid transparent;
  transition: color .2s ease;
}
.tab-btn.active, .tab-btn:hover{ color: var(--gold); }
.tab-btn.active{ border-bottom-color: var(--gold); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; animation: fadein .25s ease; }
@keyframes fadein{ from{ opacity:0; transform: translateY(4px);} to{opacity:1; transform:none;} }

/* Section split (image/text alternating) */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items:center;
}
@media (max-width: 900px){ .split{ grid-template-columns:1fr; } }
.split ul{ padding-left: 20px; margin: 0; }
.split li{ margin-bottom: 10px; color: var(--cream-dim); font-size: .95rem; }
.split li::marker{ color: var(--gold); }

.syllabus-visual{
  background: var(--charcoal);
  border: 1px solid var(--charcoal-line);
  padding: 30px;
}
.syllabus-visual .bar-row{ margin-bottom: 18px; }
.syllabus-visual .bar-label{
  display:flex; justify-content:space-between;
  font-size:.8rem; margin-bottom:6px; color: var(--cream-dim);
}
.bar-track{ height:8px; background: var(--black-soft); border:1px solid var(--charcoal-line); }
.bar-fill{ height:100%; background: var(--gold); }

/* ---------- Counsellor Booking Wizard ---------- */
.booking-wizard{
  display:grid;
  grid-template-columns: 0.85fr 1.15fr;
  border: 1px solid var(--charcoal-line);
  background: var(--black-soft);
  min-height: 620px;
}
@media (max-width: 900px){
  .booking-wizard{ grid-template-columns: 1fr; min-height:auto; }
}
.booking-visual{
  position:relative;
  background:
    linear-gradient(180deg, rgba(10,10,11,.2), rgba(10,10,11,.85)),
    repeating-linear-gradient(90deg, var(--charcoal) 0 2px, var(--black-soft) 2px 64px);
  padding: 40px;
  display:flex;
  flex-direction:column;
  justify-content: flex-end;
  min-height: 320px;
  border-right: 1px solid var(--charcoal-line);
  overflow:hidden;
}
@media (max-width: 900px){ .booking-visual{ border-right:none; border-bottom:1px solid var(--charcoal-line); } }
.booking-visual::before{
  content:"";
  position:absolute;
  top:50%; left:50%;
  transform: translate(-50%,-55%);
  width: 220px; height: 320px;
  border-left: 10px solid var(--gold);
  border-right: 10px solid var(--gold);
  opacity: .18;
}
.booking-visual::after{
  content:"";
  position:absolute;
  top: calc(50% - 160px - 4px); left:50%;
  transform: translateX(-50%);
  width: 260px; height: 10px;
  background: var(--gold);
  opacity: .18;
}
.booking-visual .tag{
  position:relative;
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .72rem;
  color: var(--gold-pale);
  margin-bottom: 14px;
}
.booking-visual h3{
  position:relative;
  font-size: 1.7rem;
  max-width: 16ch;
  margin-bottom:0;
}

.booking-panel{ padding: 40px; }
@media (max-width: 600px){ .booking-panel{ padding: 26px; } }

.wizard-steps{
  display:flex;
  justify-content: space-between;
  margin-bottom: 38px;
  gap: 6px;
}
.wizard-step{
  flex:1;
  text-align:center;
  position:relative;
}
.wizard-step:not(:last-child)::after{
  content:"";
  position:absolute;
  top: 15px; left: 55%;
  width: 90%;
  height: 1px;
  background: var(--charcoal-line);
  z-index:0;
}
.wizard-step.done:not(:last-child)::after{ background: var(--gold-deep); }
.wizard-step .dot{
  width: 30px; height: 30px;
  border-radius:50%;
  border: 1px solid var(--charcoal-line);
  display:flex; align-items:center; justify-content:center;
  margin: 0 auto 10px;
  font-family: var(--font-mono);
  font-size: .82rem;
  color: var(--cream-dim);
  background: var(--black-soft);
  position:relative;
  z-index:1;
}
.wizard-step.active .dot{ border-color: var(--gold); color: var(--gold); }
.wizard-step.done .dot{ background: var(--gold); border-color: var(--gold); color: var(--black); }
.wizard-step .step-label{
  font-family: var(--font-mono);
  font-size: .66rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--cream-dim);
}
.wizard-step.active .step-label{ color: var(--gold); }

.wizard-heading{
  display:flex;
  align-items:center;
  gap: 12px;
  margin-bottom: 22px;
}
.wizard-heading svg, .wizard-heading .icon{ color: var(--gold); flex-shrink:0; }
.wizard-heading h3{ margin:0; font-size: 1.3rem; }

.wizard-panel{ display:none; }
.wizard-panel.active{ display:block; animation: fadein .25s ease; }

.counsellor-option{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid var(--charcoal-line);
  padding: 20px 22px;
  margin-bottom: 14px;
  cursor:pointer;
  transition: border-color .2s ease, background .2s ease;
}
.counsellor-option:hover{ border-color: var(--gold-deep); }
.counsellor-option.selected{ border-color: var(--gold); background: rgba(240,195,0,.05); }
.counsellor-option h4{ margin:0 0 4px; font-size: 1.05rem; font-family: var(--font-display); font-weight:600; }
.counsellor-option .spec{ font-size: .88rem; color: var(--cream-dim); margin-bottom: 3px; }
.counsellor-option .cred{ font-size: .76rem; color: var(--gold-pale); font-family: var(--font-mono); }
.radio-dot{
  width: 22px; height:22px;
  border-radius:50%;
  border: 1px solid var(--charcoal-line);
  flex-shrink:0;
  position:relative;
}
.counsellor-option.selected .radio-dot{ border-color: var(--gold); }
.counsellor-option.selected .radio-dot::after{
  content:"";
  position:absolute;
  inset: 4px;
  border-radius:50%;
  background: var(--gold);
}

.slot-date-row{
  display:flex;
  gap: 10px;
  overflow-x:auto;
  margin-bottom: 22px;
  padding-bottom: 4px;
}
.slot-date{
  flex-shrink:0;
  border: 1px solid var(--charcoal-line);
  padding: 12px 16px;
  text-align:center;
  cursor:pointer;
  min-width: 74px;
}
.slot-date .d{ font-family: var(--font-mono); font-size: .68rem; text-transform:uppercase; color: var(--cream-dim); }
.slot-date .n{ font-family: var(--font-display); font-size: 1.2rem; margin-top:2px; }
.slot-date.selected{ border-color: var(--gold); background: rgba(240,195,0,.06); }
.slot-date.selected .d{ color: var(--gold-pale); }

.slot-time-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 560px){ .slot-time-grid{ grid-template-columns: repeat(2,1fr); } }
.slot-time{
  border: 1px solid var(--charcoal-line);
  padding: 12px 10px;
  text-align:center;
  font-size: .88rem;
  cursor:pointer;
  color: var(--cream-dim);
}
.slot-time:hover{ border-color: var(--gold-deep); }
.slot-time.selected{ border-color: var(--gold); background: rgba(240,195,0,.06); color: var(--gold-pale); }

.upload-zone{
  border: 1px dashed var(--charcoal-line);
  padding: 44px 20px;
  text-align:center;
  cursor:pointer;
  transition: border-color .2s ease;
}
.upload-zone:hover, .upload-zone.drag{ border-color: var(--gold); }
.upload-zone .icon{ font-size: 1.6rem; color: var(--gold); margin-bottom: 10px; }
.upload-zone p{ margin: 0; font-size: .9rem; }
.upload-zone .hint{ font-size: .78rem; color: var(--cream-dim); margin-top: 4px; }
.upload-list{ margin-top: 16px; }
.upload-item{
  display:flex;
  justify-content: space-between;
  align-items:center;
  border: 1px solid var(--charcoal-line);
  padding: 10px 16px;
  font-size: .85rem;
  margin-bottom: 8px;
}
.upload-item button{
  background:none; border:none; color: var(--cream-dim);
  cursor:pointer; font-size: 1rem;
}
.upload-skip{
  display:block;
  text-align:center;
  margin-top: 16px;
  font-size: .85rem;
  color: var(--cream-dim);
  text-decoration: underline;
  cursor:pointer;
}

.confirm-summary{
  border: 1px solid var(--charcoal-line);
  background: var(--charcoal);
}
.confirm-row{
  display:flex;
  justify-content: space-between;
  padding: 16px 22px;
  border-bottom: 1px solid var(--charcoal-line);
  font-size: .92rem;
}
.confirm-row:last-child{ border-bottom:none; }
.confirm-row span:first-child{ color: var(--cream-dim); }
.confirm-row span:last-child{ color: var(--gold-pale); font-family: var(--font-mono); font-size: .88rem; text-align:right; }

.wizard-nav{
  display:flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 30px;
}
.wizard-nav .btn{ flex:1; justify-content:center; }
.btn:disabled{ opacity:.4; cursor:not-allowed; }
.btn-ghost{
  background:none;
  border: 1px solid var(--charcoal-line);
  color: var(--cream-dim);
}
.btn-ghost:hover{ border-color: var(--gold-deep); color: var(--gold); }

.booking-success{
  text-align:center;
  padding: 60px 20px;
}
.booking-success .check{
  width: 60px; height:60px;
  border-radius:50%;
  border: 2px solid var(--gold);
  color: var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-size: 1.6rem;
  margin: 0 auto 22px;
}

/* ---------- Hero v2 — headline + Pathfinder toggle ---------- */
.hero-headline{
  font-size: clamp(2.6rem, 5.4vw, 4.2rem);
  letter-spacing: -.01em;
}
.hero-headline em{ font-style: italic; color: var(--gold); }

.pathfinder{
  border-left: 1px solid var(--charcoal-line);
  padding-left: 40px;
}
@media (max-width: 900px){ .pathfinder{ border-left:none; padding-left:0; margin-top:40px; } }
.pathfinder-eyebrow{ margin-bottom: 20px; display:block; }
.toggle-item{
  border-bottom: 1px solid var(--charcoal-line);
  padding: 18px 0;
  cursor:pointer;
}
.toggle-item:first-child{ border-top: 1px solid var(--charcoal-line); }
.toggle-item .toggle-head{
  display:flex;
  justify-content: space-between;
  align-items:center;
  font-family: var(--font-mono);
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--cream-dim);
  padding-left: 16px;
  border-left: 2px solid transparent;
  transition: border-color .2s ease, color .2s ease;
}
.toggle-item.open .toggle-head{ border-left-color: var(--gold); color: var(--gold); }
.toggle-item .toggle-plus{ font-family: var(--font-body); font-size: 1rem; }
.toggle-body{
  max-height:0;
  overflow:hidden;
  transition: max-height .25s ease;
}
.toggle-item.open .toggle-body{ max-height: 160px; }
.toggle-body p{
  font-size: .87rem;
  margin: 12px 0 0;
  padding-left: 18px;
}
.pathfinder-stats{
  display:flex;
  gap: 36px;
  margin-top: 30px;
}
.pathfinder-stats .stat b{
  font-family: var(--font-mono);
  font-size: 2rem;
  color: var(--gold);
  display:block;
}
.pathfinder-stats .stat span{
  font-size: .76rem;
  color: var(--cream-dim);
  text-transform: uppercase;
  letter-spacing: .07em;
}

/* ---------- Program carousel ---------- */
.carousel-head{
  display:flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 34px;
  flex-wrap:wrap;
}
.carousel-controls{ display:flex; gap: 10px; }
.carousel-btn{
  width: 42px; height:42px;
  border: 1px solid var(--charcoal-line);
  background: none;
  color: var(--gold);
  font-size: 1.1rem;
  cursor:pointer;
  transition: border-color .2s ease;
}
.carousel-btn:hover{ border-color: var(--gold); }
.carousel-track{
  display:flex;
  gap: 20px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding-bottom: 6px;
}
.carousel-track::-webkit-scrollbar{ display:none; }
.program-card-v2{
  flex: 0 0 300px;
  border: 1px solid var(--charcoal-line);
  background: var(--black-soft);
}
.card-visual{
  position:relative;
  height: 170px;
  display:flex;
  align-items:flex-end;
  padding: 18px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(10,10,11,0) 40%, rgba(10,10,11,.9)),
    repeating-linear-gradient(135deg, var(--charcoal) 0 3px, var(--black-soft) 3px 26px);
}
.card-visual .code{
  font-family: var(--font-display);
  font-weight:700;
  font-size: 2.6rem;
  color: var(--cream);
  line-height:1;
}
.card-badge{
  position:absolute;
  top: 14px; right: 14px;
  background: var(--gold);
  color: var(--black);
  font-family: var(--font-mono);
  font-size: .64rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 5px 10px;
  font-weight:700;
}
.program-card-v2 .card-body{ padding: 22px; }
.program-card-v2 h4{ font-size: 1.1rem; margin-bottom: 6px; }
.program-card-v2 .card-desc{ font-size: .86rem; color: var(--cream-dim); margin-bottom: 16px; }
.card-stats{
  display:flex;
  justify-content: space-between;
  border-top: 1px solid var(--charcoal-line);
  padding-top: 14px;
}
.card-stats div{ font-size: .68rem; text-transform: uppercase; letter-spacing:.06em; color: var(--cream-dim); }
.card-stats b{
  display:block;
  font-family: var(--font-mono);
  font-size: 1.15rem;
  color: var(--gold-pale);
  margin-top:4px;
  text-transform:none;
  letter-spacing:0;
}

/* ---------- Footer v2 ---------- */
.footer-top{
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 24px;
  padding-bottom: 40px;
  margin-bottom: 40px;
  border-bottom: 1px solid var(--charcoal-line);
  flex-wrap: wrap;
}
.footer-top-brand{ display:flex; align-items:center; gap:18px; }
.footer-top-brand img{ height: 44px; }
.footer-top-brand p{ margin:0; max-width: 40ch; font-size:.92rem; }
.footer-columns{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 30px;
  margin-bottom: 40px;
}
.footer-columns h5{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .7rem;
  color: var(--gold);
  margin-bottom: 16px;
}
.footer-columns ul{ list-style:none; margin:0; padding:0; }
.footer-columns li{ margin-bottom: 10px; }
.footer-columns a{ color: var(--cream-dim); font-size: .88rem; }
.footer-columns a:hover{ color: var(--gold); }
.footer-contact-item{
  display:flex;
  gap: 10px;
  margin-bottom: 14px;
  font-size: .86rem;
  color: var(--cream-dim);
}
.footer-contact-item svg{ flex-shrink:0; color: var(--gold); margin-top:2px; }
.pull-quote{
  border-left: 3px solid var(--gold);
  padding: 6px 0 6px 28px;
  margin: 8px 0;
}
.pull-quote p{
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.3rem;
  color: var(--cream);
  line-height: 1.5;
  margin-bottom: 12px;
}
.pull-quote .attribution{
  font-family: var(--font-mono);
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--gold);
}
.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}
@media (max-width: 900px){ .contact-grid{ grid-template-columns:1fr; } }
.form-row{ margin-bottom: 20px; }
.form-row.two{ display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
textarea{ resize: vertical; min-height: 120px; }
.contact-info-card{
  background: var(--charcoal);
  border:1px solid var(--charcoal-line);
  padding: 30px;
  margin-bottom: 18px;
}
.contact-info-card .eyebrow{ display:block; margin-bottom: 8px; }
