/*
Theme Name: Jariel La Salsa
Theme URI: https://jariellasalsa.com/
Author: Jariel La Salsa
Description: Custom conversion-focused theme for Jariel La Salsa's beginner salsa dance course in New York City.
Version: 1.0.10
Text Domain: jariel-la-salsa
*/

/* Route-map preview revision: Transit-inspired neighborhood treatment. */

:root { --ink:#080b12; --navy:#0d1321; --cream:#f4f0e6; --gold:#f4c928; --red:#9f263f; --blue:#2474ff; --muted:#b7b9c2; --radius-sm:10px; --radius-md:16px; --radius-lg:24px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ink); color:#fff; font-family:Arial, Helvetica, sans-serif; text-rendering:optimizeLegibility; }

/* Inner WordPress pages and WooCommerce checkout */
.jariel-inner-page { background:#080b12; }
.inner-header { min-height:84px; padding:0 clamp(1.25rem,5vw,5rem); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; border-bottom:1px solid rgba(255,255,255,.12); background:#080b12; }
.inner-header nav { display:flex; gap:clamp(1rem,2.8vw,2.7rem); color:#d7d7dc; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.11em; }
.inner-header nav a:hover { color:var(--gold); }
.inner-header>.button { justify-self:end; }
.inner-content { min-height:62vh; padding:2rem 0 5rem; }
.inner-article>.entry-content, .inner-article { width:100%; }
.inner-article>h1 { max-width:1120px; margin:2rem auto 0; padding:0 20px; font:clamp(2.4rem,5vw,5rem)/.95 Impact,'Arial Narrow Bold',sans-serif; text-transform:uppercase; }
.inner-footer { padding:3rem clamp(1.25rem,5vw,5rem); border-top:1px solid rgba(255,255,255,.12); background:#080b12; display:grid; grid-template-columns:1fr auto; gap:1rem 3rem; align-items:center; color:#cfd1d7; }
.inner-footer .brand { grid-row:span 2; }
.inner-footer p,.inner-footer small { margin:0; }
.inner-footer a:hover { color:var(--gold); }
.woocommerce { max-width:1120px; margin:0 auto; padding:2rem 20px; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce select { min-height:48px; padding:.75rem; border-radius:10px; border:1px solid #c9cbd1; }
.woocommerce-checkout #payment { border-radius:18px; overflow:hidden; }
.woocommerce button.button,.woocommerce a.button,.woocommerce input.button { background:var(--gold); color:#080b12; border-radius:10px; min-height:48px; font-weight:900; }
.woocommerce button.button:hover,.woocommerce a.button:hover,.woocommerce input.button:hover { background:#ffe06a; color:#080b12; }
.registration-shell { max-width:1160px; margin:0 auto; padding:3rem 20px 2rem; }
.registration-panel { background:linear-gradient(135deg,#121728 0%,#080b14 62%,#4b0f24 100%); border:1px solid rgba(255,207,64,.28); border-radius:28px; padding:clamp(1.75rem,5vw,4rem); box-shadow:0 22px 70px rgba(0,0,0,.35); }
.registration-kicker { margin:0 0 .75rem; color:#ffd34e; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.registration-panel h1 { font:clamp(3rem,7vw,6rem)/.9 Impact,'Arial Narrow Bold',sans-serif; text-transform:uppercase; margin:0 0 1.4rem; }
.registration-panel h1 span,.registration-panel h2,.registration-bottom a { color:#ffd34e; }
.registration-lead { font-size:clamp(1.1rem,2.4vw,1.45rem); line-height:1.55; max-width:780px; color:#e9eaf0; }
.registration-pills { display:flex; flex-wrap:wrap; gap:.75rem; margin:2rem 0; }
.registration-pills span { background:#7b1737; border-radius:999px; padding:.7rem 1rem; font-weight:800; }
.registration-grid,.registration-bottom { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.registration-grid article { background:rgba(255,255,255,.07); border-radius:20px; padding:1.5rem; border:1px solid rgba(255,255,255,.1); }
.registration-grid h2,.registration-bottom h2 { margin:0 0 .75rem; font-size:1.35rem; }
.registration-grid p,.registration-bottom p,.registration-bottom li { color:#e5e6eb; line-height:1.7; }
.registration-grid strong { display:block; font-size:2.4rem; }
.registration-buy { background:#f4c83f; color:#121212; border-radius:22px; padding:1.6rem; margin:2rem 0; display:flex; flex-wrap:wrap; gap:1.4rem; align-items:center; justify-content:space-between; }
.registration-buy div { display:flex; flex-direction:column; gap:.3rem; }
.registration-buy div strong { font-size:1.5rem; }
.registration-buy a { background:#11182a; color:#fff; font-weight:900; padding:1rem 1.5rem; border-radius:14px; box-shadow:0 8px 18px rgba(0,0,0,.22); }
.registration-bottom { grid-template-columns:1fr 1fr; gap:2rem; }
.registration-bottom ul { padding-left:1.2rem; }
@media (max-width:820px) {
  .inner-header { grid-template-columns:1fr auto; padding-block:.7rem; }
  .inner-header nav { display:none; }
  .inner-header>.button { font-size:.6rem; min-height:42px; padding-inline:.8rem; }
  .inner-footer { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .inner-footer .brand { grid-row:auto; }
  .registration-grid,.registration-bottom { grid-template-columns:1fr; }
  .registration-buy a { width:100%; text-align:center; }
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button, a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.skip-link { position:fixed; left:1rem; top:-100px; z-index:100; background:#fff; color:#000; padding:.75rem 1rem; }
.skip-link:focus { top:1rem; }
.site-header { height:84px; padding:0 clamp(1.25rem,5vw,5rem); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; border-bottom:1px solid rgba(255,255,255,.12); position:absolute; z-index:10; width:100%; }
.brand { display:flex; align-items:center; align-self:stretch; width:max-content; }
.brand-logo { width:auto; height:56px; object-fit:contain; }
.site-header nav { display:flex; gap:clamp(1rem,2.8vw,2.7rem); color:#d7d7dc; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.11em; }
.site-header nav a:hover { color:var(--gold); }
.site-header>.button { justify-self:end; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:1.25rem; background:var(--gold); color:#090a0c; min-height:54px; padding:0 1.4rem; font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; border:1px solid var(--gold); border-radius:var(--radius-sm); box-shadow:7px 7px 0 var(--red); transition:transform .2s, box-shadow .2s; }
.button:hover { transform:translate(3px,3px); box-shadow:4px 4px 0 var(--red); }
.button-small { min-height:44px; font-size:.66rem; box-shadow:none; }
.button-large { min-height:62px; padding-inline:2rem; }
.eyebrow { margin:0 0 1.3rem; display:flex; align-items:center; gap:.7rem; text-transform:uppercase; font-size:.7rem; letter-spacing:.22em; font-weight:900; color:var(--gold); }
.eyebrow>span { display:block; width:30px; height:2px; background:currentColor; }
.eyebrow.dark { color:var(--red); }
.text-link { font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:.35rem; }
.text-link span { margin-left:.5rem; color:var(--gold); }
.hero { min-height:790px; padding:150px clamp(1.25rem,6vw,7rem) 80px; display:grid; grid-template-columns:minmax(440px, .9fr) minmax(480px,1.1fr); align-items:center; gap:2rem; position:relative; overflow:hidden; background:#07090e; }
.hero:before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(5,7,13,.98) 0%,rgba(6,9,17,.93) 31%,rgba(7,10,18,.64) 49%,rgba(7,9,15,.16) 73%,rgba(4,5,9,.2) 100%),linear-gradient(0deg,rgba(5,7,12,.7) 0%,transparent 36%); pointer-events:none; }
.hero:after { content:""; position:absolute; z-index:1; inset:0; background:repeating-linear-gradient(115deg,transparent 0 42px,rgba(255,255,255,.012) 43px 44px); pointer-events:none; }
.hero-background { position:absolute; z-index:0; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center center; }
.hero-copy { position:relative; z-index:2; max-width:680px; }
.hero h1 { margin:0; font-family:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size:clamp(4rem,6.7vw,7.6rem); line-height:.87; letter-spacing:-.025em; text-transform:uppercase; }
.hero h1 em { color:var(--gold); font-style:normal; text-shadow:4px 4px 0 var(--red); }
.tagline { font-size:clamp(1.3rem,2vw,2rem); margin:1.8rem 0 .8rem; font-weight:300; letter-spacing:-.03em; }
.tagline strong { color:var(--gold); font-weight:900; }
.hero-support { max-width:590px; color:#c7c9d1; line-height:1.7; font-size:1.02rem; }
.hero-actions { margin-top:2rem; display:flex; align-items:center; gap:2rem; }
.reassurance { margin:1.7rem 0 0; display:flex; gap:1.5rem; color:#d4d5da; font-size:.78rem; font-weight:700; }
.reassurance span::first-letter { color:var(--gold); }
.hero-visual { min-height:590px; position:relative; z-index:2; }
.quick-facts { position:relative; z-index:3; display:grid; grid-template-columns:repeat(4,1fr); background:var(--gold); color:#07080a; margin:0 clamp(1.25rem,5vw,5rem); transform:translateY(-28px); border-radius:var(--radius-md); overflow:hidden; box-shadow:0 18px 55px rgba(0,0,0,.3); }
.quick-facts div { min-height:112px; padding:1.3rem 2rem; display:flex; flex-direction:column; justify-content:center; border-right:1px solid rgba(0,0,0,.2); }
.quick-facts small,.details-card small,.venue-card small { text-transform:uppercase; letter-spacing:.18em; font-size:.6rem; font-weight:900; opacity:.62; margin-bottom:.4rem; }
.quick-facts strong { font-size:1.15rem; text-transform:uppercase; letter-spacing:-.02em; }
.quick-facts span,.details-card span { font-size:.75rem; margin-top:.25rem; opacity:.72; }
.section { padding:clamp(5.5rem,9vw,9rem) clamp(1.25rem,7vw,8rem); }
.sidelines { background:var(--cream); color:var(--ink); display:grid; grid-template-columns:.35fr 1fr .9fr; gap:5vw; align-items:start; }
.section-kicker { writing-mode:vertical-rl; transform:rotate(180deg); font-size:.62rem; text-transform:uppercase; font-weight:900; letter-spacing:.3em; color:var(--red); }
.sidelines h2,.section-heading h2,.meet h2,.testimonials h2 { font:clamp(3rem,5.3vw,6.3rem)/.92 Impact,'Arial Narrow Bold',sans-serif; text-transform:uppercase; margin:0; letter-spacing:-.02em; }
.sidelines-title { position:relative; }
.scribble { position:absolute; right:4%; bottom:-1.7rem; font:italic 2rem Georgia,serif; color:var(--red); transform:rotate(-8deg); }
.sidelines-copy { padding-top:.4rem; font-size:1rem; line-height:1.75; color:#4e4c47; }
.sidelines-copy>p:first-child { font-size:1.35rem; color:var(--ink); font-weight:800; line-height:1.35; }
.outcome { margin-top:2.3rem; border-top:1px solid #bcb6aa; padding-top:1.5rem; display:grid; grid-template-columns:auto 1fr; column-gap:1rem; }
.outcome>span { color:var(--red); font-size:2rem; grid-row:1/3; }
.outcome strong,.outcome b { display:block; text-transform:uppercase; font-size:.75rem; letter-spacing:.08em; }
.outcome b { color:var(--red); margin-top:.2rem; }
.learn,.testimonials { background:#fff; color:var(--ink); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:3rem; margin-bottom:4rem; }
.section-heading>p { max-width:400px; line-height:1.7; color:#646464; }
.learning-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #d9d9d9; border-radius:var(--radius-lg); overflow:hidden; }
.learning-grid article { min-height:300px; padding:2rem 2.2rem; border-right:1px solid #d9d9d9; position:relative; }
.learning-grid article:last-child { border-right:0; }
.learning-grid article>span { color:var(--red); font-size:.7rem; letter-spacing:.15em; font-weight:900; }
.learning-grid h3 { margin:7rem 0 .8rem; font-size:1.35rem; text-transform:uppercase; }
.learning-grid p { color:#656565; line-height:1.55; font-size:.9rem; }
.course { background:linear-gradient(120deg,#0b0e17,#11192b); display:grid; grid-template-columns:.85fr 1.15fr; gap:7vw; }
.course-intro h2,.details-heading h2,.faq-intro h2,.final-cta h2 { margin:0; font:clamp(3.5rem,5.5vw,6.4rem)/.9 Impact,'Arial Narrow Bold',sans-serif; text-transform:uppercase; }
.course-intro h2 em,.final-cta h2 em { color:var(--gold); font-style:normal; }
.course-intro>p:not(.eyebrow) { color:#b8bbc5; line-height:1.7; max-width:530px; margin:1.6rem 0 2.2rem; }
.week-list { display:grid; gap:.8rem; }
.week-list article { display:grid; grid-template-columns:90px 1fr; gap:1.5rem; padding:1.8rem 1.25rem; border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-md); background:rgba(255,255,255,.025); }
.week-num { color:var(--gold); font:2.7rem Impact,sans-serif; }
.week-list small { color:var(--blue); text-transform:uppercase; letter-spacing:.18em; font-weight:900; }
.week-list h3 { margin:.4rem 0; text-transform:uppercase; font-size:1.1rem; }
.week-list p { margin:0; color:#aeb2bd; font-size:.9rem; line-height:1.5; }
.cycles { background:var(--cream); color:var(--ink); overflow:hidden; }
.cycles .section-heading { margin-bottom:2.5rem; }
.cycle-track { display:grid; grid-template-columns:1.35fr repeat(3,1fr); gap:1rem; }
.cycle-card { min-width:0; min-height:410px; padding:1.6rem; border:1px solid #cbc5b9; border-radius:var(--radius-lg); background:#fff; display:flex; flex-direction:column; }
.cycle-card-featured { background:var(--navy); color:#fff; border-color:var(--navy); box-shadow:10px 10px 0 var(--gold); }
.cycle-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.cycle-month { font:2rem/1 Impact,'Arial Narrow Bold',sans-serif; text-transform:uppercase; }
.cycle-status { flex:0 0 auto; border:1px solid currentColor; border-radius:999px; padding:.45rem .7rem; font-size:.58rem; font-weight:900; text-transform:uppercase; letter-spacing:.09em; }
.cycle-card-featured .cycle-status { color:var(--gold); }
.cycle-year { margin:.55rem 0 1.4rem; color:#6c6860; font-size:.68rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.cycle-card-featured .cycle-year { color:#aeb2bd; }
.cycle-dates { display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; }
.cycle-dates span { min-height:76px; border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-sm); display:flex; flex-direction:column; justify-content:center; align-items:center; color:#c5c8d0; font-size:.6rem; text-transform:uppercase; }
.cycle-dates b { color:var(--gold); font:1.7rem/1 Impact,sans-serif; }
.cycle-meta { margin-top:auto; padding-top:1.5rem; display:flex; justify-content:space-between; align-items:end; gap:1rem; border-top:1px solid rgba(120,115,105,.24); }
.cycle-card-featured .cycle-meta { border-color:rgba(255,255,255,.16); }
.cycle-meta span { font-size:.72rem; font-weight:800; text-transform:uppercase; }
.cycle-meta strong { color:var(--red); font:2rem/1 Impact,sans-serif; }
.cycle-card-featured .cycle-meta strong { color:var(--gold); }
.cycle-deadline { color:#aeb2bd; font-size:.7rem; line-height:1.45; }
.cycle-button { width:100%; min-height:48px; box-shadow:none; font-size:.67rem; cursor:not-allowed; opacity:.82; }
.cycle-placeholder { flex:1; display:flex; align-items:center; gap:.8rem; border-top:1px solid #d7d1c6; border-bottom:1px solid #d7d1c6; color:#6b675f; }
.cycle-placeholder>span { color:var(--red); font-size:1.6rem; }
.cycle-placeholder p { font-size:.85rem; line-height:1.5; }
.cycle-notify { margin-top:1.25rem; color:#6c6860; font-size:.66rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.swipe-hint { display:none; margin:1.2rem 0 0; color:#6c6860; font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.meet { background:var(--cream); color:var(--ink); display:grid; grid-template-columns:.9fr 1fr; gap:8vw; align-items:center; }
.portrait-wrap { height:700px; position:relative; background:#0b0d10; overflow:hidden; border-radius:var(--radius-lg); box-shadow:-15px 15px 0 var(--red); }
.portrait-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.portrait-wrap span { position:absolute; bottom:-.08em; right:-.02em; font:8rem/.8 Impact,sans-serif; color:rgba(244,201,40,.16); letter-spacing:-.04em; }
.meet-copy .lead { font-size:1.35rem; line-height:1.45; font-weight:800; }
.meet-copy>p:not(.eyebrow):not(.lead) { color:#5d5a54; line-height:1.7; }
blockquote { margin:2.2rem 0 .8rem; border-left:5px solid var(--gold); padding:0 0 0 1.5rem; font:italic 1.55rem/1.45 Georgia,serif; color:var(--red); }
.placeholder-label { color:#6f6b62; font-size:.68rem; }
.details { background:var(--navy); display:grid; grid-template-columns:.8fr 1fr; gap:2.5rem 6vw; }
.details-heading { grid-row:span 2; }
.details-card { display:grid; grid-template-columns:1fr 1fr; border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md); overflow:hidden; }
.details-card div { padding:1.5rem; min-height:125px; display:flex; flex-direction:column; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.details-card div:nth-child(even) { border-right:0; }
.details-card div:nth-last-child(-n+2) { border-bottom:0; }
.details-card strong { font-size:1.35rem; text-transform:uppercase; }
.venue-card { display:grid; grid-template-columns:1fr; gap:1.5rem; background:var(--red); padding:2rem; border-radius:var(--radius-lg); }
.venue-card h3 { font:2rem/1 Impact,sans-serif; text-transform:uppercase; margin:.35rem 0 1rem; }
.venue-card p { line-height:1.5; }
.venue-note { font-size:.73rem; color:#f0cbd2; }
.map-art { min-height:230px; background:repeating-linear-gradient(25deg,transparent 0 25px,rgba(255,255,255,.13) 26px 28px),repeating-linear-gradient(120deg,transparent 0 32px,rgba(255,255,255,.1) 33px 35px),#74192d; display:grid; place-items:center; position:relative; overflow:hidden; }
.map-art span { font:6rem Impact,sans-serif; color:rgba(255,255,255,.12); }
.map-art i { position:absolute; width:22px; height:22px; border-radius:50% 50% 50% 0; background:var(--gold); transform:rotate(-45deg); }
.venue-map-wrap { margin:0; width:100%; aspect-ratio:3/2; overflow:hidden; background:#101b31; border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-md); }
.venue-card > div { order:1; }
.venue-card > .venue-map-wrap { order:2; }
.venue-map-wrap img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.012); }
.train-badge { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:#e32636; color:#fff; border:3px solid #fff; font:700 1.2rem/1 Arial,sans-serif; box-shadow:0 5px 16px rgba(0,0,0,.25); }
.transit-callout { display:flex; align-items:center; gap:.8rem; margin:1.1rem 0; padding:.8rem 1rem; border:1px solid rgba(255,255,255,.28); border-radius:var(--radius-sm); background:rgba(65,4,22,.22); }
.transit-callout .train-badge { flex:0 0 38px; width:38px; height:38px; font-size:1.05rem; }
.transit-callout p { margin:0; display:flex; flex-direction:column; }
.transit-callout strong { text-transform:uppercase; font-size:.72rem; letter-spacing:.09em; }
.transit-callout span { font-size:.72rem; opacity:.8; }
.route-badges { display:flex; flex-wrap:wrap; gap:.35rem; flex:0 0 auto; }
.route-badges b { min-width:29px; height:29px; padding:0 .38rem; border-radius:999px; display:grid; place-items:center; color:#fff; font:800 .68rem/1 Arial,sans-serif; box-shadow:0 2px 8px rgba(0,0,0,.22); }
.route-badges .route-1 { background:#e32636; }
.route-badges .route-blue { background:#1672d4; }
.route-badges .route-orange { background:#f57c00; }
.route-badges .route-bus { background:#0878d1; border-radius:.45rem; padding-inline:.48rem; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.testimonial-grid article { border:1px solid #d8d8d8; border-radius:var(--radius-md); min-height:230px; padding:2rem; display:flex; flex-direction:column; justify-content:flex-end; background:#f9f7f1; }
.quote-mark { font:4rem Georgia,serif; color:var(--red); margin-bottom:auto; }
.testimonial-grid p { font-size:1.15rem; font-weight:800; }
.testimonial-grid small { color:#777; line-height:1.4; }
.faq { background:#090c14; display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; }
.faq-intro>p:last-child { color:#aeb1bb; }
.faq-list { display:grid; gap:.75rem; }
.faq-list details { border:1px solid rgba(255,255,255,.17); border-radius:var(--radius-md); padding-inline:1rem; background:rgba(255,255,255,.025); }
.faq-list summary { list-style:none; min-height:82px; display:grid; grid-template-columns:55px 1fr auto; align-items:center; cursor:pointer; font-weight:800; font-size:1.05rem; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--gold); font-size:.65rem; }
.faq-list summary b { font-size:1.5rem; color:var(--gold); transition:transform .2s; }
.faq-list details[open] summary b { transform:rotate(45deg); }
.faq-list details p { margin:0 0 1.7rem 55px; color:#aeb1bb; line-height:1.65; max-width:650px; }
.final-cta { text-align:center; padding:9rem 1.25rem; position:relative; overflow:hidden; background:radial-gradient(circle at 50% 110%,rgba(159,38,63,.75),transparent 45%),var(--navy); }
.final-cta:before,.final-cta:after { content:""; position:absolute; width:400px; height:400px; border:1px solid rgba(36,116,255,.4); border-radius:50%; left:-240px; top:10%; }
.final-cta:after { left:auto; right:-240px; border-color:rgba(244,201,40,.4); }
.final-cta .eyebrow { justify-content:center; }
.final-cta>p:not(.eyebrow) { color:#b9bdc7; max-width:550px; margin:1.5rem auto 2rem; line-height:1.6; }
.final-cta small { display:block; margin-top:1.5rem; color:#9498a3; }
footer { padding:3rem clamp(1.25rem,5vw,5rem); display:grid; grid-template-columns:1fr 1fr 1fr; gap:2rem; align-items:start; background:#05070b; border-top:1px solid rgba(255,255,255,.1); }
footer p,footer small { color:#888d98; font-size:.75rem; line-height:1.6; }
footer .brand-logo { height:112px; }
footer .footer-links { display:flex; flex-direction:column; align-items:flex-end; gap:1rem; }
footer .footer-links nav { display:flex; justify-content:flex-end; gap:1.5rem; text-transform:uppercase; font-size:.65rem; font-weight:900; letter-spacing:.12em; }
.social-links a { width:2.35rem; height:2.35rem; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:grid; place-items:center; color:#f5c842; line-height:1; transition:.2s ease; }
.social-links svg { width:1.15rem; height:1.15rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.social-links .icon-fill { fill:currentColor; stroke:none; }
.social-links a:hover,.social-links a:focus-visible { color:#07101f; background:#f5c842; border-color:#f5c842; transform:translateY(-2px); }
footer small { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.1); padding-top:1.2rem; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns:1fr auto; }
  .site-header nav { display:none; }
  .hero { grid-template-columns:1fr 460px; padding-left:3rem; padding-right:2rem; }
  .hero h1 { font-size:clamp(4rem,7.8vw,6rem); }
  .quick-facts { margin-inline:2rem; }
  .sidelines { grid-template-columns:auto 1fr; }
  .sidelines-copy { grid-column:2; }
  .learning-grid { grid-template-columns:1fr 1fr; }
  .learning-grid article:nth-child(2) { border-right:0; }
  .learning-grid article:nth-child(-n+2) { border-bottom:1px solid #d9d9d9; }
  .course,.meet,.details,.faq { grid-template-columns:1fr; }
  .cycle-track { grid-template-columns:1.2fr 1fr; }
  .details-heading { grid-row:auto; }
}

@media (max-width: 720px) {
  .site-header { height:72px; padding-inline:1rem; }
  .brand-logo { height:44px; }
  footer .brand-logo { height:100px; }
  .button-small { font-size:0; width:44px; padding:0; gap:0; }
  .button-small span { font-size:1rem; }
  .hero { min-height:780px; padding:104px 0 24px; display:block; background:#05070d; }
  .hero:before { z-index:1; background:linear-gradient(90deg,rgba(4,6,11,.98) 0%,rgba(5,7,13,.94) 34%,rgba(5,7,13,.68) 53%,rgba(5,7,13,.16) 76%),linear-gradient(0deg,rgba(4,6,11,.86) 0%,transparent 42%); }
  .hero-copy { position:relative; z-index:2; width:62%; min-height:650px; padding:1.4rem 0 2.5rem 1.25rem; display:flex; flex-direction:column; justify-content:center; }
  .hero-background { position:absolute; z-index:0; inset:0; width:100%; height:100%; max-width:none; margin:0; aspect-ratio:auto; object-fit:cover; object-position:66% center; opacity:1; border-radius:0; }
  .hero h1 { font-size:clamp(3rem,11.5vw,4.65rem); }
  .tagline { margin-top:1.4rem; }
  .hero-support { font-size:.95rem; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:1.3rem; }
  .reassurance { flex-direction:column; gap:.45rem; margin-bottom:1rem; }
  .hero-visual { display:none; }
  .quick-facts { margin:0 1rem; transform:none; grid-template-columns:1fr 1fr; border-radius:0 0 var(--radius-lg) var(--radius-lg); }
  .quick-facts div { min-height:100px; padding:1rem 1.25rem; border-bottom:1px solid rgba(0,0,0,.2); }
  .quick-facts div:nth-child(even) { border-right:0; }
  .quick-facts strong { font-size:1rem; }
  .section { padding:5.5rem 1.25rem; }
  .sidelines { display:block; }
  .section-kicker { writing-mode:horizontal-tb; transform:none; margin-bottom:1rem; }
  .sidelines h2,.section-heading h2,.meet h2,.testimonials h2,.course-intro h2,.details-heading h2,.faq-intro h2,.final-cta h2 { font-size:clamp(3rem,14vw,4.3rem); }
  .scribble { font-size:1.5rem; bottom:-1.4rem; }
  .sidelines-copy { margin-top:3.2rem; }
  .section-heading { display:block; margin-bottom:2.5rem; }
  .section-heading>p { margin-top:1.5rem; }
  .learning-grid { grid-template-columns:1fr; }
  .learning-grid article { min-height:auto; padding:1.5rem .5rem; border-right:0; border-bottom:1px solid #d9d9d9; }
  .learning-grid h3 { margin:2.7rem 0 .6rem; }
  .course { gap:4rem; }
  .cycle-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding:.25rem 1.25rem 1rem; margin-inline:-1.25rem; scrollbar-width:none; }
  .cycle-track::-webkit-scrollbar { display:none; }
  .cycle-card { flex:0 0 84vw; min-height:400px; scroll-snap-align:center; }
  .cycle-card:first-child { margin-left:0; }
  .swipe-hint { display:block; }
  .week-list article { grid-template-columns:62px 1fr; gap:.75rem; }
  .portrait-wrap { height:540px; box-shadow:-8px 8px 0 var(--red); }
  .portrait-wrap span { font-size:5rem; }
  .meet { gap:4rem; }
  .details-card { grid-template-columns:1fr; }
  .details-card div,.details-card div:nth-child(even),.details-card div:nth-last-child(-n+2) { border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }
  .details-card div:last-child { border-bottom:0; }
  .venue-card { grid-template-columns:1fr; padding:1.25rem; }
  .map-art { min-height:160px; }
  .venue-map-wrap { aspect-ratio:3/2; }
  .venue-map-wrap img { object-position:center; }
  .testimonial-grid { grid-template-columns:1fr; }
  .testimonial-grid article { min-height:190px; }
  .faq { gap:3rem; }
  .faq-list summary { grid-template-columns:36px 1fr auto; font-size:.95rem; }
  .faq-list details p { margin-left:36px; }
  .final-cta { padding:7rem 1.25rem; }
  footer { grid-template-columns:1fr; }
  footer .footer-links { align-items:flex-start; }
  footer .footer-links nav { justify-content:flex-start; flex-wrap:wrap; }
  footer small { grid-column:auto; }
}

@media (max-width: 429px) {
  .hero { min-height:auto; padding:104px 0 0; display:flex; flex-direction:column; background:linear-gradient(145deg,#05070d,#0d1321); }
  .hero:before { background:repeating-linear-gradient(115deg,transparent 0 42px,rgba(255,255,255,.012) 43px 44px); }
  .hero-copy { order:1; width:auto; min-height:0; padding:0 1.25rem 3rem; display:block; }
  .hero-background { position:relative; order:2; z-index:2; inset:auto; width:calc(100% - 2rem); height:auto; margin-inline:1rem; aspect-ratio:4/3; object-fit:cover; object-position:72% center; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }
  .hero h1 { font-size:clamp(3.35rem,16vw,4.4rem); }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
