/* =========================================================
   PR1MELAB user layout fixes v1.3.0
   Loaded LAST — external stylesheet + footer inline backup.
========================================================= */

html:root {
    --site-parallax-enabled: 0;
    --site-parallax-strength-desktop: 0;
    --site-parallax-strength-mobile: 0;
    --scroll-glass-enabled: 0;
    --page-inner-padding-bottom-desktop: 88px;
    --page-inner-padding-bottom-mobile: 64px;
    --section-header-button-gap-desktop: 20px;
    --section-header-button-gap-mobile: 22px;
    --programs-home-intro-button-gap: clamp(32px, 5vw, 48px);
    --booking-panel-max-width: min(100%, 720px);
    --booking-panel-inner-x-tight: clamp(4px, 1vw, 8px);
    --booking-contact-strip-font-size: clamp(13px, 1.6vw, 15px);
    --site-photo-border-color: rgba(255, 255, 255, 0.12);
    --site-photo-border-width: 1px;
    --site-photo-border-radius: 16px;
    --partnerships-partner-card-radius: 16px;
    --contact-page-blocks-gap: clamp(20px, 3.5vw, 32px);
}

html {
    overflow-x: clip;
    overscroll-behavior-y: auto;
    background-color: var(--hero-bg, #000008);
}

html body {
    overscroll-behavior-y: auto;
    background-color: var(--hero-bg, #000008);
}

/* ----- Home top overscroll: no animated bg / gap above hero + header ----- */
html body.home:not(.dashboard-app-body) .site-page {
    position: relative;
    isolation: isolate;
}

html body.home:not(.dashboard-app-body) .site-page::before {
    content: "";
    position: absolute;
    top: -120vh;
    left: 0;
    right: 0;
    height: 120vh;
    background: var(--hero-bg, #000008);
    z-index: 0;
    pointer-events: none;
}

html body.home:not(.dashboard-app-body) .hero-section {
    position: relative;
    isolation: isolate;
    background-color: var(--hero-bg, #000008) !important;
    overflow: hidden;
}

html body.home:not(.dashboard-app-body) .hero-section::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 120vh;
    background: var(--hero-bg, #000008);
    z-index: 0;
    pointer-events: none;
}

html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-bg,
html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-premium-bg,
html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-flow-bg,
html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-aurora-bg {
    opacity: 0 !important;
    visibility: hidden !important;
}

html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-header {
    background: var(--hero-bg, #000008) !important;
    border-bottom-color: rgba(255, 255, 255, 0.06) !important;
}

html.is-at-page-top body.home:not(.dashboard-app-body),
html.is-pull-refresh-active body.home:not(.dashboard-app-body) {
    background: var(--hero-bg, #000008) !important;
}

/* ----- Scroll glass off (booking panel outline shadow fix) ----- */
html body:not(.dashboard-app-body) .booking-step-panel.premium-glass,
html body:not(.dashboard-app-body) .booking-step-panel.premium-glass.is-glass-visible,
html body:not(.dashboard-app-body) .booking-step-panel.premium-glass.is-glass-enhanced {
    box-shadow: var(--site-glass-shadow, 0 20px 56px rgba(0, 0, 0, 0.42)) !important;
    transition: none !important;
}

/* ----- Home programs section ----- */
html body:not(.dashboard-app-body) .programs-section .programs-intro.programs-intro--centered {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: var(--programs-home-intro-button-gap) !important;
    margin-bottom: var(--programs-intro-margin-bottom, 64px) !important;
}

html body:not(.dashboard-app-body) .programs-section .programs-intro--centered .programs-intro-head {
    width: 100%;
    max-width: var(--programs-title-max-width, 560px);
    margin-inline: auto;
}

html body:not(.dashboard-app-body) .programs-section .programs-intro--centered .programs-intro-head .programs-eyebrow {
    color: var(--color-red, #de242f) !important;
}

html body:not(.dashboard-app-body) .programs-section .programs-intro--centered .programs-intro-head .programs-title {
    max-width: 100%;
    margin-inline: auto;
    text-align: center !important;
}

html body:not(.dashboard-app-body) .programs-section .programs-intro--centered .programs-description {
    width: 100%;
    max-width: var(--programs-description-max-width, 560px);
    margin: 0 auto !important;
    text-align: center !important;
    color: var(--programs-description-color, rgba(250, 249, 254, 0.78));
    font-size: var(--programs-description-size, 1rem);
    line-height: var(--programs-description-line-height, 1.65);
}

html body:not(.dashboard-app-body) .programs-section .programs-intro--centered .programs-intro-actions .programs-button {
    margin: 0 !important;
}

html body:not(.dashboard-app-body) .programs-section .program-card-overlay {
    background: linear-gradient(180deg, rgba(0, 0, 8, 0.2) 0%, rgba(0, 0, 8, 0.62) 52%, rgba(0, 0, 8, 0.94) 100%) !important;
    opacity: 1 !important;
}

/* Text → button gap (sections with text + button — hero uses flex gap on .hero-content) */
html body:not(.dashboard-app-body) .gym-gallery-text + .gym-gallery-button,
html body:not(.dashboard-app-body) .about-text + .about-actions,
html body:not(.dashboard-app-body) .programs-description + .programs-intro-actions,
html body:not(.dashboard-app-body) .programs-intro-right .programs-button,
html body:not(.dashboard-app-body) .about-actions .btn,
html body:not(.dashboard-app-body) .about-page-actions,
html body:not(.dashboard-app-body) .about-page-cta,
html body:not(.dashboard-app-body) .gym-gallery-actions .btn,
html body:not(.dashboard-app-body) .partnerships-cta,
html body:not(.dashboard-app-body) .strength-button,
html body:not(.dashboard-app-body) .membership-button,
html body:not(.dashboard-app-body) .get-in-touch-heading + .get-in-touch-form {
    margin-top: var(--section-header-button-gap-desktop, 36px) !important;
}

@media (max-width: 760px) {
    html body:not(.dashboard-app-body) .gym-gallery-text + .gym-gallery-button,
    html body:not(.dashboard-app-body) .about-text + .about-actions,
    html body:not(.dashboard-app-body) .programs-description + .programs-intro-actions,
    html body:not(.dashboard-app-body) .programs-intro-right .programs-button,
    html body:not(.dashboard-app-body) .about-actions .btn,
    html body:not(.dashboard-app-body) .gym-gallery-actions .btn,
    html body:not(.dashboard-app-body) .partnerships-cta,
    html body:not(.dashboard-app-body) .strength-button,
    html body:not(.dashboard-app-body) .membership-button {
        margin-top: var(--section-header-button-gap-mobile, 28px) !important;
    }
}

/* ----- Booking panel — wider + no button shadow strip ----- */
html body:not(.dashboard-app-body) .booking-section .booking-step-panel,
html body:not(.dashboard-app-body) .booking-step-panel,
html body:not(.dashboard-app-body) .booking-step-panel.premium-glass {
    width: var(--booking-panel-max-width) !important;
    max-width: var(--booking-panel-max-width) !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-panel-view {
    padding-left: var(--booking-panel-inner-x-tight) !important;
    padding-right: var(--booking-panel-inner-x-tight) !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-panel-app-head,
html body:not(.dashboard-app-body) .booking-step-panel .booking-progress {
    padding-left: var(--booking-panel-inner-x-tight) !important;
    padding-right: var(--booking-panel-inner-x-tight) !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-contact-strip--home span {
    font-size: var(--booking-contact-strip-font-size) !important;
    line-height: 1.45 !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-service-cards,
html body:not(.dashboard-app-body) .booking-step-panel .booking-service-card,
html body:not(.dashboard-app-body) .booking-step-panel .booking-confirm-summary,
html body:not(.dashboard-app-body) .booking-step-panel .booking-summary-card,
html body:not(.dashboard-app-body) .booking-step-panel .booking-step-card,
html body:not(.dashboard-app-body) .booking-step-panel .booking-step-card--details {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-service-card {
    box-shadow: none !important;
}

/* Date/time — single container, no nested box on hover */
html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel {
    width: 100% !important;
    padding: clamp(12px, 2.5vw, 16px) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: none !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-calendar {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-calendar-day,
html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-calendar-day:hover:not(.is-selected):not(:disabled),
html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-time,
html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-time:hover,
html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-time.is-active {
    box-shadow: none !important;
    transform: none !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-date-time-panel .booking-step-title--time {
    margin-top: 16px !important;
    padding-top: 16px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* Confirm — one wide container */
html body:not(.dashboard-app-body) .booking-step-panel .booking-confirm-panel {
    width: 100% !important;
    max-width: 100% !important;
    padding: clamp(14px, 2.5vw, 18px) !important;
    border-radius: 16px !important;
    background: rgba(255, 255, 255, 0.04) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-confirm-panel .booking-confirm-summary {
    margin-bottom: 16px !important;
    padding-bottom: 16px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-confirm-panel .booking-summary-card {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* Buttons — no glow/shadow strip above or below */
html body:not(.dashboard-app-body) .booking-step-panel .booking-main-button,
html body:not(.dashboard-app-body) .booking-step-panel .booking-next-confirm,
html body:not(.dashboard-app-body) .booking-step-panel .booking-submit,
html body:not(.dashboard-app-body) .booking-step-panel .booking-service-continue {
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-main-button:hover:not(:disabled),
html body:not(.dashboard-app-body) .booking-step-panel .booking-next-confirm:hover:not(:disabled),
html body:not(.dashboard-app-body) .booking-step-panel .booking-submit:hover:not(:disabled),
html body:not(.dashboard-app-body) .booking-step-panel .booking-service-continue:hover:not(:disabled) {
    box-shadow: none !important;
    transform: none !important;
}

html body:not(.dashboard-app-body) .booking-step-panel .booking-panel-view-actions {
    border-top: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* ----- Contact page ----- */
html body:not(.dashboard-app-body) .contact-page-flow--map-first .contact-page-blocks {
    gap: var(--contact-page-blocks-gap) !important;
}

html body:not(.dashboard-app-body) .contact-page-flow--map-first.contact-page-flow--centered .contact-page-info-wrap {
    margin-top: var(--contact-page-map-info-gap, clamp(40px, 5vw, 56px)) !important;
}

html body:not(.dashboard-app-body) .site-page-section--from-top {
    padding-bottom: var(--page-inner-padding-bottom-desktop, 88px) !important;
}

@media (max-width: 760px) {
    html body:not(.dashboard-app-body) .site-page-section--from-top {
        padding-bottom: var(--page-inner-padding-bottom-mobile, 64px) !important;
    }
}

/* ----- About page ----- */
html body:not(.dashboard-app-body) .about-page-flow--circles .about-page-heading,
html body:not(.dashboard-app-body) .about-page-flow--circles .about-page-heading--centered,
html body:not(.dashboard-app-body) .about-page-flow--circles .about-page-title,
html body:not(.dashboard-app-body) .about-page-flow--circles .about-page-subtitle,
html body:not(.dashboard-app-body) .about-page-lead--circles {
    text-align: center !important;
    margin-inline: auto !important;
}

html body:not(.dashboard-app-body) .about-page-team-panel,
html body:not(.dashboard-app-body) .about-page-team-panel--centered {
    text-align: center !important;
    margin-inline: auto !important;
}

html body:not(.dashboard-app-body) .about-page-team-panel .about-page-team-heading,
html body:not(.dashboard-app-body) .about-page-team-panel .about-team-circles__heading {
    text-align: center !important;
    margin-inline: auto !important;
}

html body:not(.dashboard-app-body) .about-page-team-panel .about-page-team-heading,
html body:not(.dashboard-app-body) .about-page-team-panel .about-team-circles__heading {
    text-align: center !important;
    margin-inline: auto !important;
}

/* ----- Legal pages: match front-page type scale ----- */
html body:not(.dashboard-app-body) .legal-page-heading-title {
    font-size: var(--site-type-h1-size, 22px) !important;
    line-height: 1.2 !important;
}

html body:not(.dashboard-app-body) .legal-page-heading-subtitle,
html body:not(.dashboard-app-body) .legal-page-updated-line,
html body:not(.dashboard-app-body) .legal-content-card,
html body:not(.dashboard-app-body) .legal-content-body,
html body:not(.dashboard-app-body) .legal-content-card p,
html body:not(.dashboard-app-body) .legal-content-body p,
html body:not(.dashboard-app-body) .legal-content-card li,
html body:not(.dashboard-app-body) .legal-content-body li {
    font-size: var(--site-type-body-size, 16px) !important;
    line-height: 1.7 !important;
}

html body:not(.dashboard-app-body) .legal-content-card h2,
html body:not(.dashboard-app-body) .legal-content-body h2 {
    font-size: var(--site-type-h2-size, 22px) !important;
    line-height: 1.25 !important;
}

html body:not(.dashboard-app-body) .legal-content-card h3,
html body:not(.dashboard-app-body) .legal-content-body h3,
html body:not(.dashboard-app-body) .legal-content-card h4,
html body:not(.dashboard-app-body) .legal-content-body h4 {
    font-size: var(--site-type-h3-size, 18px) !important;
    line-height: 1.3 !important;
}

html body:not(.dashboard-app-body) .legal-page-eyebrow {
    font-size: var(--site-type-eyebrow-size, 14px) !important;
}

/* ----- Pull-to-refresh at top: solid hero color ----- */
html.is-pull-refresh-active body.home:not(.dashboard-app-body) .hero-section,
html.is-at-page-top body.home:not(.dashboard-app-body) .hero-section {
    background: var(--hero-bg, #000008) !important;
}

html.is-pull-refresh-active body.home:not(.dashboard-app-body) .site-main,
html.is-at-page-top body.home:not(.dashboard-app-body) .site-main {
    background: transparent !important;
}

/* ----- Partnerships page ----- */
/* ----- Partnerships page — bordered partner cards (like About 1-2-3-4) ----- */
html body:not(.dashboard-app-body) .partnerships-page-partner-card {
    padding: clamp(20px, 3vw, 28px) clamp(16px, 2.5vw, 22px) !important;
    border-radius: var(--partnerships-partner-card-radius) !important;
    border: 1px solid var(--site-photo-border-color) !important;
    background:
        radial-gradient(120% 90% at 0% 0%, rgba(222, 36, 47, 0.1), transparent 55%),
        linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
}

html body:not(.dashboard-app-body) .partnerships-page-partner-card .partnerships-page-partner-benefit {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    color: rgba(250, 249, 254, 0.92) !important;
    font-weight: 600;
    line-height: 1.55;
    text-align: center;
}

html body:not(.dashboard-app-body) .partnerships-page-partner-card .partnerships-page-partner-note {
    margin: 0;
    color: rgba(250, 249, 254, 0.72);
    font-size: clamp(0.8125rem, 1.4vw, 0.875rem);
    line-height: 1.55;
    text-align: center;
}

/* ----- Facilities + program photo borders ----- */
html body:not(.dashboard-app-body) .gym-gallery-section--facilities .gym-gallery-item--facility .gym-gallery-trigger {
    border: var(--site-photo-border-width) solid var(--site-photo-border-color) !important;
    border-radius: var(--site-photo-border-radius) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

html body:not(.dashboard-app-body) .program-detail-gallery-item--stream .program-detail-gallery-trigger {
    border: var(--site-photo-border-width) solid var(--site-photo-border-color) !important;
    border-radius: var(--program-detail-gallery-tile-radius, var(--site-photo-border-radius)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
    overflow: hidden;
}

html body:not(.dashboard-app-body) .programs-page-row-media {
    border: var(--site-photo-border-width) solid var(--site-photo-border-color) !important;
    border-radius: var(--site-photo-border-radius) !important;
    overflow: hidden;
}

/* ----- Program detail intro after "What you get" ----- */
html body:not(.dashboard-app-body) .program-detail-block-intro {
    margin: 0 0 clamp(14px, 2.5vw, 20px);
    color: rgba(250, 249, 254, 0.82);
    line-height: 1.72;
    text-align: center;
    max-width: 68ch;
    margin-inline: auto;
}

/* ----- About page: vertical stack with circle photos; centered text ----- */
html body:not(.dashboard-app-body) .about-team-circles--page {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(28px, 4.5vw, 40px) !important;
    width: 100%;
    max-width: min(100%, 320px);
    margin-inline: auto !important;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__member {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__member + .about-team-circles__member {
    margin-left: 0 !important;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__member:nth-child(2) {
    transform: none !important;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__photo-wrap {
    width: var(--about-circle-size-page, clamp(128px, 22vw, 176px)) !important;
    height: var(--about-circle-size-page, clamp(128px, 22vw, 176px)) !important;
    border-radius: 50% !important;
    padding: 3px;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__photo {
    border-radius: 50% !important;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__meta {
    width: 100%;
    max-width: 18ch;
    margin-top: clamp(10px, 2vw, 14px);
    margin-inline: auto;
    text-align: center !important;
}

html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__name,
html body:not(.dashboard-app-body) .about-team-circles--page .about-team-circles__role {
    text-align: center !important;
    margin-inline: auto;
}

/* ----- Legal page: icon + heading aligned ----- */
html body:not(.dashboard-app-body) .legal-page-heading-row--centered {
    align-items: center !important;
}

html body:not(.dashboard-app-body) .legal-page-heading-row .legal-page-heading-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

html body:not(.dashboard-app-body) .legal-page-heading-row .legal-page-heading-title {
    margin: 0 !important;
    text-align: left !important;
    line-height: 1.12 !important;
}

/* ----- Contact social icons ----- */
html body:not(.dashboard-app-body) .contact-tile__value--socials {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
}

html body:not(.dashboard-app-body) .contact-tile__social-link--icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    padding: 0;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--color-light, #faf9fe);
    transition: color 0.2s ease, opacity 0.2s ease;
}

html body:not(.dashboard-app-body) .contact-tile__social-link--icon svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

/* ----- Touch: hover only on real hover devices; press feedback on tap ----- */
@media (hover: none) and (pointer: coarse) {
    html body:not(.dashboard-app-body) .gym-gallery-trigger:hover .gym-gallery-hover,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus .gym-gallery-hover,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus-visible .gym-gallery-hover {
        opacity: 0 !important;
    }

    html body:not(.dashboard-app-body) .gym-gallery-trigger:active .gym-gallery-hover {
        opacity: 1 !important;
    }

    html body:not(.dashboard-app-body) .faq-question:hover {
        color: var(--faq-question-color, var(--color-light)) !important;
    }

    html body:not(.dashboard-app-body) .btn-primary:hover,
    html body:not(.dashboard-app-body) .btn-ghost:hover {
        background: inherit;
        color: inherit;
        border-color: inherit;
        box-shadow: none;
    }

    html body:not(.dashboard-app-body) .contact-tile__social-link--icon:hover {
        background: transparent !important;
        border-color: transparent !important;
        opacity: 0.88;
    }

    html body:not(.dashboard-app-body) .contact-tile__social-link--icon:active {
        background: transparent !important;
        border-color: transparent !important;
        color: var(--color-red, #de242f);
        opacity: 1;
    }
}

/* ----- Scroll-to-top: keep clear at very top for pull-to-refresh ----- */
html body:not(.dashboard-app-body) .scroll-to-top {
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 760px) {
    html body:not(.dashboard-app-body) .scroll-to-top.is-visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
}

/* ----- Screen reader only (social icon labels) ----- */
html body:not(.dashboard-app-body) .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ----- Skip loader flash on return visits ----- */
html.is-site-loader-skip body:not(.dashboard-app-body) .site-page-loader.site-page-loader--welcome {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* ----- Inner pages: show content immediately (no blank wait for reveal JS) ----- */
html body:not(.home):not(.dashboard-app-body) [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
}

/* ----- Mobile Chrome: stable viewport (address bar show/hide) ----- */
@media (max-width: 760px) {
    html:root {
        --hero-viewport-height: 100svh;
        --hero-min-height-mobile: 100svh;
    }

    html body:not(.dashboard-app-body) .hero-section {
        min-height: 100svh !important;
        max-height: none !important;
        height: auto !important;
    }
}

/* ----- Touch: press-only feedback on cards, FAQ, gallery, links ----- */
@media (hover: none) and (pointer: coarse) {
    html body:not(.dashboard-app-body) .gym-gallery-trigger:hover .gym-gallery-image,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus .gym-gallery-image,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus-visible .gym-gallery-image {
        transform: none !important;
    }

    html body:not(.dashboard-app-body) .gym-gallery-trigger:active .gym-gallery-image {
        transform: scale(1.02) !important;
    }

    html body:not(.dashboard-app-body) .gym-gallery-trigger:hover .gym-gallery-hover-icon,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus .gym-gallery-hover-icon,
    html body:not(.dashboard-app-body) .gym-gallery-trigger:focus-visible .gym-gallery-hover-icon {
        opacity: 0 !important;
        transform: scale(0.92) !important;
    }

    html body:not(.dashboard-app-body) .gym-gallery-trigger:active .gym-gallery-hover-icon {
        opacity: 1 !important;
        transform: scale(1) !important;
    }

    html body:not(.dashboard-app-body) .faq-question:hover,
    html body:not(.dashboard-app-body) .faq-item:hover .faq-question {
        color: var(--faq-question-color, var(--color-light)) !important;
    }

    html body:not(.dashboard-app-body) .faq-question:active,
    html body:not(.dashboard-app-body) .faq-item:active .faq-question {
        color: var(--color-red, #de242f) !important;
    }

    html body:not(.dashboard-app-body) .program-card:hover,
    html body:not(.dashboard-app-body) .membership-card:hover,
    html body:not(.dashboard-app-body) .about-page-value:hover,
    html body:not(.dashboard-app-body) .contact-tile:hover,
    html body:not(.dashboard-app-body) .btn:hover,
    html body:not(.dashboard-app-body) .btn-primary:hover,
    html body:not(.dashboard-app-body) .btn-ghost:hover {
        border-color: inherit;
        background: inherit;
        color: inherit;
        box-shadow: none;
        transform: none;
    }

    html body:not(.dashboard-app-body) .program-card:active,
    html body:not(.dashboard-app-body) .membership-card:active,
    html body:not(.dashboard-app-body) .about-page-value:active {
        border-color: rgba(222, 36, 47, 0.45) !important;
    }
}

/* ----- Contact map: always show frame area (no blank box) ----- */
html body:not(.dashboard-app-body) .contact-map--instant,
html body:not(.dashboard-app-body) .contact-map--instant.lazy-map-wrap {
    min-height: clamp(240px, 42vw, 420px);
    background: var(--map-loading-bg, rgba(0, 0, 8, 0.72));
}

html body:not(.dashboard-app-body) .contact-map--instant iframe {
    min-height: clamp(240px, 42vw, 420px);
    opacity: 1;
}
