/* Site-wide mobile & tablet responsive fixes */
html {
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
}

body {
    overflow-x: hidden;
    max-width: 100%;
}

img,
video,
svg,
canvas {
    max-width: 100%;
    height: auto;
}

body.public-site {
    padding-bottom: 0;
}

body.public-site .container,
body.public-site .container-fluid {
    padding-left: clamp(1rem, 3vw, 1.5rem);
    padding-right: clamp(1rem, 3vw, 1.5rem);
}

body.public-site main .container.pt-3 {
    padding-top: .85rem !important;
}

body.public-site .site-alert {
    font-size: .9rem;
}

body.public-site .site-footer-minimal .footer-top .row > [class*="col-"] {
    min-width: 0;
}

body.public-site .site-footer-minimal .footer-contact-stack span,
body.public-site .site-footer-minimal .footer-contact-stack a {
    word-break: break-word;
}

/* Internal public pages */
body.public-site.internal-page {
    padding-bottom: clamp(82px, 12vw, 96px);
}

body.public-site.internal-page .platform-page-hero {
    padding-top: calc(4.5rem + clamp(1.5rem, 4vw, 2.5rem));
    padding-bottom: clamp(2rem, 5vw, 3rem);
}

body.public-site.internal-page .platform-hero-grid {
    grid-template-columns: 1fr;
    gap: clamp(1rem, 3vw, 1.5rem);
}

body.public-site.internal-page .platform-hero-copy {
    max-width: none;
}

body.public-site.internal-page .platform-hero-copy h1 {
    max-width: none;
    font-size: clamp(2rem, 7vw, 3.5rem);
    line-height: 1;
}

body.public-site.internal-page .platform-hero-copy p {
    font-size: clamp(.92rem, 2.4vw, 1.02rem);
}

body.public-site.internal-page .platform-hero-actions {
    width: 100%;
}

body.public-site.internal-page .platform-hero-actions .btn {
    min-height: 48px;
}

body.public-site.internal-page .platform-section {
    padding: clamp(2rem, 5vw, 3rem) 0;
}

body.public-site.internal-page .platform-section-head {
    text-align: left;
    margin-bottom: 1.25rem;
}

body.public-site.internal-page .platform-mini-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .about-story-grid,
body.public-site.internal-page .testimonials-split-grid,
body.public-site.internal-page .contact-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .service-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .service-rate-grid,
body.public-site.internal-page .about-point-grid,
body.public-site.internal-page .about-feature-grid,
body.public-site.internal-page .platform-stats-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .contact-info-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .contact-map-frame iframe {
    min-height: 240px;
}

body.public-site.internal-page .gallery-grid,
body.public-site.internal-page .facility-grid,
body.public-site.internal-page .events-grid,
body.public-site.internal-page .membership-grid {
    grid-template-columns: 1fr;
}

body.public-site.internal-page .platform-card,
body.public-site.internal-page .service-platform-card,
body.public-site.internal-page .contact-form-card,
body.public-site.internal-page .contact-map-card {
    padding: clamp(.95rem, 2.5vw, 1.2rem);
}

body.public-site.internal-page .policy-content,
body.public-site.internal-page .simple-page-shell {
    padding-left: 0;
    padding-right: 0;
}

/* Home page extras */
body.public-site.home-page {
    padding-bottom: clamp(82px, 12vw, 96px);
}

body.public-site.home-page .home-hero {
    padding-top: calc(4.5rem + 1rem);
    padding-bottom: clamp(2rem, 5vw, 3rem);
}

body.public-site.home-page .home-hero-actions {
    width: 100%;
    max-width: 360px;
}

body.public-site.home-page .home-live-matrix-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -.25rem;
    padding: 0 .25rem .25rem;
}

body.public-site.home-page .home-slot-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.public-site.home-page .home-cta-banner,
body.public-site.home-page .home-membership-card,
body.public-site.home-page .home-testimonial-card {
    min-width: 0;
}

/* Floating actions vs mobile dock */
body.public-site .floating-whatsapp-btn {
    z-index: 1040;
}

/* Auth pages */
body.auth-body .auth-shell {
    min-height: 100svh;
}

body.auth-body .auth-panel,
body.auth-body .auth-card,
body.auth-body .auth-login-card {
    width: 100%;
    max-width: 100%;
}

body.auth-body .auth-visual-content h1 {
    font-size: clamp(1.65rem, 5vw, 2.4rem);
}

body.auth-body .auth-proof-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
}

/* Customer portal (admin-shell) */
body.admin-shell {
    overflow-x: hidden;
}

body.admin-shell .dashboard-content {
    min-width: 0;
}

body.admin-shell .admin-page {
    min-width: 0;
    padding: clamp(.85rem, 2.5vw, 1.25rem);
}

body.admin-shell .admin-page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
}

body.admin-shell .admin-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
}

body.admin-shell .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.admin-shell .table,
body.admin-shell .table-dark {
    min-width: 640px;
}

body.admin-shell .card-glass,
body.admin-shell .platform-card {
    min-width: 0;
}

body.admin-shell .row > [class*="col-"] {
    min-width: 0;
}

body.admin-shell .booking-summary-grid,
body.admin-shell .slot-grid,
body.admin-shell .dashboard-stats {
    grid-template-columns: 1fr;
}

/* Admin panel already has admin.css — reinforce tables */
body.admin-panel-shell .table-responsive::after {
    content: '';
    display: block;
    height: 1px;
}

@media (max-width: 991.98px) {
    body.public-site.internal-page .platform-hero-actions {
        flex-direction: column;
    }

    body.public-site.internal-page .platform-hero-actions .btn {
        width: 100%;
    }

    body.public-site .floating-whatsapp-btn {
        right: .85rem;
        bottom: 5.75rem;
        left: auto;
    }

    body.public-site .floating-whatsapp-btn span {
        display: none;
    }

    body.public-site .site-footer-minimal .footer-top .d-flex.flex-wrap.justify-content-between {
        flex-direction: column;
        align-items: flex-start;
        gap: .75rem;
    }

    body.auth-body .auth-shell {
        grid-template-columns: 1fr;
    }

    body.auth-body .auth-visual {
        min-height: 280px;
        padding: 1.5rem;
    }

    body.auth-body .auth-panel {
        padding: 1rem;
    }

    body.admin-shell {
        padding-bottom: 0;
    }

    body.admin-shell .admin-search {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    body.public-site.internal-page .platform-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.public-site.internal-page .public-testimonial-list {
        display: flex;
        overflow-x: auto;
        gap: .75rem;
        padding-bottom: .35rem;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    body.public-site.internal-page .public-testimonial-card {
        flex: 0 0 min(86vw, 320px);
        scroll-snap-align: start;
    }

    body.public-site.home-page .home-sports-grid,
    body.public-site.home-page .home-events-grid,
    body.public-site.home-page .home-gallery-mosaic {
        grid-template-columns: 1fr;
    }

    body.public-site.home-page .home-live-field {
        flex: 1 1 100%;
    }

    body.auth-body .auth-proof-grid {
        grid-template-columns: 1fr;
    }

    body.admin-shell .admin-page-meta,
    body.admin-shell .admin-topbar-brand img {
        max-height: 42px;
    }
}

@media (max-width: 575.98px) {
    body.public-site .site-header .container {
        padding-left: .85rem;
        padding-right: .85rem;
    }

    body.public-site.internal-page .platform-page-hero {
        padding-top: calc(4rem + 1rem);
        padding-bottom: 1.75rem;
    }

    body.public-site.internal-page .platform-hero-copy h1 {
        font-size: clamp(1.85rem, 9vw, 2.75rem);
    }

    body.public-site.internal-page .platform-stats-grid {
        grid-template-columns: 1fr;
    }

    body.public-site.internal-page .platform-card:hover,
    body.public-site.internal-page .service-platform-card:hover {
        transform: none;
    }

    body.public-site.home-page .home-hero-copy h1 {
        font-size: clamp(2rem, 11vw, 3.2rem);
    }

    body.public-site.home-page .home-hero-btn {
        width: 100%;
    }

    body.public-site.home-page .home-stats-grid,
    body.public-site.home-page .home-gallery-mosaic {
        grid-template-columns: 1fr;
    }

    body.auth-body .auth-login-shell {
        padding: 1rem;
    }

    body.auth-body .auth-login-card {
        padding: 1.15rem;
        border-radius: 18px;
    }

    body.admin-shell .admin-page-title {
        font-size: clamp(1.25rem, 6vw, 1.65rem);
    }

    body.admin-shell .btn,
    body.admin-shell .btn-fill-green,
    body.admin-shell .btn-outline-secondary {
        min-height: 44px;
    }

    body.admin-panel-shell .admin-profile-btn .admin-profile-copy {
        display: none !important;
    }
}

@media (min-width: 992px) {
    body.public-site.internal-page {
        padding-bottom: 0;
    }

    body.public-site.home-page {
        padding-bottom: 0;
    }

    body.public-site.booking-mobile-page {
        padding-bottom: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.public-site.internal-page .platform-card:hover,
    body.public-site.internal-page .service-platform-card:hover {
        transform: none;
    }
}
