:root { 
            --fondo-crema: #F7F5F0; --inpulso-azul: #2d4f82; --inpulso-rojo: #C64A49; 
            --sara-morado: #D2B4DE; --sara-morado-dark: #6B3FA0; --sara-spine: #4A2868;
            --fondo-ergonomico: #CFC8B7; --texto-principal: #1A1F1C; --texto-secundario: #5A6B63; 
            --fuente-titulos: 'Playfair Display', serif; --fuente-textos: 'Montserrat', sans-serif; 
            --radio-secciones: 40px; --radio-tarjetas: 28px;
            --ios-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
            --ios-frost: 14px;
        }

        *, *::before, *::after { box-sizing: border-box; }

        a, button, .apple-glass-btn { transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); }

        .apple-glass-btn {
            display: inline-flex; align-items: center; justify-content: center; gap: 10px;
            padding: 16px 36px; font-size: 0.85rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
            text-decoration: none; cursor: pointer; position: relative; overflow: hidden; text-align: center;
            font-family: var(--fuente-textos);
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%);
            border-radius: 50px; border: 1px solid rgba(255, 255, 255, 0.2);
            border-top: 1px solid rgba(255, 255, 255, 0.8); border-left: 1px solid rgba(255, 255, 255, 0.5);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); color: #fff;
            will-change: transform;
        }
        .apple-glass-btn:hover {
            background: rgba(255, 255, 255, 0.25);
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
            color: #fff;
        }
        /* Mismo glass en fondos claros: texto azul para contraste */
        .apple-glass-btn--on-light,
        .resource-download-btn,
        .resource-curtain__toggle,
        .btn-modal-action,
        .btn-modal-secondary {
            background: rgba(255, 255, 255, 0.42);
            color: var(--inpulso-azul);
            border: 1px solid rgba(45, 79, 130, 0.14);
            border-top: 1px solid rgba(255, 255, 255, 0.95);
            border-left: 1px solid rgba(255, 255, 255, 0.78);
            box-shadow: 0 10px 28px rgba(45, 79, 130, 0.1);
            text-shadow: none;
        }
        .apple-glass-btn--on-light:hover,
        .resource-download-btn:hover,
        .resource-curtain__toggle:hover,
        .btn-modal-action:hover,
        .btn-modal-secondary:hover {
            background: rgba(255, 255, 255, 0.72);
            color: var(--inpulso-azul);
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 14px 32px rgba(45, 79, 130, 0.14);
        }

        body, html {
            margin: 0; padding: 0; background: var(--fondo-crema); color: var(--texto-principal);
            font-family: var(--fuente-textos); overflow-x: hidden; overflow-y: auto;
            -webkit-font-smoothing: antialiased;
            -webkit-overflow-scrolling: touch;
        }
        .talleres-ambient {
            position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
        }
        .talleres-ambient span {
            position: absolute; border-radius: 50%; filter: blur(90px); opacity: 0.4;
        }
        .talleres-ambient .b1 { width: 45vw; height: 45vw; background: rgba(45, 79, 130, 0.14); top: -8%; right: -5%; }
        .talleres-ambient .b2 { width: 38vw; height: 38vw; background: rgba(198, 74, 73, 0.1); bottom: 5%; left: -8%; }
        .talleres-ambient .b3 { width: 30vw; height: 30vw; background: rgba(210, 180, 222, 0.35); top: 45%; left: 35%; }

        .page-wrap { position: relative; z-index: 1; overflow: visible; }

        /* ——— PORTADA TALLERES: limpia, simple, premium ——— */
        .talleres-cinema-hero {
            position: relative;
            z-index: 1;
            width: 100%;
            min-height: 100svh;
            height: 100svh;
            display: flex;
            align-items: flex-end;
            justify-content: flex-start;
            overflow: hidden;
            color: #fff;
            touch-action: pan-y;
            padding: calc(110px + env(safe-area-inset-top, 0px)) clamp(22px, 6vw, 80px) clamp(40px, 7vh, 72px);
            background: #121820;
            isolation: isolate;
            box-sizing: border-box;
        }

        .th-media {
            position: absolute;
            inset: 0;
            z-index: 0;
        }

        .th-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 35%;
            display: block;
            transform: scale(1.04);
            filter: saturate(0.88) contrast(1.05) brightness(0.78);
        }

        .th-media__shade {
            position: absolute;
            inset: 0;
            background:
                linear-gradient(180deg,
                    rgba(12, 18, 28, 0.55) 0%,
                    rgba(12, 18, 28, 0.28) 32%,
                    rgba(12, 18, 28, 0.52) 62%,
                    rgba(12, 18, 28, 0.88) 100%),
                linear-gradient(90deg,
                    rgba(12, 18, 28, 0.55) 0%,
                    transparent 55%);
            pointer-events: none;
        }

        .th-fade {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: clamp(120px, 22vh, 200px);
            z-index: 2;
            pointer-events: none;
            background: linear-gradient(
                to bottom,
                transparent 0%,
                rgba(18, 24, 32, 0.35) 40%,
                rgba(26, 34, 48, 0.82) 72%,
                #1a2230 100%
            );
        }

        .th-inner {
            position: relative;
            z-index: 3;
            width: min(720px, 100%);
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: clamp(1rem, 2.2vw, 1.35rem);
        }

        .th-eyebrow {
            margin: 0;
            font-family: var(--fuente-textos);
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.72);
        }

        .th-title {
            margin: 0;
            font-family: var(--fuente-titulos);
            font-size: clamp(3rem, 8vw, 5.6rem);
            font-weight: 400;
            line-height: 0.94;
            letter-spacing: -0.03em;
            color: #fff;
            max-width: 12ch;
            text-shadow: 0 18px 50px rgba(0, 0, 0, 0.28);
        }

        .th-title em {
            font-style: italic;
            font-weight: 400;
            color: #f3d2b0;
        }

        .th-lead {
            margin: 0;
            max-width: 38ch;
            font-family: var(--fuente-textos);
            font-size: clamp(0.98rem, 1.7vw, 1.12rem);
            line-height: 1.65;
            font-weight: 300;
            color: rgba(255, 255, 255, 0.82);
        }

        .th-actions {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.85rem 1.35rem;
            margin-top: 0.35rem;
        }

        .th-cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.95rem 1.55rem;
            border-radius: 50px;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: #fff;
            text-decoration: none;
            font-family: var(--fuente-textos);
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-top: 1px solid rgba(255, 255, 255, 0.8);
            border-left: 1px solid rgba(255, 255, 255, 0.5);
            cursor: pointer;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease, box-shadow 0.3s ease;
        }

        .th-cta:hover {
            transform: translateY(-3px) scale(1.02);
            background: rgba(255, 255, 255, 0.25);
            color: #fff;
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
        }

        .th-link {
            display: inline-flex;
            align-items: center;
            gap: 0.4rem;
            color: rgba(255, 255, 255, 0.86);
            text-decoration: none;
            font-family: var(--fuente-textos);
            font-size: 0.78rem;
            font-weight: 500;
            letter-spacing: 0.02em;
            border-bottom: 1px solid rgba(255, 255, 255, 0.35);
            padding-bottom: 0.15rem;
            transition: color 0.3s ease, border-color 0.3s ease, gap 0.3s ease;
        }

        .th-link:hover {
            color: #f3d2b0;
            border-color: rgba(243, 210, 176, 0.7);
            gap: 0.65rem;
        }

        @media (max-width: 1024px), (pointer: coarse) {
            .talleres-cinema-hero {
                min-height: 100svh;
                height: 100svh;
                align-items: flex-end;
            }
            .th-media img {
                transform: none;
                filter: saturate(0.9) contrast(1.04) brightness(0.72);
            }
            .store-section {
                margin-top: -1px;
                padding-top: clamp(32px, 6vh, 56px);
            }
        }

        @media (max-width: 768px) {
            .talleres-cinema-hero {
                min-height: 100svh;
                height: 100svh;
                padding: calc(88px + env(safe-area-inset-top, 0px)) clamp(18px, 5vw, 28px) clamp(24px, 4.5vh, 36px);
            }
            .th-title {
                font-size: clamp(2.7rem, 13vw, 3.6rem);
                max-width: 10ch;
            }
            .th-lead {
                font-size: 0.95rem;
                max-width: 32ch;
            }
            .th-actions {
                flex-direction: column;
                align-items: flex-start;
                gap: 1rem;
            }
            .th-fade {
                height: clamp(100px, 18vh, 150px);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .th-media img { transform: none; }
        }

        /* Liquid Glass material */
        .liquid-glass {
            position: relative; isolation: isolate; overflow: hidden;
        }
        .liquid-glass::before {
            content: ''; position: absolute; inset: 0; z-index: 0; border-radius: inherit;
            background: rgba(255, 255, 255, 0.22);
            backdrop-filter: blur(var(--ios-frost)) saturate(180%);
            -webkit-backdrop-filter: blur(var(--ios-frost)) saturate(180%);
            box-shadow: inset 0 1px 1px rgba(255,255,255,0.65);
            pointer-events: none;
        }
        .liquid-glass::after {
            content: ''; position: absolute; inset: 0; z-index: 4; border-radius: inherit;
            padding: 1px; pointer-events: none;
            background: linear-gradient(-45deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.5) 100%);
            -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;
        }
        .glass-shine {
            position: absolute; top: -35%; left: -10%; width: 50%; height: 70%;
            background: radial-gradient(ellipse, rgba(255,255,255,0.55) 0%, transparent 70%);
            transform: rotate(-10deg); pointer-events: none; z-index: 1; opacity: 0.65;
        }
        .liquid-glass > *:not(.glass-shine) { position: relative; z-index: 2; }

        /* Catálogo vertical — paneles con fade (mismo lenguaje que servicios) */
        .store-section {
            position: relative;
            padding: clamp(32px, 6vh, 64px) 0 14vh;
            max-width: none;
            margin: -clamp(0.5rem, 2vw, 1.25rem) auto 0;
            background:
                linear-gradient(180deg,
                    rgba(247, 245, 240, 0) 0%,
                    var(--fondo-crema) 48px,
                    var(--fondo-crema) 100%);
        }
        .store-intro {
            text-align: center;
            max-width: 560px;
            margin: 0 auto 2.75rem;
            padding: 0 clamp(16px, 5vw, 48px);
        }
        .store-intro h2 {
            font-family: var(--fuente-titulos);
            font-size: clamp(2rem, 4vw, 2.8rem);
            color: var(--inpulso-azul);
            margin: 0 0 0.75rem;
            font-weight: 400;
            letter-spacing: -0.03em;
        }
        .store-intro p {
            color: var(--texto-secundario);
            line-height: 1.7;
            margin: 0;
            font-weight: 300;
        }

        .store-rail-wrap {
            position: relative;
            max-width: 1180px;
            margin: 0 auto;
            padding: 0 clamp(16px, 4vw, 32px);
        }

        .store-rail-wrap::before,
        .store-rail-wrap::after {
            display: none;
        }

        .store-rail {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 1.15rem;
            padding: 12px 0 28px;
        }

        .taller-panel {
            position: relative;
            flex: 0 0 auto;
            width: 100%;
            height: clamp(380px, 58vw, 460px);
            border-radius: 26px;
            overflow: hidden;
            cursor: pointer;
            background: #1a2230;
            box-shadow: 0 22px 48px rgba(26, 31, 28, 0.14);
            transform: translateZ(0);
            transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s ease;
        }

        /* Escritorio: fila centrada; al agregar más, se encogen */
        @media (min-width: 900px) {
            .store-rail-wrap {
                max-width: 1180px;
                padding: 0 clamp(20px, 3vw, 40px);
            }

            .store-rail {
                flex-direction: row;
                flex-wrap: nowrap;
                justify-content: center;
                align-items: stretch;
                gap: clamp(0.85rem, 1.8vw, 1.35rem);
                padding: 18px 0 36px;
                overflow: visible;
                cursor: default;
                -webkit-mask-image: none;
                mask-image: none;
            }

            .taller-panel {
                flex: 1 1 0;
                width: auto;
                min-width: 0;
                max-width: 320px;
                height: clamp(400px, 40vw, 460px);
            }

            .taller-panel-copy h3 {
                font-size: clamp(1.35rem, 1.6vw, 2rem);
            }
        }

        .taller-panel:hover {
            transform: translateY(-6px);
            box-shadow: 0 28px 60px rgba(26, 31, 28, 0.2);
        }

        .taller-panel:active { transform: scale(0.985); }

        .taller-panel-media {
            position: absolute;
            inset: 0;
        }

        .taller-panel-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transform: scale(1.04);
            transition: transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
            filter: saturate(0.92) contrast(1.05);
        }

        .taller-panel:hover .taller-panel-media img {
            transform: scale(1.1);
        }

        .taller-panel-media::after {
            content: '';
            position: absolute;
            inset: 0;
            background:
                linear-gradient(180deg,
                    rgba(8, 12, 18, 0.12) 0%,
                    rgba(8, 12, 18, 0.08) 32%,
                    rgba(8, 12, 18, 0.55) 68%,
                    rgba(8, 12, 18, 0.9) 100%),
                radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.12), transparent 45%);
            pointer-events: none;
        }

        .taller-panel-tag {
            position: absolute;
            top: 14px;
            right: 14px;
            z-index: 3;
            padding: 6px 12px;
            border-radius: 999px;
            font-size: 0.6rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: #fff;
            background: rgba(198, 74, 73, 0.92);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
        }

        .taller-panel-tag--azul { background: rgba(45, 79, 130, 0.92); }
        .taller-panel-tag--muted { background: rgba(90, 107, 99, 0.9); }

        .taller-panel-copy {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 2;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            padding: 1.4rem 1.4rem 1.5rem;
            color: #fff;
        }

        .taller-panel-index {
            font-family: var(--fuente-textos);
            font-size: 0.62rem;
            font-weight: 700;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            color: rgba(255, 210, 205, 0.95);
            margin-bottom: 0.5rem;
        }

        .taller-panel-kicker {
            margin: 0 0 0.35rem;
            font-family: var(--fuente-textos);
            font-size: 0.68rem;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.72);
        }

        .taller-panel-copy h3 {
            margin: 0 0 0.55rem;
            font-family: var(--fuente-titulos);
            font-size: clamp(1.55rem, 4.5vw, 2.15rem);
            font-weight: 400;
            line-height: 1.08;
            letter-spacing: -0.02em;
            color: #fff;
        }

        .taller-panel-meta {
            margin: 0 0 1rem;
            font-family: var(--fuente-textos);
            font-size: 0.84rem;
            line-height: 1.45;
            font-weight: 300;
            color: rgba(255, 255, 255, 0.8);
        }

        .taller-panel-cta {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            color: #fff;
            font-family: var(--fuente-textos);
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            border-bottom: 1px solid rgba(255, 255, 255, 0.35);
            padding-bottom: 0.15rem;
            transition: gap 0.3s ease, border-color 0.3s ease, color 0.3s ease;
        }

        .taller-panel:hover .taller-panel-cta {
            color: #ffd4cf;
            border-color: rgba(255, 212, 207, 0.7);
            gap: 0.7rem;
        }

        .taller-panel.is-sara .taller-panel-cta::before { content: '📖'; }
        .taller-panel.is-heridas .taller-panel-cta::before { content: '🌿'; }
        .taller-panel.is-vinyl .taller-panel-cta::before { content: '💿'; }

        .store-rail-hint {
            text-align: center;
            margin: 0.15rem 0 0;
            font-size: 0.72rem;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(90, 107, 99, 0.7);
            font-weight: 600;
        }

        /* Recurso digital destacado — premium */
        .resource-section {
            padding: 0 clamp(16px, 5vw, 48px) clamp(64px, 10vh, 110px);
            max-width: 1320px;
            margin: 0 auto;
        }
        .resource-card {
            position: relative;
            border-radius: clamp(32px, 4vw, 44px);
            display: grid;
            grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
            gap: clamp(1.75rem, 4vw, 3.25rem);
            padding: clamp(1.5rem, 4vw, 3.25rem);
            overflow: hidden;
            background:
                radial-gradient(circle at 8% 12%, rgba(126, 184, 255, 0.14), transparent 32%),
                radial-gradient(circle at 94% 8%, rgba(198, 74, 73, 0.1), transparent 28%),
                linear-gradient(165deg, rgba(255, 255, 255, 0.72) 0%, rgba(247, 245, 240, 0.92) 100%);
            border: 1px solid rgba(255, 255, 255, 0.82);
            box-shadow:
                0 32px 90px rgba(45, 79, 130, 0.1),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
        }
        .resource-card::before {
            content: '';
            position: absolute;
            inset: 0;
            background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
            pointer-events: none;
        }
        .resource-visual {
            position: relative;
            min-height: 100%;
            border-radius: clamp(24px, 3vw, 32px);
            padding: clamp(1.75rem, 4vw, 2.75rem);
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            gap: 1.5rem;
            color: #fff;
            background:
                linear-gradient(155deg, rgba(255, 255, 255, 0.1) 0%, transparent 38%),
                linear-gradient(165deg, #1a3358 0%, #243f68 38%, #2d4f82 62%, #1f2d42 100%);
            overflow: hidden;
            box-shadow:
                inset 0 1px 0 rgba(255, 255, 255, 0.16),
                0 24px 56px rgba(26, 51, 88, 0.28);
        }
        .resource-visual::before {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse 70% 50% at 20% 0%, rgba(255, 220, 180, 0.14), transparent 55%),
                radial-gradient(ellipse 50% 40% at 100% 100%, rgba(198, 74, 73, 0.12), transparent 50%);
            pointer-events: none;
        }
        .resource-visual::after {
            content: '';
            position: absolute;
            width: 240px;
            height: 240px;
            right: -90px;
            bottom: -80px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(255, 255, 255, 0.12), transparent 70%);
            pointer-events: none;
        }
        .resource-visual__top { position: relative; z-index: 1; }
        .resource-kicker {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.64rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.22em;
            color: rgba(255, 255, 255, 0.68);
        }
        .resource-kicker::before {
            content: '';
            width: 24px;
            height: 1px;
            background: linear-gradient(90deg, rgba(255, 200, 160, 0.9), transparent);
        }
        .resource-visual h2 {
            font-family: var(--fuente-titulos);
            font-size: clamp(2rem, 4.8vw, 3.6rem);
            line-height: 1.02;
            font-weight: 400;
            margin: 1.35rem 0 1rem;
            max-width: 520px;
            letter-spacing: -0.02em;
        }
        .resource-visual p {
            margin: 0;
            max-width: 440px;
            line-height: 1.78;
            color: rgba(255, 255, 255, 0.78);
            font-weight: 300;
            font-size: clamp(0.92rem, 1.6vw, 1.02rem);
        }
        .resource-visual__bottom {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            gap: 0.85rem;
        }
        .resource-companion {
            padding: 1rem 1.1rem;
            border-radius: 18px;
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.14);
            backdrop-filter: blur(8px);
        }
        .resource-companion span {
            display: block;
            font-size: 0.58rem;
            font-weight: 700;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.52);
            margin-bottom: 0.35rem;
        }
        .resource-companion strong {
            display: block;
            font-family: var(--fuente-titulos);
            font-size: 1.05rem;
            font-weight: 400;
            line-height: 1.35;
            color: rgba(255, 255, 255, 0.94);
        }
        .resource-badge-row {
            display: flex;
            flex-wrap: wrap;
            gap: 0.55rem;
        }
        .resource-price {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            width: fit-content;
            padding: 0.55rem 0.95rem;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.1);
            border: 1px solid rgba(255, 255, 255, 0.16);
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.88);
        }
        .resource-price--free {
            background: linear-gradient(135deg, rgba(198, 74, 73, 0.92), rgba(168, 58, 57, 0.95));
            border-color: rgba(255, 255, 255, 0.22);
            color: #fff;
            box-shadow: 0 8px 24px rgba(198, 74, 73, 0.28);
        }
        .resource-content {
            position: relative;
            z-index: 1;
            display: flex;
            flex-direction: column;
            gap: 1.35rem;
        }
        .resource-content h3 {
            font-family: var(--fuente-titulos);
            font-size: clamp(1.65rem, 3.2vw, 2.35rem);
            line-height: 1.14;
            color: var(--inpulso-azul);
            margin: 0;
            font-weight: 400;
            letter-spacing: -0.015em;
        }
        .resource-content p {
            margin: 0;
            line-height: 1.82;
            color: var(--texto-secundario);
            font-weight: 300;
            font-size: clamp(0.92rem, 1.5vw, 1rem);
        }
        .resource-content p strong {
            color: var(--texto-principal);
            font-weight: 600;
        }
        .resource-includes {
            padding-top: 0.35rem;
        }
        .resource-includes .resource-kicker {
            color: var(--inpulso-rojo);
            margin-bottom: 0.85rem;
        }
        .resource-includes .resource-kicker::before {
            background: linear-gradient(90deg, var(--inpulso-rojo), transparent);
        }
        .resource-list {
            list-style: none;
            padding: 0;
            margin: 0;
            display: grid;
            gap: 0.82rem;
        }
        .resource-list li {
            position: relative;
            padding: 0.85rem 1rem 0.85rem 2.5rem;
            line-height: 1.62;
            color: var(--texto-principal);
            font-size: 0.92rem;
            background: rgba(255, 255, 255, 0.55);
            border: 1px solid rgba(45, 79, 130, 0.08);
            border-radius: 16px;
            box-shadow: 0 4px 16px rgba(45, 79, 130, 0.04);
        }
        .resource-list li::before {
            content: '';
            position: absolute;
            left: 1rem;
            top: 1.15rem;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--inpulso-rojo), var(--inpulso-azul));
            box-shadow: 0 0 0 3px rgba(45, 79, 130, 0.08);
        }
        .resource-promo {
            padding: 1.1rem 1.2rem;
            border-radius: 20px;
            background:
                linear-gradient(135deg, rgba(198, 74, 73, 0.08) 0%, rgba(45, 79, 130, 0.06) 100%);
            border: 1px solid rgba(198, 74, 73, 0.16);
            display: grid;
            gap: 0.35rem;
        }
        .resource-promo strong {
            font-family: var(--fuente-titulos);
            font-size: 1.12rem;
            font-weight: 400;
            color: var(--inpulso-rojo);
            line-height: 1.35;
        }
        .resource-promo span {
            font-size: 0.86rem;
            line-height: 1.6;
            color: var(--texto-secundario);
        }
        .resource-callout {
            padding: 1.15rem 1.2rem;
            border-radius: 20px;
            background: rgba(45, 79, 130, 0.05);
            border-left: 3px solid var(--inpulso-azul);
            color: var(--texto-secundario);
            line-height: 1.75;
            font-size: 0.94rem;
            font-style: italic;
            font-family: var(--fuente-titulos);
        }
        .resource-curtain {
            position: relative;
            max-height: 128px;
            overflow: hidden;
            transition: max-height 0.6s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .resource-curtain.is-open {
            max-height: 3200px;
        }
        .resource-curtain__inner {
            display: flex;
            flex-direction: column;
            gap: 1.35rem;
        }
        .resource-curtain__veil {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 88px;
            pointer-events: none;
            background: linear-gradient(180deg, rgba(247, 245, 240, 0) 0%, rgba(247, 245, 240, 0.88) 52%, rgba(247, 245, 240, 1) 100%);
            opacity: 1;
            transition: opacity 0.4s ease;
        }
        .resource-curtain__veil::after {
            content: '';
            position: absolute;
            left: 8%;
            right: 8%;
            bottom: 0;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(45, 79, 130, 0.14), transparent);
        }
        .resource-curtain.is-open .resource-curtain__veil {
            opacity: 0;
            pointer-events: none;
        }
        .resource-curtain__toggle {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.55rem;
            align-self: flex-start;
            margin: 0.15rem 0 0.35rem;
            padding: 0.85rem 1.35rem;
            border-radius: 50px;
            background: rgba(255, 255, 255, 0.42);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: var(--inpulso-azul);
            font-family: var(--fuente-textos);
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            cursor: pointer;
            border: 1px solid rgba(45, 79, 130, 0.14);
            border-top: 1px solid rgba(255, 255, 255, 0.95);
            border-left: 1px solid rgba(255, 255, 255, 0.78);
            box-shadow: 0 10px 28px rgba(45, 79, 130, 0.1);
            transition: background 0.3s ease, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
        }
        .resource-curtain__toggle:hover {
            background: rgba(255, 255, 255, 0.72);
            color: var(--inpulso-azul);
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 14px 32px rgba(45, 79, 130, 0.14);
        }
        .resource-curtain__toggle-icon {
            display: inline-block;
            font-size: 0.9rem;
            line-height: 1;
            transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
        }
        .resource-curtain__toggle[aria-expanded="true"] .resource-curtain__toggle-icon {
            transform: rotate(180deg);
        }
        .resource-curtain.is-open + .resource-curtain__toggle {
            margin-top: 0.5rem;
        }
        @media (prefers-reduced-motion: reduce) {
            .resource-curtain { transition: none; }
            .resource-curtain__toggle-icon { transition: none; }
        }
        .resource-actions {
            display: flex;
            flex-direction: column;
            gap: 1rem;
            margin-top: 0.35rem;
        }
        .resource-actions__paid {
            display: grid;
            gap: 0.85rem;
        }
        .resource-actions__paid-label {
            margin: 0;
            font-size: 0.68rem;
            font-weight: 800;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(45, 79, 130, 0.7);
        }
        .resource-download-panel {
            position: relative;
            width: min(100%, 540px);
            padding: clamp(1.15rem, 3vw, 1.5rem);
            border-radius: 28px;
            background:
                linear-gradient(155deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.48));
            border: 1px solid rgba(255, 255, 255, 0.9);
            box-shadow:
                0 20px 50px rgba(45, 79, 130, 0.1),
                inset 0 1px 0 rgba(255, 255, 255, 0.95);
        }
        .resource-download-panel h4 {
            margin: 0 0 0.35rem;
            font-family: var(--fuente-titulos);
            font-size: 1.25rem;
            font-weight: 400;
            color: var(--inpulso-azul);
        }
        .resource-download-panel > p {
            margin: 0 0 1rem;
            font-size: 0.84rem;
            line-height: 1.55;
            color: var(--texto-secundario);
        }
        .resource-download-grid {
            display: grid;
            gap: 0.75rem;
        }
        .resource-download-field label {
            display: block;
            margin-bottom: 0.35rem;
            font-size: 0.62rem;
            font-weight: 800;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(45, 79, 130, 0.75);
        }
        .resource-download-input {
            width: 100%;
            min-height: 46px;
            border: 1px solid rgba(45, 79, 130, 0.12);
            border-radius: 14px;
            padding: 0.75rem 0.95rem;
            background: rgba(255, 255, 255, 0.72);
            color: var(--texto-principal);
            font-family: var(--fuente-textos);
            font-size: 0.94rem;
            outline: none;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }
        .resource-download-input:focus {
            border-color: rgba(45, 79, 130, 0.35);
            box-shadow: 0 0 0 3px rgba(45, 79, 130, 0.08);
        }
        .resource-download-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            width: 100%;
            min-height: 50px;
            margin-top: 0.25rem;
            padding: 0.85rem 1.5rem;
            border-radius: 50px;
            background: rgba(255, 255, 255, 0.42);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: var(--inpulso-azul);
            font-family: var(--fuente-textos);
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            cursor: pointer;
            border: 1px solid rgba(45, 79, 130, 0.14);
            border-top: 1px solid rgba(255, 255, 255, 0.95);
            border-left: 1px solid rgba(255, 255, 255, 0.78);
            box-shadow: 0 10px 28px rgba(45, 79, 130, 0.1);
            transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease, box-shadow 0.3s ease;
        }
        .resource-download-btn:hover {
            background: rgba(255, 255, 255, 0.72);
            color: var(--inpulso-azul);
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 14px 32px rgba(45, 79, 130, 0.14);
        }
        .resource-download-btn:disabled {
            opacity: 0.65;
            cursor: wait;
            transform: none;
        }
        .resource-download-status {
            min-height: 1.2rem;
            margin-top: 0.65rem;
            font-size: 0.82rem;
            line-height: 1.5;
            color: var(--texto-secundario);
        }
        .resource-download-status.is-success { color: var(--inpulso-azul); font-weight: 600; }
        .resource-download-status.is-error { color: var(--inpulso-rojo); font-weight: 600; }
        .resource-stripe {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            max-width: 100%;
            padding: 10px;
            border-radius: 22px;
            background: rgba(255, 255, 255, 0.42);
            border: 1px solid rgba(255, 255, 255, 0.62);
            box-shadow: 0 16px 36px rgba(45, 79, 130, 0.12);
        }
        .resource-stripe.is-hidden { display: none; }
        .resource-stripe stripe-buy-button { display: block; max-width: 100%; }
        .resource-paid-note {
            font-size: 0.82rem;
            line-height: 1.55;
            color: var(--texto-secundario);
            margin: 0;
        }
        .resource-small {
            font-size: 0.78rem;
            color: var(--texto-secundario);
            line-height: 1.6;
        }
        @media (max-width: 900px) {
            .resource-card { grid-template-columns: 1fr; }
            .resource-visual { min-height: 380px; }
        }
        .purchase-glass-form {
            position: relative;
            isolation: isolate;
            overflow: hidden;
            width: min(100%, 520px);
            padding: clamp(1.05rem, 3vw, 1.45rem);
            border-radius: 34px;
            background:
                linear-gradient(145deg, rgba(255,255,255,0.38), rgba(255,255,255,0.14)),
                radial-gradient(circle at 18% 0%, rgba(126,184,255,0.26), transparent 40%),
                radial-gradient(circle at 100% 18%, rgba(198,74,73,0.16), transparent 34%);
            border: 1px solid rgba(255,255,255,0.5);
            border-top-color: rgba(255,255,255,0.88);
            border-left-color: rgba(255,255,255,0.72);
            box-shadow:
                0 32px 76px rgba(45, 79, 130, 0.18),
                0 10px 28px rgba(0, 0, 0, 0.06),
                inset 0 1px 1px rgba(255,255,255,0.78),
                inset 0 -1px 1px rgba(255,255,255,0.18);
            backdrop-filter: blur(34px) saturate(210%);
            -webkit-backdrop-filter: blur(34px) saturate(210%);
        }
        .purchase-glass-form::before {
            content: '';
            position: absolute;
            inset: 0;
            z-index: -1;
            background:
                linear-gradient(120deg, rgba(255,255,255,0.44), transparent 28%),
                radial-gradient(circle at 18% 22%, rgba(255,255,255,0.8) 0 2px, transparent 3px),
                radial-gradient(circle at 76% 18%, rgba(255,255,255,0.56) 0 1px, transparent 3px),
                radial-gradient(circle at 88% 78%, rgba(255,255,255,0.46) 0 2px, transparent 4px);
            opacity: 0.92;
            pointer-events: none;
        }
        .purchase-glass-form::after {
            content: '';
            position: absolute;
            inset: 1px;
            border-radius: inherit;
            pointer-events: none;
            background:
                linear-gradient(180deg, rgba(255,255,255,0.32), transparent 34%),
                radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.34), transparent 48%);
            mix-blend-mode: screen;
            opacity: 0.72;
        }
        .purchase-drop {
            position: absolute;
            border-radius: 999px;
            pointer-events: none;
            background:
                radial-gradient(circle at 30% 24%, rgba(255,255,255,0.98), rgba(255,255,255,0.34) 30%, rgba(255,255,255,0.08) 70%),
                linear-gradient(145deg, rgba(255,255,255,0.2), rgba(126,184,255,0.12));
            box-shadow:
                inset 2px 2px 4px rgba(255,255,255,0.74),
                inset -3px -4px 8px rgba(45,79,130,0.14),
                0 14px 30px rgba(45,79,130,0.13);
            backdrop-filter: blur(12px) saturate(160%);
            -webkit-backdrop-filter: blur(12px) saturate(160%);
            animation: purchaseDropFloat 8s ease-in-out infinite alternate;
            z-index: 1;
        }
        .purchase-drop--1 { width: 86px; height: 86px; right: -24px; top: -26px; }
        .purchase-drop--2 { width: 48px; height: 48px; left: 16px; bottom: 18px; animation-delay: -2.2s; }
        .purchase-drop--3 { width: 24px; height: 24px; right: 25%; bottom: 30px; animation-delay: -4s; }
        @keyframes purchaseDropFloat {
            from { transform: translate3d(0, 0, 0) scale(1); }
            to { transform: translate3d(10px, -12px, 0) scale(1.04); }
        }
        .purchase-form-grid {
            position: relative;
            z-index: 3;
            display: grid;
            gap: 0.82rem;
        }
        .purchase-form-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            padding: 0.2rem 0.1rem 0.4rem;
        }
        .purchase-form-title {
            display: grid;
            gap: 0.15rem;
        }
        .purchase-form-title strong {
            font-family: var(--fuente-titulos);
            font-size: clamp(1.15rem, 2.8vw, 1.45rem);
            font-weight: 400;
            color: var(--inpulso-azul);
            line-height: 1.1;
        }
        .purchase-form-title span {
            font-size: 0.68rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: rgba(90, 107, 99, 0.72);
        }
        .purchase-form-icon {
            width: 48px;
            height: 48px;
            border-radius: 17px;
            display: grid;
            place-items: center;
            color: #fff;
            background:
                radial-gradient(circle at 30% 20%, rgba(255,255,255,0.9), transparent 23%),
                linear-gradient(145deg, var(--inpulso-rojo), var(--inpulso-azul));
            box-shadow: 0 14px 28px rgba(45,79,130,0.18);
            font-size: 1.2rem;
        }
        .purchase-field {
            position: relative;
            display: grid;
            gap: 0.38rem;
            padding: 0.85rem;
            border-radius: 24px;
            background:
                linear-gradient(145deg, rgba(255,255,255,0.46), rgba(255,255,255,0.18));
            border: 1px solid rgba(255,255,255,0.58);
            box-shadow:
                inset 0 1px 1px rgba(255,255,255,0.78),
                0 10px 24px rgba(45,79,130,0.07);
            backdrop-filter: blur(18px) saturate(170%);
            -webkit-backdrop-filter: blur(18px) saturate(170%);
        }
        .purchase-field label {
            font-size: 0.66rem;
            font-weight: 800;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: rgba(45, 79, 130, 0.82);
        }
        .purchase-input {
            width: 100%;
            min-height: 44px;
            border: 1px solid rgba(255,255,255,0.34);
            border-top-color: rgba(255,255,255,0.62);
            border-radius: 16px;
            padding: 0.78rem 0.9rem;
            background: rgba(255,255,255,0.24);
            color: var(--texto-principal);
            font-family: var(--fuente-textos);
            font-size: 0.95rem;
            outline: none;
            box-shadow:
                inset 0 1px 1px rgba(255,255,255,0.62),
                inset 0 -1px 1px rgba(45,79,130,0.04);
            transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
        }
        .purchase-input::placeholder {
            color: rgba(90, 107, 99, 0.48);
        }
        .purchase-input:focus {
            background: rgba(255,255,255,0.56);
            border-color: rgba(126,184,255,0.7);
            box-shadow:
                inset 0 1px 1px rgba(255,255,255,0.88),
                0 0 0 4px rgba(126,184,255,0.13),
                0 12px 28px rgba(45,79,130,0.09);
        }
        .purchase-submit {
            width: 100%;
            border: none;
            border-radius: 999px;
            padding: 16px 20px;
            background:
                radial-gradient(circle at 30% 0%, rgba(255,255,255,0.34), transparent 34%),
                linear-gradient(135deg, var(--inpulso-rojo), #a63e4a);
            color: #fff;
            font-family: var(--fuente-textos);
            font-size: 0.76rem;
            font-weight: 800;
            letter-spacing: 0.09em;
            text-transform: uppercase;
            cursor: pointer;
            box-shadow:
                0 16px 34px rgba(198, 74, 73, 0.24),
                inset 0 1px 1px rgba(255,255,255,0.36);
            transition: transform 0.3s var(--ios-spring), background 0.25s ease, box-shadow 0.25s ease;
        }
        .purchase-submit:hover {
            background:
                radial-gradient(circle at 30% 0%, rgba(255,255,255,0.32), transparent 34%),
                linear-gradient(135deg, var(--inpulso-azul), #203f6c);
            transform: translateY(-2px);
            box-shadow: 0 18px 38px rgba(45, 79, 130, 0.24);
        }
        .purchase-submit:disabled {
            cursor: wait;
            opacity: 0.7;
            transform: none;
        }
        .purchase-status {
            min-height: 1.2em;
            margin: 0.1rem 0 0;
            padding: 0 0.15rem;
            font-size: 0.8rem;
            line-height: 1.55;
            color: var(--texto-secundario);
        }
        .purchase-status.is-error { color: var(--inpulso-rojo); font-weight: 700; }
        .purchase-status.is-success { color: var(--inpulso-azul); font-weight: 700; }

        /* Modal taller — limpio y legible */
        .modal-overlay { 
            position: fixed; inset: 0; z-index: 100000;
            background: rgba(18, 24, 32, 0.58);
            backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
            display: flex; justify-content: center; align-items: center; padding: 16px;
            opacity: 0; visibility: hidden; transition: opacity 0.35s ease, visibility 0.35s ease;
        }
        .modal-overlay.active { opacity: 1; visibility: visible; }
        
        .modal-glass { 
            position: relative;
            width: 100%; max-width: 720px; max-height: 90vh; overflow: hidden;
            border-radius: clamp(22px, 4vw, 32px);
            display: flex; flex-direction: column;
            background: #fff;
            border: 1px solid rgba(255, 255, 255, 0.95);
            box-shadow:
                0 28px 80px rgba(10, 14, 22, 0.35),
                0 2px 0 rgba(255, 255, 255, 0.8) inset;
            transform: scale(0.96) translateY(16px);
            transition: transform 0.45s var(--ios-spring);
            isolation: isolate;
        }
        .modal-overlay.active .modal-glass { transform: scale(1) translateY(0); }

        .modal-chrome {
            display: flex; align-items: center; justify-content: space-between;
            gap: 1rem;
            padding: 0.95rem 1.15rem 0.95rem 1.35rem;
            background: #fff;
            border-bottom: 1px solid rgba(45, 79, 130, 0.08);
            flex-shrink: 0;
        }
        .modal-chrome .traffic-lights { display: none; }
        .window-title-bar {
            font-size: 0.72rem;
            font-weight: 700;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--texto-secundario);
        }
        .close-btn {
            width: 36px; height: 36px; border-radius: 50%; border: none; cursor: pointer;
            background: rgba(45,79,130,0.08); color: var(--inpulso-azul); font-size: 1.45rem;
            line-height: 1; display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
            transition: background 0.25s ease, color 0.25s ease, transform 0.3s ease;
        }
        .close-btn:hover { background: rgba(198,74,73,0.12); color: var(--inpulso-rojo); transform: rotate(90deg); }

        .modal-scroll {
            padding: clamp(1.25rem, 3.5vw, 2rem) clamp(1.15rem, 3.5vw, 2.15rem) clamp(1.5rem, 4vw, 2.35rem);
            overflow-y: auto; flex: 1;
            background: #fff;
            -webkit-overflow-scrolling: touch; touch-action: pan-y;
        }
        .modal-text {
            color: var(--texto-principal);
        }
        .modal-cover-img {
            width: 100%;
            height: clamp(160px, 36vw, 220px);
            object-fit: cover;
            border-radius: 18px;
            margin: 0 0 1.25rem;
            display: block;
            background: #e8e4db;
            box-shadow: 0 10px 28px rgba(26, 31, 28, 0.1);
        }
        .modal-cover-img.is-flyer {
            height: auto;
            max-height: 320px;
            object-fit: contain;
            background: linear-gradient(160deg, #7eb8c9 0%, #4a8fa8 100%);
        }
        .modal-text h2 {
            font-family: var(--fuente-titulos);
            font-size: clamp(1.55rem, 4.5vw, 2.35rem);
            color: var(--inpulso-azul);
            margin: 0 0 0.45rem;
            line-height: 1.15;
            letter-spacing: -0.02em;
            font-weight: 400;
        }
        .modal-text .instructor {
            font-size: 0.72rem;
            font-weight: 700;
            color: var(--inpulso-rojo);
            text-transform: uppercase;
            letter-spacing: 0.1em;
            margin: 0 0 1.15rem;
            display: block;
        }
        .modal-text p {
            font-size: clamp(0.92rem, 2.4vw, 1.02rem);
            line-height: 1.7;
            margin: 0 0 1rem;
            color: var(--texto-principal);
            font-weight: 350;
        }
        .modal-text p strong { font-weight: 650; color: var(--texto-principal); }
        .modal-text a {
            color: var(--inpulso-azul);
            font-weight: 600;
            text-decoration: underline;
            text-underline-offset: 2px;
        }
        .modal-text h4 {
            font-family: var(--fuente-titulos);
            font-size: 1.05rem;
            font-weight: 400;
            color: var(--inpulso-azul);
            margin: 1.35rem 0 0.65rem;
            line-height: 1.3;
        }
        .modal-meta {
            margin-top: 1.35rem;
            padding: 0.85rem 1rem;
            border-radius: 18px;
            background: rgba(247, 245, 240, 0.95);
            border: 1px solid rgba(45, 79, 130, 0.08);
        }
        .meta-row {
            display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
            padding: 0.55rem 0; border-bottom: 1px solid rgba(45,79,130,0.07);
        }
        .meta-row:last-child { border: none; padding-bottom: 0.15rem; }
        .meta-row:first-child { padding-top: 0.15rem; }
        .meta-row span:first-child {
            font-size: 0.66rem; font-weight: 700; text-transform: uppercase;
            letter-spacing: 0.08em; color: var(--texto-secundario);
        }
        .meta-row span:last-child {
            font-weight: 600; font-size: 0.88rem; color: var(--inpulso-azul); text-align: right;
            line-height: 1.35;
        }

        .btn-modal-action {
            display: inline-flex; align-items: center; justify-content: center;
            width: 100%; text-align: center; padding: 16px 24px; margin-top: 1.35rem;
            font-family: var(--fuente-textos);
            font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px;
            background: rgba(45, 79, 130, 0.06);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: var(--inpulso-azul); text-decoration: none; border-radius: 50px;
            border: 1px solid rgba(45, 79, 130, 0.14);
            border-top: 1px solid rgba(255, 255, 255, 0.95);
            border-left: 1px solid rgba(255, 255, 255, 0.85);
            cursor: pointer; box-shadow: 0 10px 28px rgba(45, 79, 130, 0.08);
            transition: transform 0.35s var(--ios-spring), background 0.3s ease, box-shadow 0.3s ease;
        }
        .btn-modal-action:hover {
            background: rgba(45, 79, 130, 0.1);
            color: var(--inpulso-azul);
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 14px 32px rgba(45, 79, 130, 0.12);
        }
        .btn-modal-secondary {
            display: inline-flex; align-items: center; justify-content: center;
            width: 100%;
            margin-top: 0.75rem; padding: 12px 20px; border-radius: 50px;
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: var(--inpulso-azul);
            border: 1px solid rgba(45, 79, 130, 0.14);
            border-top: 1px solid rgba(255, 255, 255, 0.95);
            border-left: 1px solid rgba(255, 255, 255, 0.85);
            font-family: var(--fuente-textos);
            font-weight: 700; font-size: 0.74rem; letter-spacing: 0.04em; text-transform: uppercase;
            cursor: pointer;
            box-shadow: 0 8px 22px rgba(45, 79, 130, 0.06);
            transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
        }
        .btn-modal-secondary:hover {
            background: #fff;
            color: var(--inpulso-azul);
            transform: translateY(-3px) scale(1.02);
        }

        .desc-list { margin: 1rem 0 1.5rem 0; padding: 0; list-style: none; }
        .desc-list li {
            position: relative; margin-bottom: 0.85rem; padding-left: 1.4rem;
            font-size: 0.95rem; line-height: 1.65; color: var(--texto-principal);
        }
        .desc-list li::before {
            content: '✓'; position: absolute; left: 0; color: var(--inpulso-rojo); font-weight: 700;
        }

        /* ——— LIBRO 3D REALISTA (Sara Rosales) ——— */
        .book-stage {
            position: fixed; inset: 0; z-index: 100001;
            display: flex; align-items: center; justify-content: center;
            background:
                radial-gradient(ellipse 70% 55% at 50% 38%, rgba(74, 40, 104, 0.28) 0%, transparent 58%),
                radial-gradient(ellipse 100% 100% at 50% 100%, rgba(0, 0, 0, 0.55) 0%, transparent 45%),
                linear-gradient(180deg, #120a1c 0%, #06040a 100%);
            opacity: 0; visibility: hidden; pointer-events: none;
            transition: opacity 0.45s ease, visibility 0.45s ease;
            perspective: 2600px; perspective-origin: 50% 42%;
            overflow: hidden;
        }
        .book-stage.active { opacity: 1; visibility: visible; pointer-events: auto; }

        .book-stage::before {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.07) 0%, transparent 28%);
            pointer-events: none;
        }
        .book-stage::after {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(ellipse at center, transparent 35%, rgba(0, 0, 0, 0.42) 100%);
            pointer-events: none;
        }

        .book-scene {
            position: relative;
            width: min(380px, 86vw);
            height: min(520px, 74vh);
            transform-style: preserve-3d;
        }

        .book-shadow {
            position: absolute;
            bottom: -34px;
            left: 50%;
            transform: translateX(-50%);
            width: 78%;
            height: 48px;
            background: radial-gradient(ellipse, rgba(0, 0, 0, 0.62) 0%, transparent 72%);
            filter: blur(10px);
            z-index: 0;
            opacity: 0.85;
        }

        .book-assembly {
            position: relative;
            width: 100%;
            height: 100%;
            transform-style: preserve-3d;
            transform: rotateX(10deg) rotateY(-14deg);
        }

        .book-back {
            position: absolute;
            inset: 0;
            border-radius: 5px 18px 18px 5px;
            background:
                linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, transparent 42%),
                linear-gradient(160deg, #5a3278 0%, var(--sara-morado-dark) 38%, var(--sara-spine) 100%);
            box-shadow:
                inset 0 0 0 1px rgba(255, 255, 255, 0.06),
                6px 14px 36px rgba(0, 0, 0, 0.48);
            transform: translateZ(-18px);
        }
        .book-back::before {
            content: '';
            position: absolute;
            inset: 12px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 2px 12px 12px 2px;
        }

        .book-pages-block {
            position: absolute;
            top: 10px;
            bottom: 10px;
            left: 18px;
            right: 10px;
            border-radius: 2px 12px 12px 2px;
            background:
                linear-gradient(90deg, #d8d2c8 0%, #ece7de 2%, #f7f4ee 8%, #faf8f4 100%);
            box-shadow:
                inset -1px 0 0 rgba(255, 255, 255, 0.5),
                inset -6px 0 14px rgba(0, 0, 0, 0.08),
                1px 0 0 #e8e3da,
                2px 0 0 #e3ded5,
                3px 0 0 #ded9d0,
                4px 0 0 #d9d4cb,
                5px 0 0 #d4cfc6,
                6px 0 0 #cfcac1;
            transform: translateZ(-3px);
        }
        .book-pages-block::before {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            width: 8px;
            background: repeating-linear-gradient(
                180deg,
                #cfc9bf 0px, #cfc9bf 1px,
                #f0ebe3 1px, #f0ebe3 2.5px
            );
            border-radius: 2px 0 0 2px;
        }
        .book-pages-block::after {
            content: '';
            position: absolute;
            top: 6px;
            bottom: 6px;
            right: 0;
            width: 3px;
            background: linear-gradient(180deg, #f0e8d0 0%, #e8dcc0 50%, #f0e8d0 100%);
            opacity: 0.85;
        }

        .book-inside-left,
        .book-inside-spread {
            position: absolute;
            top: 12px;
            bottom: 12px;
            background: #fdfbf7;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            padding: 2rem 1.35rem;
            text-align: center;
            box-shadow: inset 0 0 30px rgba(210, 180, 222, 0.1);
            opacity: 0;
        }
        .book-inside-left {
            left: 18px;
            width: calc(50% - 18px);
            border-radius: 2px 0 0 2px;
            transform: translateZ(0.5px);
            background:
                linear-gradient(90deg, rgba(210, 180, 222, 0.08) 0%, transparent 18%),
                #fdfbf7;
        }
        .book-inside-left .spread-mini {
            font-family: var(--fuente-titulos);
            font-size: 0.95rem;
            font-style: italic;
            color: var(--texto-secundario);
            line-height: 1.55;
            margin: 0;
        }
        .book-inside-spread {
            right: 10px;
            width: calc(50% - 10px);
            border-radius: 0 10px 10px 0;
            transform: translateZ(1px);
        }
        .book-inside-spread .spread-label {
            font-size: 0.62rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: var(--sara-morado-dark);
            margin-bottom: 0.85rem;
        }
        .book-inside-spread p {
            font-family: var(--fuente-titulos);
            font-size: 1.05rem;
            font-style: italic;
            color: var(--texto-secundario);
            line-height: 1.62;
            margin: 0;
        }

        .book-page-flutter {
            position: absolute;
            top: 14px;
            bottom: 14px;
            left: 50%;
            width: calc(50% - 12px);
            transform-origin: left center;
            transform: rotateY(0deg) translateZ(2px);
            border-radius: 0 8px 8px 0;
            background:
                linear-gradient(90deg, #f0ebe3 0%, #faf8f4 12%, #fffdf9 100%);
            box-shadow:
                inset -2px 0 6px rgba(0, 0, 0, 0.06),
                2px 0 8px rgba(0, 0, 0, 0.08);
            opacity: 0;
            pointer-events: none;
        }
        .book-page-flutter::before {
            content: '';
            position: absolute;
            inset: 0;
            background: repeating-linear-gradient(
                180deg,
                transparent 0px,
                transparent 18px,
                rgba(0, 0, 0, 0.018) 18px,
                rgba(0, 0, 0, 0.018) 19px
            );
            border-radius: inherit;
        }

        .book-cover-wrap {
            position: absolute;
            inset: 0;
            transform-style: preserve-3d;
            transform-origin: left center;
        }

        .book-cover-front {
            position: absolute;
            inset: 0;
            border-radius: 5px 18px 18px 5px;
            background:
                url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.95' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.07'/%3E%3C/svg%3E"),
                linear-gradient(145deg, rgba(255, 255, 255, 0.14) 0%, transparent 34%),
                linear-gradient(165deg, #b884d4 0%, #8f5cb0 22%, var(--sara-morado-dark) 52%, #3d1f58 100%);
            box-shadow:
                inset 2px 0 5px rgba(255, 255, 255, 0.22),
                inset -5px 0 16px rgba(0, 0, 0, 0.28),
                8px 16px 42px rgba(0, 0, 0, 0.38);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            backface-visibility: hidden;
            -webkit-backface-visibility: hidden;
        }
        .book-cover-shine {
            position: absolute;
            inset: -20% -40%;
            background: linear-gradient(108deg, transparent 38%, rgba(255, 255, 255, 0.22) 48%, transparent 58%);
            transform: translateX(-30%);
            pointer-events: none;
            z-index: 4;
            opacity: 0.55;
        }
        .book-cover-photo {
            position: relative;
            flex: 1;
            min-height: 54%;
            margin: 14px 14px 0;
            border-radius: 3px 10px 0 0;
            background-size: cover;
            background-position: center;
            box-shadow:
                inset 0 0 0 1px rgba(255, 255, 255, 0.18),
                0 8px 20px rgba(0, 0, 0, 0.22);
        }
        .book-cover-photo::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 35%, rgba(45, 22, 68, 0.88) 100%);
            border-radius: inherit;
        }
        .book-cover-text {
            padding: 1.1rem 1.35rem 1.55rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            position: relative;
            z-index: 2;
        }
        .book-cover-front::before {
            content: '';
            position: absolute;
            inset: 10px;
            border: 1px solid rgba(255, 255, 255, 0.16);
            border-radius: 2px 12px 12px 2px;
            pointer-events: none;
            z-index: 3;
        }
        .book-cover-front::after {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 18px;
            background: linear-gradient(90deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.1) 55%, transparent 100%);
            border-radius: 5px 0 0 5px;
            z-index: 3;
        }

        .cover-ornament {
            font-size: 0.52rem;
            font-weight: 700;
            letter-spacing: 0.28em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.72);
            margin-bottom: 0.45rem;
        }
        .book-cover-front h2 {
            font-family: var(--fuente-titulos);
            font-size: clamp(0.92rem, 3.2vw, 1.18rem);
            color: #fff;
            margin: 0 0 0.65rem;
            line-height: 1.28;
            font-weight: 400;
            text-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
        }
        .cover-divider {
            width: 52px;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.45), transparent);
            margin: 0.35rem 0 1rem;
        }
        .cover-author {
            font-family: var(--fuente-titulos);
            font-size: 1.05rem;
            font-style: italic;
            color: rgba(255, 255, 255, 0.94);
            margin: 0;
        }
        .cover-author-label {
            display: block;
            font-family: var(--fuente-textos);
            font-size: 0.58rem;
            font-style: normal;
            font-weight: 700;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.58);
            margin-bottom: 0.3rem;
        }

        .book-cover-inner {
            position: absolute;
            inset: 0;
            border-radius: 5px 18px 18px 5px;
            background:
                linear-gradient(90deg, rgba(210, 180, 222, 0.12) 0%, transparent 22%),
                linear-gradient(180deg, #f3eee6 0%, #ebe4da 100%);
            transform: rotateY(180deg);
            backface-visibility: hidden;
            -webkit-backface-visibility: hidden;
            box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.05);
        }
        .book-cover-inner::before {
            content: '';
            position: absolute;
            inset: 16px;
            border: 1px dashed rgba(107, 63, 160, 0.18);
            border-radius: 2px 10px 10px 2px;
        }

        .book-cover-thickness {
            position: absolute;
            top: 0;
            left: calc(100% - 1px);
            width: 16px;
            height: 100%;
            transform-origin: left center;
            transform: rotateY(90deg);
            background:
                linear-gradient(180deg, #c9a8e0 0%, #8f5cb0 45%, #5a3278 100%);
            box-shadow: inset -2px 0 4px rgba(0, 0, 0, 0.2);
        }

        .book-spine-edge {
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 20px;
            border-radius: 5px 0 0 5px;
            background:
                linear-gradient(90deg, #1f0f2c 0%, var(--sara-spine) 38%, #5a3278 100%);
            transform: translateZ(3px);
            box-shadow:
                inset -3px 0 8px rgba(0, 0, 0, 0.45),
                inset 2px 0 2px rgba(255, 255, 255, 0.08);
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
        }
        .book-spine-label {
            writing-mode: vertical-rl;
            transform: rotate(180deg);
            font-size: 0.48rem;
            font-weight: 700;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, 0.55);
            white-space: nowrap;
            max-height: 72%;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .book-ribbon {
            position: absolute;
            top: -2px;
            right: 18%;
            width: 14px;
            height: 58%;
            background: linear-gradient(180deg, #c64a49 0%, #9a3534 100%);
            transform: translateZ(6px);
            border-radius: 0 0 3px 3px;
            box-shadow: 2px 4px 10px rgba(0, 0, 0, 0.25);
            opacity: 0.92;
        }
        .book-ribbon::after {
            content: '';
            position: absolute;
            bottom: -8px;
            left: 50%;
            transform: translateX(-50%);
            border: 7px solid transparent;
            border-top-color: #9a3534;
        }

        .book-skip {
            position: absolute;
            bottom: 5vh;
            left: 50%;
            transform: translateX(-50%);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 0.75rem 1.35rem;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            border-radius: 50px;
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-top: 1px solid rgba(255, 255, 255, 0.8);
            border-left: 1px solid rgba(255, 255, 255, 0.5);
            color: #fff;
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
            cursor: pointer;
            font-family: var(--fuente-textos);
            z-index: 2;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
        }
        .book-skip:hover {
            color: #fff;
            background: rgba(255, 255, 255, 0.25);
            transform: translateX(-50%) translateY(-3px) scale(1.02);
        }

        /* ——— TOCADISCOS MADERA CLÁSICO — Alianza 360 ——— */
        .vinyl-stage {
            position: fixed; inset: 0; z-index: 100001;
            display: flex; align-items: center; justify-content: center;
            background: radial-gradient(ellipse at center, #2a2018 0%, #0a0806 100%);
            opacity: 0; visibility: hidden; pointer-events: none;
        }
        .vinyl-stage.active { opacity: 1; visibility: visible; pointer-events: auto; }
        .vinyl-stage::before {
            content: ''; position: absolute; inset: 0;
            background: radial-gradient(circle at 50% 40%, rgba(255,200,120,0.06) 0%, transparent 55%);
            pointer-events: none;
        }
        .vinyl-scene {
            position: relative; width: min(480px, 94vw); perspective: 1400px;
        }
        .turntable-unit { position: relative; transform-style: preserve-3d; }
        .tt-wood-body {
            position: relative; width: 100%; aspect-ratio: 1.05;
            background:
                linear-gradient(175deg, rgba(255,255,255,0.08) 0%, transparent 25%),
                repeating-linear-gradient(88deg, transparent 0px, transparent 18px, rgba(0,0,0,0.03) 18px, rgba(0,0,0,0.03) 19px),
                linear-gradient(145deg, #8B6914 0%, #6B4423 18%, #5C3D2E 45%, #4A2F22 70%, #3D2518 100%);
            border-radius: 14px 14px 10px 10px;
            padding: 32px 36px 40px;
            box-shadow:
                inset 0 2px 0 rgba(255,220,160,0.15),
                inset 0 -3px 8px rgba(0,0,0,0.3),
                0 40px 80px rgba(0,0,0,0.65),
                0 8px 20px rgba(0,0,0,0.4);
            border: 1px solid rgba(255,200,120,0.12);
        }
        .tt-wood-body::before {
            content: ''; position: absolute; inset: 10px; border-radius: 10px;
            border: 1px solid rgba(255,220,160,0.06); pointer-events: none;
        }
        .tt-wood-feet {
            display: flex; justify-content: space-between; padding: 0 20px;
            margin-top: -6px;
        }
        .tt-foot {
            width: 28px; height: 14px; border-radius: 0 0 6px 6px;
            background: linear-gradient(180deg, #3d2518, #1a1008);
            box-shadow: 0 6px 12px rgba(0,0,0,0.5);
        }
        .tt-platter-wrap {
            position: relative; width: 68%; margin: 0 auto; aspect-ratio: 1;
        }
        .tt-platter-mat {
            position: absolute; inset: -4%; border-radius: 50%;
            background: linear-gradient(145deg, #2a2a2a, #111);
            box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
        }
        .tt-platter {
            position: absolute; inset: 0; border-radius: 50%;
            background: linear-gradient(145deg, #555, #333);
            box-shadow: inset 0 0 16px rgba(0,0,0,0.6);
        }
        .tt-platter-rim {
            position: absolute; inset: 3%; border-radius: 50%;
            border: 1px solid rgba(255,255,255,0.1);
        }
        .tt-vinyl {
            position: absolute; inset: 7%; border-radius: 50%;
            background-color: #080808;
            background-image:
                radial-gradient(circle at 50% 50%, rgba(255,255,255,0.04) 0%, transparent 42%),
                repeating-radial-gradient(circle at center,
                    #0a0a0a 0px, #0a0a0a 0.5px,
                    #141414 0.5px, #141414 1px,
                    #090909 1px, #090909 1.5px,
                    #121212 1.5px, #121212 2px),
                radial-gradient(circle at 50% 50%, transparent 58%, rgba(0,0,0,0.55) 59%, transparent 60%),
                radial-gradient(circle at 50% 50%, transparent 68%, rgba(30,30,30,0.8) 69%, rgba(0,0,0,0.4) 72%, transparent 73%);
            box-shadow:
                inset 0 0 1px rgba(255,255,255,0.12),
                inset 0 0 50px rgba(0,0,0,0.85),
                0 3px 10px rgba(0,0,0,0.55);
            transform-origin: center center;
        }
        .tt-vinyl-edge {
            position: absolute; inset: 0; border-radius: 50%;
            box-shadow: inset 0 0 0 2px rgba(255,255,255,0.04), inset 0 0 0 5px rgba(0,0,0,0.35);
            pointer-events: none;
        }
        .tt-vinyl-shine {
            position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
            background: conic-gradient(
                from 210deg,
                transparent 0deg,
                rgba(255,255,255,0.14) 18deg,
                rgba(255,255,255,0.04) 28deg,
                transparent 42deg,
                transparent 200deg,
                rgba(255,255,255,0.06) 220deg,
                transparent 240deg
            );
            mix-blend-mode: screen;
        }
        .tt-vinyl-reflect {
            position: absolute; top: 8%; left: 14%; width: 38%; height: 22%;
            border-radius: 50%; pointer-events: none;
            background: radial-gradient(ellipse, rgba(255,255,255,0.1) 0%, transparent 70%);
            filter: blur(2px); transform: rotate(-25deg);
        }
        .tt-label {
            position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
            width: 36%; aspect-ratio: 1; border-radius: 50%;
            background:
                radial-gradient(circle at 30% 25%, rgba(255,255,255,0.2) 0%, transparent 45%),
                linear-gradient(145deg, #3a6a9e 0%, var(--inpulso-azul) 40%, #1a3258 100%);
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            text-align: center; padding: 8px;
            box-shadow:
                0 0 0 2px rgba(0,0,0,0.9),
                0 0 0 4px rgba(255,255,255,0.04),
                inset 0 1px 6px rgba(255,255,255,0.2),
                inset 0 -2px 8px rgba(0,0,0,0.35);
        }
        .tt-label::before {
            content: ''; position: absolute; inset: 6px; border-radius: 50%;
            border: 1px dashed rgba(255,255,255,0.12); pointer-events: none;
        }
        .tt-label span {
            font-family: var(--fuente-titulos); font-size: clamp(0.6rem, 2.2vw, 0.8rem);
            color: #fff; line-height: 1.15; font-weight: 600; position: relative; z-index: 1;
            text-shadow: 0 1px 4px rgba(0,0,0,0.4);
        }
        .tt-label small {
            font-size: 0.42rem; letter-spacing: 1.2px; text-transform: uppercase;
            color: rgba(255,255,255,0.65); margin-top: 4px; position: relative; z-index: 1;
        }
        .tt-spindle {
            position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
            width: 12px; height: 12px; border-radius: 50%;
            background: radial-gradient(circle at 35% 30%, #bbb 0%, #444 55%, #222 100%);
            box-shadow: 0 1px 3px rgba(0,0,0,0.6), inset 0 1px 1px rgba(255,255,255,0.3);
            z-index: 3;
        }
        .tt-spindle-hole {
            position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
            width: 3px; height: 3px; border-radius: 50%; background: #111; z-index: 4;
        }
        .tt-tonearm-base {
            position: absolute; top: 14%; right: 8%; width: 44px; height: 44px;
            border-radius: 50%;
            background: radial-gradient(circle at 35% 30%, #888, #333);
            box-shadow: 0 4px 10px rgba(0,0,0,0.5), inset 0 1px 2px rgba(255,255,255,0.15);
            border: 2px solid rgba(255,255,255,0.06);
        }
        .tt-tonearm-pivot {
            position: absolute; top: 50%; left: 50%; width: 12px; height: 12px;
            margin: -6px 0 0 -6px; border-radius: 50%;
            background: radial-gradient(circle, #aaa, #444);
        }
        .tt-tonearm {
            position: absolute; top: 14%; right: 8%;
            width: 44px; height: 44px; transform-origin: 22px 22px; z-index: 5;
        }
        .tt-arm-stick {
            position: absolute; top: 22px; left: 22px; width: 145px; height: 10px;
            transform-origin: 0 5px;
            background: linear-gradient(90deg, #555 0%, #aaa 35%, #888 70%, #666 100%);
            border-radius: 5px;
            box-shadow: 0 3px 8px rgba(0,0,0,0.45);
        }
        .tt-arm-stick::before {
            content: ''; position: absolute; left: 20px; right: 30px; top: 3px; height: 2px;
            background: rgba(255,255,255,0.15); border-radius: 1px;
        }
        .tt-arm-head {
            position: absolute; right: -8px; top: -5px; width: 22px; height: 20px;
            background: linear-gradient(180deg, #bbb, #666);
            border-radius: 3px 6px 6px 3px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.4);
        }
        .tt-cartridge {
            position: absolute; right: -2px; bottom: -12px; width: 10px; height: 18px;
            background: linear-gradient(180deg, #333, #111); border-radius: 2px;
        }
        .tt-needle {
            position: absolute; right: 1px; bottom: -22px; width: 2px; height: 14px;
            background: linear-gradient(180deg, #ddd, #999);
            transform-origin: top center;
        }
        .tt-controls {
            position: absolute; bottom: 12%; left: 10%; display: flex; gap: 14px; align-items: center;
        }
        .tt-knob {
            width: 32px; height: 32px; border-radius: 50%;
            background: radial-gradient(circle at 35% 30%, #777, #222);
            border: 2px solid rgba(255,255,255,0.08);
            box-shadow: inset 0 -3px 6px rgba(0,0,0,0.5), 0 2px 4px rgba(0,0,0,0.3);
        }
        .tt-knob::after {
            content: ''; position: absolute; top: 6px; left: 50%; width: 2px; height: 8px;
            background: rgba(255,255,255,0.3); transform: translateX(-50%); border-radius: 1px;
        }
        .tt-knob { position: relative; }
        .tt-knob.power {
            background: radial-gradient(circle at 35% 30%, #6c9, #264);
            box-shadow: inset 0 0 8px rgba(100,255,150,0.3);
        }
        .tt-speed-switch {
            font-size: 0.45rem; letter-spacing: 1px; color: rgba(255,220,160,0.35);
            text-transform: uppercase; font-weight: 700;
        }
        .tt-brand {
            position: absolute; bottom: 8%; right: 10%;
            font-family: var(--fuente-titulos); font-size: 0.65rem; letter-spacing: 4px;
            text-transform: uppercase; color: rgba(255,220,160,0.25); font-weight: 400;
        }
        .tt-dust-hint {
            position: absolute; top: 6%; left: 10%;
            font-size: 0.45rem; letter-spacing: 2px; text-transform: uppercase;
            color: rgba(255,220,160,0.2);
        }
        .vinyl-glow {
            position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
            width: 90%; aspect-ratio: 1; border-radius: 50%; pointer-events: none;
            background: radial-gradient(circle, rgba(45,79,130,0.12) 0%, transparent 65%);
            opacity: 0;
        }
        .anim-skip {
            position: absolute; bottom: 5vh; left: 50%; transform: translateX(-50%);
            display: inline-flex; align-items: center; justify-content: center;
            padding: 0.75rem 1.35rem;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            border-radius: 50px;
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-top: 1px solid rgba(255, 255, 255, 0.8);
            border-left: 1px solid rgba(255, 255, 255, 0.5);
            color: #fff;
            font-size: 0.72rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
            cursor: pointer; font-family: var(--fuente-textos); z-index: 2;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
            transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
        }
        .anim-skip:hover {
            color: #fff;
            background: rgba(255, 255, 255, 0.25);
            transform: translateX(-50%) translateY(-3px) scale(1.02);
        }

        /* ——— JARRÓN FOTO + FRAGMENTOS + CANVAS (v3) — Sanando heridas ——— */
        .vase-stage {
            position: fixed; inset: 0; z-index: 100001;
            display: flex; align-items: center; justify-content: center;
            background:
                radial-gradient(ellipse at 50% 20%, rgba(210, 140, 90, 0.18) 0%, transparent 42%),
                radial-gradient(ellipse at 50% 78%, rgba(45, 79, 130, 0.12) 0%, transparent 50%),
                linear-gradient(180deg, #14110e 0%, #070605 55%, #100e0b 100%);
            opacity: 0; visibility: hidden; pointer-events: none;
            overflow: hidden;
        }
        .vase-stage.active { opacity: 1; visibility: visible; pointer-events: auto; }
        .vase-stage__ambience {
            position: absolute; inset: 0; pointer-events: none;
            background:
                radial-gradient(circle at 50% 38%, rgba(255, 220, 170, 0.13) 0%, transparent 34%),
                radial-gradient(circle at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 48%);
        }
        .vase-stage__grain {
            position: absolute; inset: 0; pointer-events: none; opacity: 0.2;
            background-image: url('img/fx/dust-grain.png');
            background-size: 200px 200px;
            mix-blend-mode: soft-light;
        }
        .vase-scene {
            position: relative;
            width: min(520px, 96vw);
            height: min(620px, 86vh);
            perspective: 1600px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-end;
            transform-style: preserve-3d;
        }
        .vase-floor {
            position: absolute;
            bottom: 7%;
            left: 50%;
            width: 86%;
            height: 46%;
            transform: translateX(-50%) rotateX(72deg);
            transform-origin: center bottom;
            border-radius: 50%;
            background:
                radial-gradient(ellipse at 50% 35%, rgba(90,60,35,0.4) 0%, transparent 62%),
                linear-gradient(180deg, rgba(255,255,255,0.04), transparent 55%);
            box-shadow: inset 0 0 40px rgba(0,0,0,0.25);
            pointer-events: none;
        }
        .vase-floor-shadow {
            position: absolute;
            bottom: 9%;
            left: 50%;
            width: 42%;
            height: 28px;
            transform: translateX(-50%);
            border-radius: 50%;
            background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 72%);
            filter: blur(7px);
            opacity: 0.8;
        }
        .vase-shockwave {
            position: absolute;
            left: 50%;
            top: 52%;
            width: 48px;
            height: 48px;
            margin: -24px 0 0 -24px;
            border-radius: 50%;
            border: 2px solid rgba(255, 220, 180, 0.5);
            box-shadow: 0 0 30px rgba(255, 200, 140, 0.28);
            opacity: 0;
            pointer-events: none;
        }
        .vase-fx-canvas {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 4;
        }
        .vase-assembly {
            position: relative;
            width: 220px;
            height: 300px;
            margin-bottom: 14%;
            transform-style: preserve-3d;
            z-index: 3;
        }
        .vase-intact {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: flex-end;
            justify-content: center;
            transform-style: preserve-3d;
        }
        .vase-photo {
            width: min(210px, 58vw);
            height: auto;
            display: block;
            filter: drop-shadow(0 24px 36px rgba(0,0,0,0.55));
            user-select: none;
            -webkit-user-drag: none;
        }
        .vase-crack {
            position: absolute;
            inset: 18% 22% 12%;
            opacity: 0;
            z-index: 5;
            pointer-events: none;
            background:
                linear-gradient(118deg, transparent 47.2%, rgba(15,6,2,0.9) 49%, rgba(15,6,2,0.9) 51%, transparent 52.8%),
                linear-gradient(40deg, transparent 43%, rgba(15,6,2,0.7) 49%, transparent 55%),
                linear-gradient(-22deg, transparent 50%, rgba(15,6,2,0.55) 56%, transparent 62%),
                linear-gradient(165deg, transparent 38%, rgba(15,6,2,0.45) 45%, transparent 52%);
            mix-blend-mode: multiply;
        }
        .vase-shards {
            position: absolute;
            inset: 0;
            pointer-events: none;
            transform-style: preserve-3d;
        }
        .vase-shard {
            position: absolute;
            left: 50%;
            top: 45%;
            width: 72px;
            height: auto;
            margin-left: -36px;
            transform-origin: center center;
            transform-style: preserve-3d;
            will-change: transform, opacity, filter;
            filter: drop-shadow(0 8px 14px rgba(0,0,0,0.45));
            backface-visibility: hidden;
            user-select: none;
            -webkit-user-drag: none;
        }
        .vase-shard.is-sm { width: 44px; margin-left: -22px; }
        .vase-shard.is-lg { width: 96px; margin-left: -48px; }
        .vase-butterflies {
            position: absolute;
            inset: -55% -80%;
            pointer-events: none;
            overflow: visible;
            transform-style: preserve-3d;
            z-index: 5;
        }
        .vase-bf {
            position: absolute;
            left: 50%;
            top: 34%;
            width: 58px;
            height: auto;
            margin-left: -29px;
            transform-style: preserve-3d;
            will-change: transform, opacity, filter;
            filter:
                drop-shadow(0 6px 10px rgba(0,0,0,0.48))
                contrast(1.06)
                saturate(1.08);
            user-select: none;
            -webkit-user-drag: none;
            image-rendering: auto;
        }
        .vase-bf.is-sm { width: 40px; margin-left: -20px; }
        .vase-bf.is-lg { width: 74px; margin-left: -37px; }
        .vase-caption {
            position: absolute;
            bottom: 1.2%;
            left: 50%;
            transform: translateX(-50%);
            width: min(360px, 92%);
            margin: 0;
            text-align: center;
            font-family: var(--fuente-titulos);
            font-size: clamp(1.2rem, 3.3vw, 1.7rem);
            font-weight: 400;
            color: rgba(255, 245, 235, 0.96);
            letter-spacing: 0.02em;
            text-shadow: 0 10px 30px rgba(0,0,0,0.6);
            opacity: 0;
            z-index: 6;
        }
        @media (max-width: 640px) {
            .vase-assembly { width: 170px; height: 240px; margin-bottom: 18%; }
            .vase-photo { width: min(160px, 52vw); }
            .vase-shard { width: 56px; margin-left: -28px; }
            .vase-shard.is-lg { width: 74px; margin-left: -37px; }
            .vase-bf { width: 46px; margin-left: -23px; }
            .vase-bf.is-lg { width: 58px; margin-left: -29px; }
        }

        /* Flujo de compra y confianza */
        .purchase-journey {
            max-width: 860px;
            margin: 0 auto;
            padding: 0 clamp(16px, 5vw, 48px) clamp(48px, 8vh, 80px);
        }
        .purchase-journey__grid {
            display: block;
        }
        .journey-card,
        .faq-card {
            position: relative;
            overflow: hidden;
            border-radius: var(--radio-secciones);
            background:
                radial-gradient(circle at 12% 8%, rgba(126,184,255,0.16), transparent 34%),
                rgba(255,255,255,0.34);
            border: 1px solid rgba(255,255,255,0.58);
            border-top-color: rgba(255,255,255,0.88);
            box-shadow:
                0 28px 70px rgba(45,79,130,0.1),
                inset 0 1px 1px rgba(255,255,255,0.75);
            backdrop-filter: blur(24px) saturate(180%);
            -webkit-backdrop-filter: blur(24px) saturate(180%);
            padding: clamp(1.35rem, 3vw, 2rem);
        }
        .journey-card h2,
        .faq-card h2 {
            font-family: var(--fuente-titulos);
            color: var(--inpulso-azul);
            font-size: clamp(1.7rem, 3.5vw, 2.45rem);
            font-weight: 400;
            line-height: 1.1;
            margin: 0 0 0.75rem;
        }
        .journey-card > p,
        .faq-card > p {
            color: var(--texto-secundario);
            line-height: 1.8;
            margin: 0 0 1.35rem;
            font-weight: 300;
        }
        .journey-steps {
            display: grid;
            gap: 0.85rem;
        }
        .journey-step {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 0.9rem;
            align-items: start;
            padding: 1rem;
            border-radius: 24px;
            background: rgba(255,255,255,0.36);
            border: 1px solid rgba(255,255,255,0.56);
            box-shadow: inset 0 1px 1px rgba(255,255,255,0.72);
        }
        .journey-step__num {
            width: 34px;
            height: 34px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            color: #fff;
            font-weight: 800;
            font-size: 0.75rem;
            background: linear-gradient(135deg, var(--inpulso-rojo), var(--inpulso-azul));
            box-shadow: 0 10px 22px rgba(45,79,130,0.16);
        }
        .journey-step h3 {
            margin: 0 0 0.25rem;
            color: var(--inpulso-azul);
            font-size: 0.95rem;
        }
        .journey-step p {
            margin: 0;
            color: var(--texto-secundario);
            line-height: 1.65;
            font-size: 0.9rem;
        }
        .trust-strip {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 0.75rem;
            margin-top: 1rem;
        }
        .trust-pill {
            min-width: 0;
            padding: 0.85rem;
            border-radius: 20px;
            background: rgba(45,79,130,0.06);
            border: 1px solid rgba(45,79,130,0.08);
            color: var(--texto-secundario);
            font-size: 0.78rem;
            line-height: 1.5;
            overflow-wrap: break-word;
            word-break: normal;
        }
        .trust-pill strong {
            display: block;
            color: var(--inpulso-azul);
            font-size: 0.68rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            margin-bottom: 0.25rem;
            overflow-wrap: break-word;
        }
        .faq-list {
            display: grid;
            gap: 0.75rem;
        }
        .faq-item {
            border-radius: 22px;
            background: rgba(255,255,255,0.38);
            border: 1px solid rgba(255,255,255,0.58);
            overflow: hidden;
            transition:
                background 0.35s ease,
                border-color 0.35s ease,
                box-shadow 0.35s ease,
                transform 0.35s var(--ios-spring);
        }
        .faq-item[open] {
            background:
                radial-gradient(circle at 12% 0%, rgba(126,184,255,0.12), transparent 36%),
                rgba(255,255,255,0.55);
            border-color: rgba(255,255,255,0.82);
            box-shadow:
                0 16px 38px rgba(45,79,130,0.1),
                inset 0 1px 1px rgba(255,255,255,0.78);
            transform: translateY(-1px);
        }
        .faq-item summary {
            position: relative;
            cursor: pointer;
            padding: 1rem 1.1rem;
            color: var(--inpulso-azul);
            font-weight: 800;
            list-style: none;
            outline: none;
            transition: color 0.28s ease;
        }
        .faq-item summary::-webkit-details-marker { display: none; }
        .faq-item summary::after {
            content: '+';
            float: right;
            color: var(--inpulso-rojo);
            width: 26px;
            height: 26px;
            margin-top: -2px;
            display: inline-grid;
            place-items: center;
            border-radius: 50%;
            background: rgba(255,255,255,0.45);
            border: 1px solid rgba(255,255,255,0.62);
            box-shadow: inset 0 1px 1px rgba(255,255,255,0.72);
            transition: transform 0.35s var(--ios-spring), background 0.3s ease;
        }
        .faq-item[open] summary::after {
            content: '–';
            transform: rotate(180deg);
            background: rgba(198,74,73,0.1);
        }
        .faq-item p {
            margin: 0;
            padding: 0 1.1rem 1rem;
            color: var(--texto-secundario);
            line-height: 1.7;
            font-size: 0.92rem;
        }
        .faq-item[open] p {
            animation: faqAnswerReveal 0.38s ease both;
        }
        @keyframes faqAnswerReveal {
            from {
                opacity: 0;
                transform: translateY(-6px);
                filter: blur(2px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
                filter: blur(0);
            }
        }
        .privacy-note {
            margin-top: 1rem;
            color: var(--texto-secundario);
            font-size: 0.82rem;
            line-height: 1.7;
        }
        .privacy-note a {
            color: var(--inpulso-azul);
            font-weight: 800;
        }
        @media (max-width: 900px) {
            .purchase-journey__grid {
                grid-template-columns: 1fr;
            }
            .trust-strip {
                grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
            }
        }

        @media (max-width: 520px) {
            .trust-strip {
                grid-template-columns: 1fr;
            }
        }

        .talleres-faq {
            max-width: 820px;
            margin: 0 auto;
            padding: 0 clamp(16px, 5vw, 48px) clamp(64px, 10vh, 110px);
        }
        .talleres-faq__head {
            text-align: center;
            margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
        }
        .talleres-faq__head h2 {
            font-family: var(--fuente-titulos);
            font-size: clamp(2rem, 4vw, 2.8rem);
            font-weight: 400;
            color: var(--inpulso-azul);
            margin: 0 0 0.65rem;
            letter-spacing: -0.02em;
        }
        .talleres-faq__head h2 em {
            font-style: italic;
        }
        .talleres-faq__head p {
            margin: 0 auto;
            max-width: 42ch;
            color: var(--texto-secundario);
            line-height: 1.65;
            font-weight: 300;
        }

        /* ——— TALLER SANANDO HERIDAS: Capítulo vivo (mismo formato móvil/desktop) ——— */
        .heridas-premium {
            position: relative;
            z-index: 2;
            margin: -clamp(56px, 11vw, 110px) 0 0;
            padding: 0 0 clamp(1.5rem, 4vw, 2.5rem);
            overflow: clip;
            color: var(--texto-principal);
            background: transparent;
        }
        .heridas-premium__stage {
            position: relative;
            isolation: isolate;
            min-height: clamp(420px, 72vw, 720px);
            display: grid;
            align-items: end;
            overflow: hidden;
            background: #1a2230;
        }
        .heridas-premium__visual {
            position: absolute;
            inset: 0;
            margin: 0;
            z-index: 0;
            overflow: hidden;
        }
        .heridas-premium__visual img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center 28%;
            display: block;
            transform: scale(1.08);
            filter: saturate(0.9) contrast(1.06) brightness(0.88);
            will-change: transform;
        }
        .heridas-premium__veil {
            position: absolute;
            inset: 0;
            z-index: 1;
            pointer-events: none;
            background:
                linear-gradient(90deg,
                    rgba(10, 14, 22, 0.72) 0%,
                    rgba(10, 14, 22, 0.38) 42%,
                    rgba(10, 14, 22, 0.12) 70%,
                    transparent 100%),
                linear-gradient(180deg,
                    rgba(18, 24, 32, 0.72) 0%,
                    rgba(18, 24, 32, 0.28) 14%,
                    rgba(10, 14, 22, 0.12) 32%,
                    rgba(10, 14, 22, 0.22) 58%,
                    rgba(247, 245, 240, 0.28) 84%,
                    rgba(247, 245, 240, 0.78) 94%,
                    var(--fondo-crema) 100%);
        }
        .heridas-premium__stage-inner {
            position: relative;
            z-index: 2;
            width: min(1180px, calc(100% - clamp(24px, 6vw, 80px)));
            margin: 0 auto;
            padding: clamp(2.25rem, 5vw, 3.75rem) 0 clamp(3rem, 7vw, 4.5rem);
        }
        .heridas-premium__layout {
            display: grid;
            grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
            gap: clamp(0.85rem, 3vw, 2.5rem);
            align-items: end;
        }
        .heridas-premium__copy {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: clamp(0.55rem, 1.5vw, 0.95rem);
            color: #f7f5f0;
            max-width: 34rem;
        }
        .heridas-premium__eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            margin: 0;
            padding: 0.38rem 0.8rem;
            border-radius: 999px;
            font-size: clamp(0.55rem, 1.4vw, 0.64rem);
            font-weight: 700;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: #fff;
            background: rgba(198, 74, 73, 0.88);
            border: 1px solid rgba(255, 255, 255, 0.18);
            box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
        }
        .heridas-premium__eyebrow-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #fff;
            box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.22);
        }
        .heridas-premium__title {
            font-family: var(--fuente-titulos);
            font-size: clamp(1.85rem, 5.6vw, 4.35rem);
            font-weight: 400;
            line-height: 0.98;
            margin: 0;
            letter-spacing: -0.035em;
            color: #fff;
            text-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
            max-width: 11ch;
        }
        .heridas-premium__title em { font-style: italic; color: #f3d2b0; }
        .heridas-premium__lead {
            margin: 0;
            max-width: 38ch;
            font-size: clamp(0.78rem, 1.7vw, 1.05rem);
            line-height: 1.65;
            font-weight: 300;
            color: rgba(247, 245, 240, 0.86);
        }
        .heridas-premium__side {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: clamp(0.55rem, 1.4vw, 0.9rem);
            justify-self: end;
            width: 100%;
            max-width: 22rem;
        }
        .heridas-premium__chips {
            display: flex;
            flex-wrap: wrap;
            gap: 0.4rem;
        }
        .heridas-premium__chip {
            padding: 0.38rem 0.7rem;
            border-radius: 999px;
            font-size: clamp(0.58rem, 1.3vw, 0.68rem);
            font-weight: 650;
            letter-spacing: 0.02em;
            color: #fff;
            background: rgba(255, 255, 255, 0.12);
            border: 1px solid rgba(255, 255, 255, 0.22);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }
        .heridas-premium__actions {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.65rem 1rem;
        }
        .heridas-premium__cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: clamp(0.75rem, 1.8vw, 0.95rem) clamp(1rem, 2.4vw, 1.4rem);
            border-radius: 50px;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(20px) saturate(180%);
            -webkit-backdrop-filter: blur(20px) saturate(180%);
            color: #fff;
            text-decoration: none;
            font-family: var(--fuente-textos);
            font-size: clamp(0.58rem, 1.4vw, 0.7rem);
            font-weight: 700;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-top: 1px solid rgba(255, 255, 255, 0.8);
            border-left: 1px solid rgba(255, 255, 255, 0.5);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease, box-shadow 0.3s ease;
        }
        .heridas-premium__cta:hover {
            background: rgba(255, 255, 255, 0.28);
            color: #fff;
            transform: translateY(-3px) scale(1.02);
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
        }
        .heridas-premium__link {
            color: rgba(255, 255, 255, 0.92);
            text-decoration: none;
            font-size: clamp(0.72rem, 1.5vw, 0.84rem);
            font-weight: 600;
            border-bottom: 1px solid rgba(255, 255, 255, 0.35);
            padding-bottom: 0.1rem;
            transition: color 0.3s ease, border-color 0.3s ease;
        }
        .heridas-premium__link:hover {
            color: #f3d2b0;
            border-color: rgba(243, 210, 176, 0.7);
        }
        .heridas-premium__note {
            margin: 0;
            font-size: clamp(0.66rem, 1.4vw, 0.76rem);
            line-height: 1.5;
            color: rgba(247, 245, 240, 0.68);
            max-width: 34ch;
        }
        .heridas-premium__inner {
            position: relative;
            z-index: 2;
            width: 100%;
            max-width: 1180px;
            margin: -clamp(2.75rem, 7vw, 4.5rem) auto 0;
            padding: 0 clamp(20px, 3vw, 40px);
            box-sizing: border-box;
        }
        .heridas-premium__outro {
            position: relative;
            z-index: 1;
            height: clamp(64px, 10vw, 110px);
            margin-top: -clamp(28px, 5vw, 48px);
            pointer-events: none;
            background: linear-gradient(
                180deg,
                rgba(247, 245, 240, 0) 0%,
                rgba(247, 245, 240, 0.55) 42%,
                var(--fondo-crema) 100%
            );
        }
        .heridas-premium__shell {
            position: relative;
            overflow: hidden;
            border-radius: clamp(22px, 3.5vw, 36px);
            padding: clamp(0.95rem, 2.4vw, 1.85rem);
            background:
                radial-gradient(circle at 12% 8%, rgba(126, 184, 255, 0.14), transparent 34%),
                rgba(255, 255, 255, 0.52);
            border: 1px solid rgba(255, 255, 255, 0.72);
            border-top-color: rgba(255, 255, 255, 0.94);
            box-shadow:
                0 28px 70px rgba(45, 79, 130, 0.1),
                inset 0 1px 1px rgba(255, 255, 255, 0.82);
            backdrop-filter: blur(22px) saturate(160%);
            -webkit-backdrop-filter: blur(22px) saturate(160%);
        }
        .heridas-premium__facts {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: clamp(0.4rem, 1.2vw, 0.75rem);
        }
        .heridas-premium__fact {
            padding: clamp(0.65rem, 1.6vw, 0.95rem) clamp(0.55rem, 1.4vw, 1rem);
            border-radius: clamp(14px, 2vw, 20px);
            background: rgba(255, 255, 255, 0.42);
            border: 1px solid rgba(255, 255, 255, 0.6);
            box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.72);
            min-width: 0;
        }
        .heridas-premium__fact span {
            display: block;
            font-size: clamp(0.5rem, 1.15vw, 0.62rem);
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--texto-secundario);
            margin-bottom: 0.28rem;
        }
        .heridas-premium__fact strong {
            display: block;
            font-size: clamp(0.68rem, 1.55vw, 0.9rem);
            font-weight: 650;
            line-height: 1.3;
            color: var(--inpulso-azul);
        }
        .heridas-premium__details {
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
            gap: clamp(0.55rem, 1.6vw, 1.15rem);
            margin-top: clamp(0.7rem, 1.8vw, 1rem);
        }
        .heridas-premium__panel {
            padding: clamp(0.8rem, 1.8vw, 1.25rem);
            border-radius: clamp(16px, 2.2vw, 22px);
            background: rgba(255, 255, 255, 0.38);
            border: 1px solid rgba(255, 255, 255, 0.58);
            box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.72);
            min-width: 0;
        }
        .heridas-premium__panel h3 {
            margin: 0 0 0.55rem;
            font-family: var(--fuente-titulos);
            font-size: clamp(0.95rem, 2.2vw, 1.35rem);
            font-weight: 400;
            letter-spacing: -0.02em;
            color: var(--inpulso-azul);
        }
        .heridas-premium__panel h3 em { font-style: italic; }
        .heridas-premium__panel p {
            margin: 0;
            font-size: clamp(0.72rem, 1.55vw, 0.9rem);
            line-height: 1.6;
            font-weight: 300;
            color: var(--texto-secundario);
        }
        .heridas-premium__list {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            gap: clamp(0.35rem, 1vw, 0.55rem);
        }
        .heridas-premium__list li {
            position: relative;
            padding-left: 1rem;
            font-size: clamp(0.7rem, 1.5vw, 0.88rem);
            line-height: 1.45;
            color: var(--texto-secundario);
            font-weight: 350;
        }
        .heridas-premium__list li::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0.48em;
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: var(--inpulso-rojo);
            box-shadow: 0 0 0 3px rgba(198, 74, 73, 0.12);
        }
        .heridas-album {
            position: relative;
            margin-top: clamp(1.1rem, 2.8vw, 1.85rem);
            padding-top: clamp(1rem, 2.2vw, 1.45rem);
            border-top: 1px solid rgba(45, 79, 130, 0.1);
            overflow: visible;
        }
        .heridas-album__inner {
            position: relative;
            z-index: 1;
            width: 100%;
            max-width: 960px;
            margin-left: auto;
            margin-right: auto;
        }
        .heridas-album__head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            margin-bottom: 0.85rem;
        }
        .heridas-album__head h3 {
            font-family: var(--fuente-titulos);
            font-size: clamp(1.1rem, 2.6vw, 1.75rem);
            font-weight: 400;
            line-height: 1.15;
            margin: 0;
            letter-spacing: -0.02em;
            color: var(--inpulso-azul);
        }
        .heridas-album__head h3 em { font-style: italic; }
        .heridas-album__count-pill {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            padding: 0.35rem 0.7rem;
            border-radius: 999px;
            background: rgba(45, 79, 130, 0.07);
            border: 1px solid rgba(45, 79, 130, 0.1);
            font-size: clamp(0.55rem, 1.2vw, 0.66rem);
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--inpulso-azul);
            white-space: nowrap;
        }
        .heridas-album__count-pill svg {
            width: 12px;
            height: 12px;
            opacity: 0.7;
            flex-shrink: 0;
        }
        .heridas-album__rail-wrap {
            position: relative;
            width: 100%;
            margin: 0;
        }
        .heridas-album__rail-wrap::before,
        .heridas-album__rail-wrap::after {
            content: '';
            position: absolute;
            top: 0;
            bottom: 0;
            width: clamp(16px, 3vw, 36px);
            z-index: 3;
            pointer-events: none;
        }
        .heridas-album__rail-wrap::before {
            left: 0;
            background: linear-gradient(90deg,
                rgba(255, 255, 255, 0.88) 0%,
                rgba(255, 255, 255, 0.28) 55%,
                transparent 100%);
        }
        .heridas-album__rail-wrap::after {
            right: 0;
            background: linear-gradient(270deg,
                rgba(255, 255, 255, 0.88) 0%,
                rgba(255, 255, 255, 0.28) 55%,
                transparent 100%);
        }
        .heridas-album__rail {
            display: flex;
            justify-content: flex-start;
            gap: clamp(0.45rem, 1.2vw, 0.75rem);
            overflow-x: auto;
            overflow-y: hidden;
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            padding: 6px 2px 10px;
            cursor: grab;
            -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
        }
        .heridas-album__rail::-webkit-scrollbar { display: none; }
        .heridas-album__rail.is-dragging {
            cursor: grabbing;
            scroll-snap-type: none;
        }
        .heridas-album__rail.is-dragging .heridas-album__item {
            pointer-events: none;
        }
        .heridas-album__item {
            position: relative;
            flex: 0 0 auto;
            width: clamp(132px, 18vw, 168px);
            aspect-ratio: 4 / 5;
            border: none;
            padding: 0;
            margin: 0;
            border-radius: clamp(12px, 2vw, 18px);
            overflow: hidden;
            cursor: pointer;
            background: #e4dfd4;
            scroll-snap-align: start;
            box-shadow: 0 12px 28px rgba(26, 31, 28, 0.12);
            transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease;
        }
        @media (min-width: 900px) {
            .heridas-album__item {
                width: calc((100% - 3rem) / 5);
                max-width: none;
            }
        }
        @media (hover: hover) and (pointer: fine) {
            .heridas-album__item:hover {
                transform: translateY(-6px) scale(1.02);
                box-shadow: 0 22px 40px rgba(26, 31, 28, 0.18);
            }
            .heridas-album__item:hover .heridas-album__item-img { transform: scale(1.08); }
        }
        .heridas-album__item-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transform: scale(1.04);
            transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
            filter: saturate(0.93) contrast(1.03);
        }
        .heridas-album__item-num {
            position: absolute;
            top: 8px;
            left: 8px;
            z-index: 2;
            padding: 2px 7px;
            border-radius: 999px;
            font-size: 0.52rem;
            font-weight: 700;
            letter-spacing: 0.06em;
            color: #fff;
            background: rgba(26, 34, 48, 0.5);
        }
        .heridas-album__hint {
            margin: 0.45rem 0 0;
            text-align: center;
            font-size: clamp(0.55rem, 1.2vw, 0.66rem);
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: rgba(90, 107, 99, 0.65);
            font-weight: 600;
        }
        .heridas-premium__lead--short { display: none; }

        /* Móvil: más aire y menos densidad (escritorio intacto) */
        @media (max-width: 768px) {
            .heridas-premium {
                margin-top: -clamp(40px, 12vw, 72px);
                padding-bottom: 1rem;
            }
            .heridas-premium__stage {
                min-height: 0;
            }
            .heridas-premium__veil {
                background:
                    linear-gradient(180deg,
                        rgba(18, 24, 32, 0.55) 0%,
                        rgba(10, 14, 22, 0.2) 28%,
                        rgba(10, 14, 22, 0.45) 58%,
                        rgba(247, 245, 240, 0.35) 86%,
                        var(--fondo-crema) 100%);
            }
            .heridas-premium__stage-inner {
                width: calc(100% - 28px);
                padding: 1.35rem 0 3.25rem;
            }
            .heridas-premium__layout {
                grid-template-columns: 1fr;
                gap: 1.1rem;
                align-items: start;
            }
            .heridas-premium__copy {
                max-width: none;
                gap: 0.7rem;
            }
            .heridas-premium__title {
                max-width: 12ch;
                font-size: clamp(2.15rem, 9.5vw, 2.85rem);
                line-height: 1.02;
            }
            .heridas-premium__lead--full { display: none; }
            .heridas-premium__lead--short {
                display: block;
                max-width: 34ch;
                font-size: 0.92rem;
                line-height: 1.55;
            }
            .heridas-premium__side {
                justify-self: stretch;
                max-width: none;
                gap: 0.85rem;
            }
            .heridas-premium__chips,
            .heridas-premium__note {
                display: none;
            }
            .heridas-premium__actions {
                width: 100%;
                flex-direction: column;
                align-items: stretch;
                gap: 0.75rem;
            }
            .heridas-premium__cta {
                width: 100%;
                padding: 0.95rem 1.2rem;
                font-size: 0.68rem;
            }
            .heridas-premium__link {
                align-self: flex-start;
            }
            .heridas-premium__inner {
                margin-top: -2.5rem;
                padding: 0 12px;
            }
            .heridas-premium__shell {
                padding: 1rem;
                border-radius: 22px;
            }
            .heridas-premium__facts {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 0.55rem;
            }
            .heridas-premium__fact {
                padding: 0.75rem 0.8rem;
                border-radius: 16px;
            }
            .heridas-premium__fact span {
                font-size: 0.55rem;
                margin-bottom: 0.22rem;
            }
            .heridas-premium__fact strong {
                font-size: 0.78rem;
                line-height: 1.3;
            }
            .heridas-premium__details {
                grid-template-columns: 1fr;
                gap: 0.65rem;
                margin-top: 0.75rem;
            }
            .heridas-premium__panel {
                padding: 0.95rem 1rem;
                border-radius: 18px;
            }
            .heridas-premium__panel h3 {
                font-size: 1.15rem;
                margin-bottom: 0.45rem;
            }
            .heridas-premium__panel p,
            .heridas-premium__list li {
                font-size: 0.86rem;
            }
            .heridas-album {
                margin-top: 1.15rem;
                padding-top: 1rem;
            }
            .heridas-album__item {
                width: min(148px, 46vw);
            }
            .heridas-premium__outro {
                height: 56px;
                margin-top: -20px;
            }
        }
        @media (prefers-reduced-motion: reduce) {
            .heridas-premium__visual img { transform: none; }
            .heridas-album__item,
            .heridas-album__item-img { transition: none !important; }
            .heridas-album__item:hover { transform: none; }
            .heridas-album__item:hover .heridas-album__item-img { transform: none; }
        }

        .heridas-lightbox {
            position: fixed;
            inset: 0;
            z-index: 12000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: clamp(12px, 3vw, 28px);
            background: rgba(4, 7, 14, 0.92);
            backdrop-filter: blur(20px) saturate(140%);
            -webkit-backdrop-filter: blur(20px) saturate(140%);
        }
        .heridas-lightbox.is-open { display: flex; }
        .heridas-lightbox__panel {
            position: relative;
            width: min(960px, 100%);
            max-height: 92vh;
            border-radius: clamp(18px, 2.5vw, 26px);
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.16);
            box-shadow:
                0 40px 100px rgba(0, 0, 0, 0.55),
                inset 0 1px 0 rgba(255, 255, 255, 0.12);
            background: linear-gradient(165deg, #121a2e 0%, #0a0f1a 100%);
        }
        .heridas-lightbox__img {
            width: 100%;
            max-height: calc(92vh - 58px);
            object-fit: contain;
            display: block;
            background: #05080f;
        }
        .heridas-lightbox__bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
            padding: 0.7rem 0.85rem;
            font-size: 0.78rem;
            color: rgba(255, 255, 255, 0.72);
            border-top: 1px solid rgba(255, 255, 255, 0.08);
        }
        .heridas-lightbox__nav {
            display: flex;
            gap: 0.45rem;
        }
        .heridas-lightbox__btn {
            width: 38px;
            height: 38px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, 0.18);
            background: rgba(255, 255, 255, 0.08);
            color: #fff;
            cursor: pointer;
            font-size: 1.1rem;
            line-height: 1;
        }
        .heridas-lightbox__btn:hover { background: rgba(255, 255, 255, 0.16); }
        .heridas-lightbox__close {
            position: absolute;
            top: 10px;
            right: 10px;
            z-index: 2;
        }

        /* Footer */
        .jm-footer {
            background-color: var(--fondo-ergonomico); padding: 6vh 5vw 4vh;
            border-radius: var(--radio-secciones) var(--radio-secciones) 0 0;
            display: flex; flex-direction: column; align-items: center; text-align: center;
            position: relative; z-index: 1;
        }
        .footer-grid {
            display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 2rem; width: 100%; max-width: 1000px; margin-bottom: 2rem; justify-items: center;
        }
        .footer-link-group h4 {
            font-size: 0.8rem; color: var(--inpulso-azul); text-transform: uppercase;
            margin-bottom: 1rem; font-weight: 700;
        }
        .footer-link-group p, .footer-social-list a {
            font-size: 0.85rem; color: var(--texto-secundario); text-decoration: none; margin: 0 0 0.3rem;
        }
        .footer-social-list { list-style: none; padding: 0; margin: 0; }
        .footer-links {
            display: flex; flex-wrap: wrap; gap: 1.5rem; padding-top: 2rem;
            border-top: 1px solid rgba(0,0,0,0.1); justify-content: center;
        }
        .footer-links a {
            font-size: 0.75rem; color: var(--texto-secundario); text-decoration: none;
            text-transform: uppercase; font-weight: 600;
        }

        @media (max-width: 768px) {
            .taller-panel { height: clamp(360px, 88vw, 440px); }
            .modal-overlay { padding: 12px; align-items: flex-end; }
            .modal-glass {
                max-height: min(92vh, 920px);
                border-radius: 24px 24px 18px 18px;
            }
            .modal-scroll { padding: 1.15rem 1.1rem 1.5rem; }
            .modal-text h2 { font-size: clamp(1.45rem, 6.5vw, 1.85rem); }
            .modal-text p { font-size: 0.92rem; line-height: 1.65; }
            .modal-cover-img { height: 168px; border-radius: 14px; margin-bottom: 1rem; }
            .book-scene { height: min(440px, 68vh); width: min(340px, 88vw); }
            .book-assembly { transform: rotateX(6deg) rotateY(-10deg); }
            .book-cover-front h2 { font-size: 0.95rem; }
        }
