/* ============================================================
   RIVET forms (26 Oct 2026) · Brand OS v1.2
   The "Talk to our Team" modal, the course application, shared field
   states, and the footer WhatsApp join once it is done. Scoped to .rf
   (and .rfm for the modal) so nothing else on the page changes.
   Mode follows the page: body.gtm-dark / html[data-mode="dark"] → dark.
   ============================================================ */
.rf, .rfm__panel {
  --rf-ground:#FFFFFF; --rf-surface:#F8F8FA; --rf-ink:#000000; --rf-muted:#4A4A68; --rf-line:#D1D1D9; --rf-line-strong:#9A9BBD;
  --rf-field:#FFFFFF; --rf-focus:#3B06D4; --rf-err:#B3001F; --rf-ok:#067A45; --rf-warn:#F5C24B;
  --rf-shadow:0 1px 2px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.05);
  --rf-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A4A68' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
body.gtm-dark .rf, html[data-mode="dark"] .rf, .rfm__panel--dark {
  --rf-ground:#0A0A0C; --rf-surface:#12121A; --rf-ink:#FFFFFF; --rf-muted:#9A9BBD; --rf-line:#1E1E2A; --rf-line-strong:#4A4A68;
  --rf-field:#12121A; --rf-focus:#7B87FF; --rf-err:#FF4D2E; --rf-ok:#00D982; --rf-shadow:none;
  --rf-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A9BBD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ---- the card ---- */
.rf { position:relative; color:var(--rf-ink); font-family:var(--font-sans,'IBM Plex Sans',system-ui,sans-serif); }
.rf-card { background:var(--rf-ground); border-radius:var(--r-lg,24px); padding:clamp(22px,3vw,40px); box-shadow:var(--rf-shadow); max-width:880px; margin:0 auto; }
body.gtm-dark .rf-card, html[data-mode="dark"] .rf-card { background:#0A0A0C; }
.rf-apply .sec-head { margin-bottom:clamp(20px,3vw,32px); }

/* ---- type ---- */
.rf-eyebrow { display:block; font:600 12px/1.2 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.08em; text-transform:uppercase; color:var(--rf-muted); }
.rf-title { font:600 clamp(22px,2.4vw,28px)/1.2 var(--font-sans,'IBM Plex Sans',sans-serif); letter-spacing:-.01em; margin:6px 0 8px; color:var(--rf-ink); }
.rf-lead { font-size:16px; line-height:1.55; color:var(--rf-muted); margin:0 0 20px; text-wrap:pretty; }
.rf-kicker { display:inline-block; font:500 14px/1.4 var(--font-sans,'IBM Plex Sans',sans-serif); color:var(--rf-ink); background:var(--rf-surface); border-radius:999px; padding:8px 14px; margin:0 0 22px; text-wrap:pretty; }
.rf-legend { font:600 12px/1.2 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.08em; text-transform:uppercase; color:var(--rf-muted); margin:0 0 14px; padding:0; }
.rf-step { border:0; margin:0; padding:0; min-width:0; }
.rf-step + .rf-step { margin-top:22px; padding-top:24px; border-top:1px solid var(--rf-line); }
.rf-step[hidden], .rf-done[hidden], .rf-verdict[hidden], .rf-field[hidden] { display:none !important; }

/* ---- fields ---- */
.rf-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.rf-field { display:flex; flex-direction:column; gap:6px; margin:0 0 16px; min-width:0; }
.rf-field label, .rf-label { font:500 14px/1.3 var(--font-sans,'IBM Plex Sans',sans-serif); color:var(--rf-ink); }
.rf-opt { font-weight:400; color:var(--rf-muted); }
.rf :where(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), select, textarea) {
  -webkit-appearance:none; appearance:none; width:100%; min-height:48px; padding:12px 14px; margin:0;
  border:1px solid var(--rf-line-strong); border-radius:var(--r-btn,14px); background:var(--rf-field); color:var(--rf-ink);
  font:400 16px/1.4 var(--font-sans,'IBM Plex Sans',sans-serif); transition:border-color .12s ease;
}
.rf select { background-image:var(--rf-chev); background-repeat:no-repeat; background-position:right 14px center; background-size:16px; padding-right:40px; cursor:pointer; }
.rf select:invalid, .rf select option[value=""] { color:var(--rf-muted); }
.rf select option { color:#000; background:#fff; }
.rf textarea { min-height:112px; resize:vertical; line-height:1.5; }
.rf ::placeholder { color:var(--rf-muted); opacity:.8; }
.rf :is(input, select, textarea):focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; border-color:var(--rf-focus); }
.rf-tel { display:flex; align-items:stretch; gap:8px; min-width:0; }
.rf-tel select { flex:0 0 auto; width:auto; min-width:122px; font-family:var(--font-mono,'IBM Plex Mono',monospace); font-size:15px; }
.rf-tel input { flex:1 1 auto; min-width:0; }
.field .rf-tel select { width:auto; min-width:122px; font-family:var(--font-mono,'IBM Plex Mono',monospace); font-size:15px; }
.field .rf-tel input { width:auto; flex:1; }

/* radios as cards */
.rf-radios { display:grid; gap:10px; }
.rf-radio { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border:1px solid var(--rf-line-strong); border-radius:var(--r-btn,14px); cursor:pointer; font:400 15px/1.4 var(--font-sans,'IBM Plex Sans',sans-serif); color:var(--rf-ink); }
.rf-radio input { -webkit-appearance:auto; appearance:auto; width:20px; height:20px; margin:2px 0 0; accent-color:var(--rf-focus); flex:none; }
.rf-radio:has(input:checked) { border-color:var(--rf-focus); box-shadow:inset 0 0 0 1px var(--rf-focus); }
.rf-radio:has(input:focus-visible) { outline:3px solid var(--rf-focus); outline-offset:2px; }
.rf-radio small { display:block; font-size:13px; color:var(--rf-muted); }

/* errors: red is for errors only, and never alone (the message says what to fix) */
:is(.rf, .field, .vp-form) [aria-invalid="true"] { border-color:var(--rf-err,#B3001F); }
.rf-err { display:block; font:500 13px/1.4 var(--font-sans,'IBM Plex Sans',sans-serif); color:var(--rf-err,#B3001F); }
body.gtm-dark .rf-err, html[data-mode="dark"] .rf-err { color:#FF4D2E; }
.rf .form-note { font:500 13.5px/1.5 var(--font-sans,'IBM Plex Sans',sans-serif); letter-spacing:0; margin:12px 0 0; }
.rf .form-note[data-state="error"] { color:var(--rf-err); }
.rf .form-note[data-state="success"] { color:var(--rf-ok); }
.rf .form-note[data-state="sending"] { color:var(--rf-muted); }

/* consent, actions */
.rf-consent { font:400 13px/1.5 var(--font-sans,'IBM Plex Sans',sans-serif); color:var(--rf-muted); margin:4px 0 16px; text-wrap:pretty; }
.rf-consent a { color:inherit; text-decoration:underline; }
.rf-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.rf-price { font:500 13px/1.3 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.02em; color:var(--rf-muted); }
.rf .btn { min-height:0; }
.rf .btn--ghost { background:transparent; color:var(--rf-ink); border-color:var(--rf-line-strong); }
.rf .btn--ghost:hover { background:var(--rf-surface); border-color:var(--rf-ink); }
.rf .btn--magenta { background:#FF00D4; border-color:#FF00D4; color:#fff; }
.rf .btn:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; }
.rf .btn:disabled { opacity:.6; cursor:default; transform:none; }
.rf-captcha:empty { display:none; }
.rf-captcha iframe { max-width:100%; }

/* fit verdict */
.rf-verdict { margin:4px 0 18px; padding:16px 18px; border-radius:var(--r-md,16px); background:var(--rf-surface); color:var(--rf-ink); border-left:4px solid var(--rf-ok); outline:none; }
.rf-verdict--not { border-left-color:var(--rf-warn); }
.rf-verdict__k { display:block; font:600 11px/1.2 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.08em; text-transform:uppercase; color:var(--rf-muted); margin-bottom:6px; }
.rf-verdict b { display:block; font:600 17px/1.3 var(--font-sans,'IBM Plex Sans',sans-serif); margin-bottom:4px; }
.rf-verdict p { margin:0; font-size:15px; line-height:1.5; color:var(--rf-muted); text-wrap:pretty; }
.rf-verdict__acts { display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }

/* done: one registered duo (Dusk, slate→purple), white ink, full field is text-safe */
.rf-done { outline:none; border-radius:var(--r-md,16px); padding:clamp(22px,3vw,34px); background:linear-gradient(135deg,#4A4A68 0%,#3B06D4 100%); color:#fff; }
.rf-done .rf-eyebrow { color:rgba(255,255,255,.76); }
.rf-done h3 { font:600 clamp(22px,2.4vw,28px)/1.2 var(--font-sans,'IBM Plex Sans',sans-serif); letter-spacing:-.01em; margin:6px 0 8px; color:#fff; }
.rf-done p { margin:0 0 18px; font-size:16px; line-height:1.55; color:rgba(255,255,255,.86); text-wrap:pretty; }
.rf-done__acts { display:flex; flex-wrap:wrap; gap:10px; }
.rf-done .btn { background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.rf-done .btn:hover { background:rgba(255,255,255,.12); border-color:#fff; }
.rf-done .btn:focus-visible { outline:3px solid #fff; outline-offset:2px; }

/* ---- the modal ---- */
.rfm { position:fixed; inset:0; z-index:260; display:grid; place-items:center; padding:16px; }
.rfm[hidden] { display:none; }
.rfm__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.62); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:0; transition:opacity .2s ease; }
.rfm__panel { position:relative; width:min(600px,100%); max-height:min(92vh, calc(100dvh - 32px)); overflow:auto; -webkit-overflow-scrolling:touch; background:var(--rf-ground); color:var(--rf-ink); border-radius:var(--r-lg,24px); box-shadow:0 30px 80px -20px rgba(0,0,0,.55); padding:clamp(22px,3vw,36px); transform:translateY(12px); opacity:0; transition:transform .32s cubic-bezier(.2,.7,.2,1), opacity .2s ease; }
.rfm.in .rfm__backdrop { opacity:1; }
.rfm.in .rfm__panel { transform:none; opacity:1; }
.rfm__x { position:absolute; top:12px; right:12px; width:44px; height:44px; border:0; border-radius:999px; background:transparent; color:var(--rf-muted); cursor:pointer; display:grid; place-items:center; z-index:2; }
.rfm__x:hover { background:var(--rf-surface); color:var(--rf-ink); }
.rfm__x:focus-visible { outline:3px solid var(--rf-focus); outline-offset:2px; }
.rf--modal { margin:0; }
.rf--modal .rf-title { padding-right:44px; }
.rf-done--inline { margin-top:4px; }
body.rf-lock { overflow:hidden; }
@media (max-width:640px) {
  .rf-grid { grid-template-columns:1fr; }
  .rfm { padding:0; align-items:end; }
  .rfm__panel { width:100%; max-height:94dvh; border-radius:var(--r-lg,24px) var(--r-lg,24px) 0 0; padding:22px 16px calc(18px + env(safe-area-inset-bottom)); }
  .rf-actions .btn { width:100%; }
  .rf-done__acts .btn, .rf-verdict__acts .btn { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  .rfm__backdrop, .rfm__panel, .rf input, .rf select, .rf textarea { transition:none; }
  .rfm__panel { transform:none; }
}

/* ---- footer WhatsApp join: the done state ---- */
.f2-wa__done { display:none; }
.f2-wa.is-done .f2-wa__ctl { display:none; }
.f2-wa.is-done .f2-wa__done { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
.f2-wa__done__t { margin:0; flex:1 1 26ch; font-size:.94rem; line-height:1.45; color:rgba(255,255,255,.72); text-wrap:pretty; }
.f2-wa__done__t b { color:#fff; font-weight:600; }
.f2-wa__open { height:52px; padding:0 22px; font-size:1rem; background:#fff !important; color:#000 !important; border:1px solid #fff !important; white-space:nowrap; flex:none; }
.f2-wa__open:focus-visible { outline:3px solid #7B87FF; outline-offset:3px; }
.f2-wa.is-err .f2-wa__field { border-color:#FF8A47; }
html[data-mode="light"] body:not(.gtm-dark) .f2-wa__done__t { color:var(--fg-soft,#4A4A68); }
html[data-mode="light"] body:not(.gtm-dark) .f2-wa__done__t b { color:var(--ink,#0A0A0C); }
html[data-mode="light"] body:not(.gtm-dark) .f2-wa__open { background:var(--ink,#0A0A0C) !important; color:#fff !important; border-color:var(--ink,#0A0A0C) !important; }
html[data-mode="light"] body:not(.gtm-dark) .f2-wa__open:focus-visible { outline-color:#3B06D4; }
@media (max-width:640px) { .f2-wa__open { width:100%; justify-content:center; } }
/* keep the footer form clear of the floating voice widget on phones */
@media (max-width:720px) { .site-footer.f2 { padding-bottom:calc(28px + 92px); } }

/* ============================================================
   Course pages · Apply (27 Oct 2026): one section, the pitch on the left,
   the application on the right in the same card as "Course details".
   ============================================================ */
.rfa__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,540px); gap:clamp(32px,5vw,80px); align-items:start; }
.rfa__copy { display:flex; flex-direction:column; align-items:flex-start; padding-top:6px; color:#fff; }
.rfa__head { margin:0; max-width:none; }
.rfa__h { text-wrap:balance; }
.rfa__lead { margin:0; max-width:34rem; text-wrap:pretty; }

/* the offer: price on the left, two facts on the right, hairlines above and below */
.rfa__offer { width:100%; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:18px clamp(20px,3vw,36px); margin:clamp(26px,3vw,34px) 0; padding:22px 0; border-block:1px solid rgba(255,255,255,.12); }
.rfa__price { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.rfa__price .tcta__price { line-height:1; }
.rfa .rfa__price .tcta__price strong { font-size:1.9rem; font-weight:700; letter-spacing:-.02em; }
.rfa .rfa__price .tcta__nx { margin:0; font:400 .74rem/1.6 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.02em; color:rgba(255,255,255,.72); text-align:left; text-wrap:pretty; }
.rfa__facts { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; margin:0; }
.rfa__facts > div { padding-left:16px; border-left:1px solid rgba(255,255,255,.12); }
.rfa__facts dt { font:400 .7rem/1.6 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.72); margin:0 0 6px; }
.rfa__facts dd { margin:0; display:flex; flex-direction:column; gap:4px; }
.rfa__facts dd b { font-size:.95rem; font-weight:600; line-height:1.3; color:#fff; }
.rfa__facts dd span { font-size:.8rem; line-height:1.45; color:rgba(255,255,255,.72); }

/* how it runs: three numbered steps */
.rfa__steps { list-style:none; counter-reset:rfa; margin:0; padding:0; display:grid; gap:14px; width:100%; }
.rfa__steps li { counter-increment:rfa; display:grid; grid-template-columns:30px 1fr; column-gap:14px; row-gap:2px; align-items:start; }
.rfa__steps li::before { content:counter(rfa); grid-row:span 2; width:30px; height:30px; border-radius:9px; display:grid; place-items:center; font:500 .74rem/1 var(--font-mono,'IBM Plex Mono',monospace); color:rgba(255,255,255,.86); background:rgba(255,255,255,.06); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.rfa__steps b { font-size:.95rem; font-weight:600; color:#fff; line-height:1.3; }
.rfa__steps span { font-size:.8rem; line-height:1.45; color:rgba(255,255,255,.72); }
.rfa__talk { display:flex; flex-wrap:wrap; align-items:center; gap:4px 22px; margin-top:clamp(22px,3vw,28px); color:rgba(255,255,255,.7); scroll-margin-top:96px; }
.rfa__talk .cohc__refund { display:inline-flex; align-items:center; gap:6px; }
.rfa__talk a { font-size:.82rem; font-weight:400; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; gap:6px; }
.rfa__talk a:hover { color:#fff; }
.rfa__talk a:focus-visible { outline:3px solid #7B87FF; outline-offset:2px; border-radius:6px; }

/* the card: the same surface as the hero's "Course details" */
.rfa__card { position:relative; border-radius:24px; overflow:hidden; color:#fff; background:#0a0320; box-shadow:0 44px 100px -50px rgba(45,10,130,.95); scroll-margin-top:96px; }
.rfa__glow { position:absolute; inset:0; pointer-events:none; background:radial-gradient(82% 62% at 5% 106%, #4f17ec 0%, #2c0b9c 26%, rgba(30,8,90,0) 60%), linear-gradient(158deg,#170a40 0%,#0a0524 54%,#06021a 100%); }
.rfa .rfa__card .rf.rfa__form {
  --rf-ink:#FFFFFF; --rf-muted:rgba(255,255,255,.7); --rf-line:rgba(255,255,255,.12); --rf-line-strong:rgba(255,255,255,.22);
  --rf-field:rgba(255,255,255,.06); --rf-surface:rgba(255,255,255,.08); --rf-focus:#7B87FF; --rf-err:#FF6B4F; --rf-ok:#00D982;
  --rf-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C1B0FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  position:relative; margin:0; padding:clamp(24px,2.4vw,32px); }
.rfa__hd { display:flex; flex-direction:column; gap:6px; }
.rfa__k { display:block; font:400 .7rem/1.6 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.rfa__title { margin:0; font-size:1.6rem; font-weight:600; letter-spacing:-.02em; line-height:1.08; color:#fff; }
.rfa__kicker { margin:0; font-size:.8rem; line-height:1.45; color:rgba(255,255,255,.72); text-wrap:pretty; }
.rfa__fields { margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }
.rfa__fields[hidden], .rfa__kicker[hidden] { display:none !important; }
.rfa__form .rf-field { margin-bottom:14px; }
.rfa__form .rf-field label, .rfa__form .rf-label { color:rgba(255,255,255,.88); }
.rfa__form .rf-opt { color:rgba(255,255,255,.6); }
.rfa__form :where(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), select, textarea) { min-height:46px; padding-block:11px; line-height:1.4; border-color:var(--rf-line-strong); background-color:var(--rf-field); }
.rfa__form :where(input, select, textarea):hover { border-color:rgba(255,255,255,.36); }
.rfa__form [aria-invalid="true"], .rfa__form [aria-invalid="true"]:hover { border-color:var(--rf-err); }
.rfa__form textarea { min-height:76px; }
.rfa__form .rf-tel select { min-width:112px; }
.rfa__form .rf-consent { margin:2px 0 16px; font-size:.82rem; color:rgba(255,255,255,.66); }
.rfa__form .rf-actions { flex-direction:column; align-items:stretch; gap:10px; }
.rfa__form .rf-actions .btn { width:100%; justify-content:center; }
.rfa__form .rf-price { text-align:center; font:400 .74rem/1.6 var(--font-mono,'IBM Plex Mono',monospace); letter-spacing:.02em; color:rgba(255,255,255,.72); }
.rfa__form .rf-price:empty { display:none; }
.rfa__form .form-note { text-align:center; }
/* done: the card itself carries the confirmation, no second surface */
.rfa__done { outline:none; margin-top:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12); }
.rfa__done h3 { margin:8px 0 8px; font-size:1.6rem; font-weight:600; letter-spacing:-.02em; line-height:1.15; color:#fff; text-wrap:balance; }
.rfa__done p { margin:0 0 18px; font-size:.92rem; line-height:1.6; color:rgba(255,255,255,.8); text-wrap:pretty; }
.rfa__done-acts { display:flex; flex-direction:column; gap:10px; }
.rfa__done-acts .btn { width:100%; justify-content:center; background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.rfa__done-acts .btn:hover { background:rgba(255,255,255,.1); border-color:#fff; }

@media (max-width:980px) {
  .rfa__grid { grid-template-columns:1fr; }
  .rfa__card { width:100%; max-width:620px; }
}
@media (max-width:640px) {
  .rfa__offer { grid-template-columns:1fr; }
  .rfa__facts > div:first-child { padding-left:0; border-left:0; }
  .rfa .rfa__card .rf.rfa__form { padding:22px 18px; }
}
