/* Cambridge AI Labs — theme.css
   All visual styles for the WordPress theme.
   ================================================= */

/* ── TOKENS ──────────────────────────────────────── */
:root {
  --paper:   #080C1C;
  --paper-2: #03050E;
  --panel:   #101631;
  --line:    #1B2342;
  --gold:    #F2A91B;
  --ink-50:  #F0F4F8;
  --ink-200: #E2E8F0;
  --ink-300: #CBD5E1;
  --ink-400: #94A3B8;
  --ink-500: #64748B;
  --ink-600: #475569;
  --ink-900: #0F172A;
  --radius:  10px;
  --radius-lg: 14px;
}

/* ── RESET ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'IBM Plex Sans', sans-serif; background: var(--paper); color: #E8ECF4; min-height: 100vh; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ── TYPOGRAPHY UTILITIES ───────────────────────── */
.cal-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-400); }
.cal-eyebrow--gold { color: var(--gold); }
.cal-accent { color: var(--gold); }
.cal-mark { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; color: var(--gold); }
.cal-sectitle { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; font-size: clamp(28px, 3.8vw, 52px); line-height: 1.02; color: var(--ink-900); }
.cal-sechead { margin-bottom: 44px; }
.cal-sechead__mark { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.cal-cmdline { display: inline-flex; align-items: center; gap: 9px; font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--ink-400); background: var(--ink-900); border: 1px solid var(--ink-600); border-radius: 6px; padding: 8px 13px; margin-top: 16px; white-space: nowrap; }
.cal-cmdline__p { color: var(--gold); font-weight: 700; }
.cal-cmdline__cur { width: 7px; height: 14px; background: var(--gold); display: inline-block; animation: cal-blink 1.1s steps(1) infinite; }
@keyframes cal-blink { 0%, 50% { opacity: 1 } 50.01%, 100% { opacity: 0 } }

/* ── BUTTONS ─────────────────────────────────────── */
.cal-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; border-radius: 100px; border: none; cursor: pointer; text-decoration: none; transition: opacity .15s, transform .15s; white-space: nowrap; }
.cal-btn:hover { opacity: .88; transform: translateY(-1px); }
.cal-btn--sm  { font-size: 12px; padding: 9px 20px; }
.cal-btn--md  { font-size: 14px; padding: 12px 26px; }
.cal-btn--lg  { font-size: 15px; padding: 16px 34px; }
.cal-btn--primary { background: var(--gold); color: var(--ink-900); }
.cal-btn--outline { background: transparent; color: #F0F4F8; border: 2px solid rgba(240,244,248,.35); }
.cal-btn--outline:hover { border-color: #F0F4F8; }
.cal-btn--inverse { background: var(--ink-900); color: var(--gold); border: 2px solid var(--ink-900); }
.cal-announce__cta { padding: 12px 28px; }

/* ── ANNOUNCEMENT BAR ────────────────────────────── */
.cal-announce { background: var(--gold); padding: 16px 40px; border-bottom: 2px solid rgba(15,23,42,.18); position: fixed; top: 0; left: 0; right: 0; z-index: 200; box-shadow: 0 2px 16px rgba(242,169,27,.25); }
.cal-announce-spacer { height: var(--cal-announce-h, 60px); }
body.cal-announce-sticky { padding-top: 0; }
.cal-announce__inner { max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.cal-announce__info { display: flex; align-items: center; gap: 20px; flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; }
.cal-announce__label { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; background: var(--ink-900); color: var(--gold); padding: 4px 10px; border-radius: 4px; flex-shrink: 0; }
.cal-announce__title { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 20px; color: var(--ink-900); flex-shrink: 0; }
.cal-announce__where { font-family: 'Chakra Petch', sans-serif; font-size: 18px; font-weight: 500; color: var(--ink-800, #1E293B); flex-shrink: 0; }
.cal-announce__seats { font-family: 'Chakra Petch', sans-serif; font-size: 14px; font-weight: 500; color: #374151; overflow: hidden; text-overflow: ellipsis; }
.cal-announce__cta { flex-shrink: 0; }

/* ── NAV ─────────────────────────────────────────── */
.cal-nav { position: sticky; top: var(--cal-announce-h, 60px); z-index: 100; overflow: hidden; display: flex; align-items: center; justify-content: space-between; padding: 18px 40px; background: color-mix(in oklab, var(--paper) 85%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.cal-nav__brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 10px; }
.cal-nav__links { position: relative; z-index: 1; }
.cal-nav .sx-grid-floor { opacity: .3; }
.cal-nav__logo-img { display: block; height: 26px; width: auto; }
.cal-nav__logo { width: 30px; height: 30px; background: var(--gold); border-radius: 6px; display: flex; align-items: center; justify-content: center; font-family: 'JetBrains Mono', monospace; font-sizeee: 11px; font-weight: 700; color: var(--paper); flex-shrink: 0; }
.cal-nav__name { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 17px; text-transform: uppercase; letter-spacing: .04em; color: #F0F4F8; }
.cal-nav__name em { font-style: normal; color: var(--gold); margin-left: 5px; }
.cal-nav__links { display: flex; gap: 28px; }
.cal-nav__links a { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-400); transition: color .15s; }
.cal-nav__links a:hover { color: var(--gold); }

/* ── HERO ─────────────────────────────────────────── */
.cal-hero { position: relative; overflow: hidden; padding: 88px 40px 80px; background: radial-gradient(120% 80% at 50% -10%, color-mix(in oklab, var(--gold) 10%, transparent), transparent 60%), var(--paper); }
.cal-hero__grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 56px 56px; opacity: .28; -webkit-mask-image: linear-gradient(180deg, transparent, rgba(0,0,0,.8) 40%, rgba(0,0,0,.3) 100%); mask-image: linear-gradient(180deg, transparent, rgba(0,0,0,.8) 40%, rgba(0,0,0,.3) 100%); }
.cal-hero__inner { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.cal-hero__h1 { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; font-size: clamp(44px, 7vw, 96px); line-height: .95; letter-spacing: .01em; margin: 16px 0 24px; color: #F0F4F8; }
.cal-hero__lede { font-size: clamp(16px, 1.4vw, 20px); line-height: 1.55; color: var(--ink-400); max-width: 520px; margin: 0 0 28px; text-transform: lowercase; }
.cal-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.cal-hero__img { width: 100%; border-radius: var(--radius-lg); }
.cal-media-placeholder { aspect-ratio: 4/3; background: color-mix(in oklab, var(--ink-900) 70%, var(--paper)); border: 2px dashed color-mix(in oklab, var(--gold) 35%, transparent); border-radius: var(--radius-lg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: color-mix(in oklab, var(--gold) 55%, transparent); }
.cal-media-placeholder span { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-500); letter-spacing: .1em; text-transform: uppercase; text-align: center; }
/* Booking hero variant */
.cal-hero--booking { padding: 72px 40px 64px; }
.cal-hero__course { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: 10px; padding: 16px 20px; margin-bottom: 12px; }
.cal-hero__course:last-child { margin-bottom: 0; }
.cal-hero__course-n { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--gold); letter-spacing: .1em; margin-bottom: 4px; }
.cal-hero__course-t { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: 15px; color: #F0F4F8; }
.cal-hero__course-p { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-500); margin-top: 2px; }

/* ── TRON GRID MOTIFS (ported from JSX baseline) ─── */
.sx-grid-floor { position:absolute; inset:0; overflow:hidden; pointer-events:none; --accent:var(--gold); --grid-line:color-mix(in oklab, var(--gold) 55%, transparent); z-index:0; }
.sx-grid-floor::after { content:''; position:absolute; left:50%; bottom:0; width:320%; height:75%;
  transform:translateX(-50%) perspective(440px) rotateX(74deg); transform-origin:50% 100%;
  background-image:repeating-linear-gradient(to right, var(--grid-line) 0 2px, transparent 2px 64px),
    repeating-linear-gradient(to bottom, var(--grid-line) 0 2px, transparent 2px 64px);
  -webkit-mask-image:linear-gradient(to top,#000 8%,transparent 92%); mask-image:linear-gradient(to top,#000 8%,transparent 92%); }
.sx-grid-floor--top::after { bottom:auto; top:0; transform:translateX(-50%) perspective(440px) rotateX(-74deg); transform-origin:50% 0;
  -webkit-mask-image:linear-gradient(to bottom,#000 8%,transparent 92%); mask-image:linear-gradient(to bottom,#000 8%,transparent 92%); }
.sx-grid-dots { position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.5;
  background-image:radial-gradient(rgba(242,169,27,0.16) 1px, transparent 1.6px); background-size:26px 26px; }
.cal-tron { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.cal-tron svg { position:absolute; }

/* ── LIGHTCYCLE CLIENT STRIP (bike drives across → trail → logos reveal) ─── */
.cal-strip__track { position:relative; max-width:1180px; margin:0 auto; height:122px; }
.cal-strip__trail { position:absolute; left:0; top:50%; height:3px; width:0; transform:translateY(-50%);
  background:linear-gradient(90deg,color-mix(in oklab,var(--gold) 8%,transparent),var(--gold));
  box-shadow:0 0 10px var(--gold),0 0 26px color-mix(in oklab,var(--gold) 55%,transparent); border-radius:2px; z-index:2; }
.cal-strip__bike { position:absolute; left:-190px; top:50%; transform:translateY(-50%); width:150px; opacity:0; z-index:5; }
.cal-strip__reveal { position:absolute; left:0; right:0; top:50%; height:84px; transform:translateY(-50%); overflow:hidden; display:flex; align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); opacity:0; z-index:4; }
.cal-strip.is-on .cal-strip__bike { animation:cal-ride 3.7s cubic-bezier(.5,0,.25,1) forwards; }
.cal-strip.is-on .cal-strip__trail { animation:cal-trail 3.7s cubic-bezier(.5,0,.25,1) forwards; }
.cal-strip.is-on .cal-strip__reveal { animation:cal-fade .7s ease 3.05s forwards; }
@keyframes cal-ride { 0%{left:-190px;opacity:0}6%{opacity:1}93%{opacity:1}100%{left:calc(100% + 120px);opacity:0} }
@keyframes cal-trail { 0%{width:0;opacity:0}4%{opacity:1}100%{width:100%;opacity:1} }
@keyframes cal-fade { to{opacity:1} }
@media (prefers-reduced-motion: reduce) {
  .cal-strip.is-on .cal-strip__bike { animation:none; left:auto; right:0; opacity:1; }
  .cal-strip.is-on .cal-strip__trail { animation:none; width:100%; opacity:1; }
  .cal-strip.is-on .cal-strip__reveal { animation:none; opacity:1; }
}

/* ── CLIENT STRIP ─────────────────────────────────── */
.cal-strip { padding: 44px 40px 52px; background: #050810; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.cal-strip__head { max-width: 1180px; margin: 0 auto 28px; display: flex; align-items: center; gap: 14px; }
.cal-strip__logos { max-width: 1180px; margin: 0 auto; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.cal-strip__marquee { display: flex; gap: 14px; width: max-content; animation: cal-scroll 32s linear infinite; }
@keyframes cal-scroll { from { transform: translateX(0) } to { transform: translateX(-50%) } }
.cal-logo { display: flex; align-items: center; justify-content: center; height: 60px; padding: 0 28px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in oklab, var(--panel) 80%, transparent); white-space: nowrap; flex: none; }
.cal-logo__txt { font-family: 'IBM Plex Sans', sans-serif; font-size: 20px; font-weight: 800; color: #EEF3F7; }

/* ── PROGRAMMES ───────────────────────────────────── */
.cal-programmes { background: var(--ink-50); padding: 96px 40px; }
.cal-programmes__inner { max-width: 1240px; margin: 0 auto; }
.cal-programmes .cal-sectitle { color: var(--ink-900); }
.cal-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 44px; }
.cal-card { background: #fff; border: 1px solid var(--ink-200); border-top: 3px solid var(--gold); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.cal-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(8,12,28,.12); }
.cal-card__n { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--gold); letter-spacing: .1em; }
.cal-card__t { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: 23px; margin: 12px 0 6px; color: var(--ink-900); }
.cal-card__meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-400); margin-bottom: 14px; display: block; }
.cal-card__d { font-size: 15px; line-height: 1.6; color: var(--ink-600); margin: 0 0 14px; flex: 1; text-transform: lowercase; }
.cal-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; margin-top: auto; }
.cal-card__price-block { display: flex; flex-direction: column; gap: 2px; }
.cal-card__price { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 26px; color: var(--ink-900); line-height: 1; }
.cal-card__price-sub { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-500); text-transform: uppercase; }

/* ── HOW WE TRAIN ─────────────────────────────────── */
.cal-approach { position: relative; background: var(--paper-2); padding: 96px 40px; overflow: hidden; }
.cal-approach__inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; }
.cal-quote { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: clamp(26px, 3.4vw, 44px); line-height: 1.15; margin: 16px 0 48px; color: #F0F4F8; text-wrap: balance; }
.cal-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.cal-step { border-top: 2px solid var(--gold); padding-top: 18px; }
.cal-step__media { margin-bottom: 18px; }
.cal-step__media img { width: 100%; border-radius: 10px; object-fit: cover; aspect-ratio: 16/9; }
.cal-media-sm { background: color-mix(in oklab, var(--paper-2) 80%, var(--gold) 8%); border: 1px dashed color-mix(in oklab, var(--gold) 25%, transparent); border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; height: 320px; color: color-mix(in oklab, var(--gold) 50%, transparent); }
.cal-media-sm span { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--ink-500); letter-spacing: .08em; text-transform: uppercase; }
.cal-step__n { font-family: 'JetBrains Mono', monospace; font-size: 13px; color: var(--gold); letter-spacing: .1em; }
.cal-step__t { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: 22px; margin: 12px 0 10px; color: #F0F4F8; }
.cal-step__d { font-size: 15px; line-height: 1.6; color: var(--ink-400); text-transform: lowercase; }

/* ── STATS ─────────────────────────────────────────── */
.cal-stats { background: var(--gold); padding: 64px 40px; }
.cal-stats__inner { max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.cal-stat { border-top: 2px solid var(--ink-900); padding-top: 16px; }
.cal-stat__n { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: clamp(20px, 2.8vw, 40px); line-height: 1.1; color: var(--ink-900); }
.cal-stat__l { font-size: 13px; color: #374151; margin-top: 8px; font-weight: 500; }

/* ── TESTIMONIALS ─────────────────────────────────── */
.cal-testi { background: var(--ink-50); padding: 80px 40px; }
.cal-testi__inner { max-width: 1240px; margin: 0 auto; }
.cal-testi__carousel { position: relative; min-height: 280px; }
.cal-testi__page { display: none; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cal-testi__page.is-active { display: grid; }
.cal-testi__card { background: #fff; border: 1px solid var(--ink-200); border-radius: var(--radius-lg); padding: 28px; display: flex; flex-direction: column; }
.cal-testi__photo { margin-bottom: 16px; }
.cal-testi__q { font-size: 15px; line-height: 1.6; color: var(--ink-600); flex: 1; margin: 0 0 16px; font-style: italic; }
.cal-testi__name { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: 14px; color: var(--ink-900); }
.cal-testi__by { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-500); text-transform: uppercase; letter-spacing: .06em; }
.cal-testi__nav { display: flex; align-items: center; gap: 16px; margin-top: 28px; }
.cal-testi__btn { background: none; border: 2px solid var(--ink-300); color: var(--ink-600); width: 40px; height: 40px; border-radius: 50%; font-size: 17px; cursor: pointer; transition: border-color .15s, color .15s; display: flex; align-items: center; justify-content: center; }
.cal-testi__btn:hover { border-color: var(--gold); color: var(--gold); }
.cal-testi__dots { display: flex; gap: 8px; }
.cal-testi__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink-300); border: none; cursor: pointer; transition: background .2s, width .2s; padding: 0; }
.cal-testi__dot.is-active { background: var(--gold); width: 24px; border-radius: 4px; }

/* ── UPCOMING WORKSHOPS ───────────────────────────── */
.cal-upcoming { background: var(--paper-2); border-top: 1px solid var(--line); padding: 80px 40px; }
.cal-upcoming__inner { max-width: 1240px; margin: 0 auto; }
.cal-upcoming .cal-sectitle { color: #F0F4F8; }
.cal-upcoming__list { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; margin-top: 0; }
.cal-upcoming__row { display: grid; grid-template-columns: 120px 1fr auto; gap: 24px; align-items: center; padding: 20px 28px; border-bottom: 1px solid var(--line); background: var(--panel); transition: background .15s; }
.cal-upcoming__row:last-child { border-bottom: none; }
.cal-upcoming__row:hover { background: color-mix(in oklab, var(--panel) 80%, var(--gold) 20%); }
.cal-upcoming__date { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: var(--gold); letter-spacing: .08em; text-transform: uppercase; }
.cal-upcoming__title { font-family: 'Chakra Petch', sans-serif; font-weight: 600; font-size: 17px; color: #F0F4F8; }
.cal-upcoming__loc { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--ink-400); letter-spacing: .06em; text-transform: uppercase; margin-top: 3px; }
.cal-upcoming__action { display: flex; align-items: center; gap: 12px; justify-content: flex-end; }
.cal-badge { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--gold); color: var(--ink-900); padding: 5px 12px; border-radius: 100px; white-space: nowrap; }

/* ── CTA ──────────────────────────────────────────── */
.cal-cta { position: relative; overflow: hidden; padding: 120px 40px; text-align: center; background: radial-gradient(100% 80% at 50% 100%, color-mix(in oklab, var(--gold) 20%, transparent), transparent 70%), var(--ink-50); }
.cal-cta__mark { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto 20px; padding: 0 40px; text-align: left; }
.cal-cta__inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
.cal-cta__logo { margin-bottom: 16px; }
.cal-cta__h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; font-size: clamp(32px, 5vw, 60px); line-height: 1.02; margin: 0 0 16px; color: var(--ink-900); }
.cal-cta__p { font-size: 18px; color: var(--ink-600); max-width: 560px; margin: 0 auto 32px; text-transform: lowercase; }

/* ── FOOTER ───────────────────────────────────────── */
.cal-foot { position: relative; overflow: hidden; background: var(--paper-2); border-top: 1px solid var(--line); padding: 72px 40px 34px; }
.cal-foot .sx-grid-floor { opacity: .28; }
.cal-foot__top { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
.cal-foot__brand .cal-nav__name { color: #F0F4F8; }
.cal-foot__brand p { color: var(--ink-400); font-size: 14px; line-height: 1.6; margin: 16px 0 0; max-width: 300px; text-transform: lowercase; }
.cal-foot__col { display: flex; flex-direction: column; gap: 12px; }
.cal-foot__col .cal-eyebrow { margin-bottom: 4px; }
.cal-foot__col a, .cal-foot__col span { color: var(--ink-400); font-size: 14px; }
.cal-foot__col a:hover { color: var(--gold); }
.cal-foot__bar { position: relative; z-index: 1; max-width: 1240px; margin: 48px auto 0; padding-top: 22px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-500); letter-spacing: .04em; }

/* ── BOOKING PAGE ─────────────────────────────────── */
.cal-breadcrumb { padding: 14px 40px; background: var(--panel); border-bottom: 1px solid var(--line); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-500); }
.cal-breadcrumb a { color: var(--gold); }
.cal-breadcrumb span { margin: 0 8px; opacity: .5; }
.cal-form-section { max-width: 860px; margin: 0 auto; padding: 72px 40px 96px; }
.cal-form-wrap { background: var(--panel); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: var(--radius-lg); padding: 40px; }
.cal-trust { display: flex; align-items: center; gap: 32px; flex-wrap: nowrap; overflow-x: auto; padding: 24px 0; margin-top: 32px; }
.cal-trust__item { display: flex; align-items: center; gap: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #CBD5E1; white-space: nowrap; }
.cal-trust__icon { width: 28px; height: 28px; background: color-mix(in oklab, var(--gold) 12%, transparent); border-radius: 6px; display: flex; align-items: center; justify-content: center; color: var(--gold); font-size: 13px; }

/* ── RESPONSIVE ───────────────────────────────────── */
@media (max-width: 1100px) {
  .cal-stats__inner { grid-template-columns: repeat(3, 1fr); }
  .cal-cards { grid-template-columns: 1fr 1fr; }
  .cal-testi__page { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .cal-nav { padding: 14px 20px; }
  .cal-nav__links { display: none; }
  .cal-announce { padding: 10px 16px; }
  .cal-announce__where, .cal-announce__seats { display: none; }
  .cal-announce__inner { flex-wrap: wrap; justify-content: center; gap: 8px 12px; }
  .cal-announce__info { flex: 1 1 100%; justify-content: center; overflow: visible; white-space: normal; text-align: center; gap: 10px; }
  .cal-announce__title { font-size: 14px; white-space: normal; line-height: 1.2; }
  .cal-announce__label { font-size: 10px; padding: 3px 8px; }
  .cal-announce__cta { flex: 0 0 auto; padding: 8px 18px !important; font-size: 13px !important; }
  .cal-trust { flex-wrap: wrap; gap: 12px 20px; justify-content: center; overflow-x: visible; padding: 20px 0; }
  .cal-trust__item { flex: 0 1 auto; }
  .cal-hero { padding: 52px 20px 60px; }
  .cal-hero__inner { grid-template-columns: 1fr; gap: 28px; }
  .cal-hero__media { display: none; }
  .cal-hero--booking .cal-hero__inner { grid-template-columns: 1fr; }
  .cal-programmes, .cal-approach { padding: 56px 20px; }
  .cal-cards, .cal-steps, .cal-testi__page { grid-template-columns: 1fr; }
  .cal-stats__inner { grid-template-columns: repeat(2, 1fr); }
  .cal-testi { padding: 56px 20px; }
  .cal-upcoming { padding: 56px 20px; }
  .cal-upcoming__row { grid-template-columns: 1fr; gap: 10px; }
  .cal-upcoming__action { justify-content: flex-start; }
  .cal-cta { padding: 72px 20px; }
  .cal-cta__mark { padding: 0 20px; }
  .cal-foot { padding: 48px 20px 24px; }
  .cal-foot__top { grid-template-columns: 1fr; }
  .cal-foot__bar { flex-direction: column; gap: 8px; }
  .cal-form-section { padding: 48px 20px 64px; }
  .cal-form-wrap { padding: 24px 16px; }
}

/* ── FLUENT FORMS BRAND OVERRIDES ─────────────────── */
.fluent-form-wrap { font-family: 'IBM Plex Sans', sans-serif !important; color: #E8ECF4 !important; background: transparent !important; }
.ff-el-input--label label, .ff-el-input--label .ff-el-is-required { font-family: 'JetBrains Mono', monospace !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: #94A3B8 !important; margin-bottom: 8px !important; }
.ff-el-form-control, select.ff-el-form-control { background: #080C1C !important; border: 1px solid #1B2342 !important; border-radius: 8px !important; color: #F0F4F8 !important; font-family: 'IBM Plex Sans', sans-serif !important; font-size: 15px !important; padding: 12px 14px !important; box-shadow: none !important; }
.ff-el-form-control:focus { border-color: #F2A91B !important; outline: none !important; }
.ff-el-form-control::placeholder { color: #475569 !important; }
.ff-el-group { margin-bottom: 20px !important; }
.ff-el-options .ff-el-form-check-label { color: #E8ECF4 !important; font-size: 14px !important; }
.ff-el-form-check-input:checked + label { color: #F2A91B !important; }
.ff_payment_options_wrap .ff-el-form-check-input:checked + .ff-el-form-check-label { color: #F2A91B !important; font-weight: 600 !important; }
.ff-btn-submit { background: #F2A91B !important; color: #080C1C !important; font-family: 'Chakra Petch', sans-serif !important; font-weight: 700 !important; font-size: 15px !important; text-transform: uppercase !important; letter-spacing: .06em !important; border: none !important; border-radius: 8px !important; padding: 14px 32px !important; }
.ff-btn-submit:hover { opacity: .88 !important; }
.ff_payment_summary_wrap { background: #080C1C !important; border: 1px solid #1B2342 !important; border-radius: 8px !important; color: #E8ECF4 !important; }
.error.text-danger { color: #F87171 !important; font-size: 12px !important; margin-top: 4px !important; }
.ff-stripe-payment-container { border: 1px solid #1B2342 !important; border-radius: 8px !important; padding: 14px !important; background: #080C1C !important; }

/* ── FREEBIE FUNNEL ───────────────────────────────── */
.cal-fb-quiz { padding: 96px 40px; }
.cal-fb-quiz__inner { max-width: 760px; margin: 0 auto; position: relative; z-index: 1; }
.cal-fb-quiz__h { font-size: clamp(36px, 4.4vw, 60px); margin: 12px 0 16px; }
.cal-fb-quiz__lede { font-size: 18px; color: var(--ink-300); margin-bottom: 40px; max-width: 620px; }
.cal-fb-quiz__form { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; }
.cal-fb-quiz__form label { font-family: 'JetBrains Mono', monospace; font-weight: 700; font-size: 12px; letter-spacing: .12em; color: var(--gold); text-transform: uppercase; }
.cal-fb-quiz__form input, .cal-fb-quiz__form select { background: var(--paper) !important; border: 1px solid var(--line) !important; color: var(--ink-100) !important; border-radius: 10px !important; padding: 14px 16px !important; font-family: 'IBM Plex Sans', sans-serif !important; font-size: 15px !important; }
.cal-fb-quiz__form select { min-height: 52px; }
.cal-fb-diag { padding: 72px 40px; background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cal-fb-diag__inner { max-width: 780px; margin: 0 auto; }
.cal-fb-diag__h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: clamp(28px, 3.2vw, 42px); line-height: 1.1; color: var(--ink-100); margin: 20px 0 24px; letter-spacing: .003em; }
.cal-fb-diag p { color: var(--ink-300); font-size: 17px; line-height: 1.65; margin: 0 0 16px; }
.cal-fb-diag__sig { margin-top: 24px; font-style: italic; color: var(--ink-400); font-size: 15px; }
.cal-fb-del__nextwrap { padding: 0 40px 96px; }
.cal-fb-del__nextwrap .cal-fb-del__next { max-width: 780px; margin: 0 auto; }
@media (max-width: 900px) { .cal-fb-quiz, .cal-fb-diag, .cal-fb-del__nextwrap { padding-left: 20px; padding-right: 20px; } }

.cal-fb-hero { padding: 96px 40px 72px; }
.cal-fb-hero__inner { grid-template-columns: 1.05fr 1fr; align-items: center; gap: 72px; }
.cal-fb-hero__h1 { font-size: clamp(40px, 5.5vw, 76px); text-transform: uppercase; margin: 12px 0 20px; }
.cal-fb-hero__hook { font-size: clamp(16px, 1.35vw, 20px); line-height: 1.55; color: var(--ink-300); max-width: 560px; margin: 0 0 32px; }
.cal-fb-microcopy { margin-top: 18px; display: flex; gap: 12px; flex-wrap: wrap; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-500); letter-spacing: .04em; }
.cal-fb-hero__art { display: flex; align-items: center; justify-content: center; }
.cal-fb-hero__form { display: flex; flex-direction: column; gap: 20px; background: color-mix(in oklab, var(--panel) 82%, transparent); border: 1px solid var(--line); border-radius: 16px; padding: 28px; position: relative; z-index: 1; }
.cal-fb-mockup--sm { max-width: 150px; margin: 0 auto; }
.cal-fb-bulletlist--compact { margin: 0 0 8px; }
.cal-fb-bulletlist--compact li { padding: 8px 0; }
.cal-fb-mockup { max-width: 480px; width: 100%; height: auto; filter: drop-shadow(0 30px 60px rgba(0,0,0,.55)); }
.cal-fb-mockup-ph { aspect-ratio: 3/4; max-width: 380px; margin: 0 auto; }
/* Placeholder book */
.cal-fb-book { position: relative; width: 260px; height: 340px; margin: 0 auto; box-shadow: 0 30px 60px rgba(0,0,0,.55); background: linear-gradient(135deg, #0E1A2B, #080C1C); border-top: 6px solid var(--gold); border-radius: 3px; padding: 24px 20px; display: flex; flex-direction: column; justify-content: space-between; }
.cal-fb-book__spine { position: absolute; left: -14px; top: 4px; bottom: 0; width: 14px; background: #03050E; border-radius: 3px 0 0 3px; }
.cal-fb-book__mark { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: var(--gold); letter-spacing: .1em; }
.cal-fb-book__title { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 24px; line-height: 1.05; color: #F0F4F8; text-transform: uppercase; }
.cal-fb-book__foot { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: var(--ink-500); letter-spacing: .1em; text-transform: uppercase; }
.cal-fb-book--sm { width: 180px; height: 240px; padding: 18px 14px; }
.cal-fb-book--sm .cal-fb-book__title { font-size: 16px; }
/* Bullets */
.cal-fb-bullets { padding: 88px 40px; background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cal-fb-bullets__inner { max-width: 900px; margin: 0 auto; }
.cal-fb-bullets__inner .cal-sectitle { color: #F0F4F8; margin-bottom: 32px; }
.cal-fb-bulletlist { list-style: none; padding: 0; margin: 32px 0 40px; display: grid; gap: 16px; }
.cal-fb-bulletlist li { display: grid; grid-template-columns: 56px 1fr; gap: 20px; align-items: start; padding: 20px 24px; background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius); }
.cal-fb-bulletlist__n { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 700; color: var(--gold); letter-spacing: .08em; padding-top: 3px; }
.cal-fb-bulletlist__t { font-size: 17px; line-height: 1.5; color: #E8ECF4; }
.cal-fb-bullets__cta { text-align: left; }
/* Bio */
.cal-fb-bio { padding: 88px 40px; }
.cal-fb-bio__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 64px; align-items: center; }
.cal-fb-bio__photo img, .cal-fb-bio__ph { width: 100%; aspect-ratio: 1; border-radius: var(--radius-lg); object-fit: cover; }
.cal-fb-bio__copy .cal-sectitle { color: #F0F4F8; margin-bottom: 20px; }
.cal-fb-bio__text { color: var(--ink-300); font-size: 16px; line-height: 1.65; margin-bottom: 28px; }
.cal-fb-bio__text p { margin-bottom: 12px; }
/* Opt-in */
.cal-fb-optin { padding: 96px 40px; background: radial-gradient(120% 80% at 50% -10%, color-mix(in oklab, var(--gold) 14%, transparent), transparent 60%), var(--paper-2); border-top: 1px solid var(--line); }
.cal-fb-optin__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.cal-fb-optin__inner .cal-sechead__mark { justify-content: center; }
.cal-fb-optin__h { color: #F0F4F8; margin: 8px 0 12px; }
.cal-fb-optin__sub { color: var(--ink-300); font-size: 17px; margin-bottom: 32px; }
.cal-fb-optin__form { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 32px; text-align: left; }
.cal-fb-optin__notice { padding: 16px 20px; background: rgba(242,169,27,.08); border: 1px dashed var(--gold); border-radius: 8px; color: var(--gold); font-family: 'JetBrains Mono', monospace; font-size: 13px; line-height: 1.6; }
.cal-fb-optin__fallback { color: var(--ink-400); text-align: center; }
.cal-fb-optin__fallback a { color: var(--gold); text-decoration: underline; }
/* Popup */
.cal-fb-popup[hidden] { display: none !important; }
.cal-fb-popup { position: fixed; inset: 0; z-index: 500; display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; transition: opacity .28s ease; }
.cal-fb-popup.is-open { opacity: 1; }
.cal-fb-popup .cal-fb-popup__card { transform: translateY(16px) scale(.98); transition: transform .28s ease; }
.cal-fb-popup.is-open .cal-fb-popup__card { transform: none; }
.cal-fb-popup__scrim { position: absolute; inset: 0; background: rgba(3,5,14,.85); backdrop-filter: blur(6px); }
.cal-fb-popup__card { position: relative; max-width: 720px; width: 100%; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 40px; box-shadow: 0 40px 80px rgba(0,0,0,.6); }
.cal-fb-popup__close { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--ink-400); font-size: 14px; cursor: pointer; }
.cal-fb-popup__close:hover { color: var(--gold); border-color: var(--gold); }
.cal-fb-popup__grid { display: grid; grid-template-columns: 200px 1fr; gap: 32px; align-items: center; }
.cal-fb-popup__art img { max-width: 100%; height: auto; }
.cal-fb-popup__h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 28px; text-transform: uppercase; color: #F0F4F8; margin: 8px 0 12px; line-height: 1.05; }
.cal-fb-popup__sub { color: var(--ink-300); font-size: 15px; margin-bottom: 20px; line-height: 1.5; }
/* Thank You */
.cal-fb-ty { padding: 96px 40px 120px; }
.cal-fb-ty__inner { position: relative; z-index: 1; max-width: 780px; margin: 0 auto; text-align: center; }
.cal-fb-ty__h { text-align: center; margin: 12px 0 16px; }
.cal-fb-ty__lede { font-size: 18px; line-height: 1.6; color: var(--ink-300); max-width: 620px; margin: 0 auto 44px; }
.cal-fb-ty__steps { list-style: none; padding: 0; margin: 0 0 44px; display: grid; gap: 16px; text-align: left; }
.cal-fb-ty__steps li { display: grid; grid-template-columns: 64px 1fr; gap: 20px; padding: 24px; background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius); }
.cal-fb-ty__n { font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 700; color: var(--gold); }
.cal-fb-ty__t { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 18px; color: #F0F4F8; margin-bottom: 6px; }
.cal-fb-ty__d { color: var(--ink-300); font-size: 15px; line-height: 1.55; }
.cal-fb-ty__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
/* Delivery */
.cal-fb-del { padding: 96px 40px 120px; }
.cal-fb-del__inner { position: relative; z-index: 1; max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 64px; align-items: center; }
.cal-fb-del__art img { max-width: 100%; height: auto; filter: drop-shadow(0 30px 60px rgba(0,0,0,.55)); }
.cal-fb-del__h { margin: 12px 0 16px; }
.cal-fb-del__lede { font-size: 17px; line-height: 1.6; color: var(--ink-300); margin-bottom: 32px; }
.cal-fb-del__cta { margin-bottom: 44px; }
.cal-fb-del__next { padding: 28px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.cal-fb-del__next-h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 20px; color: #F0F4F8; margin-bottom: 8px; }
.cal-fb-del__next-p { color: var(--ink-300); font-size: 15px; margin-bottom: 16px; line-height: 1.55; }
@media (max-width: 900px) {
  .cal-fb-hero { padding: 72px 20px 48px; }
  .cal-fb-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  .cal-fb-hero__art { order: -1; }
  .cal-fb-hero__form { order: 2; }
  .cal-fb-bullets, .cal-fb-bio, .cal-fb-optin, .cal-fb-ty, .cal-fb-del { padding: 64px 20px; }
  .cal-fb-bio__inner, .cal-fb-del__inner { grid-template-columns: 1fr; gap: 40px; text-align: left; }
  .cal-fb-popup__card { padding: 28px; }
  .cal-fb-popup__grid { grid-template-columns: 1fr; gap: 20px; }
  .cal-fb-popup__art { display: flex; justify-content: center; }
  .cal-fb-optin__form { padding: 20px; }
}

/* ── FREEBIE MULTI-STEP QUIZ (.cal-q wizard inside cal-fb-hero__form) ────
   Wizard reveal is JS-driven: each .cal-q__step is display:none by default;
   the currently visible one has .is-active. Matches theme tokens above.  */
.cal-q { display: flex; flex-direction: column; gap: 20px; }
.cal-q input[type=text], .cal-q input[type=email] { font-family: inherit; }

.cal-q__progress { display: flex; flex-direction: column; gap: 8px; margin-bottom: 4px; }
.cal-q__count { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-400); }
.cal-q__count b { color: var(--gold); font-weight: 700; padding: 0 2px; }
.cal-q__bar { width: 100%; height: 6px; border-radius: 999px; background: var(--panel); border: 1px solid var(--line); overflow: hidden; position: relative; }
.cal-q__bar > i { display: block; height: 100%; background: var(--gold); border-radius: 999px; transition: width .25s ease; }

.cal-q__step { display: none; flex-direction: column; gap: 16px; }
.cal-q__step.is-active { display: flex; }

.cal-q__qtag { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.cal-q__h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.2; color: var(--ink-50); margin: 0; }
.cal-q__sub { color: var(--ink-300); font-size: 15px; line-height: 1.55; margin: 0; }

.cal-q__field { display: flex; flex-direction: column; gap: 6px; }
.cal-q__label { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-400); }
.cal-q__opt-note { color: var(--ink-500); font-weight: 400; letter-spacing: .06em; margin-left: 4px; text-transform: none; }
.cal-q__input {
  width: 100%; background: var(--paper); border: 1px solid var(--line); border-radius: 10px;
  color: var(--ink-50); font-family: 'IBM Plex Sans', sans-serif; font-size: 15px;
  padding: 14px 16px; transition: border-color .15s, box-shadow .15s, background .15s;
}
.cal-q__input::placeholder { color: var(--ink-500); }
.cal-q__input:focus { outline: none; border-color: var(--gold); background: var(--paper-2); box-shadow: 0 0 0 3px color-mix(in oklab, var(--gold) 22%, transparent); }

.cal-q__err { color: #F87171; font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .04em; }
.cal-q__err[hidden] { display: none; }

.cal-q__opts { display: flex; flex-direction: column; gap: 10px; }
.cal-q__opt {
  display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: 14px;
  width: 100%; text-align: left;
  background: var(--paper); border: 1px solid var(--line); border-left: 3px solid transparent; border-radius: 10px;
  padding: 14px 16px; cursor: pointer;
  color: var(--ink-200); font-family: 'IBM Plex Sans', sans-serif; font-size: 14.5px; line-height: 1.45;
  transition: border-color .15s, background .15s, transform .1s, box-shadow .15s;
}
.cal-q__opt:hover { border-color: var(--gold); border-left-color: var(--gold); background: color-mix(in oklab, var(--gold) 6%, var(--paper)); }
.cal-q__opt:active { transform: translateY(1px); }
.cal-q__opt:focus-visible { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px color-mix(in oklab, var(--gold) 22%, transparent); }
.cal-q__opt.is-selected { border-color: var(--gold); border-left-color: var(--gold); background: color-mix(in oklab, var(--gold) 10%, var(--paper)); }

.cal-q__key {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 8px;
  background: var(--gold); color: var(--paper-2);
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 14px;
}
.cal-q__opt-t { color: inherit; }

.cal-q__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; flex-wrap: wrap; }
.cal-q__nav > span:empty { flex: 1; }
.cal-q__back { background: transparent; border: none; color: var(--ink-400); font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .06em; cursor: pointer; padding: 8px 4px; }
.cal-q__back:hover { color: var(--gold); }
.cal-q__hint { color: var(--ink-500); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 768px) {
  .cal-q__h { font-size: clamp(19px, 5vw, 24px); }
  .cal-q__opt { grid-template-columns: 34px 1fr; gap: 12px; padding: 12px 14px; font-size: 14px; }
  .cal-q__key { width: 28px; height: 28px; font-size: 13px; }
  .cal-q__nav { justify-content: flex-start; }
  .cal-fb-hero__form { padding: 22px; }
}

/* ── COURSE CARD REFRESH (2026-09-27) ────────────────────────────────
   New elements added to .cal-card: level strip at top, hook line under
   the title, flagship variant. Sits on the existing white card. */
.cal-card { position: relative; padding-top: 78px; }
.cal-card__n { display: none; } /* level strip replaces the small mono number */
.cal-card--flag { border-top-color: var(--gold); box-shadow: 0 20px 44px rgba(242,169,27,.14); }
.cal-card__level {
  position: absolute; top: 0; left: 0; right: 0;
  background: var(--paper-2, #03050E); border-bottom: 1px solid var(--line);
  padding: 12px 22px;
  display: flex; align-items: center; justify-content: space-between;
  font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  border-top-left-radius: var(--radius-lg); border-top-right-radius: var(--radius-lg);
}
.cal-card__level-l { color: var(--gold); font-weight: 700; }
.cal-card__level-l b { color: #F0F4F8; }
.cal-card__level-d { color: #94A3B8; }
.cal-card__hook {
  font-family: 'Chakra Petch', sans-serif; font-weight: 700;
  color: var(--ink-900); font-size: 19px; line-height: 1.3;
  margin: 6px 0 12px;
}
.cal-card__d { text-transform: none; }
@media (max-width: 700px) {
  .cal-card { padding-top: 74px; }
  .cal-card__level { padding: 10px 18px; font-size: 10px; letter-spacing: .12em; }
}

/* Force the level strip to render properly on the live cards (some live rules
   were winning the specificity fight). */
.cal-programmes .cal-card__level {
  background: #03050E !important;
  border-bottom: 1px solid #1B2342 !important;
  border-top-left-radius: 14px !important; border-top-right-radius: 14px !important;
  z-index: 2 !important;
}
.cal-programmes .cal-card__level-l { color: #F2A91B !important; font-weight: 700 !important; font-size: 11px !important; }
.cal-programmes .cal-card__level-l b { color: #F0F4F8 !important; }
.cal-programmes .cal-card__level-d { color: #94A3B8 !important; font-size: 11px !important; }
.cal-programmes .cal-card__hook { color: #0F172A !important; font-family: 'Chakra Petch', sans-serif !important; font-weight: 700 !important; font-size: 19px !important; line-height: 1.3 !important; margin: 6px 0 12px !important; text-transform: none !important; }
.cal-programmes .cal-card__d    { text-transform: none !important; color: #334155 !important; }

/* Two-CTA footer (Learn more link + Book button) */
.cal-card__ctas { display: flex; align-items: center; gap: 12px; }
.cal-card__learn {
  color: #A66A05 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important; letter-spacing: .12em !important; text-transform: uppercase !important;
  text-decoration: none !important; white-space: nowrap;
}
.cal-card__learn:hover { color: #F2A91B !important; text-decoration: underline !important; }


/* ──────────────────────────────────────────────────────────
   COURSE PAGES (2026-09-27 recovery)
   Adds the .cp-* shell used by page-course-basic.php,
   page-course-intermediate.php, page-course-advanced.php.
   Ported from prototype scratchpad/site/shared.css.
   ────────────────────────────────────────────────────────── */

/* -- COURSE PAGE COMMON -- */
.cp-hero { padding: 60px 40px 60px; background: radial-gradient(120% 80% at 50% -10%, color-mix(in oklab, var(--gold) 14%, transparent), transparent 60%), var(--paper); position: relative; overflow: hidden; }
.cp-hero .sx-grid-floor { position: absolute; inset: 0; opacity: .5; pointer-events: none; }
.cp-hero__inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: center; }
.cp-crumb { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-400); margin-bottom: 8px; }
.cp-crumb a { color: var(--gold); text-decoration: none; }
.cp-hero__level { display: inline-block; background: color-mix(in oklab, var(--gold) 18%, transparent); border: 1px solid color-mix(in oklab, var(--gold) 55%, transparent); color: var(--gold); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; margin-bottom: 14px; }
.cp-hero h1 { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; color: var(--ink-50); font-size: clamp(28px, 5vw, 62px); line-height: 1.02; margin: 0 0 20px; }
.cp-hero h1 em { font-style: normal; color: var(--gold); }
.cp-hero__lede { color: var(--ink-300); font-size: 18px; line-height: 1.55; margin: 0 0 28px; }
.cp-hero__meta { display: flex; flex-wrap: wrap; gap: 20px 26px; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--ink-400); letter-spacing: .08em; text-transform: uppercase; margin-bottom: 28px; }
.cp-hero__meta b { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; letter-spacing: .04em; }
.cp-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.cp-hero__card { background: color-mix(in oklab, var(--panel) 85%, transparent); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 16px; padding: 28px; }
.cp-hero__card h4 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin: 0 0 12px; }
.cp-hero__card .price-big { font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 56px; color: var(--gold); line-height: 1; margin: 0 0 4px; }
.cp-hero__card .price-sub { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; color: var(--ink-400); text-transform: uppercase; margin-bottom: 20px; }
.cp-hero__card .next-date { color: var(--ink-300); font-size: 14px; margin-bottom: 20px; }
.cp-hero__card .next-date b { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; }
.cp-hero__card .cta-full { display: block; text-align: center; background: var(--gold); color: var(--paper-2); font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 14px; padding: 16px; border-radius: 999px; text-decoration: none; }
.cp-hero__card .secondary { display: block; text-align: center; color: var(--ink-400); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-top: 10px; text-decoration: none; }

.cp-band { padding: 80px 40px; }
.cp-band__inner { max-width: 1080px; margin: 0 auto; }
.cp-band h2 { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; color: var(--ink-50); font-size: clamp(24px, 3vw, 40px); line-height: 1.1; margin: 0 0 12px; }
.cp-band h2 em { font-style: normal; color: var(--gold); }
.cp-band__lede { color: var(--ink-300); font-size: 17px; max-width: 720px; margin-bottom: 40px; }
.cp-band--dark { background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

/* Light content band — cream, dark text */
.cp-band--light { background: #F5F1E8; border-top: 1px solid #E4DDCB; border-bottom: 1px solid #E4DDCB; color: #0F172A; }
.cp-band--light h2 { color: #0F172A; }
.cp-band--light h2 em { color: #A66A05; }
.cp-band--light .cp-band__lede { color: #475569; }
.cp-band--light .cal-sechead__mark .cal-mark { color: #A66A05; }
.cp-band--light .cal-sechead__mark .cal-eyebrow { color: #A66A05; }
.cp-band--light p { color: #475569; }
.cp-band--light .cp-outcome { background: #FFFFFF; border-color: #E4DDCB; border-left-color: #A66A05; }
.cp-band--light .cp-outcome__n { color: #A66A05; }
.cp-band--light .cp-outcome__t { color: #0F172A; }
.cp-band--light .cp-outcome__p { color: #475569; }
.cp-band--light .cp-day { background: #FFFFFF; border-color: #E4DDCB; }
.cp-band--light .cp-day__head { border-bottom-color: #E4DDCB; }
.cp-band--light .cp-day__t { color: #0F172A; }
.cp-band--light .cp-day__meta { color: #A66A05; }
.cp-band--light .cp-block__time { color: #64748B; }
.cp-band--light .cp-block__body b { color: #0F172A; }
.cp-band--light .cp-block__body p { color: #475569; }
.cp-band--light .cp-fit-card { background: #FFFFFF; border-color: #E4DDCB; }
.cp-band--light .cp-fit-card h4 { color: #A66A05; }
.cp-band--light .cp-fit-list li { color: #1E293B; }
.cp-band--light .cp-fit-list li::before { color: #A66A05; }
.cp-band--light .date-row { background: #FFFFFF; border-color: #E4DDCB; border-left-color: #A66A05; color: #0F172A; }
.cp-band--light .date-row__date { color: #0F172A; }
.cp-band--light .date-row__meta { color: #64748B; }
.cp-band--light .date-row__meta .seats { color: #A66A05; }
.cp-band--light .date-row__price { color: #A66A05; }
.cp-band--light .dates-foot { color: #64748B; }

.cp-outcomes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.cp-outcome { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius); padding: 22px 24px; display: flex; gap: 14px; align-items: flex-start; }
.cp-outcome__n { font-family: 'JetBrains Mono', monospace; color: var(--gold); font-size: 12px; letter-spacing: .12em; }
.cp-outcome__t { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 15px; text-transform: uppercase; margin: 0 0 4px; letter-spacing: .04em; }
.cp-outcome__p { color: var(--ink-300); font-size: 13.5px; line-height: 1.5; margin: 0; }

.cp-agenda { display: grid; gap: 20px; }
.cp-day { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px 28px; }
.cp-day__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px dashed var(--line); flex-wrap: wrap; gap: 8px; }
.cp-day__t { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 18px; text-transform: uppercase; letter-spacing: .04em; margin: 0; }
.cp-day__meta { color: var(--gold); font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.cp-day__blocks { display: grid; gap: 14px; }
.cp-block { display: grid; grid-template-columns: 100px 1fr; gap: 20px; padding: 12px 0; align-items: start; }
.cp-block__time { color: var(--ink-500); font-family: 'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing: .06em; }
.cp-block__body b { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 14px; display: block; margin-bottom: 4px; }
.cp-block__body p { color: var(--ink-300); font-size: 13.5px; line-height: 1.5; margin: 0; }

.cp-fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.cp-fit-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.cp-fit-list li { color: var(--ink-200); font-size: 14px; padding-left: 22px; position: relative; }
.cp-fit-list li::before { content: '✓'; position: absolute; left: 0; color: var(--gold); }
.cp-fit-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px; }
.cp-fit-card h4 { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin: 0 0 14px; }

/* -- SIMPLE DATE-LIST BOOKING -- */
.dates-list { max-width: 780px; margin: 30px auto 0; display: grid; gap: 14px; }
.date-row { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; padding: 22px 26px; background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: var(--radius); text-decoration: none; transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease; color: inherit; }
.date-row:hover { transform: translateY(-1px); border-color: var(--gold); box-shadow: 0 12px 32px rgba(242,169,27,.14); }
.date-row__date { color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 4px; }
.date-row__meta { color: var(--ink-400); font-family: 'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
.date-row__meta .seats { color: var(--gold); }
.date-row__cta { display: flex; align-items: center; gap: 16px; }
.date-row__price { color: var(--gold); font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 24px; }
.date-row__btn { display: inline-flex; align-items: center; gap: 6px; background: var(--gold); color: var(--paper-2); padding: 14px 22px; font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 13px; border-radius: 999px; min-height: 44px; }
.dates-foot { text-align: center; margin-top: 22px; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .1em; color: var(--ink-500); text-transform: uppercase; }

/* Course-page section-mark helper (scoped under cp-band so we don't clash with homepage rule) */
.cp-band .cal-sechead__mark { display: flex; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.cp-band .cal-sechead__mark .cal-mark { font-family: 'JetBrains Mono', monospace; color: var(--gold); font-size: 14px; letter-spacing: .12em; }
.cal-sublede { color: var(--ink-300); font-size: 17px; max-width: 780px; margin-bottom: 40px; }

/* Course-page mobile responsive baseline (from prototype) */
@media (max-width: 900px) {
  .cp-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .cp-outcomes, .cp-fit-grid { grid-template-columns: 1fr; gap: 24px; }
  .cp-band { padding: 56px 20px; }
  .cp-hero { padding: 40px 20px 40px; }
}


/* ──────────────────────────────────────────────────────────
   MOBILE (2026-09-27 recovery)
   Kills horizontal overflow, stacks homepage cards & date rows
   to single column, ensures tap targets ≥44px.
   ────────────────────────────────────────────────────────── */

/* A. Global safety belt against horizontal overflow */
html, body { max-width: 100%; overflow-x: hidden; }
img, video, iframe { max-width: 100%; height: auto; }

@media (max-width: 700px) {
  /* B. Homepage course cards */
  .cal-cards { grid-template-columns: 1fr !important; gap: 20px; }
  .cal-cards .cal-card { min-width: 0; width: 100%; padding-left: 20px; padding-right: 20px; box-sizing: border-box; }
  .cal-card__level { padding-left: 20px; padding-right: 20px; flex-wrap: wrap; gap: 6px; }
  .cal-card__footer .cal-card__ctas,
  .cal-card__foot-row .cal-card__ctas,
  .cal-card .cal-card__ctas { flex-direction: column; gap: 10px; align-items: stretch; }
  .cal-card .cal-card__ctas .cal-btn,
  .cal-card .cal-card__ctas .cal-card__book { width: 100%; text-align: center; min-height: 44px; box-sizing: border-box; }
  .cal-card__foot-row { flex-direction: column; align-items: stretch; gap: 12px; }

  /* C. Course pages */
  .cp-hero { padding: 32px 16px; }
  .cp-hero h1 { font-size: clamp(26px, 8vw, 40px); }
  .cp-hero__ctas { flex-direction: column; align-items: stretch; }
  .cp-hero__ctas .cal-btn { width: 100%; text-align: center; box-sizing: border-box; }
  .cp-band { padding: 40px 16px; }
  .cp-band__inner { max-width: 100%; }
  .cp-band h2 { font-size: clamp(22px, 6vw, 30px); }
  .cp-outcomes { gap: 16px; }
  .cp-outcome { padding: 18px 18px; }
  .cp-day { padding: 20px 18px; }
  .cp-block { grid-template-columns: 1fr; gap: 4px; }
  .cp-fit-grid { gap: 28px; }
  .cp-fit-card { padding: 20px 18px; }

  /* Date rows stack fully */
  .dates-list { padding: 0 4px; }
  .date-row { grid-template-columns: 1fr; gap: 12px; padding: 18px 18px; }
  .date-row__cta { justify-content: space-between; width: 100%; }
  .date-row__btn { flex: 1; justify-content: center; min-height: 44px; padding: 12px 18px; }

  /* Advanced booking card inline padding override */
  #book .cp-band__inner > div[style*="padding: 40px"] { padding: 24px !important; max-width: 100% !important; }

  /* Tap targets */
  .cal-btn, .cal-card__book, .cta-full, .date-row__btn { min-height: 44px; }

  /* Prevent long words from pushing containers */
  .cal-nav__brand, .cal-nav__name, .cal-card__t, .cp-hero h1, .cp-band h2, p { overflow-wrap: anywhere; word-break: break-word; min-width: 0; }
}

/* D. Section containers safe-box on every viewport */
section, .cal-section, .cp-band, .cp-hero { box-sizing: border-box; max-width: 100%; }


/* ──────────────────────────────────────────────────────────
   READABILITY BUMP (2026-09-28)
   User feedback: type on course pages reads too small.
   Bumps body/meta/list sizes across the .cp-* course-page shell.
   ────────────────────────────────────────────────────────── */

/* Body copy sizes up */
.cp-hero__lede           { font-size: 20px; line-height: 1.55; }
.cp-hero__meta           { font-size: 14px; letter-spacing: .06em; gap: 18px 24px; }
.cp-band__lede           { font-size: 20px; line-height: 1.55; max-width: 780px; margin-bottom: 44px; }
.cp-band h2              { font-size: clamp(28px, 3.4vw, 44px); }

/* Outcomes: bigger card body */
.cp-outcome              { padding: 26px 26px; }
.cp-outcome__n           { font-size: 14px; }
.cp-outcome__t           { font-size: 17px; margin-bottom: 8px; }
.cp-outcome__p           { font-size: 16px; line-height: 1.55; }

/* Agenda: bigger day title & block body */
.cp-day                  { padding: 30px 30px; }
.cp-day__t               { font-size: 21px; }
.cp-day__meta            { font-size: 13px; }
.cp-block__time          { font-size: 13.5px; }
.cp-block__body b        { font-size: 16px; margin-bottom: 6px; }
.cp-block__body p        { font-size: 16px; line-height: 1.55; }

/* Fit section: bigger list items */
.cp-fit-card             { padding: 30px 30px; }
.cp-fit-card h4          { font-size: 13px; }
.cp-fit-list             { gap: 14px; }
.cp-fit-list li          { font-size: 16px; line-height: 1.5; padding-left: 26px; }

/* Booking date rows */
.date-row                { padding: 24px 28px; }
.date-row__date          { font-size: 22px; margin-bottom: 6px; }
.date-row__meta          { font-size: 13.5px; letter-spacing: .04em; }
.date-row__price         { font-size: 26px; }
.date-row__btn           { font-size: 14px; padding: 14px 22px; }
.dates-foot              { font-size: 13px; margin-top: 26px; }

/* Section marks: bigger eyebrow so it's actually readable */
.cp-band .cal-sechead__mark .cal-mark    { font-size: 15px; }
.cp-band .cal-sechead__mark .cal-eyebrow { font-size: 14px; letter-spacing: .12em; }

/* Hero h1: raise the clamp ceiling on mobile so it feels intentional */
@media (max-width: 700px) {
  .cp-hero h1              { font-size: clamp(30px, 8.5vw, 44px); }
  .cp-hero__lede           { font-size: 18px; }
  .cp-band__lede           { font-size: 17px; margin-bottom: 32px; }
  .cp-outcome__t           { font-size: 16px; }
  .cp-outcome__p           { font-size: 15.5px; }
  .cp-day__t               { font-size: 18px; }
  .cp-block__body b        { font-size: 15px; }
  .cp-block__body p        { font-size: 15px; }
  .cp-fit-list li          { font-size: 15.5px; }
  .date-row__date          { font-size: 19px; }
  .date-row__meta          { font-size: 13px; }
  .date-row__price         { font-size: 22px; }
}


/* ──────────────────────────────────────────────────────────
   H1 v3 tune-up (2026-09-30)
   ────────────────────────────────────────────────────────── */

/* Card meta text — was 11px, way too small on the homepage cards */
.cal-card__meta { font-size: 15px !important; letter-spacing: .04em !important; color: var(--ink-300) !important; margin-bottom: 16px !important; }

/* Homepage cards: kick the level strip title up too (was 11px letter-spaced) */
.cal-cards .cal-card__level-l,
.cal-cards .cal-card__level-d { font-size: 13px !important; letter-spacing: .1em !important; }

/* Video placeholder — used on /programme/ and /fractional-analysis/ hero */
.cal-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: color-mix(in oklab, var(--panel) 80%, transparent);
  border: 2px dashed color-mix(in oklab, var(--gold) 60%, transparent);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin: 8px 0 24px;
}
.cal-video__inner {
  text-align: center;
  padding: 24px;
}
.cal-video__play {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--paper-2);
  font-size: 26px;
  margin: 0 auto 14px;
  box-shadow: 0 8px 24px rgba(242,169,27,.25);
}
.cal-video__label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 4px;
}
.cal-video__sub {
  display: block;
  color: var(--ink-300);
  font-size: 14px;
  line-height: 1.5;
  max-width: 480px;
  margin: 0 auto;
}
.cal-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.cal-video--has-embed { border-style: solid; border-color: var(--line); background: #000; }

/* Sticky cohort strip — appears at top of viewport after user scrolls past hero on /programme/ */
.cal-cohort-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: var(--paper-2);
  border-bottom: 1px solid var(--gold);
  transform: translateY(-100%);
  transition: transform .28s ease;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}
.cal-cohort-bar.is-visible { transform: translateY(0); }
.cal-cohort-bar__label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 700;
}
.cal-cohort-bar__title {
  color: var(--ink-50);
  font-family: 'Chakra Petch', sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .02em;
}
.cal-cohort-bar__meta {
  color: var(--ink-300);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media (max-width: 700px) {
  .cal-cohort-bar { padding: 10px 12px; gap: 10px; }
  .cal-cohort-bar__title { font-size: 14px; }
  .cal-cohort-bar__meta  { display: none; }
}


/* ──────────────────────────────────────────────────────────
   FRACTIONAL ANALYSIS PAGE (2026-10-01)
   Scoped under .fa-page so it only touches /fractional-analysis/.
   Dark-first editorial layout: hero with video + signup form,
   logo marquee, alternating dark/cream bands, justified body copy.
   ────────────────────────────────────────────────────────── */

.fa-page { color: var(--ink-50); font-family: 'IBM Plex Sans', system-ui, sans-serif; }
.fa-page a { color: inherit; }

/* ── HERO ── */
.fa-hero {
  padding: 70px 40px 60px;
  background:
    radial-gradient(100% 70% at 20% 0%, color-mix(in oklab, var(--gold) 10%, transparent), transparent 60%),
    radial-gradient(80% 60% at 100% 100%, color-mix(in oklab, var(--gold) 8%, transparent), transparent 60%),
    var(--paper);
  position: relative; overflow: hidden;
}
.fa-hero__inner { max-width: 1040px; margin: 0 auto; }
.fa-hero__top { text-align: center; margin-bottom: 36px; }
.fa-hero__crumb { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-400); margin-bottom: 14px; }
.fa-hero__crumb a { text-decoration: none; }
.fa-hero__crumb b { color: var(--gold); }
.fa-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold);
  padding: 6px 14px; border: 1px solid color-mix(in oklab, var(--gold) 45%, transparent); border-radius: 999px;
  background: color-mix(in oklab, var(--gold) 10%, transparent);
  margin-bottom: 18px;
}
.fa-hero__h1 {
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase;
  color: var(--ink-50); font-size: clamp(30px, 4.4vw, 54px); line-height: 1.05;
  margin: 0 auto 8px; text-wrap: balance; max-width: 980px;
}
.fa-hero__h1 em { font-style: normal; color: var(--gold); }

.fa-hero__media-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: start;
  margin-top: 10px;
}
.fa-video {
  position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 300px;
  background: color-mix(in oklab, var(--panel) 70%, transparent);
  border: 2px dashed color-mix(in oklab, var(--gold) 55%, transparent);
  border-radius: var(--radius-lg);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.fa-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.fa-video--has-embed { border-style: solid; border-color: var(--line); background: #000; }
.fa-video__inner { text-align: center; padding: 20px; }
.fa-video__play {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; border-radius: 50%; background: var(--gold); color: var(--paper-2);
  font-size: 26px; margin: 0 auto 14px; box-shadow: 0 10px 30px rgba(242,169,27,.22);
}
.fa-video__label { display: block; font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
.fa-video__sub { display: block; color: var(--ink-300); font-size: 14px; max-width: 420px; margin: 0 auto; }

.fa-hero__body {
  color: var(--ink-200); font-size: 18px; line-height: 1.65;
  max-width: 900px; margin: 36px auto 0;
  text-align: justify; text-align-last: center;
  hyphens: auto; -webkit-hyphens: auto;
}

/* Signup form card */
.fa-form {
  background: color-mix(in oklab, var(--panel) 92%, transparent);
  border: 1px solid var(--line); border-top: 3px solid var(--gold);
  border-radius: var(--radius-lg); padding: 28px;
  display: flex; flex-direction: column; text-align: left;
}
.fa-form__kicker { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin: 0 0 8px; }
.fa-form__h { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; color: var(--ink-50); font-size: 22px; line-height: 1.15; margin: 0 0 10px; }
.fa-form__sub { color: var(--ink-300); font-size: 14px; line-height: 1.55; margin: 0 0 18px; }
.fa-form__form { display: flex; flex-direction: column; }
.fa-form__field { margin-bottom: 12px; }
.fa-form__label { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-400); margin-bottom: 6px; }
.fa-form__opt { opacity: .6; letter-spacing: 0; text-transform: none; }
.fa-form__input {
  width: 100%; background: var(--paper); border: 1px solid var(--line); color: var(--ink-50);
  font-family: 'IBM Plex Sans', sans-serif; font-size: 15px;
  padding: 12px 14px; border-radius: 10px; outline: none;
}
.fa-form__input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px color-mix(in oklab, var(--gold) 20%, transparent); }
.fa-form__btn {
  display: block; width: 100%; margin-top: 16px;
  background: var(--gold); color: var(--paper-2); border: 0; cursor: pointer;
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase;
  padding: 15px 20px; border-radius: 999px;
}
.fa-form__btn:hover { background: color-mix(in oklab, var(--gold) 85%, white); }
.fa-form__meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; color: var(--ink-500); font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.fa-form__meta b { color: var(--ink-300); }

/* ── LOGO MARQUEE ── */
.fa-strip {
  background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  padding: 36px 0 44px; overflow: hidden; position: relative;
}
.fa-strip__head { max-width: 1120px; margin: 0 auto 20px; padding: 0 40px; display: flex; align-items: baseline; gap: 14px; }
.fa-strip__mark { font-family: 'JetBrains Mono', monospace; font-size: 15px; letter-spacing: .14em; color: var(--gold); font-weight: 700; }
.fa-strip__eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-400); }
.fa-strip__track {
  position: relative; height: 72px;
  mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
  overflow: hidden;
}
.fa-strip__trail {
  position: absolute; top: 50%; left: 0; right: 0; height: 1px;
  background: linear-gradient(to right, transparent 0%, var(--gold) 20%, var(--gold) 80%, transparent 100%);
  opacity: .35; transform: translateY(-50%);
}
.fa-strip__glow {
  position: absolute; top: 50%; left: 0;
  width: 180px; height: 2px; transform: translate(-50%, -50%);
  background: linear-gradient(to right, transparent, var(--gold), transparent);
  box-shadow: 0 0 24px 4px var(--gold);
  animation: fa-strip-glow 7s linear infinite;
}
@keyframes fa-strip-glow { 0% { left: -10%; } 100% { left: 110%; } }
.fa-strip__marquee {
  position: absolute; inset: 0;
  display: flex; align-items: center; gap: 56px; padding: 0 40px;
  animation: fa-strip-scroll 32s linear infinite;
  width: max-content;
}
@keyframes fa-strip-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.fa-logo {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 220px; height: 56px; padding: 0 24px;
  background: color-mix(in oklab, var(--panel) 70%, transparent);
  border: 1px solid var(--line); border-radius: var(--radius);
  color: var(--ink-50); font-family: 'Chakra Petch', sans-serif; font-weight: 600;
  letter-spacing: .02em; font-size: 15px; white-space: nowrap;
}
.fa-logo__dot { width: 6px; height: 6px; background: var(--gold); border-radius: 50%; display: inline-block; margin-right: 10px; opacity: .7; }

/* ── BANDS ── */
.fa-band { padding: 80px 40px; }
.fa-band__inner { max-width: 1120px; margin: 0 auto; }
.fa-band--dark { background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fa-band--light { background: #F5F1E8; color: #0F172A; }

.fa-sechead { display: flex; align-items: baseline; gap: 14px; margin-bottom: 14px; }
.fa-sechead--center { justify-content: center; }
.fa-mark { font-family: 'JetBrains Mono', monospace; font-size: 15px; letter-spacing: .14em; color: var(--gold); font-weight: 700; }
.fa-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.fa-band--light .fa-mark, .fa-band--light .fa-eyebrow { color: #A66A05; }

.fa-h2 {
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase;
  color: var(--ink-50); font-size: clamp(28px, 3.4vw, 42px); line-height: 1.08;
  margin: 0 0 18px; text-wrap: balance; letter-spacing: .01em;
}
.fa-h2 em { font-style: normal; color: var(--gold); }
.fa-h2--center { max-width: 820px; margin-left: auto; margin-right: auto; text-align: center; }
.fa-band--light .fa-h2 { color: #0F172A; }
.fa-band--light .fa-h2 em { color: #A66A05; }

.fa-band__lede { color: var(--ink-300); font-size: 19px; line-height: 1.55; max-width: 820px; margin: 0 0 36px; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.fa-band__lede--center { margin-left: auto; margin-right: auto; text-align: justify; text-align-last: center; }
.fa-band--light .fa-band__lede { color: #475569; }

/* 01 PROBLEM */
.fa-prob { max-width: 860px; }
.fa-prob__p { font-size: 18px; line-height: 1.7; margin: 0 0 18px; color: var(--ink-300); text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.fa-band--light .fa-prob__p { color: #475569; }

/* 02 STORIES */
.fa-stories { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fa-story {
  background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: var(--radius); padding: 26px 28px;
}
.fa-band--light .fa-story { background: #FFFFFF; border-color: #E4DDCB; border-left-color: #A66A05; }
.fa-story__kick { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.fa-band--light .fa-story__kick { color: #A66A05; }
.fa-story__t { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 17px; color: var(--ink-50); margin: 0 0 10px; }
.fa-band--light .fa-story__t { color: #0F172A; }
.fa-story__p { color: var(--ink-300); font-size: 15px; line-height: 1.6; margin: 0; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.fa-band--light .fa-story__p { color: #475569; }

/* 03 OFFERS */
.fa-offers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 10px; }
.fa-offer {
  background: color-mix(in oklab, var(--panel) 95%, transparent);
  border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 28px 28px 30px;
  display: flex; flex-direction: column;
}
.fa-offer__kick { font-family: 'JetBrains Mono', monospace; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.fa-offer__t { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 20px; color: var(--ink-50); margin: 0 0 10px; }
.fa-offer__p { color: var(--ink-300); font-size: 15.5px; line-height: 1.6; margin: 0 0 18px; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.fa-offer__price { margin-top: auto; color: var(--gold); font-family: 'Chakra Petch', sans-serif; font-weight: 700; font-size: 17px; }
.fa-offers__cta { display: flex; justify-content: center; margin-top: 36px; }

/* 04 DIFFERENTIATORS */
.fa-diffs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 10px; }
.fa-diff {
  background: #FFFFFF; border: 1px solid #E4DDCB; border-left: 3px solid #A66A05;
  border-radius: var(--radius); padding: 26px 28px;
}
.fa-diff__n { font-family: 'JetBrains Mono', monospace; font-size: 13px; letter-spacing: .14em; color: #A66A05; font-weight: 700; }
.fa-diff__t { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 18px; color: #0F172A; margin: 10px 0 10px; }
.fa-diff__p { color: #475569; font-size: 15.5px; line-height: 1.6; margin: 0; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }

/* 05 FAQ */
.fa-faq { max-width: 820px; margin: 28px 0 0; display: grid; gap: 18px; }
.fa-faq__item {
  background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--gold);
  border-radius: var(--radius); padding: 22px 26px;
}
.fa-faq__q { font-family: 'Chakra Petch', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 17px; color: var(--ink-50); margin: 0 0 8px; }
.fa-faq__a { color: var(--ink-300); font-size: 15.5px; line-height: 1.6; margin: 0; text-align: justify; hyphens: auto; -webkit-hyphens: auto; }

/* 06 CTA band */
.fa-cta-band { text-align: center; padding-block: 100px; }
.fa-cta-band__btn { margin-top: 36px; }

/* Shared button */
.fa-btn {
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
  font-family: 'Chakra Petch', sans-serif; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 15px 28px; font-size: 14px; border-radius: 999px; cursor: pointer; border: 0;
}
.fa-btn--primary { background: var(--gold); color: var(--paper-2); }
.fa-btn--primary:hover { background: color-mix(in oklab, var(--gold) 85%, white); }
.fa-btn--lg { padding: 18px 32px; font-size: 15px; }

/* ── Responsive ── */
@media (max-width: 980px) {
  .fa-hero { padding: 44px 20px; }
  .fa-hero__media-row { grid-template-columns: 1fr; gap: 24px; }
  .fa-hero__body { font-size: 17px; margin-top: 26px; }
  .fa-band { padding: 56px 20px; }
  .fa-stories, .fa-offers { grid-template-columns: 1fr; }
  .fa-diffs { grid-template-columns: 1fr; }
  .fa-strip__head { padding: 0 20px; }
  .fa-form { padding: 24px; }
  .fa-cta-band { padding-block: 70px; }
  .fa-logo { min-width: 180px; height: 48px; font-size: 13px; }
  .fa-video { max-height: 240px; }
}
@media (max-width: 560px) {
  /* Narrow mobile: relax justify to left so word-gaps don't get silly */
  .fa-hero__body, .fa-band__lede, .fa-prob__p, .fa-story__p, .fa-offer__p, .fa-diff__p, .fa-faq__a { text-align: left; }
  .fa-hero__body { text-align-last: left; }
  .fa-band__lede--center { text-align-last: left; }
  .fa-hero__h1 { font-size: clamp(26px, 7vw, 34px); }
  .fa-hero__eyebrow { font-size: 11px; padding: 5px 12px; }
  .fa-form__h { font-size: 20px; }
  .fa-h2 { font-size: clamp(24px, 6vw, 32px); }
}


/* ──────────────────────────────────────────────────────────
   PROGRAMME PAGE — STACKED HERO (2026-10-01)
   Matches the /fractional-analysis/ hero pattern:
   centred crumb/level/H1 → video + price card side-by-side →
   justified lede → centred meta + CTAs.
   Activated by the .cp-hero__inner--stacked modifier.
   ────────────────────────────────────────────────────────── */
.cp-hero__inner--stacked {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  max-width: 1040px !important;
  margin: 0 auto;
}
.cp-hero__inner--stacked .cp-hero__top {
  text-align: center;
  margin-bottom: 36px;
}
.cp-hero__inner--stacked .cp-crumb {
  text-align: center;
}
.cp-hero__inner--stacked .cp-hero__level {
  display: inline-block;
}
.cp-hero__inner--stacked .cp-hero__h1 {
  text-align: center;
  text-wrap: balance;
  max-width: 980px;
  margin: 0 auto 8px;
}
.cp-hero__media-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: start;
  margin-top: 10px;
}
.cp-hero__media-row .cal-video {
  max-height: 300px;
  margin: 0;
}
.cp-hero__media-row .cp-hero__card {
  margin: 0;
}
.cp-hero__inner--stacked .cp-hero__lede {
  max-width: 900px;
  margin: 36px auto 20px;
  text-align: justify;
  text-align-last: center;
  hyphens: auto;
  -webkit-hyphens: auto;
}
.cp-hero__inner--stacked .cp-hero__meta {
  justify-content: center;
}
.cp-hero__inner--stacked .cp-hero__ctas {
  justify-content: center;
}

/* Programme page body copy — justified wherever it reads as prose. */
.cp-band .cp-band__lede,
.cp-band .cp-outcome__p,
.cp-band .cp-block__body p,
.cp-band .cp-fit-list li,
.cp-band .cp-block__body > p,
.cp-band p[style*="font-size:20px"] {
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Responsive — stack the media row at ≤980px, relax justify at ≤560px */
@media (max-width: 980px) {
  .cp-hero__media-row { grid-template-columns: 1fr; gap: 24px; }
  .cp-hero__media-row .cal-video { max-height: 240px; }
}
@media (max-width: 560px) {
  .cp-hero__inner--stacked .cp-hero__lede,
  .cp-band .cp-band__lede,
  .cp-band .cp-outcome__p,
  .cp-band .cp-block__body p,
  .cp-band .cp-fit-list li { text-align: left; }
  .cp-hero__inner--stacked .cp-hero__lede { text-align-last: left; }
  .cp-hero__inner--stacked .cp-hero__h1 { font-size: clamp(26px, 7vw, 34px); }
}

/* Homepage cards headline — 3 lines now (One programme / One analysis partner / One conversation).
   Nothing to add; the <br> tags in cards_h2 render as the stack. */


/* ──────────────────────────────────────────────────────────
   v4 tune-up (2026-10-04)
   Fixes landed from exec review of the live site.
   ────────────────────────────────────────────────────────── */

/* 1. Homepage card meta subtitle — was ink-300 on white cards, way too
      faint to read. Darken to cream-sub so it carries weight on cream.  */
.cal-cards .cal-card .cal-card__meta,
.cal-cards .cal-card__meta {
  color: #475569 !important;      /* was var(--ink-300) — barely visible on white */
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  font-size: 14px !important;
}

/* 2. Scorecard / Programme agenda time labels (Morning · Midday · etc.)
      were ink-500 on dark panels — too dim. Lift to ink-200 so they
      sit confidently alongside the block body text. */
.cp-band--dark .cp-block__time,
.cp-band:not(.cp-band--light) .cp-block__time {
  color: #D8DFEA !important;      /* ink-200 — bright enough to read, not louder than the body */
  font-weight: 600 !important;
}

/* 3. Free-book quiz wizard — the dark-on-dark form on
      /agentic-ai-sprint/ reads as a flat wall. Lift the form panel one
      step and brighten the inputs a touch so the fields separate from
      the frame. */
.cal-fb-quiz__form,
.cal-fb-hero__form,
.cal-fb-popup__card {
  background: color-mix(in oklab, var(--panel) 70%, #ffffff 6%) !important;
  border: 1px solid color-mix(in oklab, var(--line) 70%, #ffffff 10%) !important;
}
.cal-fb-quiz__form .cal-q__input,
.cal-fb-quiz__form input,
.cal-fb-quiz__form select,
.cal-fb-popup__card input {
  background: color-mix(in oklab, var(--paper-2) 55%, #ffffff 10%) !important;
  border-color: color-mix(in oklab, var(--line) 60%, #ffffff 14%) !important;
  color: var(--ink-50) !important;
}
.cal-fb-quiz__form .cal-q__input::placeholder,
.cal-fb-quiz__form input::placeholder {
  color: color-mix(in oklab, var(--ink-300) 70%, transparent) !important;
}
.cal-q__h { color: #ffffff !important; }
.cal-q__sub { color: var(--ink-200) !important; }
.cal-q__label { color: var(--ink-300) !important; }
