/* ============================
   TORUS — MAIN STYLES
   Premium Fantasy × Rainbow Torus
   ============================ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=Inter:wght@300;400;500;600&display=swap');

/* ── TOKENS (website-specific; brand tokens from design-tokens.css) ── */
:root {
  --ink:        var(--text-primary);   /* dark navy — primary text on light surfaces */
  --gold:       var(--brand-gold);
  --gold-light: var(--brand-gold-lt);
  --gold-dim:   var(--brand-gold-dk);
  --cream:      var(--brand-cream);
  --accent:     var(--brand-gold);
  --accent-hover: var(--brand-gold-lt);

  /* website-only surface tokens — flipped to the warm cream world */
  --slate:        var(--surface-raised); /* alternating section tint, was dark */
  --card:         var(--surface-card);   /* card surface, was dark */
  --border:       var(--surface-border);/* hairlines, was dark */
  --muted:        var(--text-secondary);/* secondary copy, was light-on-dark */
  --white:        var(--text-primary);  /* heading/emphasis text, was literal white */
  --primary-bg:   var(--surface-bg);
  --secondary-bg: var(--surface-raised);
  --text-light:   var(--text-primary);

  --nav-h: 72px;
  --radius: 18px;
  --radius-lg: 24px;
}

/* ── RESET ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background: var(--surface-bg);
  color: var(--ink);
  font-family: var(--ff-body);
  font-size: 16px;
  line-height: 1.7;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a  { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* ── UTILITY ── */
.hero {
    position: relative;
    min-height: 90vh;
}

.hero-bg {
    position: absolute;
    width: 100%;
    height: 107%;
    background: url("../../shared/images/hero-home.png") no-repeat center right;
    background-size: cover;

    opacity: 1;

    z-index: 0;
    animation: t-hero-drift-r 26s ease-in-out infinite alternate;
}

@keyframes t-hero-drift-r {
  0%   { background-position: center right; }
  100% { background-position: 46% center; }
}

.hero .container {
    position: relative;
    z-index: 2;
}
.container {
  width: min(1180px, 92%);
  margin-inline: auto;
}

.gold { color: var(--gold); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .8rem 1.8rem;
  border-radius: var(--radius);
  font-family: var(--ff-body);
  font-size: .9rem;
  font-weight: 600;
  letter-spacing: .04em;
  cursor: pointer;
  transition: all .25s;
  border: none;
}

.btn-gold {
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  color: #fff;
  box-shadow: 0 6px 18px rgba(110,78,242,.22);
}
.btn-gold:hover {
  filter: brightness(1.06);
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(110,78,242,.35);
}

.btn-outline {
  background: var(--surface-card);
  color: var(--origin);
  border: 1.5px solid var(--origin);
}
.btn-outline:hover {
  border-color: var(--origin);
  background: var(--color-gold-tint);
  color: var(--origin);
  transform: translateY(-2px);
}

.section-label {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
}
.section-label::before {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.section-heading {
  font-family: var(--ff-display);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--white);
  margin-bottom: 1rem;
}

.section-sub {
  color: var(--muted);
  max-width: 540px;
  font-size: 1.05rem;
}

/* ── NAV ── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height:auto;
  display: flex;
  align-items: center;
  transition: background .3s, backdrop-filter .3s;
}

.nav.scrolled {
  background: rgba(240, 234, 214, .85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  height:auto;
}

.nav .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(1180px, 92%);
  margin-inline: auto;
}

.nav-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.nav-logo-icon {
  font-size: 2rem;
  line-height: 1;
}

.nav-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.nav-logo-text strong {
  font-family: var(--ff-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: .06em;
}

.nav-logo-text span {
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.nav-links a {
  font-size: .85rem;
  font-weight: 500;
  letter-spacing: .04em;
  color: var(--muted);
  transition: color .2s;
  position: relative;
}

.nav-links a:hover,
.nav-links a.active { color: var(--white); }

.nav-links a.active::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0; right: 0;
  height: 1.5px;
  background: var(--gold);
}

.nav-cta {
  padding: .55rem 1.3rem;
  font-size: .82rem;
}

.nav-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 4px;
}

.nav-hamburger span {
  display: block;
  width: 24px;
  height: 1.5px;
  background: var(--ink);
  transition: all .3s;
}

/* ── HERO ── */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  padding-top: var(--nav-h);
}

/* Soft cream scrim — keeps left-side copy legible over the hero illustration */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(240,234,214,.97) 0%, rgba(240,234,214,.92) 45%, rgba(240,234,214,.55) 62%, rgba(240,234,214,.15) 78%, transparent 92%),
    linear-gradient(0deg, rgba(240,234,214,.6) 0%, transparent 30%);
  z-index: 0;
}

/* Rainbow glow accent */
.hero::after {
  content: '';
  position: absolute;
  top: -20%;
  right: 0;
  width: 65%;
  height: 140%;
  background: radial-gradient(ellipse 60% 80% at 70% 40%, rgba(110,78,242,.10) 0%, transparent 65%);
  z-index: 0;
  pointer-events: none;
}

.hero .container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 4rem;
  padding-block: 6rem 4rem;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(110,78,242,.1);
  border: 1px solid rgba(110,78,242,.3);
  border-radius: 99px;
  padding: .4rem 1rem;
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: var(--gold);
  margin-bottom: 1.5rem;
}

.hero-title {
  font-family: var(--ff-display);
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  font-weight: 900;
  line-height: 1.05;
  color: var(--white);
  margin-bottom: 1.5rem;
}

.hero-title .highlight {
  background: var(--gradient-torus-flow);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  display: block;
}

.hero-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 1.5rem;
}

.hero-divider::before,
.hero-divider::after {
  content: '';
  flex: 1;
  max-width: 60px;
  height: 1px;
  background: var(--gold-dim);
}

.hero-divider-diamond {
  color: var(--gold);
  font-size: .6rem;
}

.hero-desc {
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.75;
  max-width: 460px;
  margin-bottom: 2.5rem;
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.hero-trust {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.trust-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .8rem;
  color: var(--muted);
}

.trust-item svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--gold);
  stroke-width: 1.5;
}

/* ── HERO VISUAL ── */
.hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.chess-stage {
  position: relative;
  width: 420px;
  height: 420px;
}

.chess-board-art {
  width: 100%;
  height: 100%;
}

/* ── STATS BAR ── */
.stats-bar {
  background: var(--card);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 2.5rem 0;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
}

.stat-item {
  background: var(--card);
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 2rem;
}

.stat-icon {
  font-size: 1.8rem;
  flex-shrink: 0;
}

.stat-value {
  font-family: var(--ff-display);
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
}

.stat-label {
  font-size: .78rem;
  color: var(--muted);
  letter-spacing: .04em;
  margin-top: .2rem;
}

/* ── PROGRAMS ── */

.programs {
  padding: 6rem 0;
}

.programs-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 3rem;
  gap: 2rem;
  flex-wrap: wrap;
}

.programs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.program-card {
  background: var(--card);
  padding: 2.5rem;
  position: relative;
  transition: background .3s, transform .3s var(--ease-spring), box-shadow .3s;
  display: flex;
  flex-direction: column;
  height: 100%;
}


.program-card.featured {
  background: var(--slate);
}

.program-card:hover {
  background: var(--surface-raised);
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  z-index: 1;
}

.program-featured-tag {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .25rem .65rem;
  border-radius: 99px;
}

.program-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  display: block;
}

.program-level {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .35rem;
}

.program-name {
  font-family: var(--ff-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .25rem;
}

.program-age {
  font-size: .8rem;
  color: var(--muted);
  margin-bottom: 1rem;
}

.program-desc {
  font-size: .9rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.program-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border);
    margin-top: auto;
}
.program-price {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--gold);
}

.program-price small {
  font-family: var(--ff-body);
  font-size: .7rem;
  color: var(--muted);
  font-weight: 400;
}

.program-sessions {
  font-size: .78rem;
  color: var(--muted);
}

.private-coaching{
    padding:6rem 0;
}

.coaching-levels{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.5rem;
}

.coach-tier{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);

    padding:1.75rem;

    display:flex;
    flex-direction:column;
}

.tier-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:.75rem;
}

.tier-header h3{
    margin:0;
    color:var(--white);
    font-size:1.1rem;
}

.tier-header span{
    color:var(--gold);
    font-weight:700;
}

.tier-meta{
    color:var(--muted);
    font-size:.8rem;
    margin-bottom:1rem;
}

.tier-features{
    margin:0;
    padding-left:1rem;

    flex-grow:1;
}

.tier-features li{
    margin-bottom:.5rem;
    color:var(--muted);
}

.tier-footer{
    margin-top:auto;

    padding-top:1rem;

    border-top:1px solid var(--border);

    display:flex;
    justify-content:space-between;
    align-items:center;
}

/* ── WHY US ── */
.why {
  padding: 6rem 0;
  background: var(--slate);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.why-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

.why-features {
  display: grid;
  gap: 2rem;
  margin-top: 2.5rem;
}

.feature-item {
  display: flex;
  gap: 1.25rem;
}

.feature-icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  background: rgba(110,78,242,.1);
  border: 1px solid rgba(110,78,242,.25);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}

.feature-title {
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 600;
  color: var(--white);
  margin-bottom: .3rem;
}

.feature-desc {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.65;
}

/* Board illustration */
.why-visual {
  display: flex;
  justify-content: center;
  position: relative;
}

.why-visual::before {
  content: '';
  position: absolute;
  inset: -15% -10%;
  background: url("../../shared/images/illustrations/floating-castle-island.png") no-repeat center / contain;
  opacity: 0.18;
  z-index: 0;
  pointer-events: none;
}

.board-grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  width: 340px;
  height: 340px;
  border: 2px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 0 60px rgba(110,78,242,.12);
  position: relative;
  z-index: 1;
  animation: t-float 7s ease-in-out infinite;
}

.board-cell {
  aspect-ratio: 1;
}

.board-cell.dark { background: var(--infinity); }
.board-cell.light { background: var(--surface-card); }

.board-cell.has-piece {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
}

.board-cell.has-piece.gold-piece { color: var(--gold); }
.board-cell.has-piece.silver-piece { color: var(--muted); }

/* ── COACHES ── */
.coaches {
  padding: 6rem 0;
}

.coaches-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.coaches-header .section-label { justify-content: center; }
.coaches-header .section-label::before { display: none; }
.coaches-header .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.coaches-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.coach-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  text-align: center;
  transition: border-color .3s, transform .3s;
}

.coach-card:hover {
  border-color: rgba(110,78,242,.4);
  transform: translateY(-4px);
}

.coach-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-family: var(--ff-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: #fff;
}

.coach-name {
  font-family: var(--ff-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .25rem;
}

.coach-title {
  font-size: .78rem;
  color: var(--gold);
  font-weight: 500;
  margin-bottom: .25rem;
}

.coach-rating {
  font-size: .72rem;
  color: var(--muted);
  letter-spacing: .06em;
  margin-bottom: 1rem;
}

.coach-bio {
  font-size: .85rem;
  color: var(--muted);
  line-height: 1.65;
}

/* ── TESTIMONIALS ── */
.testimonials {
  padding: 6rem 0;
  background: var(--slate);
  border-top: 1px solid var(--border);
}

.testimonials-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.testimonials-header .section-label { justify-content: center; }
.testimonials-header .section-label::before { display: none; }
.testimonials-header .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.testimonial-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  position: relative;
  transition: transform .35s var(--ease-spring), box-shadow .35s;
}

.testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.testimonial-quote {
  font-size: 3rem;
  line-height: 1;
  color: var(--gold-dim);
  font-family: Georgia, serif;
  margin-bottom: .5rem;
}

.testimonial-stars {
  color: var(--gold);
  font-size: .9rem;
  letter-spacing: .1em;
  margin-bottom: 1rem;
}

.testimonial-text {
  font-size: .92rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.5rem;
  font-style: italic;
}

.testimonial-author strong {
  display: block;
  font-size: .88rem;
  color: var(--white);
  font-weight: 600;
}

.testimonial-author span {
  font-size: .78rem;
  color: var(--gold-dim);
}

/* ── CTA SECTION ── */
.cta-section {
  padding: 6rem 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    url("../../shared/images/illustrations/radial-chess-burst.png") no-repeat center / min(420px, 40%);
  opacity: 0.16;
  pointer-events: none;
  z-index: 0;
}

.cta-section::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 55% 65% at 50% 50%, var(--surface-bg) 0%, var(--surface-bg) 40%, transparent 78%);
  pointer-events: none;
  z-index: 0;
}

.cta-inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
}

.cta-inner .section-label { justify-content: center; }
.cta-inner .section-label::before { display: none; }
.cta-inner .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.cta-inner .section-heading { margin-bottom: 1rem; }

.cta-inner .section-sub {
  max-width: 480px;
  margin: 0 auto 2.5rem;
  text-align: center;
}

.cta-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ── FOOTER ── */
.footer {
  background: var(--card);
  border-top: 1px solid var(--border);
  padding: 3.5rem 0 2rem;
  position: relative;
}

.footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--gradient-torus-flow);
}

.footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  padding-bottom: 2.5rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2rem;
}

.footer-brand p {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin-top: 1rem;
  max-width: 280px;
}

.footer-nav h4 {
  font-family: var(--ff-display);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 1.25rem;
}

.footer-nav ul {
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

.footer-nav a {
  font-size: .85rem;
  color: var(--muted);
  transition: color .2s;
}

.footer-nav a:hover { color: var(--gold); }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: .78rem;
  color: var(--muted);
}

/* ── INNER PAGES ── */
.page-hero {
  padding: calc(var(--nav-h) + 4rem) 0 4rem;
  text-align: center;
  background: var(--slate);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-conic-gradient(rgba(110,78,242,.03) 0% 25%, transparent 0% 50%);
  background-size: 40px 40px;
}

.page-hero .container { position: relative; }

.page-hero h1 {
  font-family: var(--ff-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  color: var(--white);
  margin-bottom: .75rem;
}

.page-hero p {
  font-size: 1.1rem;
  color: var(--muted);
  max-width: 500px;
  margin: 0 auto;
}

/* ── BOOKING FORM ── */
.booking-section {
  padding: 5rem 0;
}

.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 4rem;
  align-items: start;
}

.booking-info h2 {
  font-family: var(--ff-display);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 1rem;
}

.booking-info p {
  color: var(--muted);
  margin-bottom: 2rem;
  line-height: 1.75;
}

.booking-perks {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.perk-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .9rem;
  color: var(--ink);
}

.perk-icon {
  font-size: 1.1rem;
  flex-shrink: 0;
}

.booking-form-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.form-group {
  margin-bottom: 1.25rem;
}

.form-group label {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .5rem;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  background: var(--slate);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: .75rem 1rem;
  color: var(--ink);
  font-family: var(--ff-body);
  font-size: .9rem;
  transition: border-color .2s;
  outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(110,78,242,.12);
}

.form-group select option { background: var(--slate); }

.form-group textarea {
  resize: vertical;
  min-height: 100px;
}

.form-submit {
  width: 100%;
  padding: 1rem;
  font-size: 1rem;
}
/* FAQ SECTION */

.faq-section {
    padding: 5rem 0;
    background: var(--slate);
}

.faq-list {
    max-width: 900px;
    margin: 3rem auto 0;
}

.faq-item {
    border: 1px solid var(--surface-border);
    border-radius: 18px;
    margin-bottom: 1rem;
    overflow: hidden;
    background: var(--surface-card);
    box-shadow: var(--shadow-sm);
    transition: all .3s ease;
}

.faq-item:hover {
    border-color: rgba(110,78,242,0.3);
    box-shadow: var(--shadow-md);
}

.faq-question {
    width: 100%;
    border: none;
    background: transparent;
    color: var(--white);
    padding: 1.35rem 1.5rem;
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.faq-icon {
    font-size: 1.4rem;
    color: var(--gold);
    transition: transform .3s ease;
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease;
}

.faq-answer p {
    padding: 0 1.5rem 1.5rem;
    margin: 0;
    color: var(--gray-300);
    line-height: 1.7;
}

.faq-item.active .faq-answer {
    max-height: 250px;
}

.faq-item.active .faq-icon {
    transform: rotate(45deg);
}

/* Mobile */

@media (max-width: 768px) {

    .faq-question {
        font-size: .95rem;
        padding: 1rem 1.25rem;
    }

    .faq-answer p {
        padding: 0 1.25rem 1.25rem;
        font-size: .95rem;
    }

}
/* ── MESSAGES ── */
.messages-container {
  position: fixed;
  top: calc(var(--nav-h) + 1rem);
  right: 1.5rem;
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.message {
  background: var(--card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  font-size: .88rem;
  color: var(--ink);
  max-width: 360px;
  animation: slideIn .3s ease;
}

.wa-widget{
    position:fixed;
    bottom:25px;
    right:25px;
    z-index:9999;
}

.wa-main-btn{
    width:65px;
    height:65px;
    border:none;
    border-radius:50%;
    background:#25D366;
    color:white;
    font-size:30px;
    cursor:pointer;
    box-shadow:0 8px 25px rgba(0,0,0,.3);
}

.wa-menu{
    display:none;
    position:absolute;
    right:0;
    bottom:80px;
    min-width:220px;
    background:var(--card);
    border-radius:12px;
    overflow:hidden;
    box-shadow:var(--shadow-md);
}

.wa-menu.active{
    display:block;
}

.wa-menu a{
    display:block;
    padding:14px 18px;
    text-decoration:none;
    color:#111;
    border-bottom:1px solid #eee;
}

.wa-menu a:hover{
    background:#f5f5f5;
}
.whatsapp-float{
    position:fixed;
    right:25px;
    bottom:25px;
    width:65px;
    height:65px;
    background:#25D366;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:9999;
    box-shadow:0 8px 25px rgba(0,0,0,.3);
    transition:.3s ease;
    text-decoration:none;
}

.whatsapp-float:hover{
    transform:scale(1.1);
}

.whatsapp-tooltip{
    position:absolute;
    right:80px;
    background:#111827;
    color:#fff;
    padding:10px 14px;
    border-radius:8px;
    white-space:nowrap;
    opacity:0;
    transition:.3s;
    font-size:14px;
}

.whatsapp-float:hover .whatsapp-tooltip{
    opacity:1;
}
.wa-main-btn{
    width:68px;
    height:68px;
    border:none;
    border-radius:50%;
    background:linear-gradient(
        135deg,
        var(--origin),
        var(--imagination)
    );
    color:#fff;
    cursor:pointer;
    font-size:28px;
    font-weight:bold;

    box-shadow:
        0 10px 30px rgba(110,78,242,.35);

    transition:.3s ease;
}

.wa-main-btn:hover{
    transform:translateY(-4px);
    box-shadow:
        0 15px 40px rgba(110,78,242,.45);
}
@media(max-width:768px){

    .topbar{
        display:none;
    }

}
@media(max-width:768px){

    .whatsapp-float{
        width:60px;
        height:60px;
        right:15px;
        bottom:15px;
    }

    .whatsapp-tooltip{
        display:none;
    }
}
@keyframes slideIn {
  from { transform: translateX(20px); opacity: 0; }
  to   { transform: translateX(0);   opacity: 1; }
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .hero .container { grid-template-columns: 1fr; gap: 3rem; }
  .chess-stage { width: 300px; height: 300px; }
  .why-inner { grid-template-columns: 1fr; }
  .why-visual { order: -1; }
  .board-grid { width: 260px; height: 260px; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  .nav-links { display: none; }
  .nav-links.open {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: var(--nav-h); left: 0; right: 0; bottom: 0;
    background: var(--surface-card);
    padding: 2rem;
    gap: 1.5rem;
    align-items: flex-start;
  }
  .nav-hamburger { display: flex; }
  .nav-cta { display: none; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .programs-grid { grid-template-columns: 1fr; }
  .coaches-grid { grid-template-columns: 1fr; }
  .testimonials-grid { grid-template-columns: 1fr; }
  .booking-grid { grid-template-columns: 1fr; }
  /* conversion first: booking form above the explanatory column */
  .booking-grid .booking-form-card { order: -1; }
  .form-row { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

@media (max-width: 480px) {
  .stats-grid { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr; }
  .hero-title { font-size: 2.4rem; }
}

.whatsapp-page {

    min-height:100vh;

    background:var(--surface-bg);

    padding:100px 20px;

    position:relative;
}

.whatsapp-page::before {

    content:"";

    position:absolute;

    inset:0;

    opacity:.08;

    background-image:
        linear-gradient(
            rgba(110,78,242,.2) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(110,78,242,.2) 1px,
            transparent 1px
        );

    background-size:80px 80px;
}

.whatsapp-container {

    position:relative;

    z-index:2;

    max-width:1300px;

    margin:auto;
}

.whatsapp-hero {

    text-align:center;

    margin-bottom:60px;
}

.academy-icon {

    width:90px;
    height:90px;

    margin:auto;

    border-radius:50%;

    border:1px solid rgba(110,78,242,.4);

    color:var(--brand-gold);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:3rem;

    margin-bottom:20px;
}

.academy-label {

    letter-spacing:4px;

    color:var(--brand-gold);

    font-size:.8rem;

    margin-bottom:20px;
}

.whatsapp-hero h1 {

    font-size:4rem;

    line-height:1.1;

    color:var(--ink);

    margin-bottom:20px;
}

.whatsapp-hero h1 span {

    color:var(--brand-gold);
}

.hero-text {

    color:var(--muted);

    max-width:800px;

    margin:auto;

    font-size:1.2rem;

    line-height:1.8;
}

.whatsapp-card {

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:50px;

    padding:50px;

    border-radius:30px;

    background:var(--surface-card);

    border:1px solid var(--surface-border);

    backdrop-filter:blur(12px);

    box-shadow:var(--shadow-md);
}

.qr-section {

    text-align:center;
}

.qr-section h2,
.info-section h2 {

    color:var(--ink);

    margin-bottom:30px;
}

.qr-wrapper {

    background:white;

    padding:20px;

    border-radius:20px;

    display:inline-block;

    box-shadow:var(--shadow-sm);
}

.qr-wrapper img {

    width:320px;

    display:block;
}

.qr-section p {

    margin-top:20px;

    color:var(--muted);
}

.feature {

    background:var(--surface-raised);

    border:1px solid var(--surface-border);

    border-radius:16px;

    padding:20px;

    margin-bottom:20px;
}

.feature h3 {

    color:var(--brand-gold);

    margin-bottom:10px;
}

.feature p {

    color:var(--muted);
}

.whatsapp-btn {

    display:inline-block;

    margin-top:20px;

    background:var(--brand-gold);

    color:#fff;

    padding:15px 30px;

    border-radius:999px;

    font-weight:700;

    text-decoration:none;

    transition:.3s;
}

.whatsapp-btn:hover {

    transform:translateY(-3px);
}

@media(max-width:900px){

    .whatsapp-card{

        grid-template-columns:1fr;
    }

    .whatsapp-hero h1{

        font-size:2.8rem;
    }

    .qr-wrapper img{

        width:250px;
    }
}


/* css for registration page */
.auth-section{
    min-height:100vh;
    padding:80px 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f8fafc;
}

.auth-container{
    width:100%;
    max-width:1200px;
    display:grid;
    grid-template-columns:1fr 500px;
    gap:60px;
    align-items:center;
}

.auth-left h1{
    font-size:3rem;
    margin-bottom:1rem;
}

.auth-left p{
    color:#64748b;
    line-height:1.8;
    margin-bottom:2rem;
}

.auth-badge{
    display:inline-block;
    padding:8px 16px;
    border-radius:999px;
    background:#eef2ff;
    color:#4338ca;
    font-size:.85rem;
    font-weight:600;
    margin-bottom:1rem;
}

.auth-features{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.feature-item{
    font-weight:500;
}

.auth-card{
    background:#fff;
    padding:40px;
    border-radius:24px;
    box-shadow:0 10px 40px rgba(0,0,0,.08);
}

.auth-card h2{
    margin-bottom:25px;
}

.form-group{
    margin-bottom:18px;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.form-group label{
    display:block;
    margin-bottom:6px;
    font-weight:600;
}

.form-group input{
    width:100%;
    padding:14px;
    border:1px solid #dbe2ea;
    border-radius:12px;
}

.auth-btn{
    width:100%;
    padding:14px;
    border:none;
    border-radius:12px;
    cursor:pointer;
    font-size:1rem;
    font-weight:600;
}

.auth-footer{
    margin-top:20px;
    text-align:center;
}

.alert-error{
    padding:12px;
    background:#fee2e2;
    color:#991b1b;
    border-radius:10px;
    margin-bottom:15px;
}

@media(max-width:992px){

    .auth-container{
        grid-template-columns:1fr;
    }

    .auth-left{
        display:none;
    }

    .auth-card{
        max-width:600px;
        margin:auto;
    }
}

/* ═══════════════════════════════════════════════════════
   UI.2 — WEBSITE PREMIUM UPGRADE
═══════════════════════════════════════════════════════ */

/* ── HERO LOAD ANIMATION ── */
.hero-content {
  animation: t-fade-up .9s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* ── COUNTRY TRUST MARQUEE ── */
.trust-marquee-section {
  background: var(--slate);
  border-bottom: 1px solid var(--border);
  padding: 1rem 0;
  overflow: hidden;
}

.trust-marquee-label {
  text-align: center;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .6rem;
  opacity: .7;
}

.trust-marquee-wrap {
  overflow: hidden;
  position: relative;
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}

.trust-marquee-track {
  display: flex;
  gap: 2rem;
  animation: torus-marquee 28s linear infinite;
  width: max-content;
}

.trust-marquee-track span {
  font-size: .82rem;
  color: var(--muted);
  white-space: nowrap;
  padding: .3rem .85rem;
  border: 1px solid var(--border);
  border-radius: 99px;
  background: rgba(110,78,242,.04);
  flex-shrink: 0;
}

@keyframes torus-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── ACHIEVEMENTS (TROPHY WALL) ── */
.achievements {
  padding: 5.5rem 0;
  background: var(--slate);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}

.achievements::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 100% at 50% 50%, rgba(110,78,242,.06) 0%, transparent 65%);
  pointer-events: none;
}

.achievements-header {
  text-align: center;
  margin-bottom: 3.5rem;
}

.achievements-header .section-label { justify-content: center; }
.achievements-header .section-label::before { display: none; }
.achievements-header .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.achievements-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.achievement-tile {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2.5rem 2rem;
  text-align: center;
  transition: border-color .3s, transform .3s;
}

.achievement-tile:hover {
  border-color: rgba(110,78,242,.4);
  transform: translateY(-4px);
}

.achievement-icon-big {
  font-size: 2.5rem;
  line-height: 1;
  margin-bottom: 1rem;
}

.achievement-count {
  font-family: var(--ff-display);
  font-size: 2.5rem;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  margin-bottom: .6rem;
  font-variant-numeric: tabular-nums;
}

.achievement-label {
  font-size: .82rem;
  color: var(--muted);
  letter-spacing: .04em;
}

/* ── CONVERSION STRIP ── */
.conv-strip {
  background: linear-gradient(135deg, rgba(110,78,242,.11) 0%, rgba(110,78,242,.04) 100%);
  border-top: 1px solid rgba(110,78,242,.22);
  border-bottom: 1px solid rgba(110,78,242,.22);
  padding: 2.5rem 0;
}

.conv-strip-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}

.conv-strip-text {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.conv-strip-title {
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--white);
}

.conv-strip-sub {
  font-size: .88rem;
  color: var(--muted);
}

/* ── STICKY CTA BAR ── */
.sticky-cta {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 200;
  background: rgba(255, 248, 234, .95);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(110,78,242,.35);
  box-shadow: 0 -10px 30px rgba(45,43,66,.08);
  transform: translateY(100%);
  transition: transform .45s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.sticky-cta.is-visible {
  transform: translateY(0);
}

/* Never stack the sticky CTA on top of the cookie banner — the banner
   gets [hidden] once consent is given, releasing this rule */
body:has(#cookieBanner:not([hidden])) .sticky-cta {
  transform: translateY(100%) !important;
}

.sticky-cta-inner {
  max-width: 1180px;
  width: 92%;
  margin: 0 auto;
  padding: .85rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.sticky-cta-text {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .9rem;
  color: var(--ink);
  flex: 1;
}

.sticky-cta-emoji {
  font-size: 1.2rem;
  color: var(--gold);
  flex-shrink: 0;
}

.sticky-cta-btn {
  flex-shrink: 0;
  font-size: .82rem;
  padding: .55rem 1.25rem;
}

.sticky-cta-close {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 1.4rem;
  cursor: pointer;
  flex-shrink: 0;
  line-height: 1;
  padding: 4px 6px;
  transition: color .2s;
}

.sticky-cta-close:hover { color: var(--white); }

/* ── EXIT-INTENT POPUP ── */
.exit-popup {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}

.exit-popup.is-open {
  opacity: 1;
  visibility: visible;
}

.exit-popup-card {
  background: var(--card);
  border: 1px solid rgba(110,78,242,.3);
  border-radius: var(--radius-lg);
  padding: 3rem 2.5rem;
  max-width: 440px;
  width: 90%;
  text-align: center;
  position: relative;
  animation: t-scale-in .4s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.exit-popup-close {
  position: absolute;
  top: .9rem; right: .9rem;
  background: var(--surface-raised);
  border: none;
  color: var(--muted);
  width: 32px; height: 32px;
  border-radius: 50%;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .2s, background .2s;
}

.exit-popup-close:hover {
  color: var(--ink);
  background: var(--surface-border);
}

.exit-popup-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  line-height: 1;
  color: var(--gold);
}

.exit-popup-title {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .75rem;
}

.exit-popup-body {
  font-size: .92rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.75rem;
}

.exit-popup-note {
  margin-top: 1rem;
  font-size: .78rem;
  color: var(--muted);
}

/* ── TESTIMONIAL LOCATION UPGRADE ── */
.testimonial-location {
  font-size: .75rem;
  color: var(--gold-dim);
  opacity: .75;
  margin-top: .15rem;
}

/* ── UI.2 RESPONSIVE ── */
@media (max-width: 768px) {
  .achievements-grid   { grid-template-columns: 1fr 1fr; }
  .conv-strip-inner    { flex-direction: column; text-align: center; }
  .sticky-cta-text strong { display: none; }
  .sticky-cta-inner    { justify-content: center; gap: 1rem; }
}

@media (max-width: 480px) {
  .achievements-grid { grid-template-columns: 1fr 1fr; gap: 1rem; }
  .achievement-tile  { padding: 1.75rem 1.25rem; }
  .achievement-count { font-size: 2rem; }
}

/* ═══════════════════════════════════════════════════════
   UI.2B — COMPLETE WEBSITE PREMIUM EXPERIENCE
═══════════════════════════════════════════════════════ */

/* ── ENHANCED PAGE HERO ────────────────────────────────
   Consistent premium checkered theme for all inner pages
──────────────────────────────────────────────────────── */
.page-hero {
  /* real nav renders 96px (not the 80px --nav-h assumed); clearance
     computed from the true height, with tightened breathing room */
  padding: calc(96px + 2.5rem) 0 3.5rem;
  text-align: center;
  background: var(--slate);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(110,78,242,.10) 0%, transparent 70%),
    repeating-conic-gradient(rgba(110,78,242,.05) 0% 25%, transparent 0% 50%);
  background-size: 100% 100%, 48px 48px;
}

.page-hero::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 55%;
  height: 100%;
  background: radial-gradient(ellipse 60% 80% at 80% 40%, rgba(110,78,242,.1) 0%, transparent 65%);
  pointer-events: none;
}

.page-hero .container { position: relative; z-index: 1; }

.page-hero h1 {
  font-family: var(--ff-display);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 900;
  color: var(--white);
  line-height: 1.1;
  margin-bottom: .75rem;
}

.page-hero p {
  font-size: 1.1rem;
  color: var(--muted);
  max-width: 540px;
  margin: 0 auto;
  line-height: 1.7;
}

.page-hero .section-label {
  justify-content: center;
  margin-bottom: .9rem;
}

/* ── Per-page hero artwork ───────────────────────────────
   Each inner page gets its own illustration from the Torus
   artwork set, full-bleed behind a cream vignette so the
   centred heading always stays legible.
──────────────────────────────────────────────────────── */
.page-hero-about,
.page-hero-programs,
.page-hero-coaches,
.page-hero-contact,
.page-hero-booktrial {
  background-size: cover;
  background-position: center 65%;
  animation: t-hero-drift 24s ease-in-out infinite alternate;
}

@keyframes t-hero-drift {
  0%   { background-position: center 60%; }
  100% { background-position: center 70%; }
}
.page-hero-about       { background-image: url("../../shared/images/illustrations/children-circle-portal.png"); }
.page-hero-programs    { background-image: url("../../shared/images/illustrations/rainbow-stairway-kids.png"); }
.page-hero-coaches     { background-image: url("../../shared/images/illustrations/global-community-orbit.png"); }
.page-hero-contact     { background-image: url("../../shared/images/illustrations/kids-rainbow-portal-path.png"); }
.page-hero-booktrial   { background-image: url("../../shared/images/illustrations/flow-ribbon-chess.png"); }

.page-hero-about::before,
.page-hero-programs::before,
.page-hero-coaches::before,
.page-hero-contact::before,
.page-hero-booktrial::before {
  background:
    radial-gradient(ellipse 60% 65% at 50% 40%, rgba(240,234,214,.95) 0%, rgba(240,234,214,.65) 55%, transparent 82%),
    linear-gradient(180deg, rgba(240,234,214,.3) 0%, transparent 25%, transparent 70%, rgba(240,234,214,.55) 100%),
    repeating-conic-gradient(rgba(110,78,242,.04) 0% 25%, transparent 0% 50%);
  background-size: 100% 100%, 100% 100%, 48px 48px;
}

.page-hero .section-label::before { display: none; }
.page-hero .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

/* ── NAV HEIGHT VARIABLE (needed by page-hero) ── */
:root { --nav-h: 80px; }

/* ── GENERIC PAGE SECTION ──────────────────────────── */
.page-section {
  padding: 5rem 0;
}

.page-section.alt {
  background: var(--slate);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.page-section-head {
  text-align: center;
  margin-bottom: 3.5rem;
}

.page-section-head .section-label { justify-content: center; }
.page-section-head .section-label::before { display: none; }
.page-section-head .section-label::after {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gold);
}

/* ── ABOUT PAGE ─────────────────────────────────────── */
.about-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: start;
  margin-bottom: 5rem;
}

.about-body p {
  color: var(--muted);
  line-height: 1.85;
  margin-bottom: 1.2rem;
  font-size: .95rem;
}

.about-quote-card {
  background: var(--card);
  border: 1px solid rgba(110,78,242,.2);
  border-radius: var(--radius-lg);
  padding: 3rem 2.5rem;
  text-align: center;
  position: relative;
}

.about-quote-card::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

.about-quote-icon {
  font-size: 4.5rem;
  line-height: 1;
  margin-bottom: 1.5rem;
  display: block;
  filter: drop-shadow(0 0 20px rgba(110,78,242,.3));
}

.about-quote-text {
  font-family: var(--ff-display);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--white);
  line-height: 1.5;
  margin-bottom: .75rem;
  font-style: italic;
}

.about-quote-attr {
  color: var(--gold-dim);
  font-size: .82rem;
  letter-spacing: .05em;
}

.about-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.about-value-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2rem;
  transition: border-color .3s, transform .3s;
}

.about-value-card:hover {
  border-color: rgba(110,78,242,.35);
  transform: translateY(-3px);
}

.about-value-icon {
  font-size: 2rem;
  margin-bottom: .85rem;
  display: block;
}

.about-value-title {
  font-family: var(--ff-display);
  font-size: .95rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: .02em;
}

.about-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-top: 5rem;
}

.about-stat {
  background: var(--card);
  padding: 2rem;
  text-align: center;
}

.about-stat-value {
  font-family: var(--ff-display);
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  margin-bottom: .35rem;
}

.about-stat-label {
  font-size: .78rem;
  color: var(--muted);
  letter-spacing: .04em;
}

.about-cta-strip {
  margin-top: 5rem;
  background: linear-gradient(135deg, rgba(110,78,242,.1), rgba(110,78,242,.04));
  border: 1px solid rgba(110,78,242,.2);
  border-radius: var(--radius-lg);
  padding: 3rem;
  text-align: center;
}

.about-cta-strip h3 {
  font-family: var(--ff-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .75rem;
}

.about-cta-strip p {
  color: var(--muted);
  margin-bottom: 1.75rem;
  max-width: 480px;
  margin-inline: auto;
}

/* ── PROGRAMS PAGE ──────────────────────────────────── */
/* Surface the product: the first program row should crest the fold */
.page-hero-programs { padding-bottom: 2rem; }
.page-hero-programs p { max-width: 640px; }
.page-section:has(.prog-list) { padding-top: 2.5rem; }
.page-section:has(.prog-list) .page-section-head { margin-bottom: 1.25rem; }

.prog-list {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.prog-row {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
  display: grid;
  grid-template-columns: 200px 1fr 180px;
  gap: 2.5rem;
  align-items: center;
  position: relative;
  transition: border-color .3s, box-shadow .3s;
}

.prog-row:hover {
  border-color: rgba(110,78,242,.25);
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
}

.prog-row.prog-featured {
  background: var(--slate);
  border-color: rgba(110,78,242,.35);
}

.prog-row-badge {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: .3rem .75rem;
  border-radius: 99px;
}

.prog-row-left { display: flex; flex-direction: column; align-items: flex-start; }

.prog-row-icon {
  font-size: 3.5rem;
  line-height: 1;
  margin-bottom: .9rem;
}

.prog-row-level {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .35rem;
}

.prog-row-name {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .35rem;
  line-height: 1.2;
}

.prog-row-meta {
  font-size: .8rem;
  color: var(--muted);
}

.prog-row-center p {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.75;
  margin-bottom: 1.25rem;
}

.prog-skills {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.prog-skill-tag {
  background: rgba(110,78,242,.08);
  border: 1px solid rgba(110,78,242,.22);
  color: var(--gold);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .05em;
  padding: .2rem .65rem;
  border-radius: 99px;
}

.prog-row-right {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .5rem;
}

.prog-price-amount {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
}

.prog-price-period {
  font-size: .78rem;
  color: var(--muted);
  margin-bottom: .75rem;
}

/* ── PRIVATE COACHING TIERS (1-on-1 Mastery) ────────── */
.priv-coaching {
  margin-top: 3rem;
  padding: 3rem;
  background: var(--slate);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}

.priv-coaching-head {
  text-align: center;
  margin-bottom: 2.5rem;
}

.priv-coaching-head h3 {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .5rem;
}

.priv-coaching-head p {
  color: var(--muted);
  font-size: .9rem;
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.7;
}

.priv-tiers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.priv-tier {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  transition: border-color .3s, transform .3s;
}

.priv-tier:hover {
  border-color: rgba(110,78,242,.4);
  transform: translateY(-4px);
}

.priv-tier-name {
  font-family: var(--ff-display);
  font-size: .9rem;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: .85rem;
}

.priv-tier-price {
  font-family: var(--ff-display);
  font-size: 1.9rem;
  font-weight: 900;
  color: var(--white);
  line-height: 1;
}

.priv-tier-period {
  font-size: .75rem;
  color: var(--muted);
  margin-bottom: .35rem;
}

.priv-tier-per {
  font-size: .78rem;
  color: var(--gold-dim);
  padding-bottom: 1rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}

.priv-tier-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  flex: 1;
}

.priv-tier-features li {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .83rem;
  color: var(--muted);
  padding: .35rem 0;
  line-height: 1.5;
}

.priv-tier-features li::before {
  content: '✓';
  color: var(--gold);
  font-weight: 700;
  font-size: .75rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

/* ── COACHES PAGE ───────────────────────────────────── */
.coach-card-enhanced {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color .3s, transform .3s, box-shadow .3s;
}

.coach-card-enhanced:hover {
  border-color: rgba(110,78,242,.4);
  transform: translateY(-5px);
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}

.coach-card-header {
  background: linear-gradient(135deg, rgba(110,78,242,.10), rgba(230,103,165,.06));
  padding: 2.5rem 2rem 1.75rem;
  text-align: center;
  border-bottom: 1px solid var(--border);
  position: relative;
}

.coach-card-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-conic-gradient(rgba(110,78,242,.03) 0% 25%, transparent 0% 50%);
  background-size: 32px 32px;
}

.coach-avatar-lg {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-family: var(--ff-display);
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  position: relative;
  z-index: 1;
  box-shadow: 0 0 0 4px rgba(110,78,242,.2), 0 0 0 8px rgba(110,78,242,.08);
}

.coach-card-name {
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--white);
  position: relative;
  z-index: 1;
}

.coach-card-title {
  font-size: .78rem;
  color: var(--gold);
  font-weight: 500;
  margin-top: .3rem;
  position: relative;
  z-index: 1;
}

.coach-card-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: rgba(110,78,242,.12);
  border: 1px solid rgba(110,78,242,.25);
  border-radius: 99px;
  padding: .3rem .8rem;
  font-size: .72rem;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: .06em;
  margin-top: .75rem;
  position: relative;
  z-index: 1;
}

.coach-card-body {
  padding: 1.75rem 2rem;
}

.coach-card-bio {
  font-size: .88rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.coach-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}

.coach-card-tag {
  font-size: .7rem;
  background: var(--surface-raised);
  border: 1px solid var(--border);
  color: var(--muted);
  padding: .2rem .6rem;
  border-radius: 99px;
}

/* ── CONTACT PAGE ───────────────────────────────────── */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 4rem;
  align-items: start;
}

.contact-info-block h2 {
  font-family: var(--ff-display);
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 1rem;
}

.contact-info-block > p {
  color: var(--muted);
  line-height: 1.8;
  font-size: .92rem;
  margin-bottom: 2rem;
}

.contact-detail-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.contact-detail {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: border-color .2s;
}

.contact-detail:hover { border-color: rgba(110,78,242,.3); }

.contact-detail-icon {
  width: 40px; height: 40px;
  flex-shrink: 0;
  background: rgba(110,78,242,.1);
  border: 1px solid rgba(110,78,242,.2);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}

.contact-detail-text {
  font-size: .88rem;
  color: var(--ink);
}

.contact-detail-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: .15rem;
}

.contact-form-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 2.5rem;
}

.contact-form-title {
  font-family: var(--ff-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 1.75rem;
}

/* ── BOOK TRIAL PAGE ────────────────────────────────── */
.trial-page-hero {
  position: relative;
}

/* ── TRUST BAR (reusable) ───────────────────────────── */
.trust-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  padding: .85rem 0 0;
  border-top: 1px solid var(--border);
  margin-top: 1.25rem;
}

.trust-bar-item {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .82rem;
  color: var(--muted);
}

.trust-bar-icon {
  color: var(--gold);
  font-size: 1rem;
}

/* ── INNER PAGE CTA STRIP ───────────────────────────── */
.inner-cta-strip {
  background: linear-gradient(135deg, rgba(110,78,242,.1), rgba(110,78,242,.03));
  border-top: 1px solid rgba(110,78,242,.2);
  border-bottom: 1px solid rgba(110,78,242,.2);
  padding: 4rem 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.inner-cta-strip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-conic-gradient(rgba(110,78,242,.025) 0% 25%, transparent 0% 50%);
  background-size: 40px 40px;
}

.inner-cta-strip-inner { position: relative; z-index: 1; }

.inner-cta-strip h2 {
  font-family: var(--ff-display);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 900;
  color: var(--white);
  margin-bottom: .75rem;
}

.inner-cta-strip p {
  color: var(--muted);
  max-width: 460px;
  margin: 0 auto 2rem;
  line-height: 1.7;
}

/* ── UI.2B RESPONSIVE ───────────────────────────────── */
@media (max-width: 1024px) {
  .prog-row { grid-template-columns: 170px 1fr 160px; gap: 2rem; }
  .priv-tiers { grid-template-columns: 1fr 1fr; }
  .about-split { grid-template-columns: 1fr; gap: 3rem; }
  .about-values-grid { grid-template-columns: 1fr 1fr; }
  .about-stats-strip { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .prog-row {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .prog-row-right { align-items: flex-start; text-align: left; }
  .prog-row-badge { top: .85rem; right: .85rem; }
  .priv-tiers { grid-template-columns: 1fr 1fr; }
  .about-values-grid { grid-template-columns: 1fr; }
  .about-stats-strip { grid-template-columns: 1fr 1fr; }
  .coaches-grid { grid-template-columns: 1fr; }
  .page-hero { padding: calc(96px + 1.5rem) 0 2.5rem; }

  /* Trust chips: 2×2 grid instead of a tall vertical stack inside heroes */
  .page-hero .trust-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem .75rem;
    justify-items: start;
    padding: .85rem 0 0;
    margin-top: 1.25rem;
  }
  .page-hero .trust-bar-item { font-size: .75rem; gap: .4rem; }
}

@media (max-width: 480px) {
  .priv-tiers { grid-template-columns: 1fr; }
  .about-stats-strip { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════
   INSTITUTIONAL CHESS PROGRAM
═══════════════════════════════════════════════════════ */

.inst-section {
  padding: 6rem 0;
  background: var(--bg);
  position: relative;
}

.inst-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: .35;
}

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

.inst-header {
  text-align: center;
  margin-bottom: 4rem;
}

.inst-badge {
  display: inline-block;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: .45rem 1.2rem;
  border-radius: 2px;
  margin-bottom: 1.5rem;
  background: rgba(110,78,242,.06);
}

.inst-heading {
  font-family: var(--ff-display);
  font-size: clamp(1.9rem, 3.5vw, 2.8rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1.2;
  margin-bottom: 1rem;
}

.inst-subheading {
  font-size: 1.05rem;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 1.25rem;
  letter-spacing: .02em;
}

.inst-intro {
  font-size: .95rem;
  color: var(--muted);
  line-height: 1.8;
  max-width: 760px;
  margin: 0 auto;
}

/* ── WHO IS THIS FOR ── */
.inst-who-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.inst-who-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1rem .75rem;
  text-align: center;
  font-size: .82rem;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: .02em;
  line-height: 1.4;
  transition: border-color .25s, transform .25s;
  cursor: default;
}

.inst-who-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
  color: var(--gold);
}

.inst-who-card .inst-who-icon {
  display: block;
  font-size: 1.4rem;
  margin-bottom: .5rem;
}

/* ── PROGRAM OPTION CARDS ── */
.inst-program-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}

.inst-program-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2.25rem 1.75rem;
  position: relative;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}

.inst-program-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.3);
}

.inst-program-card.featured {
  border-color: rgba(110,78,242,.45);
  background: linear-gradient(145deg, var(--card), rgba(110,78,242,.04));
}

.inst-program-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 1rem;
}

.inst-program-name {
  font-family: var(--ff-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .75rem;
}

.inst-program-desc {
  font-size: .87rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}

.inst-program-ideals {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.inst-program-ideals li {
  font-size: .82rem;
  color: var(--ink);
  padding-left: 1.25rem;
  position: relative;
  line-height: 1.5;
}

.inst-program-ideals li::before {
  content: '◆';
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: .55rem;
  top: .35em;
}

.inst-program-label {
  position: absolute;
  top: -1px; right: 1.5rem;
  background: var(--gold);
  color: var(--bg);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .3rem .9rem;
  border-radius: 0 0 8px 8px;
}

/* ── SKILLS GRID ── */
.inst-skills-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
}

.inst-skill-pill {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: rgba(110,78,242,.08);
  border: 1px solid rgba(110,78,242,.22);
  border-radius: 99px;
  padding: .55rem 1.1rem;
  font-size: .83rem;
  font-weight: 600;
  color: var(--gold);
  letter-spacing: .02em;
  transition: background .2s, transform .2s;
}

.inst-skill-pill:hover {
  background: rgba(110,78,242,.16);
  transform: scale(1.04);
}

/* ── WHAT SCHOOLS RECEIVE ── */
.inst-receive-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.inst-receive-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  transition: border-color .25s;
}

.inst-receive-item:hover { border-color: rgba(110,78,242,.4); }

.inst-receive-icon {
  font-size: 1.3rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

.inst-receive-text {
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.5;
}

/* ── DELIVERY MODEL ── */
.inst-delivery-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
}

.inst-delivery-item {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem 1rem;
  text-align: center;
  transition: border-color .2s;
}

.inst-delivery-item:hover { border-color: rgba(110,78,242,.4); }

.inst-delivery-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .6rem;
}

.inst-delivery-value {
  font-size: .9rem;
  font-weight: 600;
  color: var(--white);
  line-height: 1.5;
}

/* ── CERTIFICATE CARDS ── */
.inst-cert-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.inst-cert-card {
  background: linear-gradient(145deg, rgba(110,78,242,.08), rgba(230,103,165,.05)) , var(--card);
  border: 1px solid rgba(110,78,242,.25);
  border-radius: 12px;
  padding: 2rem 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.inst-cert-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 20px,
    rgba(110,78,242,.03) 20px,
    rgba(110,78,242,.03) 22px
  );
  pointer-events: none;
}

.inst-cert-sample {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%) rotate(-22deg);
  font-size: 1.6rem;
  font-weight: 900;
  letter-spacing: .2em;
  color: rgba(110,78,242,.12);
  white-space: nowrap;
  pointer-events: none;
  font-family: var(--ff-display);
  text-transform: uppercase;
}

.inst-cert-icon { font-size: 2rem; margin-bottom: .75rem; display: block; }

.inst-cert-title {
  font-family: var(--ff-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: .4rem;
}

.inst-cert-desc {
  font-size: .8rem;
  color: var(--muted);
  line-height: 1.6;
}

/* ── WHY SECTION ── */
.inst-why-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.inst-why-quote {
  background: var(--card);
  border: 1px solid rgba(110,78,242,.3);
  border-radius: 16px;
  padding: 2.5rem;
  position: relative;
}

.inst-why-quote-mark {
  font-size: 5rem;
  font-family: var(--ff-display);
  line-height: 1;
  color: rgba(110,78,242,.15);
  position: absolute;
  top: .75rem;
  left: 1.5rem;
}

.inst-why-quote-text {
  font-size: 1.05rem;
  color: var(--ink);
  line-height: 1.8;
  font-style: italic;
  margin-bottom: 1.5rem;
  position: relative;
  z-index: 1;
}

.inst-why-quote-outcome {
  font-size: .85rem;
  color: var(--gold);
  font-weight: 700;
  letter-spacing: .04em;
}

/* ── PARTNER CTA ── */
.inst-partner-cta {
  text-align: center;
  background: linear-gradient(145deg, rgba(110,78,242,.06), rgba(110,78,242,.02));
  border: 1px solid rgba(110,78,242,.2);
  border-radius: 20px;
  padding: 4rem 2rem;
  position: relative;
  overflow: hidden;
}

.inst-partner-cta::before {
  content: '♛';
  position: absolute;
  font-size: 12rem;
  opacity: .03;
  right: -2rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold);
  font-family: inherit;
  pointer-events: none;
}

.inst-partner-cta-heading {
  font-family: var(--ff-display);
  font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 700;
  color: var(--white);
  margin-bottom: 1rem;
}

.inst-partner-cta-sub {
  font-size: .95rem;
  color: var(--muted);
  margin-bottom: 2.25rem;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}

/* ── HOME SECTION ── */
.inst-home-section {
  padding: 6rem 0;
  background: var(--surface);
  position: relative;
}

.inst-home-section::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(110,78,242,.4), transparent);
}

.inst-home-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

.inst-home-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.inst-home-stat-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.5rem 1.25rem;
  text-align: center;
  transition: border-color .25s, transform .25s;
}

.inst-home-stat-card:hover {
  border-color: var(--gold);
  transform: translateY(-3px);
}

.inst-home-stat-card:first-child {
  grid-column: 1 / -1;
  background: linear-gradient(145deg, rgba(110,78,242,.07), rgba(110,78,242,.02));
  border-color: rgba(110,78,242,.3);
}

.inst-home-stat-icon {
  font-size: 1.8rem;
  display: block;
  margin-bottom: .5rem;
}

.inst-home-stat-value {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--gold);
  margin-bottom: .25rem;
}

.inst-home-stat-label {
  font-size: .78rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.inst-highlights-list {
  list-style: none;
  padding: 0;
  margin: 1.75rem 0 2.5rem;
  display: flex;
  flex-direction: column;
  gap: .7rem;
}

.inst-highlights-list li {
  display: flex;
  align-items: center;
  gap: .85rem;
  font-size: .9rem;
  color: var(--ink);
  font-weight: 500;
}

.inst-highlights-list li span.icon {
  color: var(--gold);
  font-size: 1rem;
  flex-shrink: 0;
}

/* ── MODAL ── */
.inst-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(8,6,16,.88);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  backdrop-filter: blur(6px);
}

.inst-modal-overlay.open {
  display: flex;
}

.inst-modal-box {
  background: var(--card);
  border: 1px solid rgba(110,78,242,.3);
  border-radius: 20px;
  padding: 2.75rem;
  width: 100%;
  max-width: 680px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  animation: instModalIn .3s ease;
}

@keyframes instModalIn {
  from { opacity: 0; transform: scale(.96) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

.inst-modal-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  background: none;
  border: 1px solid var(--border);
  color: var(--muted);
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  cursor: pointer;
  font-size: .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s, color .2s;
}

.inst-modal-close:hover { border-color: var(--gold); color: var(--gold); }

.inst-modal-heading {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--white);
  margin-bottom: .4rem;
}

.inst-modal-sub {
  font-size: .85rem;
  color: var(--muted);
  margin-bottom: 2rem;
}

.inst-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.inst-form-grid .full-width {
  grid-column: 1 / -1;
}

.inst-form-field {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.inst-form-label {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
}

.inst-form-input,
.inst-form-select,
.inst-form-textarea {
  background: var(--surface-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .8rem 1rem;
  color: var(--white);
  font-size: .9rem;
  font-family: inherit;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
  width: 100%;
  box-sizing: border-box;
}

.inst-form-input:focus,
.inst-form-select:focus,
.inst-form-textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(110,78,242,.12);
}

.inst-form-select option { background: var(--card); color: var(--ink); }

.inst-form-textarea { resize: vertical; min-height: 90px; }

.inst-form-submit-row {
  grid-column: 1 / -1;
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-top: .5rem;
  flex-wrap: wrap;
}

.inst-form-privacy {
  font-size: .75rem;
  color: var(--muted);
  line-height: 1.5;
}

.inst-modal-success {
  display: none;
  text-align: center;
  padding: 2rem 0;
}

.inst-modal-success-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  display: block;
}

.inst-modal-success-heading {
  font-family: var(--ff-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: .6rem;
}

.inst-modal-success-text {
  font-size: .9rem;
  color: var(--muted);
  line-height: 1.7;
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .inst-who-grid { grid-template-columns: repeat(3, 1fr); }
  .inst-delivery-grid { grid-template-columns: repeat(3, 1fr); }
  .inst-why-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .inst-home-split { grid-template-columns: 1fr; gap: 3rem; }
}

@media (max-width: 768px) {
  .inst-program-cards { grid-template-columns: 1fr; }
  .inst-cert-cards { grid-template-columns: 1fr; }
  .inst-receive-grid { grid-template-columns: 1fr; }
  .inst-who-grid { grid-template-columns: repeat(2, 1fr); }
  .inst-delivery-grid { grid-template-columns: repeat(2, 1fr); }
  .inst-form-grid { grid-template-columns: 1fr; }
  .inst-form-grid .full-width { grid-column: 1; }
  .inst-form-submit-row { grid-column: 1; }
  .inst-home-visual { grid-template-columns: 1fr; }
  .inst-home-stat-card:first-child { grid-column: 1; }
  .inst-modal-box { padding: 1.75rem; }
  .inst-section { padding: 4rem 0; }
}

@media (max-width: 480px) {
  .inst-who-grid { grid-template-columns: 1fr 1fr; }
  .inst-delivery-grid { grid-template-columns: 1fr 1fr; }
  .inst-program-cards { grid-template-columns: 1fr; }
}

/* MOB-03: Sticky close button on small screens so it doesn't scroll away */
@media (max-width: 640px) {
  .inst-modal-box {
    padding: 0;
    display: flex;
    flex-direction: column;
  }
  .inst-modal-close {
    position: sticky;
    top: 0;
    align-self: flex-end;
    background: var(--card);
    z-index: 2;
    margin: 0.75rem 0.75rem 0 0;
    border-color: var(--surface-border);
  }
  #instFormFields,
  .inst-modal-success {
    padding: 0.5rem 1.5rem 1.75rem;
  }
}

/* end css for registration page  */

/* ══════════════════════════════════════════════════════
   LEGAL PAGES
══════════════════════════════════════════════════════ */

.legal-content {
  max-width: 780px;
  margin: 0 auto;
  padding-bottom: 4rem;
  color: var(--text, #2a2a35);
  line-height: 1.8;
  font-size: 1rem;
}

.legal-content h2 {
  font-family: var(--font-display, 'Cinzel', serif);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 2.5rem 0 0.75rem;
  color: var(--white);
  border-bottom: 1px solid rgba(110,78,242,.25);
  padding-bottom: 0.4rem;
}

.legal-content h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 1.5rem 0 0.4rem;
  color: var(--gold);
}

.legal-content p  { margin: 0 0 1rem; }
.legal-content ul,
.legal-content ol { margin: 0 0 1rem 1.25rem; }
.legal-content li { margin-bottom: 0.4rem; }
.legal-content a  { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:hover { opacity: .8; }

.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
  margin: 1rem 0 1.5rem;
}
.legal-table th {
  text-align: left;
  padding: 8px 12px;
  background: var(--surface-raised);
  color: var(--muted);
  font-weight: 600;
  border-bottom: 1px solid var(--surface-border);
}
.legal-table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--surface-border);
  color: var(--ink);
  vertical-align: top;
}

@media (max-width: 600px) {
  .legal-table { font-size: .78rem; }
  .legal-table th, .legal-table td { padding: 6px 8px; }
}

/* ══════════════════════════════════════════════════════
   COOKIE BANNER
══════════════════════════════════════════════════════ */

.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 8000;
  background: rgba(255, 248, 234, .96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid rgba(110,78,242,.3);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  box-shadow: 0 -10px 30px rgba(45,43,66,.1);
}

.cookie-banner p {
  margin: 0;
  font-size: .85rem;
  color: var(--muted);
  flex: 1;
  min-width: 220px;
}

.cookie-banner a {
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-banner-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-shrink: 0;
  flex-wrap: wrap;
}

.cookie-btn-accept {
  padding: 8px 20px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--origin), var(--imagination));
  color: #fff;
  font-weight: 700;
  font-size: .82rem;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
}
.cookie-btn-accept:hover { opacity: .88; }

.cookie-btn-decline {
  padding: 8px 16px;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font-size: .82rem;
  border: 1px solid var(--surface-border);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s, color .15s;
}
.cookie-btn-decline:hover { border-color: var(--origin); color: var(--ink); }

.cookie-btn-learn {
  font-size: .82rem;
  color: var(--gold);
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}

@media (max-width: 540px) {
  .cookie-banner { padding: 12px 16px; flex-direction: column; align-items: flex-start; }
  .cookie-banner-actions { width: 100%; }
}