/* TABLET */

@media (max-width:1100px){

    :root{
        --header-height:82px;
    }

    .site-header{
        position:relative;
        z-index:5000;
    }

    .navbar{
        position:fixed;
        top:0;
        left:0;
        width:100%;
        z-index:5002;
        display:flex;
        justify-content:space-between;
        padding:10px 22px;
    }

    .logo img{
        height:60px;
    }

    .header-actions{
        display:none;
    }

    .mobile-menu-btn{
        position:relative;
        z-index:5006;
        width:46px;
        height:46px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        flex-shrink:0;
        padding:8px;
        border:0;
        border-radius:12px;
        background:transparent;
        cursor:pointer;
        pointer-events:auto;
    }

    .mobile-menu-btn span{
        display:block;
        width:27px;
        height:2px;
        margin:4px 0;
        border-radius:10px;
        background:var(--dark);
        transition:transform .3s ease, opacity .3s ease;
    }

    .mobile-menu-btn.active span:nth-child(1){
        transform:translateY(10px) rotate(45deg);
    }

    .mobile-menu-btn.active span:nth-child(2){
        opacity:0;
    }

    .mobile-menu-btn.active span:nth-child(3){
        transform:translateY(-10px) rotate(-45deg);
    }

    .nav-links{
        position:fixed;
        top:0;
        right:0;
        z-index:5004;
        width:min(390px,88vw);
        height:100dvh;
        padding:calc(var(--header-height) + 28px) 26px 30px;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        justify-content:flex-start;
        gap:0;
        background:#ffffff;
        box-shadow:-18px 0 42px rgba(36,52,71,.18);
        overflow-y:auto;
        transform:translateX(105%);
        pointer-events:none;
        transition:transform .35s ease;
    }

    .nav-links.active{
        transform:translateX(0);
        pointer-events:auto;
    }

    .mobile-social-entry{
        display:flex!important;
        margin-top:14px;
    }

    .mobile-account-entry{
        display:flex!important;
        margin-top:8px;
    }

    .mobile-social-entry a{
        display:flex;
        align-items:center;
        gap:10px;
        color:#243447!important;
    }

    .mobile-account-entry a{
        border:0!important;
        border-radius:12px;
        background:linear-gradient(135deg,#6d3df5 0%,#8b5cf6 100%);
        color:#fff!important;
        text-align:center!important;
        font-weight:700;
        display:flex;
        align-items:center;
        justify-content:center;
        gap:9px;
    }

    .nav-links li{
        position:relative;
        z-index:5005;
        width:100%;
        pointer-events:auto;
    }

    .nav-links a{
        position:relative;
        z-index:5005;
        display:block;
        width:100%;
        padding:17px 8px;
        color:#24394d;
        border-bottom:1px solid var(--border);
        font-size:1rem;
        text-align:left;
        pointer-events:auto;
    }

    .nav-links a.active{
        box-shadow:none;
    }

    .menu-backdrop{
        position:fixed;
        inset:0;
        z-index:5001;
        display:block;
        width:100%;
        height:100%;
        padding:0;
        border:0;
        background:rgba(15,26,36,.42);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .3s ease, visibility .3s ease;
    }

    .menu-backdrop.active{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
    }

    body.menu-open{
        overflow:hidden;
    }

    .hero{
        min-height:760px;
        padding-inline:24px;
        background-position:center;
    }

    .section-shell{
        width:min(100% - 44px,900px);
        padding-block:78px;
    }

    .philosophy-grid{
        grid-template-columns:1fr;
    }

    .safegym-premium{
        grid-template-columns:1fr;
        gap:42px;
        text-align:center;
    }

    .safegym-info{
        width:min(650px,100%);
        margin-inline:auto;
    }

    .events-carousel{
        grid-auto-columns:calc((100% - 24px) / 2);
    }

    .instructors-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .cta-section{
        width:calc(100% - 44px);
        margin-bottom:78px;
    }
}


/* MOBILE */

@media (max-width:650px){

    :root{
        --header-height:72px;
    }

    .navbar{
        padding:7px 14px;
    }

    .logo img{
        height:52px;
    }

    .hero{
        min-height:680px;
        padding:calc(var(--header-height) + 36px) 18px 52px;
        background-position:62% center;
    }

    .hero-overlay{
        background:rgba(22,34,46,.48);
    }

    .hero h1{
        font-size:clamp(3.5rem,18vw,5.2rem);
        letter-spacing:-2px;
    }

    .hero-tagline{
        font-size:.95rem;
    }

    .hero-description{
        font-size:.95rem;
    }

    .btn-primary,
    .download-btn{
        width:100%;
        max-width:320px;
    }

    .section-shell{
        width:calc(100% - 32px);
        padding-block:64px;
    }

    .section-title{
        margin-bottom:38px;
    }

    .philosophy-card,
    .instructor-card{
        padding:28px 22px;
    }

    .safegym-video video{
        width:min(100%,360px);
        max-height:520px;
    }

    .events-preview{
        padding:64px 18px;
    }

    .events-header{
        justify-content:center;
        margin-bottom:24px;
    }

    .section-title-left{
        width:100%;
        text-align:center;
    }

    .view-all-events,
    .carousel-arrow{
        display:none;
    }

    .events-carousel{
        grid-auto-columns:88%;
        gap:18px;
        padding:8px 0 24px;
    }

    .event-image{
        height:235px;
    }

    .instructors-grid{
        grid-template-columns:1fr;
    }

    .cta-section{
        width:calc(100% - 32px);
        margin-bottom:64px;
        padding:54px 22px;
        border-radius:24px;
    }

    footer{
        padding:30px 18px;
    }
}


/* FOOTER Y PÁGINAS LEGALES */

@media (max-width:1000px){

    .footer-main{
        grid-template-columns:1.25fr 1fr 1fr;
    }

    .footer-legal{
        grid-column:2 / -1;
    }
}

@media (max-width:650px){

    .footer-main{
        width:calc(100% - 36px);
        padding:58px 0 42px;
        grid-template-columns:1fr 1fr;
        gap:40px 26px;
    }

    .footer-brand{
        grid-column:1 / -1;
    }

    .footer-logo img{
        height:58px;
    }

    .footer-legal{
        grid-column:1 / -1;
    }

    .footer-bottom{
        width:calc(100% - 36px);
        padding:22px 0;
        flex-direction:column;
        align-items:flex-start;
    }

    .footer-bottom-links{
        flex-wrap:wrap;
    }

    .legal-hero{
        padding:calc(var(--header-height) + 60px) 18px 58px;
    }

    .legal-content{
        width:calc(100% - 32px);
        margin:48px auto 64px;
    }

    .legal-card{
        border-radius:22px;
    }
}

/* CLASES RESPONSIVE */
@media (max-width:1000px){
    .classes-grid{grid-template-columns:1fr}
    .class-media{height:420px}
    .classes-cta{padding:54px 42px;flex-direction:column;text-align:center}
}

@media (max-width:650px){
    .classes-hero{min-height:570px;padding:calc(var(--header-height) + 55px) 18px 60px;background-position:center}
    .classes-hero h1{font-size:clamp(3rem,15vw,4.6rem);letter-spacing:-2px}
    .classes-hero p{font-size:.95rem}
    .classes-intro{padding-bottom:38px}
    .class-filters{gap:9px}
    .class-filter{padding:10px 16px;font-size:.8rem}
    .class-catalog{padding:12px 16px 72px}
    .classes-grid{gap:24px}
    .class-card{border-radius:22px}
    .class-media{height:275px}
    .class-card-content{padding:25px 21px 27px}
    .class-card-heading{align-items:flex-start}
    .class-level{text-align:right}
    .class-details{flex-direction:column;gap:8px}
    .class-actions{flex-direction:column}
    .class-secondary-btn,.class-reserve-btn{width:100%}
    .classes-cta{width:calc(100% - 32px);margin-bottom:64px;padding:48px 24px;border-radius:24px}
    .classes-cta .btn-primary{width:100%;max-width:300px}

    .class-video-modal,
    .reservation-modal{
        padding:12px;
    }

    .class-video-dialog{
        width:100%;
        max-width:430px;
        max-height:calc(100dvh - 24px);
        padding:54px 10px 10px;
        border-radius:20px;
    }

    .class-video-dialog video{
        width:100%;
        height:calc(100dvh - 100px);
        max-height:760px;
        object-fit:contain;
        border-radius:14px;
    }

    .reservation-modal-content{
        padding:44px 24px 32px;
        border-radius:22px;
    }
}
