:root{
    --primary:#7f9bbe;
    --primary-dark:#637f9f;
    --secondary:#98a88f;
    --dark:#243447;
    --text:#5f6b76;
    --light:#f6f8f8;
    --white:#ffffff;
    --border:rgba(36,52,71,.10);
    --shadow:0 14px 38px rgba(36,52,71,.10);
    --header-height:96px;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    min-width:320px;
    overflow-x:hidden;
    font-family:'Poppins',sans-serif;
    color:var(--dark);
    background:var(--light);
}

img,
video{
    max-width:100%;
}

a{
    color:inherit;
}

button,
a{
    -webkit-tap-highlight-color:transparent;
}

.section-shell{
    width:min(1400px, calc(100% - 80px));
    margin-inline:auto;
    padding-block:100px;
}

/* HEADER */

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

.navbar{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:var(--header-height);
    display:grid;
    grid-template-columns:190px minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    padding:12px 4%;
    background:rgba(255,255,255,.96);
    box-shadow:0 2px 16px rgba(36,52,71,.08);
    backdrop-filter:blur(14px);
    z-index:1001;
    transition:background .3s ease,box-shadow .3s ease,backdrop-filter .3s ease;
}

.logo{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
}

.logo img{
    display:block;
    width:auto;
    height:72px;
}

.nav-links{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    gap:clamp(14px,1.35vw,24px);
    list-style:none;
}

.nav-links li{
    display:flex;
    align-items:center;
    justify-content:center;
    width:auto;
    flex:0 0 auto;
}

.nav-links a{
    display:inline-block;
    padding:10px 0;
    text-decoration:none;
    color:var(--dark);
    font-size:.92rem;
    font-weight:500;
    white-space:nowrap;
    transition:color .25s ease;
}

.nav-links a:hover,
.nav-links a.active{
    color:var(--primary);
}

.nav-links a.active{
    box-shadow:inset 0 -2px 0 var(--primary);
}


.header-actions{
    justify-self:end;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    white-space:nowrap;
}

.social-header,
.social-icon-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    flex:0 0 42px;
    border:1px solid rgba(36,52,71,.12);
    border-radius:999px;
    background:#fff;
    color:var(--dark);
    text-decoration:none;
    box-shadow:0 7px 18px rgba(36,52,71,.08);
    transition:transform .25s ease,box-shadow .25s ease,color .25s ease,border-color .25s ease;
}
.social-icon-link svg,
.account-header svg,
.footer-instagram svg,
.mobile-social-entry svg,
.mobile-account-entry svg{
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.social-icon-link:hover{
    color:#c13584;
    border-color:rgba(193,53,132,.28);
    transform:translateY(-2px) scale(1.04);
    box-shadow:0 10px 22px rgba(193,53,132,.17);
}

.account-header{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:124px;
    padding:10px 15px;
    border-radius:999px;
    background:linear-gradient(135deg,#6d3df5 0%,#8b5cf6 100%);
    color:#fff;
    text-decoration:none;
    font-size:.84rem;
    font-weight:700;
    line-height:1;
    box-shadow:0 8px 22px rgba(109,61,245,.28);
    transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.account-header:hover{
    color:#fff;
    background:linear-gradient(135deg,#5b2fe0 0%,#7c3aed 100%);
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(109,61,245,.38);
}
.sr-only{
    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;
}
.mobile-account-entry,
.mobile-social-entry{display:none!important;}

.mobile-menu-btn,
.menu-backdrop{
    display:none;
}

.social-platform-link{
    display:inline-flex;
    align-items:center;
    gap:9px;
}
.social-platform-link svg{
    width:18px;
    height:18px;
    flex:0 0 18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}


/* HEADER AL DESPLAZARSE */
.navbar.scrolled{
    background:rgba(255,255,255,.985);
    box-shadow:0 8px 28px rgba(36,52,71,.14);
    backdrop-filter:blur(18px);
}

/* HERO */

.hero{
    position:relative;
    min-height:100svh;
    padding:calc(var(--header-height) + 50px) 8% 70px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--white);
    background:url('../assets/images/hero.jpg') center/cover no-repeat;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(22,34,46,.50),rgba(22,34,46,.22));
}

.hero-content{
    position:relative;
    z-index:1;
    width:min(680px,100%);
}

.hero-subtitle,
.eyebrow,
.section-title span{
    color:var(--secondary);
    font-size:.82rem;
    font-weight:600;
    letter-spacing:4px;
    text-transform:uppercase;
}

.hero-subtitle{
    color:#e7ece7;
}

.hero h1{
    margin:16px 0;
    font-size:clamp(4rem,8vw,7.4rem);
    font-weight:300;
    line-height:.92;
    letter-spacing:-3px;
}

.hero-tagline{
    font-size:1.1rem;
    letter-spacing:1px;
}

.hero-description{
    width:min(540px,100%);
    margin:20px auto 0;
    color:rgba(255,255,255,.90);
    font-size:1.05rem;
    line-height:1.75;
}

.btn-primary,
.download-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    margin-top:28px;
    padding:14px 32px;
    border-radius:999px;
    text-decoration:none;
    font-weight:600;
    transition:transform .25s ease, background .25s ease, box-shadow .25s ease;
}

.btn-primary{
    color:var(--white);
    background:var(--primary);
    box-shadow:0 10px 26px rgba(66,93,124,.28);
}

.btn-primary:hover,
.download-btn:hover{
    transform:translateY(-3px);
}

.btn-primary:hover{
    background:var(--primary-dark);
}

/* TITLES */

.section-title{
    margin-bottom:55px;
    text-align:center;
}

.section-title-left{
    margin:0;
    text-align:left;
}

.section-title h2{
    margin-top:12px;
    font-size:clamp(2.2rem,4vw,3.8rem);
    line-height:1.12;
}

/* PHILOSOPHY */

.philosophy-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px;
}

.philosophy-card,
.instructor-card{
    padding:38px;
    border:1px solid var(--border);
    border-radius:24px;
    background:var(--white);
    box-shadow:var(--shadow);
}

.philosophy-card h3,
.instructor-card h3{
    margin-bottom:12px;
    font-size:1.35rem;
}

.philosophy-card p,
.instructor-card p,
.safegym-info p{
    color:var(--text);
    line-height:1.75;
}

/* SAFEGYM */

.safegym-premium{
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    align-items:center;
    gap:70px;
}

.safegym-video{
    display:flex;
    justify-content:center;
}

.safegym-video video{
    display:block;
    width:min(100%,460px);
    max-height:560px;
    border-radius:24px;
    object-fit:cover;
    box-shadow:var(--shadow);
}

.safegym-info h2{
    margin:16px 0;
    font-size:clamp(2.2rem,4vw,3.8rem);
    line-height:1.12;
}

.download-btn{
    color:var(--white);
    background:var(--secondary);
}

/* EVENTS */

.events-preview{
    padding:100px 5%;
    background:#eef2f2;
}

.events-header{
    width:min(1450px,100%);
    margin:0 auto 45px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:28px;
}

.view-all-events{
    padding-bottom:8px;
    color:var(--primary);
    text-decoration:none;
    font-size:.86rem;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
}

.events-carousel-wrapper{
    position:relative;
    width:min(1500px,100%);
    margin-inline:auto;
}

.events-carousel{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - 72px) / 4);
    gap:24px;
    overflow-x:auto;
    padding:12px 4px 34px;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
}

.events-carousel::-webkit-scrollbar{
    display:none;
}

.event-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:22px;
    background:var(--white);
    box-shadow:var(--shadow);
    text-align:center;
    scroll-snap-align:start;
    transition:transform .3s ease, box-shadow .3s ease;
}

.event-card:hover{
    transform:translateY(-8px);
    box-shadow:0 22px 46px rgba(36,52,71,.16);
}

.event-image{
    position:relative;
    height:270px;
    overflow:hidden;
    background:#dfe6e8;
}

.event-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}

.event-card:hover .event-image img{
    transform:scale(1.05);
}

.event-date{
    position:absolute;
    top:16px;
    left:16px;
    width:60px;
    min-height:66px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:rgba(255,255,255,.95);
    box-shadow:0 8px 20px rgba(0,0,0,.12);
}

.event-date strong{
    font-size:1.35rem;
    line-height:1;
}

.event-date span{
    margin-top:5px;
    font-size:.66rem;
    font-weight:600;
    letter-spacing:1px;
}

.event-content{
    min-height:215px;
    padding:24px 22px 28px;
    display:flex;
    flex-direction:column;
    align-items:center;
}

.event-category{
    color:var(--secondary);
    font-size:.72rem;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
}

.event-content h3{
    margin:10px 0;
    font-size:1.28rem;
    line-height:1.28;
}

.event-content p{
    margin-bottom:18px;
    color:var(--text);
    font-size:.9rem;
    line-height:1.65;
}

.event-location{
    margin-top:auto;
    color:#71816b;
    font-size:.8rem;
    font-weight:500;
}

.event-location::before{
    content:"●";
    margin-right:7px;
    color:var(--secondary);
    font-size:.55rem;
}

.carousel-arrow{
    position:absolute;
    top:50%;
    z-index:3;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--border);
    border-radius:50%;
    background:var(--white);
    color:var(--dark);
    font-size:2rem;
    box-shadow:0 8px 24px rgba(36,52,71,.14);
    cursor:pointer;
    transform:translateY(-50%);
}

.carousel-arrow-left{ left:-24px; }
.carousel-arrow-right{ right:-24px; }

/* INSTRUCTORS */

.instructors-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:26px;
}

.instructor-card{
    text-align:center;
}

/* CTA */

.cta-section{
    width:min(1400px,calc(100% - 80px));
    margin:10px auto 100px;
    padding:76px 30px;
    border-radius:30px;
    color:var(--white);
    background:var(--primary);
    text-align:center;
}

.cta-section h2{
    font-size:clamp(2rem,4vw,3.4rem);
}




/* PREMIUM FOOTER */

.site-footer{
    margin-top:0;
    padding:0;
    color:#eaf0f4;
    background:#182431;
    text-align:left;
}

.footer-main{
    width:min(1400px,calc(100% - 80px));
    margin-inline:auto;
    padding:76px 0 58px;
    display:grid;
    grid-template-columns:minmax(280px,1.35fr) repeat(3,minmax(150px,.65fr));
    gap:clamp(34px,5vw,80px);
}

.footer-brand{
    max-width:420px;
}

.footer-logo{
    display:inline-flex;
    padding:12px 16px;
    border-radius:18px;
    background:#ffffff;
}

.footer-logo img{
    display:block;
    width:auto;
    height:66px;
}

.footer-tagline{
    margin-top:24px;
    color:#ffffff;
    font-size:.92rem;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
}

.footer-description{
    margin-top:14px;
    color:#bfcbd3;
    font-size:.92rem;
    line-height:1.75;
}

.footer-instagram{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-top:22px;
    color:#dce7ed;
    font-size:.9rem;
    font-weight:500;
    text-decoration:none;
    transition:color .25s ease,transform .25s ease;
}

.footer-instagram:hover{
    color:#ffffff;
    transform:translateX(4px);
}

.footer-column h3{
    margin-bottom:20px;
    color:#ffffff;
    font-size:.9rem;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
}

.footer-column nav{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:13px;
}

.footer-column a{
    color:#bcc8d0;
    font-size:.9rem;
    text-decoration:none;
    transition:color .25s ease,transform .25s ease;
}

.footer-column a:hover{
    color:#ffffff;
    transform:translateX(3px);
}

.footer-legal p{
    margin-top:20px;
    color:#93a3ae;
    font-size:.8rem;
    line-height:1.65;
}

.footer-bottom{
    width:min(1400px,calc(100% - 80px));
    min-height:74px;
    margin-inline:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    border-top:1px solid rgba(255,255,255,.12);
    color:#93a3ae;
    font-size:.8rem;
}

.footer-bottom-links{
    display:flex;
    align-items:center;
    gap:22px;
}

.footer-bottom a,
.site-footer .admin-link{
    margin:0;
    color:#aebbc4;
    font-size:.8rem;
    text-decoration:none;
}

.footer-bottom a:hover{
    color:#ffffff;
}


/* LEGAL PAGE */

.legal-hero{
    padding:calc(var(--header-height) + 92px) 24px 82px;
    background:linear-gradient(135deg,#edf2f5,#f8faf9);
    text-align:center;
}

.legal-hero-content{
    width:min(820px,100%);
    margin-inline:auto;
}

.legal-hero .eyebrow{
    display:block;
    margin-bottom:14px;
}

.legal-hero h1{
    font-size:clamp(2.6rem,6vw,4.8rem);
    line-height:1.08;
}

.legal-hero p{
    width:min(660px,100%);
    margin:20px auto 0;
    color:var(--text);
    line-height:1.75;
}

.legal-content{
    width:min(920px,calc(100% - 48px));
    margin:70px auto 100px;
}

.legal-notice{
    margin-bottom:28px;
    padding:22px 24px;
    border:1px solid rgba(127,155,190,.28);
    border-radius:18px;
    color:#536473;
    background:#f1f5f8;
    line-height:1.65;
}

.legal-card{
    padding:clamp(26px,5vw,54px);
    border:1px solid var(--border);
    border-radius:28px;
    background:#ffffff;
    box-shadow:var(--shadow);
}

.legal-card section{
    padding:0;
}

.legal-card section + section{
    margin-top:38px;
    padding-top:38px;
    border-top:1px solid var(--border);
}

.legal-card h2{
    margin-bottom:14px;
    font-size:1.35rem;
}

.legal-card p,
.legal-card li{
    color:var(--text);
    line-height:1.8;
}

.legal-card ul{
    margin:14px 0 0 22px;
}

.legal-card strong{
    color:var(--dark);
}

.legal-updated{
    margin-top:38px;
    color:#7a8790;
    font-size:.84rem;
}

/* CLASES */
.classes-hero{position:relative;min-height:620px;padding:calc(var(--header-height) + 70px) 8% 80px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white);background:url('../assets/images/clases/clases-hero.jpg') center/cover no-repeat}
.classes-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,34,46,.68),rgba(20,34,46,.38))}
.classes-hero-content{position:relative;z-index:1;width:min(760px,100%)}
.classes-hero h1{margin:16px 0;font-size:clamp(3rem,7vw,6.3rem);font-weight:300;line-height:1;letter-spacing:-3px}
.classes-hero p{width:min(650px,100%);margin-inline:auto;color:rgba(255,255,255,.9);font-size:1.05rem;line-height:1.8}
.classes-intro{padding-bottom:52px}
.section-lead{width:min(680px,100%);margin:16px auto 0;color:var(--text);line-height:1.75}
.class-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.class-filter{padding:11px 22px;border:1px solid var(--border);border-radius:999px;background:var(--white);color:var(--dark);font:inherit;font-size:.88rem;font-weight:500;cursor:pointer;transition:.25s ease}
.class-filter:hover,.class-filter.active{color:var(--white);background:var(--primary);border-color:var(--primary);transform:translateY(-2px)}
.class-catalog{padding:20px 5% 110px}
.classes-grid{width:min(1450px,100%);margin-inline:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
.class-card{overflow:hidden;border:1px solid var(--border);border-radius:28px;background:var(--white);box-shadow:var(--shadow);transition:transform .3s ease,box-shadow .3s ease}
.class-card:hover{transform:translateY(-7px);box-shadow:0 24px 55px rgba(36,52,71,.16)}
.class-card.is-hidden{display:none}
.class-media{position:relative;height:390px;overflow:hidden;background:#dfe6e8}
.class-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .55s ease}
.class-card:hover .class-media img{transform:scale(1.055)}
.class-media-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(20,33,45,.68));opacity:.58;transition:opacity .3s ease}
.class-card:hover .class-media-overlay{opacity:.9}
.class-media-play{position:absolute;left:50%;bottom:28px;transform:translate(-50%,16px);padding:13px 25px;border:1px solid rgba(255,255,255,.7);border-radius:999px;color:#fff;background:rgba(24,36,49,.58);font:inherit;font-weight:600;opacity:0;cursor:pointer;backdrop-filter:blur(8px);transition:.3s ease}
.class-card:hover .class-media-play,.class-media-play:focus-visible{opacity:1;transform:translate(-50%,0)}
.class-card-content{padding:32px 32px 34px}
.class-card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.class-category{color:var(--secondary);font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase}
.class-level{padding:7px 11px;border-radius:999px;color:#61706a;background:#eff3ef;font-size:.72rem;font-weight:500}
.class-card h2{margin:14px 0 12px;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:500}
.class-card-content>p{color:var(--text);line-height:1.75}
.class-details{margin-top:22px;padding-top:20px;display:flex;flex-wrap:wrap;gap:12px 26px;border-top:1px solid var(--border);color:var(--text);font-size:.84rem}
.class-details strong{color:var(--dark)}
.class-actions{margin-top:26px;display:flex;gap:12px}
.class-secondary-btn,.class-reserve-btn{min-height:49px;display:inline-flex;align-items:center;justify-content:center;flex:1;padding:12px 22px;border-radius:999px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:.25s ease}
.class-secondary-btn{border:1px solid var(--primary);color:var(--primary);background:transparent}
.class-secondary-btn:hover{color:#fff;background:var(--primary);transform:translateY(-2px)}
.class-reserve-btn{border:1px solid var(--secondary);color:#fff;background:var(--secondary)}
.class-reserve-btn:hover{background:#829378;border-color:#829378;transform:translateY(-2px);box-shadow:0 12px 26px rgba(78,101,70,.22)}
.classes-cta{width:min(1400px,calc(100% - 80px));margin:0 auto 100px;padding:64px 70px;display:flex;align-items:center;justify-content:space-between;gap:40px;border-radius:30px;background:#edf2f2}
.classes-cta h2{margin:12px 0;font-size:clamp(2rem,4vw,3.4rem)}
.classes-cta p{color:var(--text);line-height:1.7}
.classes-cta .btn-primary{margin-top:0;white-space:nowrap}
body.modal-open,
body.menu-open{overflow:hidden}
.class-video-modal,.reservation-modal{position:fixed;inset:0;z-index:8000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(18,30,42,.78);backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;transition:opacity .3s ease,visibility .3s ease}
.class-video-modal.active,.reservation-modal.active{opacity:1;visibility:visible;pointer-events:auto}
.class-video-dialog{position:relative;width:min(980px,100%);max-height:calc(100dvh - 48px);padding:52px 24px 24px;display:flex;flex-direction:column;border-radius:26px;background:#101820;box-shadow:0 30px 80px rgba(0,0,0,.4);overflow:hidden;transform:translateY(18px) scale(.98);transition:transform .3s ease}
.class-video-modal.active .class-video-dialog,.reservation-modal.active .reservation-modal-content{transform:translateY(0) scale(1)}
.class-video-dialog h2{position:absolute;top:18px;left:24px;right:72px;color:#fff;font-size:1rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.class-video-dialog video{display:block;width:100%;height:min(72dvh,720px);max-width:100%;margin:auto;border-radius:16px;background:#000;object-fit:contain}
.class-video-close,.reservation-modal-close{position:absolute;top:12px;right:14px;width:42px;height:42px;border:0;border-radius:50%;color:#243447;background:#f1f4f5;font-size:1.8rem;line-height:1;cursor:pointer;z-index:2}
.reservation-modal-content{position:relative;width:min(500px,100%);padding:48px 42px;border-radius:28px;background:#fff;box-shadow:0 28px 70px rgba(15,27,39,.28);text-align:center;transform:translateY(20px) scale(.97);transition:transform .3s ease}
.reservation-modal-label{color:var(--secondary);font-size:.75rem;font-weight:600;letter-spacing:3px;text-transform:uppercase}
.reservation-modal-content h2{margin:14px 0 16px;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.2}
.reservation-modal-content p{color:var(--text);line-height:1.7}
.reservation-modal-note{margin-top:12px;font-size:.88rem}
.reservation-modal-link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin-top:26px;padding:13px 28px;border-radius:999px;color:#fff;background:var(--secondary);font-weight:600;text-decoration:none;transition:.25s ease}
.reservation-modal-link:hover{transform:translateY(-3px);background:#829378}


/* AJUSTE DEL MODAL DE VIDEO EN TABLET Y MÓVIL */
@media (max-width:650px){
    .class-video-modal{
        padding:12px;
        align-items:center;
        justify-content:center;
    }

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

    .class-video-dialog h2{
        top:17px;
        left:18px;
        right:66px;
        font-size:.95rem;
    }

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

    .class-video-close{
        top:10px;
        right:10px;
        width:40px;
        height:40px;
    }
}


/* Contenido público administrado */
.public-empty-state{
  width:100%;
  min-height:250px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:34px 22px;
  text-align:center;
  border:1px dashed rgba(46,65,74,.22);
  border-radius:22px;
  background:rgba(255,255,255,.72);
}
.public-empty-state span{font-size:.72rem;font-weight:700;letter-spacing:.16em;color:#74838a}
.public-empty-state h3{margin:0;font-size:clamp(1.3rem,3vw,1.9rem);color:#30434b}
.public-empty-state p{max-width:560px;margin:0;color:#748087}
.public-media-placeholder{width:100%;height:100%;min-height:220px;display:grid;place-items:center;background:#e9eeeb;color:#65777e;font-size:1.4rem;font-weight:700;letter-spacing:.18em}
.classes-grid>.public-empty-state,.shop-grid>.public-empty-state{grid-column:1/-1}

.public-selected-item{outline:3px solid currentColor;outline-offset:6px;animation:seeiSelectedPulse 1.4s ease 2}@keyframes seeiSelectedPulse{50%{transform:translateY(-4px)}}

/* SEEI v7.2: mostrar completas las imágenes de clases sin agrandar tarjetas */
.classes-page .class-media img,.class-catalog-section .class-media img{object-fit:contain;background:#eef1f2;padding:8px}
.classes-grid .class-media img{object-fit:contain;background:#eef1f2;padding:8px}
