/* Program-specific ad destinations share the existing Netlify form and branding. */
[hidden] { display: none !important; }
.field-label { display: block; font-size: .88rem; font-weight: 700; margin: 0 0 5px; }
.contact-form label span { font-weight: 400; color: #666; }
.contact-form label.privacy { align-items: flex-start; }
.contact-form label.privacy input[type="checkbox"] { flex: 0 0 20px; margin-top: 3px; }
.contact-form input, .contact-form select { scroll-margin-top: 100px; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible { outline: 3px solid #1976d2; outline-offset: 3px; }
.btn-submit:disabled { cursor: wait; opacity: .65; }
#funnel { scroll-margin-top: 60px; }

html[data-program] .hero { min-height: 0; padding: 110px 24px 54px; }
html[data-program] .hero-logo { width: 104px; margin-bottom: 24px; }
html[data-program] .hero-logo, html[data-program] .nav-logo { filter: brightness(0) invert(1); }
html[data-program] .hero h1 { max-width: 760px; font-size: clamp(2rem, 4vw, 3.2rem); text-wrap: balance; }
html[data-program] .hero .hero-sub { max-width: 670px; opacity: 1; font-size: 1.06rem; }
html[data-program] .hero-cta, html[data-program] .nav-cta,
html[data-program] .btn-submit, html[data-program] .mobile-cta a { text-transform: none; letter-spacing: 0; }
html[data-program="kids"] .hero { background-image: linear-gradient(135deg, rgba(0,0,0,.76), rgba(0,0,0,.58)), url('/images/kids-class.jpg'); }
html[data-program="adults"] .hero { background-image: linear-gradient(135deg, rgba(0,0,0,.76), rgba(0,0,0,.58)), url('/images/adults-gi-class.jpg'); }
html[data-program="women"] .hero { background-image: linear-gradient(135deg, rgba(0,0,0,.76), rgba(0,0,0,.58)), url('/images/women-class.jpg'); }
html[data-program] .hero-badge,
html[data-program] #fb-prefill-banner,
html[data-program] .mobile-cta,
html[data-program] .proof-bar,
html[data-program] .progress-bar,
html[data-program] .gallery-section,
html[data-program] .programs,
html[data-program] .schedule,
html[data-program] .reviews,
html[data-program] .why-bjj,
html[data-program] .why-gb,
html[data-program] .instructor,
html[data-program] .section-header,
html[data-program] .faq,
html[data-program] .cta-banner,
html[data-program] .funnel-step[data-step="4"] .btn-back,
html[data-program] label[for="f-referral"],
html[data-program] #f-referral { display: none; }
html[data-program] .funnel-section { padding: 44px 20px 48px; }
html[data-program] .funnel-section h2 { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; }
html[data-program] .funnel-sub { max-width: 650px; margin: 12px auto 26px; }
html[data-program] .contact-form label:not(.privacy) { display: block; font-size: .88rem; font-weight: 700; margin-bottom: 5px; }
html[data-program] .contact-form label[for="f-referral"] { display: none; }
html[data-program] .funnel-nav { margin-top: 24px; }
html[data-program] .btn-submit { width: 100%; }
html[data-program] #program-contact-options select { color: #222; }
html[data-program] .map-section { max-width: 1080px; margin: 0 auto 48px; }
html[data-program] .map-section iframe { height: 320px; }

.program-introduction { max-width: 900px; padding: 20px 28px 52px; margin: auto; }
.program-introduction h2 { font-size: 1.75rem; line-height: 1.3; margin-bottom: 22px; }
.program-introduction ol { padding-left: 24px; }
.program-introduction li { padding-left: 12px; margin-bottom: 20px; }
.program-introduction li::marker { color: #e30613; font-weight: 800; }
.program-introduction h3 { font-size: 1rem; margin-bottom: 4px; }
.program-introduction p { max-width: 70ch; color: #555; font-size: .95rem; }
.program-location-note { margin-top: 24px; }
.program-location-note a { color: #b00510; font-weight: 700; text-decoration: underline; }

@media (max-width: 600px) {
  html[data-program] .hero { padding: 92px 20px 36px; }
  html[data-program] .hero-logo { width: 80px; margin-bottom: 20px; }
  html[data-program] .hero .hero-sub { font-size: 1rem; }
  html[data-program] .hero .hero-cta { padding: 16px 20px; font-size: 1rem; width: 100%; max-width: 400px; }
  html[data-program] .funnel-container { padding: 24px 20px; }
  html[data-program] .nav-cta { font-size: .75rem; padding: 9px 10px; }
  html[data-program] .map-section { margin-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
