/* Public website tokens. Operational workspaces keep their own density and theme. */
html.public-document {
    --site-ink: #202625;
    --site-muted: #59615e;
    --site-paper: #f7f6f2;
    --site-surface: #fff;
    --site-line: #dddfd9;
    --site-red: #bb231c;
    --site-red-hover: #941b16;
    --site-radius: .9rem;
    --site-shadow: 0 8px 28px rgb(32 38 37 / 6%);
    --site-space-1: .5rem;
    --site-space-2: 1rem;
    --site-space-3: 1.5rem;
    --site-space-4: 2rem;
    --site-section-space: clamp(3rem, 6vw, 5.5rem);
    font-size: 100%;
    scroll-padding-top: 7rem;
}
.public-site { --bs-danger: var(--site-red); color: var(--site-ink); background: var(--site-surface); font: 400 1rem/1.65 var(--font-body); }
.public-site [hidden] { display: none !important; }
.public-main { flex: 1; min-width: 0; }
.public-main:focus { outline: none; }
.public-site h1, .public-site h2, .public-site h3 { font-family: var(--font-body); font-weight: 750; line-height: 1.18; letter-spacing: -.035em; overflow-wrap: break-word; }
.public-site h1 { font-size: clamp(2.1rem, 4.2vw, 3.5rem); }
.public-site h2 { font-size: clamp(1.65rem, 3vw, 2.6rem); }
.public-site h3 { font-size: 1.3rem; }
.public-site .h4 { font-size: 1.35rem; }
.public-site .h5 { font-size: 1.15rem; }
.public-site .small, .public-site small { font-size: .875rem; }
.public-site .text-muted { color: var(--site-muted) !important; }
.public-site a { text-underline-offset: .22em; }
.public-site :focus-visible { outline: 3px solid #0864b0; outline-offset: 4px; }
.public-site :is(.bg-dark, .academy-invitation) :focus-visible { outline-color: #ffd880; }
.site-skip-link { position: fixed; z-index: 1100; top: .5rem; left: 1rem; padding: .8rem 1.2rem; background: white; color: var(--site-ink); border-radius: .5rem; transform: translateY(-180%); }
.site-skip-link:focus { transform: translateY(0); }
.public-site .btn { min-height: 44px; padding: .65rem 1.1rem; border-radius: .55rem; font-weight: 700; font-size: .95rem; line-height: 1.4; white-space: normal; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.public-site .btn-lg { min-height: 52px; padding: .9rem 1.35rem; font-size: 1rem; }
.public-site .btn-danger { --bs-btn-bg: var(--site-red); --bs-btn-border-color: var(--site-red); --bs-btn-hover-bg: var(--site-red-hover); --bs-btn-hover-border-color: var(--site-red-hover); background: var(--site-red); border-color: var(--site-red); color: white; }
.public-site .btn-danger:is(:hover, :active) { background: var(--site-red-hover) !important; border-color: var(--site-red-hover) !important; }
.public-site .btn-outline-danger { color: var(--site-red); border-color: var(--site-red); }
.public-site .btn-outline-danger:hover { color: white; background: var(--site-red); }
.public-site .btn-outline-light { color: white; background: transparent; border-color: #b5bcb8; }
.public-site .btn-outline-light:hover { color: var(--site-ink); background: white; }
.public-site .btn:disabled, .public-site .btn.disabled { opacity: .6; cursor: not-allowed; }
.public-site :is(.form-control, .form-select) { min-height: 48px; font-size: 1rem; line-height: 1.5; border-color: #8b9590; border-radius: .5rem; padding: .65rem .8rem; }
.public-site :is(.form-control, .form-select):focus { border-color: #0864b0; box-shadow: 0 0 0 3px rgb(8 100 176 / 15%); }
.public-site .form-label { font-weight: 650; margin-bottom: .4rem; }
.public-site .form-check-input { width: 1.2em; height: 1.2em; border-color: #707b75; }
.public-site .form-check-label { padding-block: .25rem; }
.public-site .card { --bs-card-border-radius: var(--site-radius); --bs-card-spacer-y: 1.4rem; --bs-card-spacer-x: 1.4rem; }
.public-site .shadow-sm { box-shadow: var(--site-shadow) !important; }
.public-site .card-img-top { border-top-left-radius: var(--site-radius); border-top-right-radius: var(--site-radius); }
.public-site .accordion-button { min-height: 56px; font-size: 1rem; line-height: 1.5; }
.public-site .modal-content { border-radius: var(--site-radius); }
.public-site .btn-close { min-width: 44px; min-height: 44px; padding: 0; }
.public-site .alert { border-radius: .65rem; }
.public-site .page-rich-text { line-height: 1.8; overflow-wrap: break-word; }
.public-site .page-block-text .page-rich-text { max-width: 75ch; }
.public-site .back-toolbar { top: var(--site-header-height, 80px); }
.public-site .public-main > .container { max-width: 1240px; }
.site-container { width: min(1240px, calc(100% - 3rem)); margin-inline: auto; }
.site-section { padding-block: var(--site-section-space); }
.site-eyebrow { color: var(--site-red); text-transform: uppercase; letter-spacing: .13em; font-size: .73rem; font-weight: 800; margin-bottom: 1.2rem; }
.site-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.3rem; }
.site-actions .btn, .site-nav-cta { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; }
.site-text-link { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; color: var(--site-ink); font-weight: 750; font-size: .95rem; text-decoration: none; }
.site-text-link:hover { color: var(--site-red); text-decoration: underline; }
.site-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2rem; }
.site-section-heading h2 { margin: 0; }
.site-section-heading > p { max-width: 38ch; color: var(--site-muted); margin: 0; }
/* Navigation is one shared landmark, with all guest destinations available on mobile. */
.public-site .navbar { background: var(--site-ink) !important; min-height: 80px; padding: .7rem 1.5rem; border-bottom: 1px solid #3d4540; }
.public-site .navbar > .container-fluid { max-width: 1360px; padding: 0; gap: 1rem; }
.public-site .navbar-brand { margin: 0 .6rem 0 0; flex-shrink: 0; }
.public-site .navbar-brand img { width: 186px; height: 48px; object-fit: contain; }
.public-site .navbar .nav-link { color: #f4f5f0; font-size: .875rem; font-weight: 650; min-height: 44px; display: flex; align-items: center; padding: .6rem .75rem; border-radius: .4rem; }
.public-site .navbar .nav-link:hover, .public-site .navbar [aria-current="page"] { color: white; background: #3e4641; }
.public-site .navbar-nav { gap: .15rem; align-items: center; }
.public-site .site-search-form { width: 165px; flex-shrink: 0; }
.public-site .site-search-form :is(.form-control, .btn) { min-height: 44px; font-size: .875rem; }
.public-site .site-search-submit { padding-inline: .7rem; background: #fff; color: var(--site-ink); border-color: white; }
.public-site .navbar-toggler { border-color: #7a837d; min-height: 44px; min-width: 48px; }
.public-site .site-nav-cta { margin-inline-start: .8rem; white-space: nowrap; font-size: .85rem; }
.public-site .site-mobile-trial { font-size: .8rem; padding: .65rem .8rem; }
.public-site .site-explore { position: relative; }
.public-site .site-explore summary { cursor: pointer; list-style: none; gap: .45rem; }
.public-site .site-explore summary::-webkit-details-marker { display: none; }
.site-explore-menu { list-style: none; padding: .5rem; margin: .4rem 0 0; min-width: 260px; position: absolute; z-index: 1030; background: white; border: 1px solid var(--site-line); border-radius: .65rem; box-shadow: var(--site-shadow); }
.site-explore-menu a { display: flex; align-items: center; min-height: 44px; padding: .5rem .8rem; color: var(--site-ink); font-size: .875rem; text-decoration: none; border-radius: .35rem; }
.public-site .site-explore-menu a:hover, .public-site .site-explore-menu [aria-current] { background: var(--site-paper); color: var(--site-red); }
/* Homepage */
.academy-hero { background: var(--site-paper); }
.academy-hero-grid { display: grid; grid-template-columns: 1.06fr 1fr; gap: clamp(2rem, 4vw, 4.5rem); align-items: center; padding-block: 3.5rem; }
.academy-hero-copy { padding-block: 1rem; }
.academy-hero-grid > *, .academy-faq-grid > *, .academy-paths > * { min-width: 0; }
.academy-hero-copy .site-eyebrow { display: flex; align-items: center; gap: .6rem; }
.academy-hero-copy .site-eyebrow span { width: 7px; height: 7px; background: var(--site-red); border-radius: 50%; }
.public-site .academy-hero h1 { font-size: clamp(3rem, 5vw, 4.7rem); line-height: 1.04; letter-spacing: -.06em; margin-bottom: 1.5rem; }
.academy-hero h1 em { font-style: normal; color: var(--site-red); }
.academy-hero-description { max-width: 42ch; font-size: 1.1rem; color: var(--site-muted); margin-bottom: 1.8rem; }
.academy-reassurance { color: var(--site-muted); font-size: .8rem; margin: 1.4rem 0 0; }
.academy-reassurance i { margin-inline-end: .3rem; }
.academy-hero-visual { margin: 0; position: relative; align-self: stretch; min-height: 440px; overflow: hidden; border-radius: 1rem; background: #d3d0c7; }
.academy-hero-visual > img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 88% center; }
.academy-hero-visual figcaption { position: absolute; inset: auto 1.2rem 1.2rem; padding: 1.2rem; background: rgb(255 255 255 / 94%); border-radius: .55rem; font-weight: 750; }
.academy-hero-visual figcaption span { display: block; }
.academy-hero-visual figcaption .site-eyebrow { margin-bottom: .35rem; font-size: .65rem; }
.academy-values { border-block: 1px solid var(--site-line); }
.academy-values > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding-block: 1.25rem; font-size: .8rem; font-weight: 650; }
.academy-values a { color: var(--site-ink); }
.academy-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.academy-path { display: flex; flex-direction: column; padding: 1.7rem; border: 1px solid var(--site-line); border-radius: var(--site-radius); background: var(--site-paper); }
.academy-path-top { display: flex; justify-content: space-between; gap: .5rem; color: var(--site-muted); text-transform: uppercase; font-size: .7rem; font-weight: 800; letter-spacing: .07em; margin-bottom: 2.3rem; }
.academy-path-top span:last-child { color: var(--site-red); }
.academy-path h3 { margin-bottom: .8rem; }
.academy-path p { color: var(--site-muted); font-size: .95rem; }
.academy-path .site-text-link { margin-top: auto; }
.academy-proof { border-bottom: 1px solid var(--site-line); padding-block: 1.7rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem 1.5rem; }
.academy-proof p { margin: 0; color: var(--site-muted); }
.academy-proof > div { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.academy-proof a { color: var(--site-ink); font-size: .875rem; font-weight: 700; padding-block: .5rem; }
.academy-content-heading { padding-bottom: 1.5rem; }
.academy-content-heading > p:last-child { color: var(--site-muted); }
.academy-home-reviews { padding-bottom: var(--site-section-space); }
.academy-home-reviews .row > .col { width: 50%; }
.academy-home-content > .page-carousel-block { max-width: 1240px; margin-inline: auto !important; }
.academy-home-content > section { padding-block: 2.5rem !important; }
.academy-home-content .card { overflow: hidden; }
.academy-home-content .card h5 { font-size: 1.05rem; line-height: 1.35; }
.academy-home-content :is(.section-secondary, .section-dark) { background: #edf0eb; color: var(--site-ink); }
.public-site .academy-home-content :is(.section-secondary, .section-dark) > .row > div > :is(h2,h3,h4,h5) { color: var(--site-ink); }
.academy-faq { background: var(--site-paper); }
.academy-faq-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 4rem; }
.academy-faq-grid > div > p:not(.site-eyebrow) { color: var(--site-muted); }
.academy-faq details { border-bottom: 1px solid #cbd1ca; }
.academy-faq summary { padding: 1.35rem 1.8rem 1.35rem 0; font-weight: 700; cursor: pointer; position: relative; list-style: none; }
.academy-faq summary::-webkit-details-marker { display: none; }
.academy-faq summary::after { content: '+'; position: absolute; inset-inline-end: .2rem; font-size: 1.4rem; top: 1rem; color: var(--site-red); }
.academy-faq details[open] summary::after { content: '−'; }
.academy-faq details p { padding-bottom: .9rem; color: var(--site-muted); }
.academy-invitation { background: var(--site-ink); color: white; border-bottom: 1px solid #46514a; }
.academy-invitation-inner { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.academy-invitation .site-eyebrow { color: #ffb5a7; }
.academy-invitation h2 { color: white; font-size: clamp(2rem, 3.5vw, 3.1rem); }
.academy-invitation p:not(.site-eyebrow) { color: #d3d9d4; margin-bottom: 0; }
.academy-invitation-inner > div:last-child { display: grid; justify-items: start; gap: .75rem; }
.academy-invitation .site-text-link { color: #fff; }
/* Booking and location discovery */
.public-site .trial-page { background: var(--site-paper); padding-bottom: 4rem; }
.trial-page-heading { text-align: center; max-width: 660px; margin: auto; padding: 3.25rem 1.5rem 2rem; }
.trial-page-heading h1 { font-size: clamp(2rem, 3.4vw, 3rem); margin-bottom: 1rem; }
.trial-page-heading p:not(.site-eyebrow) { color: var(--site-muted); }
.trial-reassurance { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .8rem; font-weight: 650; }
.public-site .trial-wizard-shell { scroll-margin-top: 100px; padding-inline: 1rem; }
.public-site .trial-choice { min-height: 108px; padding: 1.25rem; border-color: #b6c0b7; border-radius: .7rem; color: var(--site-ink); }
.public-site .trial-choice:hover { border-color: var(--site-red); background: var(--site-paper); }
.public-site .trial-choice:focus-visible, .public-site .trial-class-card:focus-within { outline: 3px solid #0864b0; outline-offset: 3px; }
.public-site .trial-progress span.active { background: var(--site-red); }
.public-site .trial-stage h2 { font-size: 1.45rem; }
.public-site .trial-stage label.d-block { padding-block: .5rem; }
.public-site .trial-stage label.d-block > input { margin-inline-end: .4rem; width: 1.2rem; height: 1.2rem; vertical-align: middle; }
.public-site .trial-sticky-actions { padding-block: 1rem; z-index: 2; gap: .75rem; }
.trial-help { text-align: center; font-size: .9rem; margin: 1.7rem auto 0; padding-inline: 1rem; }
.trial-help a { color: var(--site-ink); }
.public-site .venue-list .venue-card { border: 1px solid var(--site-line) !important; box-shadow: none !important; }
.public-site .venue-list .venue-card > .ratio { --bs-aspect-ratio: 36%; border-bottom: 1px solid var(--site-line); background: var(--site-paper); }
.public-site .venue-list .venue-card .card-img-top { object-fit: contain !important; padding: 1.5rem; }
.public-site .venue-list .venue-card.is-closed { background: #f4f5f2; }
.venue-card-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.public-site .contact-panel { max-width: 760px; margin-inline: auto; }
.public-site .site-account-heading { background: var(--site-paper); color: var(--site-ink); border-bottom: 1px solid var(--site-line); }
.public-site .site-account-heading h2 { color: var(--site-ink); font-size: 1.6rem; }
.public-site .account-registration { padding-inline: 1.5rem; }
.public-site .rating-star { min-width: 44px; }
.public-site #contactForm textarea { min-height: 150px; }
.public-site .shop-page .card-img-top { height: 240px; object-fit: contain; }
/* Footer and consent remain available at every viewport. */
.public-site .site-footer { padding: 3rem 0 1.5rem !important; background: var(--site-ink) !important; color: #e2e7e3; }
.public-site .site-footer .footer-mobile-newsletter { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 3rem; max-width: 1020px; margin: 0 auto 2rem; }
.public-site .footer-mobile-logo img { display: block; width: 220px; max-width: 100%; height: auto; margin-bottom: 1rem; }
.public-site .footer-brand-description { color: #c4cec7; max-width: 34ch; font-size: .9rem; }
.public-site .footer-brand-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.public-site .footer-brand-links a { color: white; min-height: 44px; display: inline-flex; align-items: center; }
.public-site .footer-newsletter-consent { font-size: .75rem; line-height: 1.6; color: #c4cec7 !important; }
.public-site .site-footer .footer-sections-links { display: flex !important; flex-wrap: wrap !important; align-items: center; justify-content: center !important; gap: .5rem 1.5rem !important; }
.public-site .site-footer .footer-sections-links a { display: inline-flex; min-height: 44px; align-items: center; border: 0; padding: .3rem 0; }
.public-site .footer-social-links a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; font-size: 1.2rem; border: 1px solid #536057; border-radius: 50%; }
.public-site .footer-site-links a { padding-block: .65rem; font-size: .8rem; }
.public-site .site-footer .footer-site-links { flex-direction: row; gap: .4rem 1rem !important; }
.public-site #cookieConsentBanner { padding: .75rem !important; pointer-events: none; }
.public-site #cookieConsentBanner > .card { max-width: 660px; margin-inline-start: auto; pointer-events: auto; background: #fff !important; color: var(--site-ink) !important; border: 1px solid var(--site-line) !important; box-shadow: 0 8px 40px rgb(0 0 0 / 18%) !important; }
.public-site #cookieConsentBanner .card-body { display: flex !important; flex-wrap: wrap; padding: 1rem 1.2rem; gap: .8rem !important; }
.public-site #cookieConsentBanner h6 { font-size: .9rem; font-weight: 750; }
.public-site #cookieConsentBanner .text-light { color: var(--site-muted) !important; opacity: 1 !important; font-size: .8rem; }
.public-site #cookieConsentBanner .rounded-circle { display: none !important; }
.public-site #cookieRejectBtn { color: var(--site-ink); border-color: #7e8981; background: white; }
.public-site #cookieAcceptBtn { background: var(--site-ink) !important; border-color: var(--site-ink) !important; color: white; }
.public-site .site-carousel-toggle { display: block; margin: .75rem auto; }
@media (min-width: 1200px) { .public-site .site-register-link { display: none; } }
@media (max-width: 991.98px) {
    .public-site .account-registration > .row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin: 0; }
    .public-site .account-registration .account-intro { display: contents; }
    .public-site .account-intro-copy { order: 0; margin: 0 !important; }
    .public-site .account-registration .account-form { order: 1; width: auto; padding: 0; margin: 0; }
    .public-site .account-benefits { order: 2; margin: 0; }
}
@media (max-width: 1199.98px) {
    .public-site .site-navbar .navbar-nav { align-items: stretch; }
    .public-site .site-navbar .navbar-collapse { max-height: calc(100dvh - 90px); overflow-y: auto; padding-block: .75rem; }
    .public-site .site-navbar .nav-link { font-size: 1rem; padding: .7rem; }
    .public-site .site-navbar .site-nav-cta { margin: .5rem 0; width: 100%; }
    .public-site .site-navbar .site-search-form { width: 100%; margin-block: .75rem !important; }
    .public-site .site-navbar .site-explore-menu { position: static; box-shadow: none; background: #303933; border-color: #556159; }
    .public-site .site-navbar .site-explore-menu a { color: #fff; }
    .public-site .site-navbar .site-explore-menu a:hover { color: var(--site-ink); }
}
@media (max-width: 767.98px) {
    html.public-document { scroll-padding-top: 5.5rem; }
    .public-site .navbar { min-height: 72px; padding: .65rem 1rem; }
    .public-site .navbar > .container-fluid { gap: .5rem; }
    .public-site .navbar-brand { margin: 0; }
    .public-site .navbar-brand img { width: 145px; height: 40px; }
    .site-container { width: calc(100% - 2rem); }
    .academy-hero-grid { grid-template-columns: 1fr; gap: 1.5rem; padding-block: 2rem; }
    .academy-hero-copy { padding: 0; }
    .public-site .academy-hero h1 { font-size: clamp(2.8rem, 10vw, 4rem); }
    .academy-hero-description { font-size: 1rem; }
    .academy-hero-visual { min-height: 275px; }
    .academy-hero-visual > img { object-position: 78% center; }
    .academy-hero-visual figcaption { inset: auto .8rem .8rem; padding: .85rem 1rem; font-size: .85rem; }
    .academy-values > div { display: grid; grid-template-columns: 1fr 1fr; font-size: .75rem; }
    .academy-values a { min-height: 44px; display: inline-flex; align-items: center; }
    .site-section-heading { display: block; }
    .site-section-heading > p { margin-top: 1rem; }
    .academy-paths { grid-template-columns: 1fr; gap: .85rem; }
    .academy-home-reviews .row > .col { width: 100%; }
    .academy-path { padding: 1.4rem; }
    .academy-path-top { margin-bottom: 1.2rem; }
    .academy-faq-grid { grid-template-columns: 1fr; gap: 1.3rem; }
    .academy-invitation-inner { align-items: start; flex-direction: column; }
    .public-site .site-footer .footer-mobile-newsletter { grid-template-columns: 1fr; gap: 1.75rem; }
    .public-site .site-footer .footer-sections-links { display: grid !important; grid-template-columns: 1fr 1fr; text-align: start; }
    .public-site .site-footer .footer-sections-links a { white-space: normal; }
    .public-site .trial-choice { min-height: 90px; }
    .trial-page-heading { padding-top: 2rem; }
    .public-site #trialCountry { max-width: none !important; flex: 1 1 100%; border-radius: .5rem; }
    .public-site #trialPhone { flex: 1 1 100%; margin: .5rem 0 0; border-radius: .5rem; }
    .public-site .trial-stage .trial-sticky-actions .btn { flex: 1; }
    .public-site .shop-page .card-img-top { height: 210px; }
}
@media (prefers-reduced-motion: reduce) {
    .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
