        :root {
            --neon-pink: #ff0055;
            --neon-blue: #00f3ff;
            --neon-yellow: #fffa00;
            --dark-bg: #030303;
        }

        body, html { margin: 0; padding: 0; background-color: var(--dark-bg); color: white; font-family: 'Space Grotesk', sans-serif; overflow-x: hidden; }
        .title-font { font-family: 'Syncopate', sans-serif; text-transform: uppercase; }

        /* SCROLLBAR */
        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: #000; }
        ::-webkit-scrollbar-thumb { background: #333; border-radius: 4px; }
        ::-webkit-scrollbar-thumb:hover { background: var(--neon-pink); }

        /* TEXTURAS Y RUIDO */
        .noise { position: fixed; inset: 0; pointer-events: none; z-index: 9999; opacity: 0.04; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); }

        /* HERO CARRUSEL (Home) */
        #view-inicio.spa-view { padding-top: 0; padding-bottom: 0; }
        #view-inicio.spa-view.active { opacity: 1; }
        .home-hero { position: relative; width: 100%; height: 100svh; min-height: 100svh; overflow: hidden; background: #0a0a0a; }
        .heroSwiper { width: 100%; height: 100%; min-height: 100svh; }
        .heroSwiper .swiper-wrapper { height: 100%; }
        .heroSwiper .swiper-slide {
            height: 100%;
            min-height: 100svh;
            border-radius: 0;
            overflow: hidden;
            background: #0a0a0a;
        }
        /* Evita pantalla negra con effect fade (slides en opacity 0) */
        .heroSwiper.swiper-fade .swiper-slide { opacity: 0; }
        .heroSwiper.swiper-fade .swiper-slide-active,
        .heroSwiper.swiper-fade .swiper-slide-duplicate-active {
            opacity: 1;
            z-index: 2;
        }
        .heroSwiper:not(.swiper-initialized) .swiper-slide:first-child { opacity: 1; }
        .heroSwiper .swiper-slide img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }
        .hero-swiper-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 30;
            width: 44px;
            height: 44px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.3);
            background: rgba(0, 0, 0, 0.35);
            color: #fff;
            display: grid;
            place-items: center;
            backdrop-filter: blur(6px);
            transition: all 0.25s ease;
        }
        .hero-swiper-nav:hover {
            border-color: var(--neon-pink);
            color: var(--neon-pink);
            background: rgba(0, 0, 0, 0.55);
        }
        .hero-swiper-prev { left: 1rem; }
        .hero-swiper-next { right: 1rem; }
        .hero-swiper-nav i { font-size: 1.25rem; line-height: 1; }
        .hero-swiper-pagination { bottom: 2rem !important; z-index: 20; }
        .hero-swiper-pagination .swiper-pagination-bullet { width: 10px; height: 10px; background: white; opacity: 0.35; transition: all 0.3s; }
        .hero-swiper-pagination .swiper-pagination-bullet-active { background: var(--neon-pink); opacity: 1; width: 28px; border-radius: 6px; box-shadow: 0 0 12px var(--neon-pink); }
        @media (max-width: 768px) {
            .hero-swiper-nav {
                width: 38px;
                height: 38px;
            }
            .hero-swiper-prev { left: 0.65rem; }
            .hero-swiper-next { right: 0.65rem; }
        }
        .home-hero h2 {
            font-size: clamp(2.2rem, 5.2vw, 5.25rem) !important;
            line-height: 0.9;
            overflow-wrap: break-word;
            word-break: break-word;
        }
        .home-hero .hero-slide-content {
            box-sizing: border-box;
            max-width: 80rem;
            padding-top: 5.5rem;
            padding-bottom: 4.5rem;
        }
        @media (max-height: 780px) {
            .home-hero,
            .heroSwiper,
            .heroSwiper .swiper-slide {
                height: auto;
                min-height: 100svh;
            }
            .heroSwiper .swiper-wrapper { height: auto; }
            .hero-slide-content {
                height: auto !important;
                min-height: 100svh;
            }
        }

        /* SPA ROUTING (Páginas) */
        .spa-view { display: none; opacity: 0; min-height: 100vh; padding-top: 148px; padding-bottom: 80px; }
        .spa-view.active { display: block; animation: fadeInPage 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
        @keyframes fadeInPage { 0% { opacity: 0; transform: translateY(20px); } 100% { opacity: 1; transform: translateY(0); } }

        /* NAVBAR */
        .premium-nav {
            position: relative;
            background: transparent !important;
            border: 0 !important;
            border-bottom: 0 !important;
            box-shadow: none !important;
            outline: none !important;
            min-height: 136px;
            overflow: visible;
        }
        .premium-nav__media {
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            z-index: 0;
            pointer-events: none;
            /* Solo el borde inferior se funde: quita la raya dura sin emborronar la foto */
            -webkit-mask-image: linear-gradient(
                to bottom,
                #000 0%,
                #000 72%,
                rgba(0, 0, 0, 0.65) 86%,
                rgba(0, 0, 0, 0.25) 94%,
                transparent 100%
            );
            mask-image: linear-gradient(
                to bottom,
                #000 0%,
                #000 72%,
                rgba(0, 0, 0, 0.65) 86%,
                rgba(0, 0, 0, 0.25) 94%,
                transparent 100%
            );
        }
        .premium-nav__photo {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: right center;
            user-select: none;
        }
        .premium-nav__inner {
            position: relative;
            z-index: 2;
            min-height: 136px;
            width: 100%;
            box-sizing: border-box;
        }
        /* Logo plano original */
        .premium-nav__brand {
            display: flex;
            align-items: center;
            width: auto;
            height: auto;
            flex-shrink: 0;
        }
        .premium-nav__logo {
            display: block;
            height: clamp(3.4rem, 6.8vw, 5rem);
            width: auto;
            max-width: min(46vw, 12rem);
            object-fit: contain;
            object-position: left center;
            filter: drop-shadow(0 0 16px rgba(255, 0, 85, 0.35));
        }
        /* Menú móvil por encima del banner */
        #mobileMenu {
            z-index: 70 !important;
        }
        body.mobile-menu-open .premium-nav {
            z-index: 40;
        }

        /* FAB menú: alineado con iconos; al scroll se fija */
        .mobile-menu-fab-slot {
            display: none;
            width: 44px;
            height: 44px;
            flex-shrink: 0;
            position: relative;
        }
        @media (max-width: 1023px) {
            .mobile-menu-fab-slot {
                display: flex;
                align-items: center;
                justify-content: center;
            }
            .mobile-menu-fab.is-floating {
                position: fixed;
                top: max(0.75rem, env(safe-area-inset-top, 0px));
                right: max(0.75rem, env(safe-area-inset-right, 0px));
                z-index: 72;
                margin: 0;
                box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
            }
            body.mobile-menu-open .mobile-menu-fab {
                background: rgba(255, 0, 85, 0.92);
                border-color: rgba(255, 255, 255, 0.25);
                color: #fff;
            }

            /* Joinchat flotante: solo escritorio (abajo ya hay Llamar/WhatsApp/Instagram) */
            .joinchat,
            .joinchat__button,
            #joinchat,
            .joinchat--left,
            .joinchat--right {
                display: none !important;
                visibility: hidden !important;
                pointer-events: none !important;
            }

            /* Barra inferior compacta */
            .mobile-quick-bar {
                position: fixed;
                left: 0;
                right: 0;
                bottom: 0;
                z-index: 60;
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                align-items: stretch;
                min-height: 2.75rem;
                padding: 0.28rem 0 calc(0.28rem + env(safe-area-inset-bottom, 0px));
                background: rgba(14, 16, 20, 0.94);
                backdrop-filter: blur(14px);
                -webkit-backdrop-filter: blur(14px);
                border-top: 1px solid rgba(255, 255, 255, 0.08);
                box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.35);
            }
            .mobile-quick-bar__item {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 0.1rem;
                color: rgba(255, 255, 255, 0.88);
                text-decoration: none;
                font-size: 0.58rem;
                font-weight: 700;
                letter-spacing: 0.08em;
                text-transform: uppercase;
                line-height: 1.1;
                padding: 0.15rem 0.25rem;
                transition: color 0.15s ease;
            }
            .mobile-quick-bar__item i {
                font-size: 1.05rem;
                line-height: 1;
                color: #fff;
            }
            .mobile-quick-bar__item--wa i {
                color: #25d366;
            }
            .mobile-quick-bar__item--ig i {
                color: #ff2d95;
            }
            .mobile-quick-bar__item:active {
                color: #fff;
            }
            body.mobile-menu-open .mobile-quick-bar {
                opacity: 0;
                pointer-events: none;
            }
            .spa-view {
                padding-bottom: calc(80px + 2.75rem);
            }
            body.studio-a-escena-template-page footer {
                padding-bottom: calc(3rem + 2.75rem + env(safe-area-inset-bottom, 0px));
            }
        }
        @media (min-width: 1024px) {
            .mobile-quick-bar,
            .mobile-menu-fab-slot {
                display: none !important;
            }
        }
        .nav-link { position: relative; color: #aaa; transition: color 0.3s; }
        .nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0%; height: 2px; background: var(--neon-pink); transition: width 0.3s ease; }
        .nav-link:hover, .nav-link.active { color: white; }
        .nav-link:hover::after, .nav-link.active::after { width: 100%; }

        /* MARQUEES */
        .marquee-wrapper { overflow: hidden; white-space: nowrap; display: block; width: 100%; max-width: 100%; background: #0a0a0a; border-y: 1px solid rgba(255,255,255,0.1); padding: 1rem 0; }
        .marquee-track { display: flex; flex-wrap: nowrap; width: max-content; animation: marquee 28s linear infinite; }
        .marquee-track.reverse { animation-direction: reverse; }
        .marquee-item {
            flex: 0 0 auto;
            white-space: nowrap;
            padding: 0 0.15em;
        }
        .marquee-item::after {
            content: ' ✘ ';
            display: inline;
        }
        @keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

        /* NOVEDADES (Home) */
        .home-news {
            position: relative;
            isolation: isolate;
            overflow: hidden;
            scroll-margin-top: 7rem;
            border-top: 1px solid rgba(255, 255, 255, 0.06);
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            background: #050505;
        }
        .home-news__bg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 30%;
            z-index: 0;
            pointer-events: none;
        }
        .home-news__veil {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background:
                linear-gradient(180deg, rgba(3, 3, 3, 0.82) 0%, rgba(3, 3, 3, 0.7) 45%, rgba(3, 3, 3, 0.88) 100%);
        }
        .home-news__inner {
            position: relative;
            z-index: 2;
            max-width: min(920px, 94vw);
            margin: 0 auto;
            padding: 8rem 1rem 4.5rem;
        }
        @media (min-width: 768px) {
            .home-news__inner { padding: 9.5rem 2rem 5.25rem; }
        }
        .home-news__header {
            text-align: center;
            margin-bottom: 2.25rem;
        }
        .home-news__empty {
            text-align: center;
            color: rgba(255, 255, 255, 0.55);
            font-weight: 300;
            font-size: 1rem;
            margin: 0;
            padding: 1.5rem 1rem 0;
        }
        .home-news__carousel {
            position: relative;
            padding: 0 3rem 2.6rem;
        }
        @media (min-width: 768px) {
            .home-news__carousel { padding: 0 3.5rem 2.75rem; }
        }
        .newsSwiper { overflow: visible; }
        .newsSwiper .swiper-slide {
            height: auto;
            overflow: visible;
            border-radius: 0;
        }
        .newsSwiper .swiper-slide .home-news-chip {
            transform: scale(0.94);
            opacity: 0.45;
        }
        .newsSwiper .swiper-slide-active .home-news-chip {
            transform: scale(1);
            opacity: 1;
        }
        .home-news-nav {
            position: absolute;
            top: calc(50% - 1.1rem);
            transform: translateY(-50%);
            z-index: 20;
            width: 44px;
            height: 44px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.28);
            background: rgba(0, 0, 0, 0.55);
            color: #fff;
            display: grid;
            place-items: center;
            cursor: pointer;
            transition: all 0.25s ease;
        }
        .home-news-nav:hover {
            border-color: #ff0055;
            background: #ff0055;
            color: #fff;
            box-shadow: 0 0 18px rgba(255, 0, 85, 0.35);
        }
        .home-news-prev { left: 0; }
        .home-news-next { right: 0; }
        .home-news-nav i { font-size: 1.2rem; line-height: 1; }
        .home-news-pagination { bottom: 0 !important; }
        .home-news-pagination .swiper-pagination-bullet {
            width: 10px;
            height: 10px;
            background: #fff;
            opacity: 0.35;
            transition: all 0.3s;
        }
        .home-news-pagination .swiper-pagination-bullet-active {
            background: #ff0055;
            opacity: 1;
            width: 28px;
            border-radius: 6px;
            box-shadow: 0 0 12px #ff0055;
        }
        .home-news-chip {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0.55rem;
            width: 100%;
            min-height: 210px;
            margin: 0;
            padding: 1.45rem 1.55rem 1.5rem;
            border-radius: 1.35rem;
            border: 1px solid rgba(255, 255, 255, 0.14);
            border-left: 4px solid #ff0055;
            background: rgba(10, 10, 10, 0.94);
            color: #fff;
            text-align: left;
            text-decoration: none;
            box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
            transition: border-color 0.3s ease, transform 0.45s ease, box-shadow 0.3s ease, opacity 0.45s ease;
        }
        .home-news-chip:focus-visible {
            outline: 2px solid #ff0055;
            outline-offset: 3px;
        }
        .newsSwiper .swiper-slide-active .home-news-chip:hover {
            border-color: #ff0055;
            box-shadow: 0 16px 36px rgba(255, 0, 85, 0.16);
            color: #fff;
        }
        .home-news-chip__top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            width: 100%;
        }
        .home-news-chip__tag {
            flex: 0 0 auto;
            background: #ff0055;
            color: #000;
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            padding: 0.4rem 0.75rem;
            border-radius: 999px;
            line-height: 1;
        }
        .home-news-chip__date {
            color: #ff0055;
            font-size: 0.72rem;
            font-weight: 800;
            letter-spacing: 0.14em;
            text-transform: uppercase;
        }
        .home-news-chip__text {
            color: #fff;
            font-size: 1.2rem;
            font-weight: 800;
            line-height: 1.25;
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .home-news-chip__excerpt {
            color: #cfcfcf;
            font-size: 0.95rem;
            font-weight: 400;
            line-height: 1.5;
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .home-news-chip__more {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            margin-top: auto;
            padding: 0.5rem 0.9rem;
            border-radius: 999px;
            border: 1px solid rgba(255, 0, 85, 0.55);
            background: rgba(255, 0, 85, 0.12);
            color: #ff0055;
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            cursor: pointer;
            transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
        }
        .home-news-chip__more i { transition: transform 0.25s ease; }
        .home-news-chip__more:hover {
            background: #ff0055;
            color: #fff;
            border-color: #ff0055;
        }
        .home-news-chip__more:hover i { transform: translateX(3px); }
        @media (min-width: 768px) {
            .home-news-chip {
                min-height: 230px;
                padding: 1.75rem 2rem 1.85rem;
            }
            .home-news-chip__text { font-size: 1.45rem; }
            .home-news-chip__excerpt { font-size: 1.05rem; }
        }
        @media (max-width: 639px) {
            .home-news__inner { padding: 6.5rem 0.75rem 4rem; }
            .home-news__carousel { padding: 0 2.6rem 2.5rem; }
            .home-news-nav {
                width: 38px;
                height: 38px;
            }
        }

        /* BENTO BOX (Inicio) */
        .bento-item { background: #111; border: 1px solid rgba(255,255,255,0.05); border-radius: 24px; overflow: hidden; position: relative; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.4s; cursor: pointer; }
        .bento-item:hover { transform: translateY(-10px); border-color: var(--neon-pink); }
        .bento-img { transition: transform 0.8s; }
        .bento-item:hover .bento-img { transform: scale(1.1); }
        #view-inicio .bento-item { border-color: rgba(255,255,255,0.28); }
        #view-inicio .bento-item:hover {
            transform: translateY(-10px);
            border-color: var(--neon-pink);
            box-shadow: 0 16px 40px rgba(255, 0, 85, 0.2);
        }
        #view-inicio .bento-item .bento-explore-icon { color: #fff; transition: color 0.4s; }
        #view-inicio .bento-item:hover .bento-explore-icon { color: var(--neon-pink); }
        #view-inicio .bento-item h3,
        #view-inicio .bento-item p { color: #fff; }

        /* PRUEBA SOCIAL (Home) */
        .google-rating-badge {
            display: inline-flex; align-items: center; gap: 1rem;
            padding: 0; background: transparent; border: none; box-shadow: none;
        }
        .google-rating-badge__g { width: 40px; height: 40px; flex-shrink: 0; display: block; }
        .google-rating-badge__meta { text-align: left; }
        .google-rating-badge__score {
            display: flex; align-items: center; gap: 0.5rem;
        }
        .google-rating-badge__stars {
            display: flex; align-items: center; gap: 1px; color: #fffa00; font-size: 1.1rem; line-height: 1;
        }
        .google-rating-badge__number {
            font-size: 1.25rem; font-weight: 800; color: #fff; line-height: 1;
        }
        .google-rating-badge__label {
            margin: 0.35rem 0 0; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.12em;
            text-transform: uppercase; color: #888;
        }
        .social-proof-card {
            background: #111; border: 1px solid rgba(255,255,255,0.1); border-radius: 1.25rem;
            padding: 1.75rem 1.5rem; min-height: 320px; display: flex; flex-direction: column;
        }
        @media (min-width: 768px) { .social-proof-card { padding: 2rem 2.25rem; min-height: 300px; } }
        .social-proof-quote {
            flex: 1; font-size: 1.05rem; font-weight: 300; font-style: italic; line-height: 1.65;
            color: #e5e5e5; margin: 0;
        }
        .social-proof-avatar {
            width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
            display: flex; align-items: center; justify-content: center;
            font-size: 0.75rem; font-weight: 800; letter-spacing: 0.05em;
            background: linear-gradient(135deg, #ff0055, #00f3ff); color: #fff;
        }
        .testimonials-swiper-wrap,
        .testimonials-photos-wrap { position: relative; }
        .testimonials-swiper-wrap { padding: 0 2.75rem; }
        @media (min-width: 768px) { .testimonials-swiper-wrap { padding: 0 3.25rem; } }
        .testimonials-swiper-prev, .testimonials-swiper-next,
        .testimonials-photos-prev, .testimonials-photos-next {
            position: absolute; top: 50%; transform: translateY(-50%); z-index: 20;
            width: 44px; height: 44px; border-radius: 50%;
            border: 1px solid rgba(255,255,255,0.2); background: rgba(0,0,0,0.65);
            color: white; display: flex; align-items: center; justify-content: center;
            cursor: pointer; transition: all 0.25s; backdrop-filter: blur(8px);
            pointer-events: auto;
        }
        .testimonials-swiper-prev:hover, .testimonials-swiper-next:hover,
        .testimonials-photos-prev:hover, .testimonials-photos-next:hover {
            background: var(--neon-pink); border-color: var(--neon-pink); color: white;
        }
        .testimonials-swiper-prev { left: 0; }
        .testimonials-swiper-next { right: 0; }
        .testimonials-photos-prev { left: 0; }
        .testimonials-photos-next { right: 0; }
        .testimonials-swiper-pagination .swiper-pagination-bullet-active {
            background: var(--neon-pink) !important; opacity: 1;
        }
        .social-proof-photo {
            border-radius: 1rem; overflow: hidden; border: 1px solid rgba(255,255,255,0.12);
            aspect-ratio: 4 / 3; background: #111;
        }
        .social-proof-photo img {
            width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease;
        }
        .social-proof-photo:hover img { transform: scale(1.05); }

        /* BOTONES MAGNETICOS & ESTILOS */
        .btn-core { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; padding: 16px 32px; transition: all 0.3s; cursor: pointer; position: relative; overflow: hidden; z-index: 1; }
        .btn-pink { background: var(--neon-pink); color: white; box-shadow: 0 0 20px rgba(255,0,85,0.3); }
        .btn-pink::before { content: ''; position: absolute; inset: 0; background: white; transform: scaleX(0); transform-origin: right; transition: transform 0.4s cubic-bezier(0.86, 0, 0.07, 1); z-index: -1; }
        .btn-pink:hover::before { transform: scaleX(1); transform-origin: left; }
        .btn-pink:hover { color: var(--neon-pink); box-shadow: 0 0 30px rgba(255,0,85,0.6); }

        .btn-outline { border: 2px solid white; color: white; }
        .btn-outline:hover { background: white; color: black; }

        /* FILTROS DE CLASES */
        .filter-btn { padding: 8px 24px; border-radius: 50px; border: 1px solid rgba(255,255,255,0.2); color: #888; transition: all 0.3s; text-transform: uppercase; font-size: 0.875rem; font-weight: bold; }
        .filter-btn.active { background: var(--neon-blue); color: black; border-color: var(--neon-blue); box-shadow: 0 0 15px rgba(0,243,255,0.4); }

        /* CARDS 3D */
        .tilt-card { transition: transform 0.1s ease, box-shadow 0.3s ease; transform-style: preserve-3d; }
        .tilt-content { transform: translateZ(50px); }

        /* SWIPER CAROUSEL CUSTOMS */
        .swiper-pagination-bullet { background: white !important; opacity: 0.3; }
        .swiper-pagination-bullet-active { background: var(--neon-pink) !important; opacity: 1; box-shadow: 0 0 10px var(--neon-pink); }
        .swiper-slide { border-radius: 20px; overflow: hidden; }

        /* ACORDEON FAQ */
        .faq-item { border-bottom: 1px solid rgba(255,255,255,0.1); }
        .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
        .faq-item.active .faq-answer { max-height: 200px; }
        .faq-item.active .faq-icon { transform: rotate(45deg); color: var(--neon-pink); }

        /* TIMELINE CAMPAMENTOS */
        .timeline-dot { width: 16px; height: 16px; background: var(--neon-pink); border-radius: 50%; position: absolute; left: -8px; top: 0; box-shadow: 0 0 10px var(--neon-pink); }
        .timeline-line { position: absolute; left: 0; top: 16px; bottom: -30px; width: 2px; background: rgba(255,0,85,0.3); }

        /* BARRE CENTER */
        @keyframes slowZoom {
            0% { transform: scale(1); }
            100% { transform: scale(1.15); }
        }
        .bg-breathing { animation: slowZoom 25s infinite alternate ease-in-out; }
        .barre-cell-new {
            transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
            border: 1px solid rgba(255,255,255,0.15);
            cursor: pointer;
            background: rgba(255,255,255,0.08);
            backdrop-filter: blur(10px);
        }
        .barre-cell-new:hover {
            background: #ffffff;
            transform: scale(1.05) translateY(-5px);
            z-index: 10;
            box-shadow: 0 15px 35px rgba(0,0,0,0.5), 0 0 25px rgba(255,0,85,0.5);
            border-color: transparent;
        }
        .barre-cell-new:hover p { color: #000 !important; }
        .barre-cell-new:hover .icon-hover { color: var(--neon-pink) !important; }
        @keyframes barreFloat3D {
            0% { transform: translateY(0px) rotateX(5deg) rotateY(-5deg); }
            50% { transform: translateY(-20px) rotateX(0deg) rotateY(5deg); }
            100% { transform: translateY(0px) rotateX(5deg) rotateY(-5deg); }
        }
        .barre-float3D { animation: barreFloat3D 8s ease-in-out infinite; transform-style: preserve-3d; perspective: 1000px; }
        .hide-scrollbar::-webkit-scrollbar { display: none; }
        .hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

        /* Calendario semanal — sección Clases */
        #clases-weekly-calendar-section .clases-cal-event {
            cursor: pointer;
            min-height: 52px;
            height: 100%;
            padding: 0.4rem 0.5rem !important;
            box-sizing: border-box;
        }
        #clases-weekly-calendar-section .clases-cal-event p { transition: color 0.3s ease; font-size: 0.68rem; line-height: 1.2; }
        @media (min-width: 768px) {
            #clases-weekly-calendar-section .clases-cal-event p { font-size: 0.72rem; }
        }
        #clases-weekly-calendar-section .clases-cal-event:hover p { color: #000 !important; }
        #clases-weekly-calendar-section .clases-cal-slot-empty,
        #clases-weekly-calendar-section .studio-cal-day-bg-slot {
            min-height: 52px;
            height: 52px;
            opacity: 0.28;
            border: 1px dashed rgba(255,255,255,0.18);
            border-radius: 0.65rem;
            background: rgba(0,0,0,0.2);
            font-size: 0.65rem;
            box-sizing: border-box;
        }
        #clases-weekly-calendar-section .clases-cal-time-col,
        #clases-weekly-calendar-section .studio-cal-time-slot {
            min-height: 52px;
            height: 52px;
            font-size: 0.8rem;
            border-radius: 0.65rem;
            box-sizing: border-box;
        }
        #clases-weekly-calendar-section .clases-cal-row { margin-bottom: 0.35rem; }
        .cal-period-block { margin-bottom: 0.5rem; }
        .cal-period-block + .cal-period-block { margin-top: 1.25rem; padding-top: 0.25rem; border-top: 1px solid rgba(255,255,255,0.06); }
        .cal-period-block--board { margin-top: 0.35rem; border-top: 0; padding-top: 0; }
        .cal-period-header {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 0.45rem 0.65rem;
            font-size: 0.65rem;
            font-weight: 800;
            letter-spacing: 0.28em;
            text-transform: uppercase;
            margin: 0 0 0.6rem 0.15rem;
        }
        .cal-period-header--morning { color: #ff0055; }
        .cal-period-header--afternoon { color: #00f3ff; }
        .cal-period-header__hint {
            font-size: 0.55rem;
            letter-spacing: 0.12em;
            color: rgba(255,255,255,0.35);
            font-weight: 600;
            text-transform: none;
        }

        /* Tablero continuo: un bloque por clase (start→end del plugin) */
        .studio-cal-board { align-items: start; }
        .studio-cal-time-track {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .studio-cal-day-track {
            position: relative;
            width: 100%;
            min-width: 0;
        }
        .studio-cal-day-bg {
            position: absolute;
            inset: 0;
            display: flex;
            flex-direction: column;
            gap: 6px;
            pointer-events: none;
            z-index: 0;
        }
        .studio-cal-event-abs {
            position: absolute;
            z-index: 2;
            box-sizing: border-box;
            overflow: hidden;
            border-radius: 0.65rem;
        }
        .studio-cal-event-abs > * {
            height: 100%;
            min-height: 100% !important;
            width: 100%;
        }
        .studio-cal-event-abs .barre-cell-new:hover {
            transform: translateY(-1px) scale(1);
        }

        /* Calendario Barre Center — compacto, estilo alineado con Clases */
        #view-barre .barre-cal-event {
            cursor: pointer;
            min-height: 52px;
            height: 100%;
            padding: 0.4rem 0.5rem;
            border-radius: 0.65rem;
            border: 1px solid rgba(255,255,255,0.1);
            transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
            box-sizing: border-box;
        }
        #view-barre .barre-cal-event:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.45), 0 0 16px rgba(255,0,85,0.25);
            background: #fff !important;
        }
        #view-barre .studio-cal-event-abs .barre-cal-event:hover {
            transform: translateY(-1px);
        }
        #view-barre .barre-cal-event:hover .barre-cal-event__title { color: #000 !important; }
        #view-barre .barre-cal-event__title {
            font-size: 0.68rem;
            line-height: 1.2;
            font-weight: 800;
        }
        @media (min-width: 768px) {
            #view-barre .barre-cal-event__title { font-size: 0.72rem; }
        }
        #view-barre .barre-cal-event__shared {
            font-size: 0.58rem;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            color: rgba(255,255,255,0.45);
            margin-top: 0.15rem;
            display: block;
        }
        #view-barre .barre-cal-event:hover .barre-cal-event__shared { color: rgba(0,0,0,0.45); }
        #view-barre .barre-cal-slot-empty,
        #view-barre .studio-cal-day-bg-slot {
            min-height: 52px;
            height: 52px;
            opacity: 0.22;
            border: 1px dashed rgba(255,255,255,0.15);
            border-radius: 0.65rem;
            background: rgba(0,0,0,0.2);
            font-size: 0.65rem;
            box-sizing: border-box;
        }
        #view-barre .barre-cal-time-col,
        #view-barre .studio-cal-time-slot {
            min-height: 52px;
            height: 52px;
            font-size: 0.8rem;
            border-radius: 0.65rem;
            box-sizing: border-box;
        }
        #view-barre .barre-cal-row { margin-bottom: 0.35rem; }
        #clases-weekly-calendar-section .clases-cal-bg-photo {
            position: absolute;
            inset: 0;
            z-index: 0;
            overflow: hidden;
            border-radius: inherit;
            pointer-events: none;
        }
        #clases-weekly-calendar-section .clases-cal-bg-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 30%;
            transform: scale(1.1);
            filter: blur(8px);
            opacity: 0.4;
        }
        #clases-weekly-calendar-section .clases-cal-bg-overlay {
            position: absolute;
            inset: 0;
            z-index: 1;
            background: linear-gradient(160deg, rgba(5,5,5,0.88) 0%, rgba(5,5,5,0.72) 45%, rgba(5,5,5,0.9) 100%);
            pointer-events: none;
        }
        #clases-tarifas-section .clases-tarifa-card,
        #barre-tarifas-section .clases-tarifa-card {
            position: relative;
            overflow: hidden;
            border-radius: 1.5rem;
            border: 1px solid rgba(255,255,255,0.12);
            min-height: 320px;
            display: flex;
            flex-direction: column;
            transition: transform 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
        }
        #clases-tarifas-section .clases-tarifa-card:hover,
        #barre-tarifas-section .clases-tarifa-card:hover {
            transform: translateY(-6px);
            border-color: rgba(255,0,85,0.5);
            box-shadow: 0 20px 50px rgba(0,0,0,0.6), 0 0 30px rgba(255,0,85,0.2);
        }
        #clases-tarifas-section .clases-tarifa-card__bg,
        #barre-tarifas-section .clases-tarifa-card__bg {
            position: absolute;
            inset: 0;
            z-index: 0;
        }
        #clases-tarifas-section .clases-tarifa-card__bg img,
        #barre-tarifas-section .clases-tarifa-card__bg img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.6s ease;
        }
        #clases-tarifas-section .clases-tarifa-card:hover .clases-tarifa-card__bg img,
        #barre-tarifas-section .clases-tarifa-card:hover .clases-tarifa-card__bg img {
            transform: scale(1.08);
        }
        #clases-tarifas-section .clases-tarifa-card__overlay,
        #barre-tarifas-section .clases-tarifa-card__overlay {
            position: absolute;
            inset: 0;
            z-index: 1;
            background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0.35) 100%);
        }
        #clases-tarifas-section .clases-tarifa-card__body,
        #barre-tarifas-section .clases-tarifa-card__body {
            position: relative;
            z-index: 2;
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            padding: 1.75rem;
        }
        #clases-tarifas-section .clases-tarifa-card__body > h4,
        #barre-tarifas-section .clases-tarifa-card__body > h4 {
            font-size: 1.25rem;
            line-height: 1.25;
            margin-bottom: 0.25rem;
        }
        @media (min-width: 768px) {
            #clases-tarifas-section .clases-tarifa-card__body > h4,
            #barre-tarifas-section .clases-tarifa-card__body > h4 {
                font-size: 1.5rem;
            }
        }
        /* Título en una línea: reservar altura del bloque título+subtítulo */
        #clases-tarifas-section .clases-tarifa-card__body > h4:has(+ ul),
        #barre-tarifas-section .clases-tarifa-card__body > h4:has(+ ul) {
            min-height: 3.25rem;
            margin-bottom: 1rem;
        }
        #clases-tarifas-section .clases-tarifa-card__body > h4 + p,
        #barre-tarifas-section .clases-tarifa-card__body > h4 + p {
            margin-bottom: 1rem;
        }
        #clases-tarifas-section .clases-tarifa-card__body > ul,
        #barre-tarifas-section .clases-tarifa-card__body > ul {
            flex: 1;
        }
        #clases-tarifas-section .clases-tarifa-card__cta,
        #barre-tarifas-section .clases-tarifa-card__cta {
            margin-top: auto;
            padding-top: 1.25rem;
            width: 100%;
        }
        #clases-tarifas-section .clases-tarifa-discount {
            border-radius: 1.5rem;
            border: 1px solid rgba(0,243,255,0.3);
            background: linear-gradient(135deg, rgba(0,243,255,0.07) 0%, rgba(255,0,85,0.06) 100%);
            padding: 1.5rem 1.75rem;
            box-shadow: 0 0 30px rgba(0,243,255,0.08);
        }
        #clases-tarifas-section .clases-tarifa-card--tall {
            min-height: 320px;
        }
        #barre-tarifas-section .clases-tarifa-card__body > h4 {
            margin-bottom: 0.5rem;
            min-height: auto;
        }
        #barre-tarifas-section .barre-tarifa-card__price {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 1.25rem 0 1.5rem;
        }
        #barre-tarifas-section .barre-tarifa-card__price-label {
            font-size: 1rem;
            line-height: 1.4;
            color: rgba(209, 213, 219, 0.95);
            font-weight: 300;
            margin-bottom: 0.75rem;
        }
        @media (min-width: 768px) {
            #barre-tarifas-section .barre-tarifa-card__price-label {
                font-size: 1.125rem;
            }
        }
        #barre-tarifas-section .barre-tarifa-card__price-value {
            font-size: 3.25rem;
            line-height: 1;
            font-weight: 900;
            color: #ff0055;
            text-shadow: 0 0 24px rgba(255, 0, 85, 0.35);
        }
        @media (min-width: 768px) {
            #barre-tarifas-section .barre-tarifa-card__price-value {
                font-size: 4rem;
            }
        }
        #barre-tarifas-section .barre-tarifa-card__price-currency {
            font-size: 1.75rem;
            font-weight: 800;
            margin-left: 0.1rem;
        }
        @media (min-width: 768px) {
            #barre-tarifas-section .barre-tarifa-card__price-currency {
                font-size: 2rem;
            }
        }
        .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.9); backdrop-filter: blur(15px); z-index: 100000; display: flex; justify-content: center; align-items: center; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; padding: 12px; box-sizing: border-box; overflow-y: auto; overflow-x: hidden; }
        .modal-overlay.active { opacity: 1; pointer-events: auto; }
        .modal-box { background: #050505; border: 1px solid rgba(255,255,255,0.1); border-radius: 30px; padding: 40px; transform: scale(0.9) translateY(20px); transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); max-width: min(500px, calc(100vw - 24px)); width: 90%; max-height: min(92dvh, calc(100vh - 24px)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; box-sizing: border-box; box-shadow: 0 30px 60px rgba(0,0,0,0.8); }
        .modal-overlay.active .modal-box { transform: scale(1) translateY(0); }
        .modal-box.modal-box--barre { max-width: min(550px, calc(100vw - 24px)); border-color: rgba(255,0,85,0.3); text-align: left; padding: clamp(16px, 3vh, 40px) clamp(16px, 3.5vw, 40px); }
        .modal-box.modal-box--barre .h-56 { height: clamp(6.5rem, 18vh, 14rem); }
        .modal-box.modal-box--barre .mb-8 { margin-bottom: clamp(0.75rem, 2vh, 2rem); }
        .modal-box.modal-box--barre .text-4xl { font-size: clamp(1.35rem, 3.2vh, 2.25rem); line-height: 1.1; }
        .modal-box.modal-box--barre .text-2xl { font-size: clamp(1.05rem, 2.4vh, 1.5rem); }
        .modal-box.modal-box--barre .w-20.h-20 { width: clamp(3.25rem, 8vh, 5rem); height: clamp(3.25rem, 8vh, 5rem); }
        .modal-box.modal-box--clases {
            max-width: min(1140px, calc(100vw - 24px));
            width: min(96%, calc(100vw - 24px));
            text-align: left;
            padding: clamp(16px, 3vh, 36px) clamp(16px, 3vw, 36px);
        }
        .modal-box.modal-box--clases #modalTitle { font-size: 1.75rem; margin-bottom: 0.5rem; }
        .modal-box.modal-box--clases #modalDesc { margin-bottom: 0; }
        .modal-box.modal-box--clases .class-schedule-modal-body {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 10px;
            max-height: none;
            overflow: visible;
        }
        .modal-box.modal-box--tarifas {
            max-width: min(520px, 94vw);
            text-align: left;
            border-color: rgba(255,0,85,0.35);
        }
        .modal-box.modal-box--news {
            width: min(1100px, calc(100vw - 16px));
            max-width: min(1100px, calc(100vw - 16px));
            max-height: min(96dvh, calc(100vh - 16px));
            padding: 0;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            text-align: left;
            background: #f7f5f2;
            border-color: rgba(0, 0, 0, 0.12);
            color: #1a1a1a;
        }
        .modal-box.modal-box--news > button {
            color: #333;
            z-index: 2;
        }
        .modal-box.modal-box--news > button:hover {
            color: #000;
            background: rgba(0, 0, 0, 0.08);
        }
        .home-news-modal {
            display: flex;
            flex-direction: column;
            flex: 1 1 auto;
            min-height: 0;
            max-height: min(96dvh, calc(100vh - 16px));
            background: #f7f5f2;
            color: #1a1a1a;
        }
        .home-news-modal__body {
            flex: 1 1 auto;
            min-height: 0;
            overflow-y: auto;
            overscroll-behavior: contain;
            padding: clamp(1.35rem, 3vh, 2.4rem) clamp(1.35rem, 3.4vw, 2.8rem) 1.8rem;
        }
        .home-news-modal__date {
            color: #666;
            font-size: 0.82rem;
            font-weight: 600;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            margin: 0 0 0.55rem;
        }
        .home-news-modal__wp-title {
            color: #111;
            font-family: Georgia, 'Times New Roman', serif;
            font-size: clamp(1.55rem, 2.8vw, 2.35rem);
            font-weight: 700;
            line-height: 1.25;
            letter-spacing: 0;
            text-transform: none;
            margin: 0 0 1.25rem;
        }
        .home-news-modal__featured {
            margin: 0 0 1.5rem;
            max-width: 100%;
        }
        .home-news-modal__featured img {
            width: 100%;
            height: auto;
            display: block;
            object-fit: contain;
        }
        .home-news-modal__text {
            color: #333;
            font-size: 1.02rem;
            font-weight: 400;
            line-height: 1.65;
            margin: 0 0 1.25rem;
        }
        .home-news-modal__loading {
            color: #666;
            font-weight: 400;
            margin: 0.5rem 0;
        }
        .home-news-modal__actions {
            display: grid;
            gap: 0.75rem;
        }
        .home-news-modal__close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            margin-top: 1.6rem;
            padding: 0.85rem 1rem;
            border: 1px solid #222;
            border-radius: 0.75rem;
            background: transparent;
            color: #111;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            font-size: 0.78rem;
            cursor: pointer;
        }
        .home-news-modal__close:hover {
            background: #111;
            color: #fff;
        }
        /* Entrada WordPress tal cual (bloques Gutenberg / contenido nativo) */
        .home-news-modal--wp .wp-entry-content {
            width: 100%;
            max-width: 100%;
            margin: 0;
            overflow-x: hidden;
            overflow-wrap: anywhere;
            color: #1a1a1a;
            font-size: 1.05rem;
            line-height: 1.75;
        }
        .home-news-modal--wp .wp-entry-content::after {
            content: '';
            display: table;
            clear: both;
        }
        .home-news-modal--wp .wp-entry-content > *:first-child { margin-top: 0; }
        .home-news-modal--wp .wp-entry-content > *:last-child { margin-bottom: 0; }
        .home-news-modal--wp .wp-entry-content img,
        .home-news-modal--wp .wp-entry-content video {
            max-width: 100%;
            height: auto;
            object-fit: contain;
            display: block;
        }
        .home-news-modal--wp .wp-entry-content img[src=""],
        .home-news-modal--wp .wp-entry-content img:not([src]) {
            display: none;
        }
        .home-news-modal--wp .wp-entry-content iframe,
        .home-news-modal--wp .wp-entry-content embed,
        .home-news-modal--wp .wp-entry-content object {
            max-width: 100%;
        }
        .home-news-modal--wp .wp-entry-content figure,
        .home-news-modal--wp .wp-entry-content .wp-block-image,
        .home-news-modal--wp .wp-entry-content .wp-block-gallery {
            max-width: 100%;
        }
        .home-news-modal--wp .wp-entry-gallery {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
            gap: 0.75rem;
            margin: 1.1rem 0 1.35rem;
        }
        .home-news-modal--wp .wp-entry-gallery img,
        .home-news-modal--wp .wp-entry-single img {
            width: 100%;
            height: auto;
            display: block;
        }
        .home-news-modal--wp .wpb_gallery img,
        .home-news-modal--wp .vc_images_carousel img,
        .home-news-modal--wp .wpb_single_image img {
            width: 100%;
            max-width: 100%;
            height: auto;
        }
        .home-news-modal--wp .vc_row,
        .home-news-modal--wp .wpb_row,
        .home-news-modal--wp [data-vc-full-width],
        .home-news-modal--wp [data-vc-stretch-content] {
            position: relative !important;
            left: 0 !important;
            right: auto !important;
            width: 100% !important;
            max-width: 100% !important;
            margin-left: 0 !important;
            margin-right: 0 !important;
            padding-left: 0 !important;
            padding-right: 0 !important;
            transform: none !important;
            display: block;
        }
        .home-news-modal--wp .vc_column,
        .home-news-modal--wp .wpb_column,
        .home-news-modal--wp [class*="vc_col-"] {
            float: none !important;
            width: 100% !important;
            max-width: 100% !important;
            padding-left: 0 !important;
            padding-right: 0 !important;
            box-sizing: border-box;
        }
        @media (min-width: 700px) {
            .home-news-modal--wp .vc_row.vc_row-fluid,
            .home-news-modal--wp .vc_inner {
                display: flex;
                flex-wrap: wrap;
                gap: 1rem;
            }
            .home-news-modal--wp .vc_col-sm-6,
            .home-news-modal--wp .vc_col-md-6 {
                flex: 1 1 calc(50% - 0.5rem);
                width: auto !important;
            }
        }
        /* Blog article content — post_content del modal Novedades (scopeado) */
        .home-news-modal__content.blog-article-content,
        .blog-article-content {
            --blog-article-text: rgba(255, 255, 255, 0.9);
            --blog-article-muted: rgba(255, 255, 255, 0.62);
            --blog-article-heading: #fff;
            width: 100%;
            max-width: 100%;
            margin: 0 0 1.5rem;
            overflow-x: hidden;
            overflow-wrap: anywhere;
            color: var(--blog-article-text);
            font-family: 'Space Grotesk', sans-serif;
            font-size: clamp(0.95rem, 0.9rem + 0.28vw, 1.05rem);
            font-weight: 400;
            line-height: 1.7;
        }
        .blog-article-content::after {
            content: '';
            display: table;
            clear: both;
        }
        .blog-article-content > *:first-child { margin-top: 0; }
        .blog-article-content > *:last-child { margin-bottom: 0; }
        .blog-article-content p,
        .blog-article-content li,
        .blog-article-content dd,
        .blog-article-content dt,
        .blog-article-content td,
        .blog-article-content th,
        .blog-article-content span,
        .blog-article-content div,
        .blog-article-content figcaption,
        .blog-article-content blockquote,
        .blog-article-content .elementor-widget-container,
        .blog-article-content .elementor-text-editor,
        .blog-article-content .has-text-color,
        .blog-article-content .has-black-color,
        .blog-article-content .has-contrast-color {
            color: inherit;
        }
        .blog-article-content p,
        .blog-article-content li,
        .blog-article-content dd,
        .blog-article-content dt,
        .blog-article-content td,
        .blog-article-content th,
        .blog-article-content span {
            color: var(--blog-article-text) !important;
        }
        .blog-article-content [style*=" color:"],
        .blog-article-content [style*=";color:"],
        .blog-article-content [style^="color:"] {
            color: var(--blog-article-text) !important;
        }
        .blog-article-content p { margin: 0 0 1rem; }
        .blog-article-content h2,
        .blog-article-content h3,
        .blog-article-content h4,
        .blog-article-content h5,
        .blog-article-content h6 {
            color: var(--blog-article-heading) !important;
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 700;
            line-height: 1.3;
            text-transform: none;
            letter-spacing: 0;
            margin: 1.35rem 0 0.7rem;
        }
        .blog-article-content h2 { font-size: clamp(1.15rem, 1.05rem + 0.4vw, 1.35rem); }
        .blog-article-content h3 { font-size: clamp(1.05rem, 1rem + 0.25vw, 1.2rem); }
        .blog-article-content h4,
        .blog-article-content h5,
        .blog-article-content h6 { font-size: 1.02rem; color: var(--blog-article-text) !important; }
        .blog-article-content ul,
        .blog-article-content ol {
            margin: 0 0 1.1rem;
            padding-left: 1.35rem;
        }
        .blog-article-content ul { list-style: disc; }
        .blog-article-content ol { list-style: decimal; }
        .blog-article-content li { margin: 0 0 0.4rem; padding-left: 0.15rem; }
        .blog-article-content li::marker { color: var(--neon-pink, #ff0055); }
        .blog-article-content strong,
        .blog-article-content b { font-weight: 700; color: #fff !important; }
        .blog-article-content em,
        .blog-article-content i { font-style: italic; }
        .blog-article-content a {
            color: var(--neon-pink, #ff0055) !important;
            text-decoration: underline;
            text-underline-offset: 0.18em;
            font-weight: 600;
        }
        .blog-article-content a span {
            color: inherit !important;
        }
        .blog-article-content a:hover,
        .blog-article-content a:focus-visible {
            color: #fff !important;
        }
        .blog-article-content a:focus-visible {
            outline: 2px solid var(--neon-pink, #ff0055);
            outline-offset: 3px;
        }
        .blog-article-content blockquote {
            margin: 0 0 1.15rem;
            padding: 0.15rem 0 0.15rem 1rem;
            border-left: 3px solid var(--neon-pink, #ff0055);
            color: var(--blog-article-muted) !important;
        }
        .blog-article-content figure,
        .blog-article-content .wp-block-image,
        .blog-article-content .wp-block-gallery {
            margin: 0 0 1.15rem;
            max-width: 100%;
        }
        .blog-article-content figcaption {
            margin-top: 0.45rem;
            font-size: 0.82rem;
            line-height: 1.45;
            color: var(--blog-article-muted) !important;
            text-align: center;
        }
        .blog-article-content img,
        .blog-article-content video,
        .blog-article-content .wp-block-image img {
            max-width: 100%;
            height: auto;
            object-fit: contain;
            display: block;
            border-radius: 0.65rem;
            margin: 0 auto 0.35rem;
        }
        .blog-article-content img[src=""],
        .blog-article-content img:not([src]) {
            display: none;
        }
        .blog-article-content .alignleft {
            float: left;
            margin: 0.2rem 1.15rem 0.85rem 0;
            max-width: min(46%, 280px);
        }
        .blog-article-content .alignright {
            float: right;
            margin: 0.2rem 0 0.85rem 1.15rem;
            max-width: min(46%, 280px);
        }
        .blog-article-content .aligncenter,
        .blog-article-content .aligncenter img {
            display: block;
            margin-left: auto;
            margin-right: auto;
        }
        .blog-article-content .alignwide,
        .blog-article-content .alignfull {
            width: 100%;
            max-width: 100%;
        }
        .blog-article-content table {
            width: 100%;
            max-width: 100%;
            border-collapse: collapse;
            margin: 0 0 1.15rem;
            font-size: 0.95em;
        }
        .blog-article-content .wp-block-table,
        .blog-article-content figure.wp-block-table {
            overflow-x: auto;
            max-width: 100%;
        }
        .blog-article-content th,
        .blog-article-content td {
            border: 1px solid rgba(255, 255, 255, 0.14);
            padding: 0.45rem 0.6rem;
            text-align: left;
        }
        .blog-article-content iframe,
        .blog-article-content embed,
        .blog-article-content object {
            max-width: 100%;
        }
        .blog-article-content iframe {
            width: 100%;
        }
        .blog-article-content .wp-block-embed,
        .blog-article-content .wp-block-video {
            margin: 0 0 1.15rem;
            max-width: 100%;
            overflow: hidden;
        }
        .blog-article-content hr {
            border: 0;
            border-top: 1px solid rgba(255, 255, 255, 0.12);
            margin: 1.25rem 0;
        }
        @media (max-width: 639px) {
            .blog-article-content .alignleft,
            .blog-article-content .alignright {
                float: none;
                display: block;
                max-width: 100%;
                margin: 0 0 1rem;
            }
        }
        @media (max-width: 639px) {
            .modal-box.modal-box--news {
                max-width: 100%;
                width: calc(100vw - 12px);
                max-height: min(96dvh, calc(100vh - 12px));
                border-radius: 18px;
            }
        }
        .tarifa-option-btn {
            width: 100%;
            text-align: left;
            padding: 14px 16px;
            border-radius: 14px;
            border: 1px solid rgba(255,255,255,0.12);
            background: rgba(255,255,255,0.04);
            transition: all 0.25s ease;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 12px;
        }
        .tarifa-option-btn:hover {
            border-color: rgba(255,0,85,0.5);
            background: rgba(255,0,85,0.12);
            transform: translateX(4px);
        }
        .tarifa-option-btn.is-in-cart {
            border-color: rgba(255,0,85,0.6);
            background: rgba(255,0,85,0.15);
        }
        .tarifa-option-btn.is-selected {
            border-color: rgba(0,243,255,0.7);
            background: rgba(0,243,255,0.12);
            box-shadow: 0 0 0 1px rgba(0,243,255,0.35), 0 0 22px rgba(0,243,255,0.2);
        }
        .tarifa-validity-note {
            border: 1px solid rgba(0,243,255,0.35);
            background: rgba(0,243,255,0.08);
            border-radius: 12px;
            padding: 10px 12px;
            color: #d1d5db;
            font-size: 12px;
            line-height: 1.45;
        }
        .tarifa-validity-note__title {
            margin: 0 0 2px;
            font-size: 10px;
            font-weight: 900;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: #00f3ff;
        }
        .tarifa-validity-note p { margin: 0; }
        .tarifa-validity-note strong { color: #fff; }
        .sala-time-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 6px; }
        @media (max-width: 1200px) { .sala-time-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
        @media (max-width: 900px) { .sala-time-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
        @media (max-width: 520px) { .sala-time-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
        .sala-time-btn {
            border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; padding: 6px 4px; font-size: 10px;
            font-weight: 700; background: rgba(255,255,255,0.03); color: #e5e7eb; transition: all 0.2s;
        }
        .sala-time-btn:hover { border-color: rgba(255,255,255,0.3); }
        .sala-time-btn.is-selected { border-color: rgba(0,243,255,0.65); color: #00f3ff; background: rgba(0,243,255,0.12); }
        .sala-time-btn.is-occupied { opacity: 0.35; cursor: not-allowed; text-decoration: line-through; }
        .escena-calendar { position: relative; width: 100%; }
        .escena-calendar__trigger {
            width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px 14px;
            border-radius: 12px; border: 1px solid rgba(255,255,255,0.15); background: #000; color: #fff;
            font-size: 13px; transition: border-color 0.2s, box-shadow 0.2s; cursor: pointer;
        }
        .escena-calendar__trigger:hover, .escena-calendar.is-open .escena-calendar__trigger {
            border-color: rgba(255,0,85,0.5); box-shadow: 0 0 16px rgba(255,0,85,0.15);
        }
        .escena-calendar__label { flex: 1; text-align: left; font-weight: 600; text-transform: capitalize; }
        .escena-calendar__caret { color: #9ca3af; transition: transform 0.2s; }
        .escena-calendar.is-open .escena-calendar__caret { transform: rotate(180deg); color: #ff0055; }
        .escena-calendar__panel {
            position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
            width: min(300px, 92vw); display: none; padding: 12px; border-radius: 14px;
            border: 1px solid rgba(255,0,85,0.25);
            background: linear-gradient(180deg, #111 0%, #080808 100%);
            box-shadow: 0 16px 48px rgba(0,0,0,0.75);
        }
        .escena-calendar__panel.is-open { display: block; }
        .escena-calendar__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; gap: 8px; }
        .escena-calendar__month { font-family: 'Syncopate', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; }
        .escena-calendar__nav {
            width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.12);
            background: rgba(255,255,255,0.04); color: #d1d5db; display: inline-flex; align-items: center; justify-content: center;
            cursor: pointer; transition: all 0.2s;
        }
        .escena-calendar__nav:hover:not(:disabled) { border-color: #00f3ff; color: #00f3ff; }
        .escena-calendar__nav:disabled { opacity: 0.3; cursor: not-allowed; }
        .escena-calendar__dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 6px; }
        .escena-calendar__dow span { text-align: center; font-size: 9px; font-weight: 800; letter-spacing: 0.1em; color: #6b7280; }
        .escena-calendar__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
        .escena-calendar__day {
            aspect-ratio: 1; min-height: 30px; border-radius: 8px; border: 1px solid transparent;
            background: rgba(255,255,255,0.03); color: #e5e7eb; font-size: 11px; font-weight: 700;
            display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.15s;
        }
        .escena-calendar__day:hover:not(:disabled):not(.is-empty) { border-color: rgba(0,243,255,0.4); color: #00f3ff; }
        .escena-calendar__day.is-today { border-color: rgba(0,243,255,0.35); color: #00f3ff; }
        .escena-calendar__day.is-selected { background: rgba(255,0,85,0.2); border-color: #ff0055; color: #fff; box-shadow: 0 0 14px rgba(255,0,85,0.35); }
        .escena-calendar__day.is-disabled, .escena-calendar__day:disabled { opacity: 0.28; cursor: not-allowed; }
        .escena-calendar__day.is-empty { visibility: hidden; pointer-events: none; }

        /* EL MUSICAL */
        #view-musical.spa-view { padding-top: 0; padding-bottom: 0; }
        .btn-yellow { background: var(--neon-yellow); color: black; box-shadow: 0 0 15px rgba(255,250,0,0.3); }
        .btn-yellow:hover { background: white; color: black; box-shadow: 0 0 30px rgba(255,255,255,0.6); transform: scale(1.02); }
        .continuous-swiper .swiper-wrapper { transition-timing-function: linear !important; }
        .continuous-swiper .swiper-slide { width: auto; }
        #estrenosModal.modal-overlay { padding: 1rem; background: rgba(0,0,0,0.95); }
        .modal-box.modal-box--estrenos { max-width: 900px; width: 100%; padding: 0; border-color: rgba(255,0,85,0.35); border-radius: 20px; max-height: 90vh; overflow-y: auto; text-align: left; }

        /* CAMPAMENTOS */
        #view-campamentos.spa-view { padding-top: 0; padding-bottom: 0; background: #030303; color: white; overflow-x: hidden; overflow-y: visible; }
        .camps-hero-title {
            font-size: clamp(2.35rem, 6.4vw, 5.5rem) !important;
            max-width: 100%;
            overflow-wrap: break-word;
            word-break: break-word;
        }
        .btn-brutal { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; padding: 16px 32px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; background: #000; color: white; border: 2px solid #000; }
        .btn-brutal:hover { background: transparent; color: #000; transform: translate(4px, -4px); box-shadow: -4px 4px 0px rgba(0,0,0,1); }
        .btn-brutal-light { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: white; color: black; border: 2px solid white; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; padding: 16px 32px; transition: all 0.3s; cursor: pointer; }
        .btn-brutal-light:hover { background: transparent; color: white; transform: translate(4px, -4px); box-shadow: -4px 4px 0px rgba(255,255,255,1); }
        /* Reserva tu plaza: botones RESERVAR al mismo nivel */
        #view-campamentos .camp-pricing-grid {
            display: grid;
            align-items: stretch;
        }
        #view-campamentos .camp-pricing-card {
            display: flex;
            flex-direction: column;
            height: 100%;
            box-sizing: border-box;
        }
        #view-campamentos .camp-pricing-card__body {
            flex: 0 0 auto;
        }
        #view-campamentos .camp-pricing-card__cta {
            margin-top: auto;
            width: 100%;
            padding-top: 1.5rem;
        }
        #view-campamentos .camp-pricing-card__cta .btn-brutal,
        #view-campamentos .camp-pricing-card__cta .btn-brutal-light {
            width: 100%;
        }
        /* Precios: más presencia, sin salir de la estética neón */
        #view-campamentos .camp-pricing-card__price {
            font-family: 'Syncopate', sans-serif;
            font-size: clamp(2.85rem, 4.2vw, 3.85rem) !important;
            font-weight: 900;
            letter-spacing: -0.03em;
            line-height: 1;
            color: #ff0055;
            text-shadow:
                0 0 18px rgba(255, 0, 85, 0.55),
                0 0 42px rgba(255, 0, 85, 0.28);
            margin: 0 0 1.75rem;
        }
        #view-campamentos .camp-pricing-card__price .woocommerce-Price-amount,
        #view-campamentos .camp-pricing-card__price .amount,
        #view-campamentos .camp-pricing-card__price bdi {
            color: inherit;
            font-weight: inherit;
        }
        #view-campamentos .camp-pricing-card__price .woocommerce-Price-currencySymbol {
            color: #00f3ff;
            font-size: 0.52em;
            vertical-align: super;
            margin-right: 0.08em;
            text-shadow: 0 0 14px rgba(0, 243, 255, 0.55);
        }
        #view-campamentos .camp-pricing-card--featured .camp-pricing-card__price {
            color: #111;
            text-shadow:
                0 1px 0 rgba(255, 255, 255, 0.35),
                0 0 22px rgba(255, 250, 0, 0.28);
        }
        #view-campamentos .camp-pricing-card--featured .camp-pricing-card__price .woocommerce-Price-currencySymbol {
            color: #fffa00;
            text-shadow: 0 0 10px rgba(255, 250, 0, 0.45);
        }
        .camp-modal-options { width: 100%; }
        .camp-modal-option {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            width: 100%;
            padding: 0.95rem 1rem;
            border-radius: 1rem;
            border: 1px solid rgba(255, 255, 255, 0.12);
            background: #111;
            text-decoration: none;
            transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
        }
        .camp-modal-option:hover {
            border-color: rgba(255, 0, 85, 0.7);
            background: #161616;
            transform: translateY(-1px);
        }
        .camp-modal-option__text { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
        .camp-modal-option__title { color: #fff; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; font-size: 0.95rem; }
        .camp-modal-option__subtitle { color: #9ca3af; font-size: 0.8rem; }
        .camp-modal-option__meta { display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; flex-shrink: 0; }
        .camp-modal-option__price {
            color: #ff0055;
            font-family: 'Syncopate', sans-serif;
            font-weight: 900;
            font-size: 1.05rem;
            text-shadow: 0 0 12px rgba(255, 0, 85, 0.35);
        }
        .camp-modal-option__cta {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            color: #25d366;
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }
        .schedule-grid { display: grid; grid-template-columns: 100px repeat(5, 1fr); gap: 8px; width: 100%; min-width: 900px; }
        .schedule-wrapper { overflow-x: auto; max-width: 100%; padding-bottom: 20px; }
        .sch-header { font-weight: 900; text-transform: uppercase; letter-spacing: 2px; padding: 15px; text-align: center; border-radius: 8px; }
        .sch-time { font-weight: 900; color: #888; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.02); border-radius: 8px; font-size: 0.9rem; }
        .sch-cell { padding: 12px; border-radius: 8px; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; transition: transform 0.3s, box-shadow 0.3s; cursor: pointer; }
        .sch-cell:hover { transform: scale(1.05); z-index: 10; box-shadow: 0 10px 20px rgba(0,0,0,0.5); }
        .sch-bg-pink { background: linear-gradient(135deg, #ff0055 0%, #cc0044 100%); color: white; }
        .sch-bg-yellow { background: linear-gradient(135deg, #fffa00 0%, #d4d000 100%); color: black; }
        .sch-bg-blue { background: linear-gradient(135deg, #00f3ff 0%, #00bacc 100%); color: black; }
        .sch-bg-purple { background: linear-gradient(135deg, #a855f7 0%, #7e22ce 100%); color: white; }
        .sch-bg-green { background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; }
        .sch-bg-dark { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: #ccc; }
        .bento-gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 250px; gap: 16px; }
        @media (max-width: 768px) { .bento-gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; } }
        .bento-pic { position: relative; border-radius: 16px; overflow: hidden; cursor: zoom-in; }
        .bento-pic img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), filter 0.5s; filter: grayscale(40%); }
        .bento-pic:hover img { transform: scale(1.08); filter: grayscale(0%); }
        .bento-overlay { position: absolute; inset: 0; background: rgba(255,0,85,0.3); opacity: 0; transition: opacity 0.3s; display: flex; align-items: center; justify-content: center; }
        .bento-pic:hover .bento-overlay { opacity: 1; }
        .pic-large { grid-column: span 2; grid-row: span 2; }
        .pic-wide { grid-column: span 2; grid-row: span 1; }
        .pic-tall { grid-column: span 1; grid-row: span 2; }
        #campLightbox { position: fixed; inset: 0; background: rgba(0,0,0,0.95); backdrop-filter: blur(15px); z-index: 100000; display: flex; justify-content: center; align-items: center; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; padding: 20px; }
        #campLightbox.active { opacity: 1; pointer-events: auto; }
        #campLightbox img { max-width: 90vw; max-height: 90vh; border-radius: 20px; box-shadow: 0 0 50px rgba(255,0,85,0.3); transform: scale(0.9); transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); }
        #campLightbox.active img { transform: scale(1); }
        .modal-box.modal-box--camp { max-width: 600px; border-color: rgba(255,0,85,0.3); text-align: center; }

        /* EL EQUIPO */
        #view-equipo.spa-view { padding-top: 0; padding-bottom: 0; background: #050505; }
        .crew-card { background: #111; border-radius: 20px; padding: 40px 24px; display: flex; flex-direction: column; align-items: center; transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); position: relative; overflow: hidden; border: 1px solid transparent; }
        .crew-card:hover { transform: translateY(-10px); }
        .crew-card.active { border-color: rgba(255,255,255,0.1); background: #161616; }
        .avatar-ring { width: 210px; height: 285px; border-radius: 20px; padding: 4px; margin-bottom: 24px; transition: transform 0.5s ease; overflow: hidden; background: #0a0a0a; }
        .crew-card:hover .avatar-ring { transform: scale(1.05) rotate(5deg); }
        .avatar-ring img { width: 100%; height: 100%; border-radius: 16px; object-fit: cover; object-position: center top; transform: none; filter: grayscale(8%); transition: filter 0.5s; }
        .crew-card:hover .avatar-ring img, .crew-card.active .avatar-ring img { filter: grayscale(0%); }
        .expandable-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.6s cubic-bezier(0.25, 1, 0.5, 1); width: 100%; }
        .expandable-inner { overflow: hidden; }
        .crew-card.active .expandable-content { grid-template-rows: 1fr; margin-top: 24px; }
        .skill-bar { width: 100%; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; overflow: hidden; margin-top: 8px; }
        .skill-fill { height: 100%; width: 0%; transition: width 1s cubic-bezier(0.25, 1, 0.5, 1); transition-delay: 0.3s; }
        .crew-card.active .skill-fill { width: var(--fill-level); }
        .btn-toggle { width: 40px; height: 40px; border-radius: 50%; background: #222; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s; border: none; outline: none; margin-top: 24px; }
        .btn-toggle i { color: #888; font-size: 1.2rem; transition: transform 0.4s; }
        .crew-card.active .btn-toggle i { transform: rotate(180deg); color: white; }
        .crew-card:hover .btn-toggle { background: #333; }
        .input-group { position: relative; margin-bottom: 24px; }
        .neon-input { width: 100%; background: transparent; border: none; border-bottom: 2px solid rgba(255,255,255,0.2); padding: 12px 0; color: white; font-size: 1rem; transition: border-color 0.3s; outline: none; }
        .neon-input:focus { border-bottom-color: #00f3ff; }
        .neon-label { position: absolute; left: 0; top: 12px; color: gray; transition: all 0.3s; pointer-events: none; font-size: 1rem; }
        .neon-input:focus ~ .neon-label, .neon-input:not(:placeholder-shown) ~ .neon-label { top: -12px; font-size: 0.75rem; color: #00f3ff; font-weight: bold; letter-spacing: 1px; text-transform: uppercase; }
        .style-checkbox { display: none; }
        .style-label { padding: 8px 16px; border: 1px solid rgba(255,255,255,0.2); border-radius: 50px; cursor: pointer; transition: all 0.3s; font-size: 0.85rem; font-weight: bold; text-transform: uppercase; color: #888; }
        .style-checkbox:checked + .style-label { background: rgba(0,243,255,0.1); border-color: #00f3ff; color: #00f3ff; box-shadow: 0 0 10px rgba(0,243,255,0.3); }
        .dark-map { filter: grayscale(100%) invert(92%) contrast(85%); transition: filter 0.5s; border-radius: 20px; }
        .map-container:hover .dark-map { filter: grayscale(30%) invert(92%) contrast(90%); }
        .modal-box.modal-box--join { max-width: 600px; text-align: left; background: rgba(15,15,15,0.95); }
        .equipo-content-wrap { width: 100%; max-width: 100%; margin-left: auto; margin-right: auto; padding-left: 1.25rem; padding-right: 1.25rem; box-sizing: border-box; }
        @media (min-width: 768px) { .equipo-content-wrap { padding-left: 2.5rem; padding-right: 2.5rem; } }
        @media (min-width: 1280px) { .equipo-content-wrap { padding-left: 4rem; padding-right: 4rem; } }
        @media (min-width: 1536px) { .equipo-content-wrap { padding-left: 5rem; padding-right: 5rem; } }
        #view-equipo .equipo-crew-grid { width: 100%; }
        .equipo-mid-zone { position: relative; width: 100%; margin-top: 2rem; padding: 6rem 0 5rem; overflow: hidden; min-height: 85vh; }
        .equipo-mid-bg-layer { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
        .equipo-mid-bg-photo { position: absolute; inset: -10%; z-index: 0; will-change: transform; }
        .equipo-mid-bg-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; filter: blur(10px) saturate(1.08) brightness(0.42); transform: scale(1.04); }
        .equipo-mid-bg-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, #050505 0%, rgba(5,5,5,0.78) 16%, rgba(5,5,5,0.52) 48%, rgba(5,5,5,0.78) 84%, #050505 100%); }
        .equipo-mid-bg-glow { position: absolute; inset: 0; z-index: 2; pointer-events: none; background: radial-gradient(ellipse 75% 55% at 18% 35%, rgba(255,0,85,0.1) 0%, transparent 62%), radial-gradient(ellipse 65% 50% at 82% 68%, rgba(0,243,255,0.06) 0%, transparent 58%); }
        .equipo-barrio-full { position: relative; z-index: 10; width: 100%; max-width: 100%; padding: 4rem 0 6rem; }
        .equipo-barrio-inner { width: 100%; max-width: 100%; margin: 0 auto; padding: 0 1.25rem; box-sizing: border-box; }
        @media (min-width: 768px) { .equipo-barrio-inner { padding: 0 2.5rem; } }
        @media (min-width: 1280px) { .equipo-barrio-inner { padding: 0 4rem; } }
        @media (min-width: 1536px) { .equipo-barrio-inner { padding: 0 5rem; } }
        .equipo-barrio-grid { width: 100%; }
        .equipo-map-wrap { min-height: 420px; height: 55vw; max-height: 780px; }
        @media (min-width: 1024px) { .equipo-map-wrap { min-height: 620px; height: 42vw; max-height: 820px; } }

        #view-equipo .equipo-story-band {
            position: relative;
            width: 100vw;
            left: 50%;
            margin-left: -50vw;
            margin-right: -50vw;
            padding: 3.5rem 1.25rem 4rem;
            margin-bottom: 5rem;
            overflow: hidden;
            border-top: 1px solid rgba(255,0,85,0.12);
            border-bottom: 1px solid rgba(255,0,85,0.12);
        }
        @media (min-width: 768px) {
            #view-equipo .equipo-story-band { padding: 4.5rem 2.5rem 5rem; }
        }
        @media (min-width: 1280px) {
            #view-equipo .equipo-story-band { padding: 5rem 4rem 5.5rem; }
        }
        #view-equipo .equipo-story-band__bg {
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
        }
        #view-equipo .equipo-story-band__bg img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
            filter: blur(10px) saturate(1.1) brightness(0.58) contrast(1.02);
            transform: scale(1.1);
        }
        #view-equipo .equipo-story-band__overlay {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background:
                linear-gradient(180deg, rgba(5,5,5,0.78) 0%, rgba(5,5,5,0.48) 28%, rgba(5,5,5,0.44) 72%, rgba(5,5,5,0.82) 100%),
                radial-gradient(ellipse 90% 70% at 50% 45%, rgba(255,0,85,0.08) 0%, transparent 62%);
        }
        #view-equipo .equipo-story {
            position: relative;
            z-index: 2;
            max-width: 56rem;
            margin: 0 auto;
        }
        @media (min-width: 1024px) {
            #view-equipo .equipo-story {
                max-width: min(1200px, 94vw);
                display: grid;
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 2rem;
                align-items: stretch;
            }
            #view-equipo .equipo-story > .text-center {
                grid-column: 1 / -1;
                margin-bottom: 0.5rem;
            }
        }
        #view-equipo .equipo-story-card {
            background: linear-gradient(155deg, rgba(8,8,8,0.92) 0%, rgba(6,6,6,0.9) 55%, rgba(9,7,8,0.91) 100%);
            backdrop-filter: blur(6px);
            -webkit-backdrop-filter: blur(6px);
            border: 1px solid rgba(255,255,255,0.1);
            border-radius: 2rem;
            padding: 2.5rem 2rem;
            box-shadow: 0 24px 60px rgba(0,0,0,0.45);
            position: relative;
            overflow: hidden;
        }
        @media (min-width: 768px) {
            #view-equipo .equipo-story-card { padding: 3rem 3.25rem; }
        }
        #view-equipo .equipo-story-card::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse 90% 70% at 100% 0%, rgba(255,0,85,0.09) 0%, transparent 58%),
                radial-gradient(ellipse 70% 55% at 0% 100%, rgba(0,243,255,0.04) 0%, transparent 55%);
            pointer-events: none;
        }
        #view-equipo .equipo-story-card::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 0%, rgba(5,5,5,0.15) 100%);
            pointer-events: none;
        }
        #view-equipo .equipo-story-card p {
            position: relative;
            z-index: 1;
            color: #d1d5db;
            font-weight: 300;
            line-height: 1.75;
            font-size: 1.05rem;
        }
        #view-equipo .equipo-story-card p + p { margin-top: 1.25rem; }
        #view-equipo .equipo-story-card--accent {
            margin-top: 2.5rem;
            border-color: rgba(255,0,85,0.22);
        }
        @media (min-width: 1024px) {
            #view-equipo .equipo-story-card--accent { margin-top: 0; }
        }
        #view-equipo .equipo-story-card--accent h3 {
            position: relative;
            z-index: 1;
        }
        #view-equipo .equipo-founders {
            display: flex;
            flex-direction: column;
            gap: 2.5rem;
            margin-bottom: 5rem;
        }
        #view-equipo .equipo-founder-card {
            display: grid;
            grid-template-columns: 1fr;
            gap: 2rem;
            align-items: start;
            background: #0a0a0a;
            border: 1px solid rgba(255,255,255,0.1);
            border-radius: 2rem;
            overflow: hidden;
            box-shadow: 0 24px 50px rgba(0,0,0,0.55);
        }
        @media (min-width: 1024px) {
            #view-equipo .equipo-founder-card {
                grid-template-columns: 340px minmax(0, 1fr);
                align-items: start;
            }
        }
        #view-equipo .equipo-founder-card__media {
            position: relative;
            width: 100%;
            height: 340px;
            margin: 0;
            background: #050505;
            overflow: hidden;
            flex-shrink: 0;
        }
        @media (min-width: 1024px) {
            #view-equipo .equipo-founder-card__media {
                width: 340px;
                height: 420px;
            }
        }
        #view-equipo .equipo-founder-card__media img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center top;
            transform: none;
            transform-origin: center top;
            background: #060606;
        }
        #view-equipo .equipo-founder-card__media--silvia img {
            object-position: center top;
            transform: none;
            transform-origin: center top;
        }
        #view-equipo .equipo-founder-card__media--angel img {
            object-position: center top;
            transform: none;
            transform-origin: center top;
        }
        #view-equipo .equipo-founder-card__body {
            padding: 2rem 1.75rem 2.25rem;
        }
        @media (min-width: 768px) {
            #view-equipo .equipo-founder-card__body { padding: 2.5rem 2.5rem 2.75rem; }
        }
        #view-equipo .equipo-founder-card__body p {
            color: #d1d5db;
            font-weight: 300;
            font-size: 0.95rem;
            line-height: 1.7;
        }
        #view-equipo .equipo-founder-card__body p + p { margin-top: 1rem; }
        #view-equipo .equipo-team-heading {
            text-align: center;
            margin-bottom: 3rem;
        }

        /* FIESTAS DE CUMPLEAÑOS */
        #view-fiestas.spa-view { padding-top: 0; padding-bottom: 0; background: #040404; }
        .fiestas-bg-layer { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
        .fiestas-bg-layer img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; filter: blur(10px) brightness(0.35) saturate(1.05); transform: scale(1.08); }
        .fiestas-bg-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,4,4,0.92) 0%, rgba(4,4,4,0.76) 32%, rgba(4,4,4,0.85) 68%, rgba(4,4,4,0.95) 100%); }
        .fiestas-bg-glow { position: absolute; border-radius: 50%; filter: blur(90px); opacity: 0.45; pointer-events: none; animation: fiestasGlowFloat 8s ease-in-out infinite alternate; }
        .fiestas-bg-glow--pink { width: 420px; height: 420px; background: rgba(255,0,85,0.35); top: 8%; left: -8%; }
        .fiestas-bg-glow--cyan { width: 360px; height: 360px; background: rgba(0,243,255,0.28); bottom: 12%; right: -6%; animation-delay: -3s; }
        @keyframes fiestasGlowFloat { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(24px, -18px) scale(1.08); } }
        .fiestas-hero { padding: 8.5rem 1.25rem 4.5rem; }
        .fiestas-hero-inner { max-width: 1120px; margin: 0 auto; text-align: center; }
        .fiestas-pill { display: inline-flex; align-items: center; gap: 8px; padding: 0.5rem 1rem; border-radius: 999px; border: 1px solid rgba(255,0,85,0.4); background: rgba(255,0,85,0.14); color: #ff0055; font-size: 0.65rem; font-weight: 900; letter-spacing: 0.18em; text-transform: uppercase; }
        .fiestas-title { margin-top: 1.25rem; font-size: clamp(2.6rem, 7vw, 6.2rem); line-height: 0.95; font-family: 'Syncopate', sans-serif; font-weight: 900; color: #fff; text-transform: uppercase; letter-spacing: 0.02em; }
        .fiestas-subtitle { margin: 1.35rem auto 0; max-width: 760px; font-size: clamp(1rem, 2.2vw, 1.35rem); color: #d1d5db; font-weight: 300; line-height: 1.65; }
        .fiestas-hero-cta { margin-top: 2rem; display: flex; justify-content: center; gap: 0.85rem; flex-wrap: wrap; }
        .fiestas-packs-section { padding: 0 1.25rem 5rem; }
        .fiestas-section-head { max-width: 1000px; margin: 0 auto 2.5rem; text-align: center; }
        .fiestas-kicker { display: inline-block; font-size: 0.64rem; font-weight: 900; letter-spacing: 0.24em; text-transform: uppercase; color: #00f3ff; }
        .fiestas-packs-grid { max-width: min(1700px, 96vw); margin: 0 auto; display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1rem; }
        @media (min-width: 768px) { .fiestas-packs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; } }
        @media (min-width: 1280px) { .fiestas-packs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; } }
        .fiestas-pack-card { position: relative; height: 100%; border-radius: 1.5rem; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); background: linear-gradient(160deg, rgba(17,17,17,0.94) 0%, rgba(10,10,10,0.9) 100%); box-shadow: 0 20px 40px rgba(0,0,0,0.45); transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease; transform-style: preserve-3d; will-change: transform; }
        .fiestas-pack-card::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(255,0,85,0.55), rgba(0,243,255,0.35), rgba(255,0,85,0.2)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity 0.35s ease; pointer-events: none; z-index: 3; }
        .fiestas-pack-card::after { content: ''; position: absolute; top: -120%; left: -60%; width: 55%; height: 320%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent); transform: rotate(24deg); transition: left 0.65s ease; pointer-events: none; z-index: 4; }
        .fiestas-pack-card:hover { border-color: rgba(255,0,85,0.55); box-shadow: 0 30px 56px rgba(0,0,0,0.62), 0 0 36px rgba(255,0,85,0.18), 0 0 60px rgba(0,243,255,0.08); }
        .fiestas-pack-card:hover::before { opacity: 1; }
        .fiestas-pack-card:hover::after { left: 130%; }
        .fiestas-pack-card__inner { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; }
        .fiestas-pack-card__badge { position: absolute; top: 14px; left: 14px; z-index: 5; padding: 0.35rem 0.7rem; border-radius: 999px; font-size: 0.58rem; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; background: rgba(255,0,85,0.92); color: #fff; box-shadow: 0 0 18px rgba(255,0,85,0.45); }
        .fiestas-pack-card__media { height: 180px; position: relative; overflow: hidden; }
        .fiestas-pack-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; filter: grayscale(20%); }
        .fiestas-pack-card:hover .fiestas-pack-card__media img { transform: scale(1.06); filter: grayscale(0%); }
        .fiestas-pack-card__body { padding: 1.25rem 1.25rem 1.35rem; display: flex; flex-direction: column; flex: 1; min-height: 0; }
        .fiestas-pack-card__price { color: #00f3ff; font-weight: 900; font-size: 1.2rem; margin: 0 0 0.45rem; text-shadow: 0 0 12px rgba(0,243,255,0.3); }
        .fiestas-pack-card h3 { color: #fff; font-size: 1.25rem; line-height: 1.2; margin: 0; font-family: 'Syncopate', sans-serif; }
        .fiestas-pack-card__meta { color: #ff0055; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; margin: 0.75rem 0; }
        .fiestas-pack-card__desc { color: #d1d5db; font-size: 0.95rem; line-height: 1.65; font-weight: 300; margin: 0; min-height: calc(0.95rem * 1.65 * 2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .fiestas-pack-card__actions { margin-top: auto; padding-top: 1.1rem; display: flex; flex-wrap: wrap; gap: 0.55rem; }
        .fiestas-pack-card__actions .btn-core { flex: 1 1 140px; justify-content: center; font-size: 0.72rem; padding: 0.75rem 0.9rem; }
        .fiestas-pack-card__actions .btn-detail { border-color: rgba(0,243,255,0.45); color: #00f3ff; }
        .fiestas-pack-card__actions .btn-detail:hover { background: rgba(0,243,255,0.12); }
        .fiestas-pack-card--featured { border-color: rgba(255,0,85,0.5); background: linear-gradient(150deg, rgba(255,0,85,0.12) 0%, rgba(16,16,16,0.95) 48%, rgba(10,10,10,0.92) 100%); }
        @media (min-width: 900px) {
            .fiestas-pack-card--princesas .fiestas-pack-card__inner {
                display: grid;
                grid-template-columns: 45% 55%;
                align-items: stretch;
            }
            .fiestas-pack-card--princesas .fiestas-pack-card__media {
                height: 100%;
                min-height: 320px;
            }
            .fiestas-pack-card--princesas .fiestas-pack-card__media img {
                object-position: left center;
            }
        }
        .modal-box.modal-box--fiestas { max-width: 1080px; width: min(1080px, 96vw); max-height: 94vh; display: flex; flex-direction: column; overflow: hidden; padding: 0; text-align: left; border-color: rgba(255,0,85,0.35); }
        .fiestas-modal-content { overflow-y: auto; padding: 1.75rem; display: grid; gap: 1.5rem; }
        @media (min-width: 1024px) { .fiestas-modal-content { grid-template-columns: 1fr 1.1fr; padding: 2rem; gap: 2rem; } }
        .fiestas-modal-media { position: relative; border-radius: 1.25rem; overflow: hidden; min-height: 240px; border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 20px 50px rgba(0,0,0,0.55); }
        .fiestas-modal-media img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; }
        .fiestas-modal-badge { position: absolute; top: 14px; right: 14px; padding: 0.4rem 0.75rem; border-radius: 999px; font-size: 0.62rem; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; background: rgba(0,0,0,0.72); border: 1px solid rgba(255,0,85,0.55); color: #ff0055; backdrop-filter: blur(6px); }
        .fiestas-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 0.85rem; }
        .fiestas-modal-tag { display: inline-block; font-size: 0.62rem; font-weight: 900; letter-spacing: 0.18em; text-transform: uppercase; color: #00f3ff; margin-bottom: 0.5rem; }
        .fiestas-modal-title { font-family: 'Syncopate', sans-serif; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; color: #fff; line-height: 1.1; margin: 0; }
        .fiestas-modal-price { margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 900; color: #00f3ff; text-shadow: 0 0 16px rgba(0,243,255,0.35); white-space: nowrap; }
        .fiestas-modal-intro { color: #d1d5db; font-weight: 300; line-height: 1.65; margin: 0 0 1rem; }
        .fiestas-modal-meta-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; margin-bottom: 1.1rem; }
        .fiestas-modal-meta-item { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); border-radius: 0.85rem; padding: 0.7rem 0.85rem; }
        .fiestas-modal-meta-item span { display: block; font-size: 0.58rem; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; color: #ff0055; margin-bottom: 0.25rem; }
        .fiestas-modal-meta-item strong { color: #fff; font-size: 0.9rem; font-weight: 700; }
        .fiestas-modal-includes { background: #111; border: 1px solid rgba(255,255,255,0.08); border-radius: 1rem; padding: 1rem 1.1rem; margin-bottom: 1rem; }
        .fiestas-modal-includes h4 { margin: 0 0 0.85rem; color: #fff; font-size: 0.78rem; font-weight: 900; letter-spacing: 0.14em; text-transform: uppercase; display: flex; align-items: center; gap: 0.45rem; }
        .fiestas-modal-includes ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.55rem; }
        .fiestas-modal-includes li { display: flex; align-items: flex-start; gap: 0.55rem; color: #d1d5db; font-size: 0.92rem; line-height: 1.45; padding: 0.55rem 0.65rem; border-radius: 0.65rem; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); }
        .fiestas-modal-includes li i { color: #00f3ff; margin-top: 2px; flex-shrink: 0; }
        .fiestas-modal-note { margin: 0 0 1rem; padding: 0.75rem 0.9rem; border-radius: 0.75rem; border: 1px solid rgba(255,250,0,0.35); background: rgba(255,250,0,0.08); color: #f5f0b8; font-size: 0.88rem; line-height: 1.5; }
        .fiestas-modal-note.hidden { display: none; }
        .fiestas-modal-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
        .fiestas-modal-quick { border-top: 1px solid rgba(255,255,255,0.08); background: #111; padding: 1rem 1.25rem 1.25rem; }
        .fiestas-modal-quick p { margin: 0 0 0.7rem; color: #9ca3af; font-size: 0.62rem; font-weight: 900; letter-spacing: 0.16em; text-transform: uppercase; }
        .fiestas-modal-quick-list { display: flex; gap: 0.65rem; overflow-x: auto; padding-bottom: 0.25rem; }
        .fiestas-quick-thumb { width: 76px; height: 76px; flex-shrink: 0; border-radius: 12px; overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: all 0.25s ease; }
        .fiestas-quick-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 0.55; transition: opacity 0.25s ease; }
        .fiestas-quick-thumb:hover, .fiestas-quick-thumb.active { border-color: #ff0055; }
        .fiestas-quick-thumb:hover img, .fiestas-quick-thumb.active img { opacity: 1; }
        .fiestas-highlight-section { padding: 0 1.25rem 6rem; }
        .fiestas-highlight-card { max-width: min(1700px, 96vw); margin: 0 auto; border-radius: 2rem; border: 1px solid rgba(255,0,85,0.38); background: linear-gradient(140deg, rgba(255,0,85,0.12) 0%, rgba(6,6,6,0.93) 52%, rgba(0,243,255,0.08) 100%); padding: 2rem 1.5rem; display: grid; gap: 1.2rem; box-shadow: 0 20px 45px rgba(0,0,0,0.5); }
        .fiestas-highlight-bullets p { margin: 0 0 0.65rem; color: #e5e7eb; font-size: 0.95rem; font-weight: 500; display: flex; align-items: flex-start; gap: 0.55rem; line-height: 1.45; }
        .fiestas-highlight-bullets p:last-child { margin-bottom: 0; }
        @media (min-width: 900px) {
            .fiestas-hero { padding-top: 9.25rem; }
            .fiestas-pack-card__media { height: 195px; }
            .fiestas-highlight-card { grid-template-columns: 1.3fr 1fr; align-items: center; padding: 2.4rem 2.2rem; }
        }

        /* PACKS OFERTAS (Tienda) */
        #view-tienda.spa-view { padding-top: 0; padding-bottom: 0; }
        .btn-cyan { background: transparent; color: white; border: 1px solid #00f3ff; border-radius: 8px; }
        .btn-cyan:hover { background: #00f3ff; color: black; box-shadow: 0 0 20px rgba(0,243,255,0.4); }
        .packs-swiper-1, .packs-swiper-2 { width: 100%; padding-top: 30px; padding-bottom: 30px; overflow: visible; }
        .packs-swiper-1 .swiper-slide, .packs-swiper-2 .swiper-slide { width: 368px; height: 510px; transition: filter 0.3s, transform 0.3s; pointer-events: auto !important; cursor: pointer; }
        @media (max-width: 768px) { .packs-swiper-1 .swiper-slide, .packs-swiper-2 .swiper-slide { width: 292px; height: 418px; } }
        .packs-swiper-1 .swiper-slide:not(.swiper-slide-active), .packs-swiper-2 .swiper-slide:not(.swiper-slide-active) { opacity: 0.92; }
        .packs-swiper-1 .swiper-slide-active, .packs-swiper-2 .swiper-slide-active { z-index: 5; }
        .pack-card { width: 100%; height: 100%; background: #0a0a0a; border-radius: 24px; border: 1px solid rgba(255,255,255,0.1); overflow: hidden; position: relative; cursor: pointer; transition: border-color 0.3s, box-shadow 0.3s, transform 0.25s; pointer-events: auto; }
        .pack-card:hover { transform: scale(1.02); border-color: rgba(0,243,255,0.35); }
        .packs-swiper-1 .swiper-slide-active .pack-card, .packs-swiper-2 .swiper-slide-active .pack-card { border-color: rgba(255,255,255,0.35); box-shadow: 0 24px 56px rgba(0,0,0,0.85); }
        .packs-carousel-divider { position: relative; display: flex; align-items: center; justify-content: center; padding: 2rem 1.5rem; margin: 0.5rem 0; }
        .packs-carousel-divider::before { content: ''; position: absolute; left: 5%; right: 5%; top: 50%; height: 2px; background: repeating-linear-gradient(90deg, transparent, transparent 8px, rgba(0,243,255,0.35) 8px, rgba(0,243,255,0.35) 16px, transparent 16px, transparent 24px, rgba(255,0,85,0.4) 24px, rgba(255,0,85,0.4) 32px); transform: translateY(-50%); }
        .packs-carousel-divider::after { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15) 20%, rgba(255,255,255,0.15) 80%, transparent); transform: translateY(-50%); }
        .packs-divider-badge { position: relative; z-index: 2; display: flex; align-items: center; gap: 0.75rem 1.25rem; flex-wrap: wrap; justify-content: center; padding: 0.65rem 1.5rem; background: #030303; border: 1px solid rgba(255,255,255,0.12); border-radius: 999px; box-shadow: 0 0 30px rgba(0,243,255,0.08), inset 0 0 20px rgba(255,0,85,0.05); }
        .packs-divider-badge span { font-family: 'Syncopate', sans-serif; font-size: 0.65rem; font-weight: 900; letter-spacing: 0.28em; text-transform: uppercase; }
        .pack-img-wrapper { width: 100%; height: 60%; position: relative; overflow: hidden; }
        .pack-img-wrapper img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(50%); transition: transform 0.5s, filter 0.5s; }
        .pack-card:hover .pack-img-wrapper img { transform: scale(1.1); filter: grayscale(0%); }
        .pack-overlay { position: absolute; inset: 0; background: linear-gradient(to top, #0a0a0a, transparent); }
        .pack-badge { position: absolute; top: 16px; right: 16px; background: rgba(0,0,0,0.8); backdrop-filter: blur(5px); padding: 6px 12px; border-radius: 50px; font-size: 0.7rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1px; z-index: 10; border: 1px solid; }
        .badge-cyan { color: #00f3ff; border-color: #00f3ff; box-shadow: 0 0 10px rgba(0,243,255,0.2); }
        .badge-pink { color: #ff0055; border-color: #ff0055; box-shadow: 0 0 10px rgba(255,0,85,0.2); }
        .badge-yellow { color: #fffa00; border-color: #fffa00; box-shadow: 0 0 10px rgba(255,250,0,0.2); }
        .modal-box.modal-box--pack { max-width: 1100px; width: 100%; max-height: 95vh; display: flex; flex-direction: column; overflow: hidden; padding: 0; text-align: left; }
        .modal-content-area { overflow-y: auto; padding: 32px; display: flex; flex-direction: column; gap: 32px; }
        @media (min-width: 1024px) { .modal-content-area { flex-direction: row; } }
        .modal-img-swiper { width: 100%; height: 350px; border-radius: 16px; overflow: hidden; }
        .modal-img-swiper img { width: 100%; height: 100%; object-fit: cover; }
        #packModal .swiper-pagination-bullet { background: white !important; opacity: 0.3; }
        #packModal .swiper-pagination-bullet-active { background: #00f3ff !important; opacity: 1; box-shadow: 0 0 10px #00f3ff; }
        .quick-view-container { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 10px; }
        .quick-thumb { width: 80px; height: 80px; flex-shrink: 0; border-radius: 12px; overflow: hidden; cursor: pointer; border: 2px solid transparent; transition: all 0.3s; }
        .quick-thumb img { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; transition: opacity 0.3s; }
        .quick-thumb:hover { border-color: #00f3ff; }
        .quick-thumb:hover img, .quick-thumb.active img { opacity: 1; }
        .quick-thumb.active { border-color: #ff0055; pointer-events: none; }

        /* NAV: CESTA + PERFIL */
        .nav-icon-btn {
            position: relative;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, 0.28);
            background: rgba(3, 3, 3, 0.62);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            transition: all 0.3s;
            cursor: pointer;
        }
        .nav-icon-btn:hover {
            border-color: #00f3ff;
            color: #00f3ff;
            box-shadow: 0 0 18px rgba(0, 243, 255, 0.35);
            transform: translateY(-2px);
        }
        .nav-icon-btn--cart:hover,
        .nav-icon-btn--notify:hover {
            border-color: #00f3ff;
            color: #00f3ff;
            box-shadow: 0 0 18px rgba(0, 243, 255, 0.35);
            transform: translateY(-2px);
        }
        .nav-icon-btn--user:hover {
            border-color: #00f3ff;
            color: #00f3ff;
            box-shadow: 0 0 18px rgba(0, 243, 255, 0.35);
        }
        /* Logueado: cian (se lee bien sobre la tela roja del banner) */
        .nav-icon-btn--user.is-authenticated {
            border-color: #00f3ff;
            color: #00f3ff;
            background: rgba(0, 243, 255, 0.14);
            box-shadow: 0 0 16px rgba(0, 243, 255, 0.32);
        }
        .modal-box.modal-box--auth { max-width: 520px; text-align: left; border-color: rgba(255,0,85,0.25); }
        .studio-auth-tabs { display: flex; gap: 0.5rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
        .studio-auth-tab {
            flex: 1; padding: 0.75rem 0.5rem; font-size: 0.72rem; font-weight: 700;
            letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.45);
            border: none; background: transparent; cursor: pointer; transition: color 0.25s, border-color 0.25s;
            border-bottom: 2px solid transparent; margin-bottom: -1px;
        }
        .studio-auth-tab.is-active { color: #ff0055; border-bottom-color: #ff0055; }
        .studio-auth-tab:hover { color: white; }
        .private-area-drawer { border-left-color: rgba(255,0,85,0.35); }
        .private-area-drawer-body { padding-top: 0.5rem; }
        .notifications-panel {
            position: fixed; top: 72px; right: 16px; width: min(440px, calc(100vw - 24px));
            max-height: min(560px, calc(100vh - 88px)); background: linear-gradient(165deg, #111 0%, #080808 100%);
            border: 1px solid rgba(255,0,85,0.35); border-radius: 1.35rem;
            box-shadow: 0 28px 70px rgba(0,0,0,0.9), 0 0 50px rgba(255,0,85,0.1);
            z-index: 9998; opacity: 0; visibility: hidden; transform: translateY(-10px) scale(0.97);
            transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s;
            display: flex; flex-direction: column; overflow: hidden;
        }
        .notifications-panel.active { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
        .notifications-panel-header { padding: 1.1rem 1.35rem; border-bottom: 1px solid rgba(255,255,255,0.08); display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; background: rgba(255,0,85,0.04); }
        .notifications-panel-body { overflow-y: auto; flex: 1; padding: 0.65rem; }
        .notification-item {
            width: 100%; text-align: left; padding: 14px 16px; border-radius: 14px;
            border: 1px solid rgba(255,255,255,0.07); margin-bottom: 8px; cursor: pointer;
            transition: all 0.22s; background: rgba(255,255,255,0.02); position: relative;
        }
        .notification-item:hover { border-color: rgba(255,0,85,0.45); background: rgba(255,0,85,0.09); transform: translateX(2px); }
        .notification-item.is-unread { border-color: rgba(255,0,85,0.32); background: rgba(255,0,85,0.07); }
        .notification-item.is-unread::after {
            content: ''; position: absolute; top: 14px; right: 14px; width: 9px; height: 9px;
            border-radius: 50%; background: #ff0055; box-shadow: 0 0 10px #ff0055;
        }
        .notification-cat { font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.14em; padding: 3px 8px; border-radius: 999px; display: inline-block; margin-bottom: 6px; }
        .notification-cat--clase { background: rgba(0,243,255,0.12); color: #00f3ff; border: 1px solid rgba(0,243,255,0.25); }
        .notification-cat--video { background: rgba(255,0,85,0.12); color: #ff0055; border: 1px solid rgba(255,0,85,0.25); }
        .notification-cat--pago { background: rgba(255,250,0,0.1); color: #fffa00; border: 1px solid rgba(255,250,0,0.25); }
        .notification-cat--general { background: rgba(255,255,255,0.06); color: #ccc; border: 1px solid rgba(255,255,255,0.12); }
        .sala-rent-card {
            display: grid; grid-template-columns: 1fr; gap: 0;
            border-radius: 2rem; overflow: hidden; border: 1px solid rgba(255,255,255,0.1);
            background: #0a0a0a; transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
        }
        @media (min-width: 1024px) {
            .sala-rent-card { grid-template-columns: 42% 58%; min-height: 320px; }
        }
        .sala-rent-card:hover {
            border-color: rgba(255,0,85,0.45);
            box-shadow: 0 24px 60px rgba(0,0,0,0.6), 0 0 30px rgba(255,0,85,0.12);
            transform: translateY(-4px);
        }
        .sala-rent-card__img { min-height: 240px; position: relative; overflow: hidden; }
        @media (min-width: 1024px) { .sala-rent-card__img { min-height: 100%; } }
        .sala-rent-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; }
        .sala-rent-card:hover .sala-rent-card__img img { transform: scale(1.05); }
        .modal-box.modal-box--salas {
            width: min(960px, calc(100vw - 24px));
            max-width: min(960px, calc(100vw - 24px));
            max-height: min(92dvh, calc(100vh - 24px));
            overflow-y: auto;
            overflow-x: hidden;
            text-align: left;
            border-color: rgba(255,0,85,0.35);
        }
        @media (max-width: 768px) {
            .modal-box.modal-box--salas { overflow-y: auto; overflow-x: hidden; }
        }
        .nav-icon-badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #ff0055; color: white; font-size: 10px; font-weight: 900; display: none; align-items: center; justify-content: center; box-shadow: 0 0 12px rgba(255,0,85,0.6); }
        .nav-icon-badge.is-visible { display: flex; }
        .cart-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.65); backdrop-filter: blur(6px); z-index: 100050; opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
        .cart-backdrop.active { opacity: 1; pointer-events: auto; }
        .cart-drawer { position: fixed; top: 0; right: 0; width: min(100%, 420px); height: 100vh; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-left: 1px solid rgba(255,255,255,0.1); z-index: 100051; transform: translateX(100%); transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1); display: flex; flex-direction: column; box-shadow: -20px 0 60px rgba(0,0,0,0.8); }
        .cart-drawer.active { transform: translateX(0); }
        .cart-item.is-busy { opacity: 0.55; pointer-events: none; }
        .cart-drawer-header { padding: 1.5rem 1.5rem 1rem; border-bottom: 1px solid rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: space-between; }
        .cart-drawer-body { flex: 1; overflow-y: auto; padding: 1rem 1.5rem; }
        .cart-item { display: flex; gap: 12px; padding: 14px; border-radius: 16px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); margin-bottom: 12px; }
        .cart-item img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }
        .cart-drawer-footer { padding: 1.25rem 1.5rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.1); background: rgba(0,0,0,0.4); }
        .cart-progress-track { width: 100%; height: 6px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
        .cart-progress-bar { height: 100%; border-radius: 999px; background: linear-gradient(90deg, #00f3ff, #ff0055); transition: width 0.25s ease; }
        .cart-item-type { font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; padding: 3px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.15); color: #d1d5db; display: inline-block; }
        .cart-reco-title { font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.18em; color: #9ca3af; margin: 18px 0 8px; }
        .cart-reco-item { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.02); margin-bottom: 8px; }
        .cart-reco-item img { width: 42px; height: 42px; border-radius: 10px; object-fit: cover; }
        .cart-reco-item button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.18); color: #d1d5db; transition: all 0.2s; }
        .cart-reco-item button:hover { border-color: rgba(255,0,85,0.5); color: #ff0055; background: rgba(255,0,85,0.12); }
        .cart-summary-row { display: flex; justify-content: space-between; align-items: center; font-size: 12px; margin-bottom: 10px; }
        .cart-summary-row--total { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 10px; padding-top: 12px; margin-bottom: 0; }
        .cart-terms { display: flex; align-items: flex-start; gap: 8px; font-size: 11px; color: #9ca3af; margin-top: 14px; }
        .cart-terms input { margin-top: 1px; accent-color: #ff0055; }
        .cart-checkout-btn[disabled] { opacity: 0.45; cursor: not-allowed; filter: grayscale(0.2); }
        .cart-secure-note { font-size: 11px; color: #6b7280; text-align: center; margin-top: 10px; }
        .modal-box.modal-box--profile { width: 98vw; max-width: 98vw; height: 98vh; max-height: 98vh; min-height: 98vh; padding: 0; overflow: hidden; text-align: left; border-color: rgba(255,0,85,0.28); border-radius: 22px; box-shadow: 0 50px 100px rgba(0,0,0,0.95), 0 0 60px rgba(255,0,85,0.12); }
        #profileModal.modal-overlay { padding: 0.25rem; align-items: center; }
        .profile-layout { display: grid; grid-template-columns: 1fr; height: 100%; min-height: 0; max-height: 98vh; }
        @media (min-width: 900px) { .profile-layout { grid-template-columns: min(300px, 22vw) 1fr; } }
        .profile-sidebar { background: linear-gradient(180deg, #0c0c0c 0%, #080808 100%); border-bottom: 1px solid rgba(255,255,255,0.08); padding: 1.75rem 1.35rem; min-height: 0; }
        @media (min-width: 900px) { .profile-sidebar { border-bottom: none; border-right: 1px solid rgba(255,255,255,0.08); } }
        .profile-tab-btn { width: 100%; text-align: left; padding: 14px 16px; border-radius: 12px; font-size: 0.78rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: #888; transition: all 0.25s; margin-bottom: 6px; display: flex; align-items: center; gap: 11px; border: 1px solid transparent; background: transparent; cursor: pointer; line-height: 1.3; }
        .profile-tab-btn i { font-size: 1.28rem; flex-shrink: 0; }
        .profile-tab-btn:hover { color: white; background: rgba(255,255,255,0.05); }
        .profile-tab-btn.active { color: #ff0055; border-color: rgba(255,0,85,0.4); background: rgba(255,0,85,0.1); box-shadow: 0 0 22px rgba(255,0,85,0.15); }
        .profile-content { padding: 2rem 2.25rem 2.5rem; overflow-y: auto; min-height: 0; height: 100%; max-height: none; font-size: 0.95rem; }
        @media (min-width: 900px) { .profile-content { padding: 2.25rem 3rem 3rem; } }
        @media (min-width: 1280px) { .profile-content { padding: 2.5rem 3.5rem 3.25rem; } }
        .profile-panel { display: none; animation: fadeInPage 0.4s ease forwards; }
        .profile-panel.active { display: block; }
        .profile-panel-head { margin-bottom: 2rem; padding-bottom: 1.35rem; border-bottom: 1px solid rgba(255,255,255,0.07); }
        .profile-panel-head h2 { font-size: clamp(1.85rem, 2.8vw, 2.65rem); }
        .profile-panel-head p { font-size: 0.95rem; }
        .profile-avatar { width: 108px; height: 108px; border-radius: 50%; object-fit: cover; border: 3px solid #ff0055; box-shadow: 0 0 28px rgba(255,0,85,0.4); }
        .profile-field { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.06); display: flex; gap: 14px; align-items: flex-start; }
        .profile-block { margin-top: 2rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,255,255,0.08); }
        .profile-tutor-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); margin-bottom: 10px; }
        .profile-tutor-item:last-child { margin-bottom: 0; }
        .profile-plan-card { padding: 1.25rem 1.35rem; border-radius: 18px; border: 1px solid rgba(255,255,255,0.1); background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, rgba(0,0,0,0.2) 100%); margin-bottom: 14px; position: relative; overflow: hidden; }
        .profile-plan-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--plan-accent, #ff0055); }
        .profile-plan-status { font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 10px; border-radius: 999px; display: inline-block; }
        .profile-plan-status--active { background: rgba(74,222,128,0.12); color: #4ade80; border: 1px solid rgba(74,222,128,0.3); }
        .profile-plan-status--low { background: rgba(255,250,0,0.1); color: #fffa00; border: 1px solid rgba(255,250,0,0.25); }
        .profile-class-card { padding: 1.35rem 1.5rem; border-radius: 18px; border: 1px solid rgba(255,255,255,0.1); background: #0f0f0f; margin-bottom: 14px; transition: border-color 0.25s, box-shadow 0.25s; }
        .profile-class-card:hover { border-color: rgba(255,0,85,0.35); box-shadow: 0 12px 32px rgba(255,0,85,0.1); }
        .profile-classes-view-toggle { display: inline-flex; gap: 0; margin-bottom: 1.35rem; border-radius: 12px; border: 1px solid rgba(255,255,255,0.12); overflow: hidden; background: rgba(255,255,255,0.03); }
        .profile-classes-view-btn { padding: 11px 20px; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; color: #888; background: transparent; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: all 0.25s; }
        .profile-classes-view-btn:hover { color: white; background: rgba(255,255,255,0.05); }
        .profile-classes-view-btn.active { color: #ff0055; background: rgba(255,0,85,0.12); box-shadow: inset 0 0 20px rgba(255,0,85,0.08); }
        .profile-classes-list-wrap { display: none; animation: fadeInPage 0.35s ease; }
        .profile-classes-list-wrap.is-active { display: block; }
        .profile-classes-cal-wrap { display: none; animation: fadeInPage 0.35s ease; }
        .profile-classes-cal-wrap.is-active { display: block; }
        .profile-punctual-block { margin-top: 2rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,255,255,0.08); }
        .profile-classes-cal-wrap.is-active { display: flex; flex-direction: column; min-height: 0; }
        .profile-schedule { border-radius: 20px; border: 1px solid rgba(255,255,255,0.12); background: linear-gradient(180deg, #0f0f0f 0%, #080808 100%); overflow: hidden; box-shadow: 0 24px 56px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.06); flex: 1; display: flex; flex-direction: column; min-height: 0; }
        .profile-schedule__scroll { overflow: hidden; flex: 1; display: flex; flex-direction: column; min-height: 0; }
        .profile-schedule__head { display: grid; grid-template-columns: 52px repeat(6, 1fr); width: 100%; flex-shrink: 0; background: #121212; border-bottom: 1px solid rgba(255,255,255,0.1); box-shadow: 0 6px 20px rgba(0,0,0,0.35); }
        .profile-schedule__head-gutter { display: flex; align-items: center; justify-content: center; padding: 12px 6px; color: #555; font-size: 1.15rem; }
        .profile-schedule__head-day { text-align: center; padding: 11px 6px; border-left: 1px solid rgba(255,255,255,0.06); transition: background 0.25s; }
        .profile-schedule__head-day.is-today { background: rgba(0,243,255,0.08); box-shadow: inset 0 -2px 0 #00f3ff; }
        .profile-schedule__head-day-name { display: block; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; color: #fff; }
        .profile-schedule__head-day-sub { display: block; font-size: 9px; font-weight: 700; color: #666; margin-top: 3px; text-transform: uppercase; letter-spacing: 0.08em; }
        .profile-schedule__head-day.is-today .profile-schedule__head-day-name { color: #00f3ff; }
        .profile-schedule__head-day.is-today .profile-schedule__head-day-sub { color: #00f3ff; }
        .profile-schedule__body { display: flex; width: 100%; flex: 1; min-height: 0; }
        .profile-schedule__hours { width: 52px; flex-shrink: 0; background: rgba(0,0,0,0.45); border-right: 1px solid rgba(255,255,255,0.08); }
        .profile-schedule__hour { box-sizing: border-box; display: flex; align-items: flex-start; justify-content: flex-end; padding: 6px 8px 0 4px; font-size: 11px; font-weight: 800; color: #888; font-variant-numeric: tabular-nums; border-top: 1px solid rgba(255,255,255,0.05); }
        .profile-schedule__days { flex: 1; display: grid; grid-template-columns: repeat(6, 1fr); min-width: 0; }
        .profile-schedule__day { position: relative; border-left: 1px solid rgba(255,255,255,0.06); background-color: rgba(255,255,255,0.015); min-width: 0; }
        .profile-schedule__day.is-today { background-color: rgba(0,243,255,0.04); }
        .profile-schedule__day-lines { position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--schedule-row, 46px) - 1px), rgba(255,255,255,0.05) calc(var(--schedule-row, 46px) - 1px), rgba(255,255,255,0.05) var(--schedule-row, 46px)); }
        .profile-schedule__event { position: absolute; left: 4px; right: 4px; border-radius: 12px; padding: 10px 10px; border: 1px solid; overflow: hidden; z-index: 2; cursor: pointer; transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s; box-sizing: border-box; text-align: left; width: calc(100% - 8px); }
        .profile-schedule__event:hover { transform: translateY(-2px) scale(1.03); filter: brightness(1.12); z-index: 3; box-shadow: 0 8px 28px rgba(0,0,0,0.45); }
        .profile-schedule__event-title { display: block; font-size: 12px; font-weight: 900; line-height: 1.2; color: inherit; text-shadow: 0 1px 8px rgba(0,0,0,0.5); }
        .profile-schedule__event-meta { display: block; font-size: 10px; font-weight: 800; margin-top: 5px; opacity: 0.95; line-height: 1.2; }
        .profile-schedule__legend { display: flex; flex-wrap: wrap; gap: 10px 14px; margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); flex-shrink: 0; }
        .profile-schedule__legend span { font-size: 10px; font-weight: 800; display: inline-flex; align-items: center; gap: 8px; color: #bbb; }
        .profile-schedule__legend-dot { width: 12px; height: 12px; border-radius: 4px; flex-shrink: 0; }
        .profile-reserva-card { padding: 1.15rem 1.25rem; border-radius: 14px; border: 1px dashed rgba(255,255,255,0.15); background: rgba(255,255,255,0.02); margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
        .profile-video-card { position: relative; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); background: #111; cursor: pointer; text-align: left; transition: transform 0.25s, border-color 0.25s; }
        .profile-video-card:hover { transform: translateY(-3px); border-color: rgba(255,0,85,0.4); }
        .profile-video-card img, .profile-video-card video { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
        .profile-video-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.35); opacity: 0; transition: opacity 0.25s; }
        .profile-video-card:hover .profile-video-play { opacity: 1; }
        .profile-video-play i { width: 52px; height: 52px; border-radius: 50%; background: #ff0055; color: white; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; box-shadow: 0 0 24px rgba(255,0,85,0.5); }
        .profile-video-meta { padding: 12px 14px; }
        .profile-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 1.5rem; }
        .profile-stat { padding: 14px; border-radius: 14px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); text-align: center; }
        .profile-stat strong { display: block; font-size: 1.35rem; color: #ff0055; font-family: 'Syncopate', sans-serif; }
        .profile-bonus-card { padding: 16px; border-radius: 16px; border: 1px solid rgba(255,255,255,0.1); background: #111; margin-bottom: 12px; }
        .profile-month-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
        .profile-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
        .profile-month-weekday { text-align: center; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; color: #666; padding: 6px 0; }
        .profile-month-day { background: #111; border: 1px solid rgba(255,255,255,0.06); border-radius: 10px; min-height: 88px; padding: 6px 5px; display: flex; flex-direction: column; }
        .profile-month-day.other-month { opacity: 0.35; background: #0a0a0a; }
        .profile-month-day.is-today { border-color: rgba(0,243,255,0.5); box-shadow: inset 0 0 16px rgba(0,243,255,0.08); }
        .profile-month-day-num { font-size: 11px; font-weight: 800; color: #888; margin-bottom: 4px; line-height: 1; }
        .profile-month-day.is-today .profile-month-day-num { color: #00f3ff; }
        .profile-month-day.other-month .profile-month-day-num { color: #555; }
        .profile-booking { font-size: 8px; line-height: 1.25; padding: 4px 4px; border-radius: 6px; margin-bottom: 3px; font-weight: 700; cursor: pointer; transition: transform 0.2s, filter 0.2s; text-align: left; width: 100%; border: none; }
        .profile-booking:hover { transform: scale(1.03); filter: brightness(1.15); }
        .profile-booking--urbano { background: rgba(0,243,255,0.15); color: #00f3ff; border: 1px solid rgba(0,243,255,0.25); }
        .profile-booking--heels { background: rgba(255,0,85,0.12); color: #ff0055; border: 1px solid rgba(255,0,85,0.25); }
        .profile-booking--barre { background: rgba(255,250,0,0.12); color: #fffa00; border: 1px solid rgba(255,250,0,0.25); }
        .profile-booking-detail { position: absolute; inset: 0; z-index: 60; background: rgba(0,0,0,0.75); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 1.5rem; opacity: 0; pointer-events: none; transition: opacity 0.3s; border-radius: inherit; }
        .profile-booking-detail.active { opacity: 1; pointer-events: auto; }
        .profile-booking-detail-box { background: #0f0f0f; border: 1px solid rgba(255,255,255,0.12); border-radius: 20px; padding: 1.5rem 1.75rem; max-width: 380px; width: 100%; box-shadow: 0 24px 48px rgba(0,0,0,0.8); position: relative; }
        .profile-tab-btn.active--yellow { color: #fffa00; border-color: rgba(255,250,0,0.35); background: rgba(255,250,0,0.08); box-shadow: 0 0 20px rgba(255,250,0,0.12); }
        .profile-media-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
        @media (min-width: 640px) { .profile-media-grid { grid-template-columns: repeat(3, 1fr); } }
        .profile-media-item { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); cursor: pointer; aspect-ratio: 1; background: #111; }
        .profile-media-item img, .profile-media-item video { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
        .profile-media-item:hover img, .profile-media-item:hover video { transform: scale(1.06); }
        .profile-media-item .media-type-badge { position: absolute; top: 8px; left: 8px; background: rgba(0,0,0,0.7); padding: 4px 8px; border-radius: 50px; font-size: 9px; font-weight: 900; text-transform: uppercase; }
        .profile-media-lightbox { position: fixed; inset: 0; z-index: 100060; background: rgba(0,0,0,0.92); backdrop-filter: blur(12px); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; opacity: 0; pointer-events: none; transition: opacity 0.35s; }
        .profile-media-lightbox.active { opacity: 1; pointer-events: auto; }
        .profile-media-lightbox-content { max-width: min(720px, 92vw); max-height: 70vh; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.15); }
        .profile-media-lightbox-content img, .profile-media-lightbox-content video { max-width: 100%; max-height: 70vh; display: block; object-fit: contain; }
        @media (max-width: 767px) {
            .profile-month-day { min-height: 72px; }
            .profile-booking { font-size: 7px; padding: 3px; }
            .modal-box.modal-box--profile { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; min-height: 100vh; border-radius: 0; }
            #profileModal.modal-overlay { padding: 0; }
            .profile-layout { max-height: 100vh; }
            .profile-content { padding: 1.5rem 1.25rem 2rem; }
        }

        /* PERFIL: nuevas secciones (solo modal alumno) */
        .profile-sidebar { max-height: none; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,0,85,0.35) transparent; }
        .profile-sidebar::-webkit-scrollbar { width: 5px; }
        .profile-sidebar::-webkit-scrollbar-thumb { background: rgba(255,0,85,0.35); border-radius: 99px; }
        .profile-content { scrollbar-width: thin; scrollbar-color: rgba(0,243,255,0.25) transparent; }
        .profile-content::-webkit-scrollbar { width: 6px; }
        .profile-content::-webkit-scrollbar-thumb { background: rgba(0,243,255,0.25); border-radius: 99px; }
        .profile-tab-badge { margin-left: auto; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #ff0055; color: white; font-size: 9px; font-weight: 900; display: none; align-items: center; justify-content: center; box-shadow: 0 0 10px rgba(255,0,85,0.5); }
        .profile-tab-badge.is-visible { display: flex; }
        .profile-zone-scroll { max-height: min(72vh, 720px); overflow-y: auto; padding-right: 6px; }
        #profileModal .profile-stats-row { gap: 16px; }
        #profileModal .profile-stat strong { font-size: 1.65rem; }
        #profileModal .activity-card { padding: 1.35rem 1.5rem; }
        #profileModal .activity-card-thumb { width: 88px; height: 56px; }
        .profile-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1.25rem; }
        .profile-filter-btn { font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.03); color: #888; cursor: pointer; transition: all 0.22s; }
        .profile-filter-btn:hover { color: white; border-color: rgba(255,255,255,0.25); }
        .profile-filter-btn.active { color: #ff0055; border-color: rgba(255,0,85,0.45); background: rgba(255,0,85,0.1); box-shadow: 0 0 16px rgba(255,0,85,0.12); }
        .profile-search { width: 100%; padding: 12px 16px 12px 42px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: white; font-size: 0.85rem; transition: border-color 0.25s, box-shadow 0.25s; }
        .profile-search:focus { outline: none; border-color: rgba(0,243,255,0.45); box-shadow: 0 0 20px rgba(0,243,255,0.12); }
        .profile-search-wrap { position: relative; margin-bottom: 1.25rem; }
        .profile-search-wrap i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #666; font-size: 1.1rem; pointer-events: none; }
        .activity-feed { display: flex; flex-direction: column; gap: 12px; position: relative; padding-left: 18px; }
        .activity-feed::before { content: ''; position: absolute; left: 5px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(180deg, rgba(255,0,85,0.5), rgba(0,243,255,0.2)); border-radius: 99px; }
        .activity-card { position: relative; padding: 1.15rem 1.25rem; border-radius: 16px; border: 1px solid rgba(255,255,255,0.09); background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, rgba(0,0,0,0.35) 100%); transition: border-color 0.28s, box-shadow 0.28s, transform 0.28s; }
        .activity-card::before { content: ''; position: absolute; left: -18px; top: 1.35rem; width: 10px; height: 10px; border-radius: 50%; background: #111; border: 2px solid rgba(255,255,255,0.2); transition: all 0.28s; }
        .activity-card:hover { border-color: rgba(255,0,85,0.4); box-shadow: 0 12px 36px rgba(255,0,85,0.12); transform: translateX(4px); }
        .activity-card.activity-unread { border-color: rgba(255,0,85,0.32); background: rgba(255,0,85,0.06); }
        .activity-card.activity-unread::before { border-color: #ff0055; background: #ff0055; box-shadow: 0 0 12px #ff0055; }
        .activity-type { font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.14em; padding: 4px 10px; border-radius: 999px; display: inline-block; margin-bottom: 8px; }
        .activity-type--video { background: rgba(255,0,85,0.12); color: #ff0055; border: 1px solid rgba(255,0,85,0.28); }
        .activity-type--aviso { background: rgba(0,243,255,0.12); color: #00f3ff; border: 1px solid rgba(0,243,255,0.28); }
        .activity-type--clase { background: rgba(255,250,0,0.1); color: #fffa00; border: 1px solid rgba(255,250,0,0.25); }
        .activity-type--evento { background: rgba(255,255,255,0.06); color: #ccc; border: 1px solid rgba(255,255,255,0.15); }
        .activity-card-thumb { width: 72px; height: 48px; border-radius: 10px; object-fit: cover; border: 1px solid rgba(255,255,255,0.12); flex-shrink: 0; }
        /* START MI ACADEMIA */
        .academy-summary-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 1.5rem; }
        .academy-summary-card { padding: 1rem 1.1rem; border-radius: 16px; border: 1px solid rgba(255,255,255,0.1); background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, rgba(0,0,0,0.25) 100%); backdrop-filter: blur(8px); text-align: center; transition: border-color 0.25s, box-shadow 0.25s; }
        .academy-summary-card:hover { border-color: rgba(255,0,85,0.35); box-shadow: 0 8px 28px rgba(255,0,85,0.1); }
        .academy-summary-card strong { display: block; font-size: 2.15rem; font-family: 'Syncopate', sans-serif; color: #ff0055; line-height: 1.1; }
        .academy-summary-card--cyan strong { color: #00f3ff; }
        .academy-summary-card--muted strong { color: #ccc; font-size: 1.35rem; }
        #profileModal #profileTabBadgeAcademia { min-width: 24px; height: 24px; font-size: 11px; padding: 0 7px; }
        .academy-scroll { max-height: min(68vh, 640px); }
        .academy-folders { display: flex; flex-direction: column; gap: 10px; }
        .academy-folder { border-radius: 18px; border: 1px solid rgba(255,255,255,0.09); background: rgba(255,255,255,0.03); backdrop-filter: blur(10px); overflow: hidden; transition: border-color 0.28s, box-shadow 0.28s; }
        .academy-folder:hover { border-color: rgba(255,0,85,0.25); }
        .academy-folder.is-open { border-color: rgba(255,0,85,0.38); box-shadow: 0 12px 40px rgba(255,0,85,0.08); }
        .academy-folder-header { width: 100%; text-align: left; padding: 1.1rem 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; background: transparent; border: none; color: inherit; transition: background 0.25s; }
        .academy-folder-header:hover { background: rgba(255,255,255,0.04); }
        .academy-folder-header__left { min-width: 0; flex: 1; }
        .academy-folder-header__title { font-weight: 900; font-size: 0.95rem; color: white; text-transform: uppercase; letter-spacing: 0.06em; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        .academy-folder-header__meta { font-size: 0.75rem; color: #888; margin-top: 4px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
        .academy-folder-header__meta .academy-progress-dots { color: #00f3ff; letter-spacing: 0.15em; }
        .academy-folder-new-count { font-size: 1.15rem; font-weight: 900; min-width: 32px; height: 32px; padding: 0 10px; border-radius: 999px; background: rgba(255,0,85,0.18); color: #ff0055; border: 2px solid rgba(255,0,85,0.45); box-shadow: 0 0 18px rgba(255,0,85,0.35); display: inline-flex; align-items: center; justify-content: center; line-height: 1; font-family: 'Syncopate', sans-serif; }
        .academy-folder-new-alert { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 10px 14px; border-radius: 12px; background: rgba(255,250,0,0.12); border: 1px solid rgba(255,250,0,0.4); color: #fffa00; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.04em; box-shadow: 0 0 20px rgba(255,250,0,0.12); animation: academyAlertPulse 2s ease-in-out infinite; }
        .academy-folder-new-alert i { font-size: 1.15rem; flex-shrink: 0; color: #fffa00; filter: drop-shadow(0 0 6px rgba(255,250,0,0.5)); }
        @keyframes academyAlertPulse { 0%, 100% { opacity: 1; border-color: rgba(255,250,0,0.4); } 50% { opacity: 0.92; border-color: rgba(255,250,0,0.65); box-shadow: 0 0 24px rgba(255,250,0,0.2); } }
        .academy-folder.has-new-week { border-color: rgba(255,250,0,0.22); }
        .academy-folder-chevron { color: #666; font-size: 1.1rem; transition: transform 0.35s ease, color 0.25s; flex-shrink: 0; }
        .academy-folder.is-open .academy-folder-chevron { transform: rotate(180deg); color: #ff0055; }
        .academy-folder-content { max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease; }
        .academy-folder.is-open .academy-folder-content { max-height: 2400px; opacity: 1; }
        .academy-folder-content__inner { padding: 0 1rem 1.15rem; }
        .academy-video-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
        @media (min-width: 768px) { .academy-video-grid { grid-template-columns: repeat(3, 1fr); } }
        @media (min-width: 1200px) { .academy-video-grid { grid-template-columns: repeat(4, 1fr); } }
        .academy-video-card { position: relative; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); background: #0f0f0f; text-align: left; cursor: pointer; transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s; width: 100%; padding: 0; }
        .academy-video-card:hover { transform: translateY(-4px); border-color: rgba(255,0,85,0.45); box-shadow: 0 14px 36px rgba(255,0,85,0.15); }
        .academy-video-card.video-new { border-color: rgba(255,0,85,0.28); }
        .academy-video-card.video-viewed { border-color: rgba(0,243,255,0.2); }
        .academy-video-card__img { position: relative; aspect-ratio: 16/10; overflow: hidden; }
        .academy-video-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.45s ease; }
        .academy-video-card:hover .academy-video-card__img img { transform: scale(1.07); }
        .academy-video-card__play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.45); opacity: 0; transition: opacity 0.3s; }
        .academy-video-card:hover .academy-video-card__play { opacity: 1; }
        .academy-video-card__play i { width: 48px; height: 48px; border-radius: 50%; background: #ff0055; color: white; display: flex; align-items: center; justify-content: center; font-size: 1.35rem; box-shadow: 0 0 22px rgba(255,0,85,0.55); }
        .academy-video-card__dur { position: absolute; bottom: 8px; right: 8px; font-size: 9px; font-weight: 900; padding: 3px 8px; border-radius: 6px; background: rgba(0,0,0,0.85); color: white; }
        .academy-video-card__body { padding: 11px 12px 12px; }
        .academy-video-status { font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 8px; border-radius: 999px; display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; }
        .academy-video-status--new { background: rgba(255,0,85,0.15); color: #ff0055; border: 1px solid rgba(255,0,85,0.35); }
        .academy-video-status--viewed { background: rgba(0,243,255,0.12); color: #00f3ff; border: 1px solid rgba(0,243,255,0.3); }
        .academy-video-status--continue { background: rgba(255,250,0,0.1); color: #fffa00; border: 1px solid rgba(255,250,0,0.28); }
        /* END MI ACADEMIA */
        .progress-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 1.75rem; }
        @media (min-width: 640px) { .progress-grid { grid-template-columns: repeat(4, 1fr); } }
        .progress-metric { padding: 1rem; border-radius: 16px; border: 1px solid rgba(255,255,255,0.09); background: rgba(255,255,255,0.03); text-align: center; transition: border-color 0.25s; }
        .progress-metric:hover { border-color: rgba(0,243,255,0.35); }
        .progress-metric strong { display: block; font-size: 1.5rem; color: #ff0055; font-family: 'Syncopate', sans-serif; margin-bottom: 4px; }
        .progress-level-bar { height: 10px; border-radius: 99px; background: rgba(255,255,255,0.08); overflow: hidden; margin-top: 12px; }
        .progress-level-bar span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #ff0055 0%, #00f3ff 100%); box-shadow: 0 0 16px rgba(255,0,85,0.4); animation: progressBarPulse 2.5s ease-in-out infinite; }
        @keyframes progressBarPulse { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.15); } }
        .progress-roadmap { position: relative; padding: 1.5rem 0 0.5rem 28px; }
        .progress-roadmap::before { content: ''; position: absolute; left: 8px; top: 0; bottom: 0; width: 2px; background: linear-gradient(180deg, #ff0055, #00f3ff); opacity: 0.4; }
        .progress-roadmap-item { position: relative; padding-bottom: 1.5rem; }
        .progress-roadmap-item::before { content: ''; position: absolute; left: -24px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #111; border: 2px solid #ff0055; box-shadow: 0 0 10px rgba(255,0,85,0.4); }
        .progress-roadmap-item.is-current::before { background: #ff0055; }
        .progress-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(255,0,85,0.35); background: rgba(255,0,85,0.08); color: #ff0055; margin-top: 8px; margin-right: 6px; }
        .progress-badge--cyan { border-color: rgba(0,243,255,0.35); background: rgba(0,243,255,0.08); color: #00f3ff; }
        .progress-badge--yellow { border-color: rgba(255,250,0,0.3); background: rgba(255,250,0,0.08); color: #fffa00; }
        .feedback-card { padding: 1rem 1.15rem; border-radius: 16px; border: 1px solid rgba(255,255,255,0.1); background: #0f0f0f; margin-bottom: 10px; cursor: pointer; transition: all 0.25s; display: flex; flex-wrap: wrap; align-items: center; gap: 14px; width: 100%; text-align: left; }
        .feedback-card .feedback-detail { flex-basis: 100%; }
        .feedback-card:hover, .feedback-card.is-open { border-color: rgba(255,0,85,0.4); box-shadow: 0 8px 28px rgba(255,0,85,0.1); }
        .feedback-card img { width: 64px; height: 40px; border-radius: 8px; object-fit: cover; }
        .feedback-detail { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,0.08); animation: fadeInPage 0.35s ease; }
        .feedback-card.is-open .feedback-detail { display: block; }
        .feedback-video-wrap { border-radius: 14px; overflow: hidden; border: 1px solid rgba(255,255,255,0.12); margin-bottom: 14px; aspect-ratio: 16/9; background: #000; }
        .feedback-video-wrap video { width: 100%; height: 100%; object-fit: cover; }
        .feedback-marker { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); margin-bottom: 8px; font-size: 0.85rem; }
        .feedback-marker time { font-weight: 900; color: #00f3ff; font-size: 0.75rem; min-width: 42px; font-variant-numeric: tabular-nums; }
        .feedback-marker--positive { border-color: rgba(74,222,128,0.25); background: rgba(74,222,128,0.06); }
        .feedback-marker--positive time { color: #4ade80; }
        .profile-tutor-hero { display: flex; align-items: center; gap: 16px; padding: 1.25rem; border-radius: 18px; border: 1px solid rgba(255,255,255,0.1); background: linear-gradient(135deg, rgba(255,0,85,0.08) 0%, rgba(0,0,0,0.3) 100%); margin-bottom: 1.25rem; }
        .profile-tutor-hero img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid #00f3ff; }
        .profile-info-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
        @media (min-width: 640px) { .profile-info-grid { grid-template-columns: repeat(2, 1fr); } }
        .profile-info-tile { padding: 14px 16px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.02); }
        .profile-skeleton { border-radius: 16px; background: linear-gradient(90deg, rgba(255,255,255,0.04) 25%, rgba(255,255,255,0.09) 50%, rgba(255,255,255,0.04) 75%); background-size: 200% 100%; animation: profileSkeletonShine 1.2s ease-in-out infinite; }
        @keyframes profileSkeletonShine { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
        .profile-empty { text-align: center; padding: 3rem 1.5rem; border-radius: 20px; border: 1px dashed rgba(255,255,255,0.12); background: rgba(255,255,255,0.02); }
        .profile-empty i { font-size: 2.5rem; color: #444; margin-bottom: 12px; display: block; }
        .profile-tooltip { position: relative; display: inline-flex; }
        .profile-tooltip[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%) scale(0.95); opacity: 0; pointer-events: none; padding: 6px 10px; border-radius: 8px; background: #1a1a1a; border: 1px solid rgba(255,255,255,0.15); font-size: 10px; color: #ccc; white-space: nowrap; transition: opacity 0.2s, transform 0.2s; z-index: 5; }
        .profile-tooltip:hover::after { opacity: 1; transform: translateX(-50%) scale(1); }
        .notifications-filters { display: flex; flex-wrap: wrap; gap: 6px; padding: 0.75rem 1rem; border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(0,0,0,0.2); }
        .notifications-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
        .notification-item { animation: fadeInPage 0.35s ease forwards; }

        /* ANIMACIÓN CORAZÓN LATIENDO E INCLINADO */
        @keyframes heartbeatTilt {
            0% { transform: scale(1) rotate(0deg); }
            15% { transform: scale(1.05) rotate(3deg); }
            30% { transform: scale(1) rotate(0deg); }
            45% { transform: scale(1.05) rotate(-3deg); }
            60% { transform: scale(1) rotate(0deg); }
            100% { transform: scale(1) rotate(0deg); }
        }
        .heartbeat-tilt {
            display: inline-block;
            animation: heartbeatTilt 1.5s infinite ease-in-out;
            transform-origin: center center;
        }

        /* --- NUEVOS ESTILOS: ACORDEÓN DE CLASES --- */
        .acc-container { display: flex; width: 100%; height: clamp(28rem, 70vh, 52rem); gap: 1rem; }
        .acc-card { position: relative; flex: 1; border-radius: 1.5rem; overflow: hidden; cursor: pointer; transition: flex 0.6s cubic-bezier(0.25, 1, 0.5, 1), border-color 0.4s, box-shadow 0.4s, transform 0.4s; background: #111; border: 1px solid rgba(255,255,255,0.22); }
        .acc-card:hover { border-color: var(--neon-pink); box-shadow: 0 0 24px rgba(255,0,85,0.2); transform: translateY(-4px); }
        .acc-card.active { flex: 5; cursor: default; border: 1px solid var(--neon-pink); box-shadow: 0 0 30px rgba(255,0,85,0.2); transform: translateY(-4px); }
        @media (max-width: 768px) {
            .acc-container { flex-direction: column; height: auto; min-height: 0; }
            .acc-card { min-height: 16rem; }
            .acc-card.active { flex: 4; }
        }
        .acc-bg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            filter: grayscale(25%);
            opacity: 0.9;
            transition: transform 0.8s, filter 0.6s, opacity 0.6s;
            image-rendering: auto;
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
        }
        .acc-card:hover .acc-bg { filter: grayscale(0%); opacity: 1; }
        .acc-card.active .acc-bg { filter: grayscale(0%); opacity: 0.85; transform: scale(1.02); }
        
        .acc-collapsed { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; transition: opacity 0.3s; }
        .acc-collapsed h3 { transform: rotate(-90deg); white-space: nowrap; font-size: 1.5rem; font-weight: 900; letter-spacing: 4px; color: white; text-shadow: 0 0 10px rgba(0,0,0,0.8); }
        @media (max-width: 768px) { .acc-collapsed h3 { transform: rotate(0deg); } }
        .acc-card.active .acc-collapsed { opacity: 0; pointer-events: none; }
        
        .acc-expanded { position: absolute; inset: 0; padding: 2rem; display: flex; flex-direction: column; justify-content: flex-end; opacity: 0; pointer-events: none; transition: opacity 0.5s; transition-delay: 0s; }
        .acc-card.active .acc-expanded { opacity: 1; pointer-events: auto; transition-delay: 0.3s; }
        .class-schedule-item { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
        .class-schedule-item:last-child { border-bottom: none; padding-bottom: 0; }
        .class-schedule-item ul { margin-top: 8px; margin-left: 12px; padding-left: 12px; border-left: 2px solid rgba(255,0,85,0.35); }
        .class-schedule-item ul li { color: #9ca3af; font-size: 0.75rem; line-height: 1.5; margin-bottom: 4px; }

        /* --- DOCUMENTOS LEGALES (SPA) --- */
        .legal-doc { position: relative; min-height: 70vh; }
        .legal-doc__glow {
            position: absolute;
            top: 4rem;
            left: 50%;
            transform: translateX(-50%);
            width: min(70%, 640px);
            height: 180px;
            background: rgba(255, 0, 85, 0.12);
            filter: blur(90px);
            pointer-events: none;
        }
        .legal-doc__inner { width: 100%; }
        .legal-doc__back {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: #9ca3af;
            font-size: 0.75rem;
            font-weight: 800;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            transition: color 0.25s ease;
        }
        .legal-doc__back:hover { color: #fff; }
        .legal-doc__intro {
            border: 1px solid rgba(255, 0, 85, 0.25);
            background: rgba(255, 0, 85, 0.06);
            border-radius: 1rem;
            padding: 1.1rem 1.35rem;
        }
        .legal-doc__body {
            color: #d1d5db;
            font-weight: 300;
            font-size: 1.02rem;
            line-height: 1.8;
            max-width: none;
            text-align: center;
        }
        .legal-doc__body h2 {
            font-family: 'Syncopate', sans-serif;
            text-transform: uppercase;
            color: #fff;
            font-weight: 900;
            font-size: clamp(1.05rem, 2.4vw, 1.35rem);
            letter-spacing: 0.04em;
            margin: 2.25rem 0 0.85rem;
            padding-top: 0.5rem;
            border-top: 1px solid rgba(255, 255, 255, 0.08);
            text-align: center;
        }
        .legal-doc__body h2:first-child {
            margin-top: 0;
            border-top: 0;
            padding-top: 0;
        }
        .legal-doc__body p { margin: 0 0 1rem; }
        .legal-doc__body ul {
            margin: 0 auto 1.25rem;
            padding-left: 0;
            list-style-position: inside;
            border-left: none;
            display: inline-block;
            text-align: left;
            max-width: 42rem;
        }
        .legal-doc__body li { margin-bottom: 0.55rem; }
        .legal-doc__body strong { color: #fff; font-weight: 700; }
        .legal-doc__body a { color: #ff0055; text-decoration: underline; text-underline-offset: 3px; }
        .legal-doc__body a:hover { color: #fff; }

        /* --- PREFERENCIAS DE COOKIES (popup) --- */
        .cookie-prefs-overlay {
            position: fixed;
            inset: 0;
            z-index: 100050;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1.25rem;
            background: rgba(0, 0, 0, 0.88);
            backdrop-filter: blur(16px);
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.35s ease;
        }
        .cookie-prefs-overlay.is-open {
            opacity: 1;
            pointer-events: auto;
        }
        .cookie-prefs-box {
            position: relative;
            width: min(920px, 100%);
            max-height: min(90vh, 820px);
            overflow-y: auto;
            background: linear-gradient(180deg, #0c0c0c 0%, #050505 100%);
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 1.75rem;
            padding: 1.75rem 1.5rem 1.5rem;
            box-shadow: 0 30px 80px rgba(0, 0, 0, 0.75), 0 0 40px rgba(255, 0, 85, 0.12);
            transform: translateY(18px) scale(0.96);
            transition: transform 0.4s cubic-bezier(0.34, 1.35, 0.64, 1);
        }
        .cookie-prefs-overlay.is-open .cookie-prefs-box {
            transform: translateY(0) scale(1);
        }
        @media (min-width: 768px) {
            .cookie-prefs-box { padding: 2.25rem 2.25rem 2rem; }
        }
        .cookie-prefs-close {
            position: absolute;
            top: 1rem;
            right: 1rem;
            z-index: 5;
            width: 2.5rem;
            height: 2.5rem;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.12);
            background: rgba(255, 255, 255, 0.04);
            color: #9ca3af;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            transition: all 0.25s ease;
        }
        .cookie-prefs-close:hover {
            color: #fff;
            border-color: #ff0055;
            background: rgba(255, 0, 85, 0.15);
        }
        .cookie-prefs-header {
            padding-right: 3.25rem;
            margin-bottom: 1rem;
        }
        .cookie-prefs-kicker {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            color: #ff0055;
            font-size: 0.68rem;
            font-weight: 900;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            margin-bottom: 0.65rem;
        }
        .cookie-prefs-title {
            margin: 0;
            font-family: 'Syncopate', sans-serif;
            font-weight: 900;
            text-transform: uppercase;
            color: #fff;
            font-size: clamp(1.35rem, 3.2vw, 2rem);
            line-height: 1.1;
            letter-spacing: 0.02em;
        }
        .cookie-prefs-title span { color: #ff0055; }
        .cookie-prefs-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.6rem;
            margin: 0 0 1.35rem;
            padding-right: 0;
        }
        .cookie-prefs-btn {
            font-family: 'Syncopate', sans-serif;
            font-size: 0.62rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            padding: 0.7rem 0.95rem;
            border-radius: 999px;
            transition: all 0.25s ease;
            white-space: nowrap;
        }
        .cookie-prefs-btn--solid {
            background: #ff0055;
            color: #fff;
            border: 1px solid #ff0055;
            box-shadow: 0 0 18px rgba(255, 0, 85, 0.35);
        }
        .cookie-prefs-btn--solid:hover {
            background: #fff;
            color: #000;
            border-color: #fff;
        }
        .cookie-prefs-btn--ghost {
            background: transparent;
            color: #e5e7eb;
            border: 1px solid rgba(255, 255, 255, 0.22);
        }
        .cookie-prefs-btn--ghost:hover {
            border-color: #ff0055;
            color: #fff;
            background: rgba(255, 0, 85, 0.1);
        }
        .cookie-prefs-intro {
            border-left: 3px solid #ff0055;
            padding: 0.85rem 1rem;
            margin-bottom: 1.25rem;
            background: rgba(255, 0, 85, 0.06);
            border-radius: 0 0.85rem 0.85rem 0;
        }
        .cookie-prefs-intro__lead {
            margin: 0 0 0.35rem;
            color: #fff;
            font-weight: 800;
            font-size: 0.95rem;
        }
        .cookie-prefs-intro__text {
            margin: 0;
            color: #9ca3af;
            font-size: 0.88rem;
            font-weight: 300;
            line-height: 1.55;
        }
        .cookie-prefs-intro__text a {
            color: #ff0055;
            text-decoration: underline;
            text-underline-offset: 2px;
        }
        .cookie-prefs-intro__text a:hover { color: #fff; }
        .cookie-prefs-list {
            list-style: none;
            margin: 0;
            padding: 0;
            border-top: 1px solid rgba(255, 255, 255, 0.08);
        }
        .cookie-prefs-item {
            display: grid;
            grid-template-columns: auto 1fr auto;
            gap: 0.9rem;
            align-items: center;
            padding: 1.1rem 0;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }
        .cookie-prefs-item__icon {
            width: 2.35rem;
            height: 2.35rem;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.14);
            background: rgba(255, 255, 255, 0.04);
            color: #ff0055;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 1rem;
        }
        .cookie-prefs-item__icon--locked {
            background: rgba(255, 0, 85, 0.15);
            border-color: rgba(255, 0, 85, 0.45);
            color: #fff;
        }
        .cookie-prefs-item__title {
            margin: 0 0 0.25rem;
            color: #fff;
            font-weight: 800;
            font-size: 0.95rem;
        }
        .cookie-prefs-item__desc {
            margin: 0;
            color: #9ca3af;
            font-size: 0.82rem;
            font-weight: 300;
            line-height: 1.5;
        }
        .cookie-prefs-switch {
            position: relative;
            width: 48px;
            height: 28px;
            flex-shrink: 0;
            cursor: pointer;
        }
        .cookie-prefs-switch input {
            position: absolute;
            opacity: 0;
            width: 0;
            height: 0;
        }
        .cookie-prefs-switch__ui {
            position: absolute;
            inset: 0;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.12);
            border: 1px solid rgba(255, 255, 255, 0.16);
            transition: all 0.25s ease;
        }
        .cookie-prefs-switch__ui::after {
            content: '';
            position: absolute;
            top: 3px;
            left: 3px;
            width: 20px;
            height: 20px;
            border-radius: 999px;
            background: #fff;
            transition: transform 0.25s ease;
        }
        .cookie-prefs-switch input:checked + .cookie-prefs-switch__ui {
            background: #ff0055;
            border-color: #ff0055;
            box-shadow: 0 0 14px rgba(255, 0, 85, 0.45);
        }
        .cookie-prefs-switch input:checked + .cookie-prefs-switch__ui::after {
            transform: translateX(20px);
        }
        .cookie-prefs-switch--locked {
            cursor: not-allowed;
            opacity: 0.85;
        }
        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        /* --- BANNER CONSENTIMIENTO (primera visita) --- */
        .cookie-consent-banner {
            position: fixed;
            left: 50%;
            bottom: 1.25rem;
            transform: translateX(-50%) translateY(120%);
            z-index: 100040;
            width: min(1040px, calc(100% - 1.5rem));
            opacity: 0;
            pointer-events: none;
            transition: transform 0.45s cubic-bezier(0.34, 1.2, 0.64, 1), opacity 0.35s ease;
        }
        .cookie-consent-banner.is-visible {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
            pointer-events: auto;
        }
        .cookie-consent-banner__inner {
            display: flex;
            flex-direction: column;
            gap: 1.1rem;
            padding: 1.25rem 1.25rem 1.15rem;
            background: linear-gradient(180deg, #111 0%, #070707 100%);
            border: 1px solid rgba(255, 255, 255, 0.14);
            border-radius: 1.35rem;
            box-shadow: 0 24px 60px rgba(0, 0, 0, 0.65), 0 0 28px rgba(255, 0, 85, 0.12);
        }
        @media (min-width: 860px) {
            .cookie-consent-banner__inner {
                flex-direction: row;
                align-items: center;
                justify-content: space-between;
                gap: 1.5rem;
                padding: 1.35rem 1.5rem;
            }
        }
        .cookie-consent-banner__kicker {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            color: #ff0055;
            font-size: 0.65rem;
            font-weight: 900;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            margin-bottom: 0.4rem;
        }
        .cookie-consent-banner__title {
            margin: 0 0 0.45rem;
            font-family: 'Syncopate', sans-serif;
            font-weight: 900;
            text-transform: uppercase;
            color: #fff;
            font-size: clamp(1.05rem, 2.4vw, 1.35rem);
            line-height: 1.15;
        }
        .cookie-consent-banner__title span { color: #ff0055; }
        .cookie-consent-banner__text {
            margin: 0;
            color: #9ca3af;
            font-size: 0.84rem;
            font-weight: 300;
            line-height: 1.55;
            max-width: 52rem;
        }
        .cookie-consent-banner__text a {
            color: #ff0055;
            text-decoration: underline;
            text-underline-offset: 2px;
        }
        .cookie-consent-banner__text a:hover { color: #fff; }
        .cookie-consent-banner__actions {
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
            flex-shrink: 0;
        }
        .cookie-consent-btn {
            font-family: 'Syncopate', sans-serif;
            font-size: 0.6rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            padding: 0.75rem 1rem;
            border-radius: 0.65rem;
            transition: all 0.25s ease;
            white-space: nowrap;
        }
        .cookie-consent-btn--ghost {
            background: transparent;
            color: #e5e7eb;
            border: 1px solid rgba(255, 255, 255, 0.22);
        }
        .cookie-consent-btn--ghost:hover {
            border-color: #ff0055;
            color: #fff;
            background: rgba(255, 0, 85, 0.1);
        }
        .cookie-consent-btn--solid {
            background: #ff0055;
            color: #fff;
            border: 1px solid #ff0055;
            box-shadow: 0 0 18px rgba(255, 0, 85, 0.35);
        }
        .cookie-consent-btn--solid:hover {
            background: #fff;
            color: #000;
            border-color: #fff;
        }

        /* Redes sociales (footer + contacto) */
        .brand-socials {
            display: flex;
            flex-wrap: wrap;
            align-items: flex-start;
            gap: 0.85rem 1rem;
        }
        .brand-social {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.4rem;
            width: 4.4rem;
            color: #fff;
            text-decoration: none;
        }
        .brand-social__icon {
            width: 3.55rem;
            height: 3.55rem;
            border-radius: 999px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.9rem;
            color: #fff;
            transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
        }
        .brand-social:hover .brand-social__icon {
            transform: translateY(-4px) scale(1.08);
            filter: brightness(1.08);
        }
        .brand-social__label {
            font-size: 0.62rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: #9ca3af;
            line-height: 1.2;
            text-align: center;
        }
        .brand-social--facebook .brand-social__icon {
            background: #1877F2;
            box-shadow: 0 10px 22px rgba(24, 119, 242, 0.38);
        }
        .brand-social--instagram .brand-social__icon {
            background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
            box-shadow: 0 10px 22px rgba(214, 36, 159, 0.42);
        }
        .brand-social--youtube .brand-social__icon {
            background: #FF0000;
            box-shadow: 0 10px 22px rgba(255, 0, 0, 0.38);
        }
        body:has(#view-barre.active) .brand-social--studio {
            display: none;
        }

        /* Footer legal */
        .footer-legal__copy {
            margin: 0 0 1.35rem;
            text-align: center;
        }
        .footer-legal__credit {
            color: #d1d5db;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-decoration: none;
        }
        .footer-legal__credit:hover {
            color: #ff0055;
        }
        .footer-legal__nav {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            gap: 0.65rem 0;
            max-width: 56rem;
            margin: 0 auto;
        }
        .footer-legal__link {
            color: #9ca3af;
            font-size: 0.72rem;
            letter-spacing: 0.04em;
            padding: 0.35rem 0.85rem;
            transition: color 0.25s ease;
            white-space: nowrap;
        }
        .footer-legal__link:not(:last-child) {
            border-right: 1px solid rgba(255, 255, 255, 0.14);
        }
        .footer-legal__link:hover {
            color: #fff;
        }
        @media (max-width: 640px) {
            .footer-legal__nav {
                flex-direction: column;
                gap: 0.55rem;
            }
            .footer-legal__link:not(:last-child) {
                border-right: 0;
                border-bottom: 1px solid rgba(255, 255, 255, 0.08);
                padding-bottom: 0.55rem;
                width: 100%;
                text-align: center;
            }
        }

        /* NUEVA ANIMACIÓN FLOTANTE (Sección Todos los estilos) */
        @keyframes float3D {
            0% { transform: translateY(0px) rotate(-3deg); }
            50% { transform: translateY(-15px) rotate(1deg); }
            100% { transform: translateY(0px) rotate(-3deg); }
        }
        .animate-float3D { animation: float3D 6s ease-in-out infinite; }

        /* Adaptación al redimensionar / zoom: no recortar secciones */
        #view-barre.spa-view,
        #view-clases.spa-view,
        #view-musical.spa-view,
        #view-campamentos.spa-view,
        #view-tienda.spa-view,
        #view-equipo.spa-view,
        #view-fiestas.spa-view,
        #view-privacidad.spa-view,
        #view-aviso-legal.spa-view,
        #view-cookies.spa-view,
        #view-terminos.spa-view,
        #view-info-contacto.spa-view {
            overflow-x: hidden;
            overflow-y: visible;
        }
        .spa-view img,
        .spa-view video,
        .spa-view iframe {
            max-width: 100%;
        }
        .spa-view h1,
        .spa-view h2 {
            max-width: 100%;
            overflow-wrap: break-word;
        }
        .acc-collapsed h3 {
            overflow-wrap: normal;
            word-break: keep-all;
        }