        :root {
            --azul: #003087;
            --azul-dark: #001e57;
            --azul-light: #1a4a9a;
            --verde: #2E7D32;
            --verde-light: #4CAF50;
            --dorado: #C9A84C;
            --blanco: #ffffff;
            --gris-claro: #f8f9fa;
            --shadow: 0 4px 24px rgba(0,0,0,0.08);
            --shadow-lg: 0 20px 60px rgba(0,0,0,0.15);
            --transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }
        .hidden { display: none !important; }
        html { scroll-behavior: smooth; }
        body {
            font-family: 'Montserrat', sans-serif;
            line-height: 1.6;
            color: #333;
            background: #fff;
            overflow-x: hidden;
        }

        .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

        /* ── HEADER ── */
        header {
            background: rgba(255,255,255,0.97);
            backdrop-filter: blur(12px);
            padding: 16px 0;
            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 1000;
            box-shadow: 0 2px 15px rgba(0,0,0,0.06);
            transition: var(--transition);
        }
        header.scrolled { padding: 10px 0; box-shadow: 0 4px 20px rgba(0,0,0,0.12); }
        .header-content { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
        .header-content > nav { flex: 1; display: flex; justify-content: center; }
        .header-content > div:last-child { margin-left: auto; }
/* Header a todo el ancho: logo pegado izquierda, toggle/menú pegado derecha */
#mainHeader > .container {
    max-width: 100%;
    padding: 0 32px;
}
        .logo {
            display: flex; align-items: center; gap: 10px;
            text-decoration: none; color: var(--azul);
        }
        .logo img {
            width: 40px; height: 40px;
            border-radius: 50%; object-fit: cover;
            border: 2px solid var(--azul);
            transition: transform 0.3s;
        }
        .logo:hover img { transform: rotate(10deg) scale(1.08); }
        .logo-text {
            position: relative;
            display: inline-block;
            line-height: 1;
        }
        .logo-text-full {
            display: flex; flex-direction: column;
            gap: 2px;
            transition: opacity 0.3s ease, transform 0.3s ease;
        }
        .logo-text-abbr {
            position: absolute; top: 50%; left: 0;
            font-family: 'Bebas Neue', sans-serif;
            font-size: 24px; font-weight: 400;
            letter-spacing: 3px;
            color: var(--azul);
            white-space: nowrap;
            opacity: 0;
            transform: translateY(-50%) translateY(10px);
            transition: opacity 0.3s ease, transform 0.3s ease;
            pointer-events: none;
        }
        #mainHeader.scrolled .logo-text-full {
            opacity: 0;
            transform: translateY(-6px) scale(0.9);
            pointer-events: none;
        }
        #mainHeader.scrolled .logo-text-abbr {
            opacity: 1;
            transform: translateY(-50%) translateY(0);
            pointer-events: auto;
        }
        .logo-top {
            font-size: 9px; font-weight: 600;
            letter-spacing: 3.5px;
            color: var(--azul);
            opacity: 0.7;
            text-transform: uppercase;
        }
        .logo-bottom {
            font-size: 20px; font-weight: 700;
            letter-spacing: 1.5px;
            color: var(--azul);
            text-transform: uppercase;
        }

        /* ── HEADER FLOTANDO SOBRE EL HERO (solo inicio, antes de hacer scroll) ── */
        #mainHeader.hero-mode:not(.scrolled) {
            background: transparent;
            backdrop-filter: none;
            box-shadow: none;
        }
        #mainHeader.hero-mode:not(.scrolled) .logo-top,
        #mainHeader.hero-mode:not(.scrolled) .logo-bottom {
            color: #fff;
        }
        #mainHeader.hero-mode:not(.scrolled) nav a {
            color: rgba(255,255,255,0.92);
            text-shadow: 0 1px 8px rgba(0,0,0,0.35);
        }
        #mainHeader.hero-mode:not(.scrolled) nav a:hover,
        #mainHeader.hero-mode:not(.scrolled) nav a.active {
            color: #fff;
            text-shadow: 0 1px 12px rgba(0,0,0,0.5);
        }
        #mainHeader.hero-mode:not(.scrolled) .nav-dropdown-trigger {
            color: rgba(255,255,255,0.92);
            text-shadow: 0 1px 8px rgba(0,0,0,0.35);
        }
        #mainHeader.hero-mode:not(.scrolled) .nav-dropdown-trigger:hover,
        #mainHeader.hero-mode:not(.scrolled) .nav-dropdown-wrap.open .nav-dropdown-trigger,
        #mainHeader.hero-mode:not(.scrolled) .nav-dropdown-trigger.active {
            color: #fff;
            text-shadow: 0 1px 12px rgba(0,0,0,0.5);
        }
        #mainHeader.hero-mode:not(.scrolled) .hamburger span {
            background: #fff;
        }
        #mainHeader.hero-mode:not(.scrolled) #theme-toggle {
            color: #fff;
            border-color: rgba(255,255,255,0.4);
        }
        #mainHeader.hero-mode:not(.scrolled) #theme-toggle:hover {
            background: rgba(255,255,255,0.12);
            border-color: rgba(255,255,255,0.6);
        }
        #mainHeader.hero-mode:not(.scrolled) .dot {
            background: #fff;
        }

        nav { display: flex; gap: 28px; align-items: center; }
        nav a {
            color: #444; text-decoration: none;
            font-size: 12px; font-weight: 600;
            text-transform: uppercase; letter-spacing: 1.5px;
            position: relative; padding-bottom: 4px;
            transition: color 0.3s, transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        nav a::after {
            content: '';
            position: absolute; bottom: 0; left: 0;
            width: 0; height: 2px;
            background: var(--verde);
            transition: width 0.3s ease;
        }
        nav a:hover, nav a.active { color: var(--azul); }
        nav a:hover::after, nav a.active::after { width: 100%; }

        .hamburger {
            display: none; flex-direction: column; gap: 5px;
            cursor: pointer; background: none; border: none; padding: 8px; z-index: 1100;
        }
        .hamburger span { display: block; width: 25px; height: 2.5px; background: var(--azul); transition: 0.3s; border-radius: 2px; transform-origin: center; }
        .hamburger.active span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
        .hamburger.active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
        .hamburger.active span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

        /* ── SECCIONES SPA ── */
        .page-section {
            display: none;
            opacity: 0;
            transition: opacity 0.5s ease;
            padding-top: 72px;
        }
        .page-section.active { display: block; opacity: 1; animation: sectionFadeIn 0.35s ease forwards; }
        #page-404.active { display: flex; }

@keyframes sectionFadeIn {
    0% { opacity: 0; transform: translateY(6px); }
    100% { opacity: 1; transform: translateY(0); }
}

        /* ── HERO ── */
        .hero {
            height: calc(100vh - 72px);
            height: calc(100dvh - 72px);
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            background: var(--azul-dark);
        }
        #inicio .hero {
            margin-top: -72px;
            height: 100vh;
            height: 100dvh;
        }
        .hero-video {
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            min-width: 100%; min-height: 100%;
            width: auto; height: auto;
            object-fit: cover;
            z-index: 0;
        }
        .hero-overlay {
            position: absolute; inset: 0;
            background: linear-gradient(to bottom, rgba(0,30,87,0.55) 0%, rgba(0,0,0,0.35) 50%, rgba(0,30,87,0.65) 100%);
            z-index: 1;
        }
        .hero-particles { position: absolute; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
        .particle {
            position: absolute; border-radius: 50%;
            background: rgba(255,255,255,0.15);
            animation: floatParticle linear infinite;
        }
        @keyframes floatParticle {
            0% { transform: translateY(100vh) scale(0); opacity: 0; }
            10% { opacity: 1; }
            90% { opacity: 0.5; }
            100% { transform: translateY(-20vh) scale(1); opacity: 0; }
        }
        .hero-content { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 12px; }
        .hero-sub {
            font-family: 'Cormorant Garamond', serif; font-style: italic;
            font-size: clamp(18px, 3vw, 26px); font-weight: 400; letter-spacing: 5px;
            opacity: 0; transform: translateY(20px);
            animation: heroEntry 0.8s 0.3s ease forwards;
            color: white;
        }
        .hero h1 {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(52px, 12vw, 110px); font-weight: 400;
            letter-spacing: 8px; text-transform: uppercase; line-height: 0.9;
            opacity: 0; transform: translateY(30px);
            animation: heroEntry 0.9s 0.5s ease forwards;
            text-shadow: 0 4px 30px rgba(0,0,0,0.4);
            color: white;
        }
        .hero-slogan {
            font-family: 'Cormorant Garamond', serif; font-style: italic;
            font-size: clamp(16px, 2.2vw, 22px); letter-spacing: 2px;
            opacity: 0; transform: translateY(20px);
            animation: heroEntry 0.8s 0.7s ease forwards;
            color: white;
        }
        .hero-pastor {
            font-size: 11px; letter-spacing: 3px; text-transform: uppercase;
            opacity: 0; transform: translateY(15px);
            animation: heroEntry 0.8s 0.9s ease forwards;
            color: white;
        }
        .hero-line { width: 60px; height: 1px; background: rgba(255,255,255,0.5); opacity: 0; animation: heroEntry 0.6s 0.6s ease forwards; }
        .btn-outline {
            margin-top: 12px; display: inline-block;
            padding: 14px 52px; border: 2px solid white;
            color: white; font-weight: 700; font-size: 12px;
            text-transform: uppercase; letter-spacing: 3px;
            text-decoration: none; border-radius: 50px;
            transition: var(--transition); cursor: pointer;
            background: transparent; opacity: 0;
            animation: heroEntry 0.8s 1.1s ease forwards;
            position: relative; overflow: hidden;
        }
        .btn-outline::before {
            content: ''; position: absolute; inset: 0;
            background: white; transform: translateX(-101%);
            transition: transform 0.4s ease; z-index: -1;
        }
        .btn-outline:hover::before { transform: translateX(0); }
        .btn-outline:hover { color: var(--azul); }
        .hero-scroll-hint {
            position: absolute; bottom: 28px; left: 50%;
            transform: translateX(-50%); z-index: 3;
            display: flex; flex-direction: column; align-items: center; gap: 6px;
            opacity: 0; animation: heroEntry 0.8s 1.5s ease forwards;
            color: white;
        }
        .hero-scroll-hint span { font-size: 9px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.6; }
        .scroll-line { width: 1px; height: 40px; background: rgba(255,255,255,0.4); animation: scrollPulse 1.8s infinite; }
        @keyframes scrollPulse {
            0%, 100% { transform: scaleY(1); opacity: 0.4; }
            50% { transform: scaleY(0.5); opacity: 1; }
        }
        @keyframes heroEntry { to { opacity: 1; transform: translateY(0); } }

        /* ── STATS ── */
        .stats-bar {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 100%);
            padding: 0; position: relative; overflow: hidden;
        }
        .stats-bar::before {
            content: ''; position: absolute; inset: 0;
            background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        }
        .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; z-index: 1; }
        .stat-item {
            padding: 48px 24px; text-align: center;
            border-right: 1px solid rgba(255,255,255,0.1);
            position: relative; transition: background 0.3s;
        }
        .stat-item:last-child { border-right: none; }
        .stat-item:hover { background: rgba(255,255,255,0.05); }
        .stat-number {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(48px, 6vw, 72px); color: white;
            line-height: 1; display: block; margin-bottom: 4px;
        }
        .stat-suffix { color: var(--verde-light); font-size: 0.7em; }
        .stat-label { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,0.55); font-weight: 600; }
        .stat-icon { color: rgba(255,255,255,0.2); margin-bottom: 10px; transition: color 0.3s; }
        .stat-item:hover .stat-icon { color: rgba(255,255,255,0.5); }

        /* ── SECCIONES GENERALES ── */
        .section { padding: 100px 0; }
        .section-alt { background: var(--gris-claro); padding: 64px 0; }
        .section-title {
            text-align: center; color: var(--azul);
            font-size: clamp(22px, 4vw, 36px); font-weight: 700;
            text-transform: uppercase; letter-spacing: 4px;
            margin-bottom: 16px; position: relative; padding-bottom: 20px;
        }
        .section-title::after {
            content: ''; position: absolute; bottom: 0; left: 50%;
            transform: translateX(-50%); width: 50px; height: 3px;
            background: linear-gradient(90deg, var(--verde), var(--azul)); border-radius: 2px;
        }
        .section-sub { text-align: center; color: #999; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 60px; }

        /* ── CULTOS GRID (2 columnas) ── */
        .cultos-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 48px;
            align-items: center;
            max-width: 960px;
            margin: 0 auto;
        }
        .cultos-right-panel {
            position: relative;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 8px 40px rgba(0,48,135,0.13);
            min-height: 340px;
        }
        .cultos-foto {
            width: 100%;
            height: 100%;
            min-height: 340px;
            object-fit: cover;
            object-position: center;
            display: block;
        }
        .cultos-verse-overlay {
            position: absolute;
            bottom: 0; left: 0; right: 0;
            background: linear-gradient(to top, rgba(0,20,80,0.88) 0%, rgba(0,20,80,0.5) 70%, transparent 100%);
            padding: 32px 28px 28px;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
            text-align: center;
        }
        .cultos-deco-line {
            width: 36px;
            height: 1.5px;
            background: linear-gradient(90deg, var(--dorado), var(--verde));
            border-radius: 2px;
            opacity: 0.8;
        }
        .cultos-verse-text {
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: clamp(15px, 1.6vw, 19px);
            line-height: 1.7;
            color: rgba(255,255,255,0.92);
            margin: 0;
        }
        .cultos-verse-ref {
            font-size: 9px;
            font-weight: 700;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--dorado);
        }
        @media (max-width: 768px) {
            .cultos-grid {
                grid-template-columns: 1fr;
                gap: 28px;
            }
            .cultos-right-panel {
                min-height: 260px;
            }
            .cultos-foto {
                min-height: 260px;
            }
        }
        @media (max-width: 480px) {
            .cultos-right-panel {
                min-height: 220px;
            }
            .cultos-foto {
                min-height: 220px;
            }
        }

        /* ── SCHEDULE ── */
        .schedule {
            background: white; border-radius: 20px; padding: 56px 48px;
            text-align: center; box-shadow: var(--shadow-lg);
            max-width: 560px; margin: 0 auto; position: relative; overflow: hidden;
            width: 100%;
        }
        .schedule::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
            background: linear-gradient(90deg, var(--azul), var(--verde), var(--azul));
            background-size: 200% 100%; animation: shimmer 3s linear infinite;
        }
        @keyframes shimmer { 0% { background-position: 200% center; } 100% { background-position: -200% center; } }
        .schedule h3 { color: var(--azul); font-size: 11px; letter-spacing: 4px; text-transform: uppercase; margin-bottom: 28px; }
        .time-slot {
            padding: 22px 0; border-bottom: 1px solid #f0f0f0;
            font-size: 18px; color: #333; font-weight: 600;
            display: flex; align-items: center; justify-content: center; gap: 12px;
            transition: color 0.3s, transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }
        .time-slot:last-of-type { border-bottom: none; }
        .time-slot:hover { color: var(--azul); }
        .time-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--verde); flex-shrink: 0; }
        .verse { margin-top: 28px; font-family: 'Cormorant Garamond', serif; font-style: italic; color: #999; font-size: 15px; line-height: 1.7; }

        /* ── VERSÍCULOS FLOTANTES ── */
        .floating-verse-section {
            position: relative;
            overflow: hidden;
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 60%, #0a3d7a 100%);
            padding: 80px 0;
        }
        .floating-verse-section::before {
            content: '';
            position: absolute; inset: 0;
            background: radial-gradient(ellipse at 20% 50%, rgba(201,168,76,0.10) 0%, transparent 60%),
                        radial-gradient(ellipse at 80% 50%, rgba(46,125,50,0.10) 0%, transparent 60%);
            pointer-events: none;
        }
        .fv-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 28px;
            position: relative; z-index: 1;
        }
        .fv-card {
            background: rgba(255,255,255,0.07);
            border: 1px solid rgba(255,255,255,0.14);
            border-radius: 20px;
            padding: 36px 28px;
            text-align: center;
            backdrop-filter: blur(6px);
            transition: transform 0.4s cubic-bezier(0.165,0.84,0.44,1), background 0.3s, box-shadow 0.4s;
            animation: floatCard 5s ease-in-out infinite;
        }
        .fv-card:nth-child(2) { animation-delay: 1.5s; }
        .fv-card:nth-child(3) { animation-delay: 3s; }
        @keyframes floatCard {
            0%, 100% { transform: translateY(0px); }
            50% { transform: translateY(-10px); }
        }
        .fv-card:hover {
            background: rgba(255,255,255,0.13);
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            transform: translateY(-14px) !important;
        }
        .fv-icon { color: var(--dorado); margin-bottom: 18px; }
        .fv-text {
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: clamp(16px, 2vw, 21px);
            color: rgba(255,255,255,0.92);
            line-height: 1.7;
            margin-bottom: 16px;
        }
        .fv-ref {
            font-size: 11px; letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--dorado);
            font-weight: 700;
            font-style: normal;
        }
        @media (max-width: 900px) { .fv-grid { grid-template-columns: 1fr; gap: 20px; } }

        /* ── CARDS ── */
        .cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 60px; }
        .card {
            display: flex; flex-direction: column; align-items: center;
            text-align: center; padding: 40px 24px; background: white;
            border-radius: 18px; box-shadow: var(--shadow);
            transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
            position: relative; overflow: hidden;
        }
        .card::after {
            content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
            background: linear-gradient(90deg, var(--azul), var(--verde));
            transform: scaleX(0); transition: transform 0.4s ease;
        }
        .card:hover { transform: translateY(-10px); box-shadow: 0 24px 48px rgba(0,0,0,0.14); }
        .card:hover::after { transform: scaleX(1); }
        .card-icon { color: var(--azul); margin-bottom: 20px; transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
        .card:hover .card-icon { transform: scale(1.15) rotate(5deg); }
        .card h3 { color: var(--azul); font-size: 12px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; font-weight: 700; }
        .card p { color: #666; font-size: 13px; line-height: 1.7; }
        .card a { color: var(--azul); text-decoration: none; word-break: break-all; font-size: 13px; }
        .card a:hover { color: var(--verde); }
        .card strong { color: #444; font-size: 11px; display: block; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 1.5px; }
        .pastor-duo { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
        .pastor-item { text-align: center; }
        .pastor-divider { width: 1px; height: 36px; background: #e0e0e0; flex-shrink: 0; }
        .social-btns { display: flex; gap: 14px; justify-content: center; margin-top: 12px; }
        .social-btn {
            width: 48px; height: 48px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s;
            text-decoration: none; border: none; cursor: pointer;
        }
        .social-btn:hover { transform: scale(1.2) translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,0.25); }
        .social-btn.fb { background: #1877F2; }
        .social-btn.ig { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }

        /* ── LIVE ── */
        .live-wrapper {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 60%, #1a4a9a 100%);
            border-radius: 28px; padding: 64px 52px;
            max-width: 800px; margin: 0 auto; text-align: center;
            box-shadow: 0 30px 80px rgba(0,48,135,0.3); position: relative; overflow: hidden;
        }
        .live-wrapper::before {
            content: ''; position: absolute; top: -80px; right: -80px;
            width: 300px; height: 300px; border-radius: 50%;
            background: rgba(255,255,255,0.04); animation: rotateBubble 20s linear infinite;
        }
        @keyframes rotateBubble { 0% { transform: rotate(0deg) translateX(30px); } 100% { transform: rotate(360deg) translateX(30px); } }
        .live-wrapper::after {
            content: ''; position: absolute; bottom: -100px; left: -60px;
            width: 350px; height: 350px; border-radius: 50%; background: rgba(255,255,255,0.03);
        }
        .live-badge {
            display: inline-flex; align-items: center; gap: 8px;
            background: rgba(255,255,255,0.13); border: 1px solid rgba(255,255,255,0.22);
            border-radius: 50px; padding: 9px 22px; margin-bottom: 28px;
        }
        .live-dot { width: 10px; height: 10px; background: #ff4444; border-radius: 50%; animation: pulse-dot 1.5s infinite; flex-shrink: 0; }
        @keyframes pulse-dot {
            0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 0 rgba(255,68,68,0.5); }
            50% { opacity: 0.8; transform: scale(0.85); box-shadow: 0 0 0 7px rgba(255,68,68,0); }
        }
        .live-badge span { color: white; font-size: 11px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; }
        .live-title { color: white; font-size: clamp(22px, 3.5vw, 36px); font-weight: 700; margin-bottom: 12px; line-height: 1.2; }
        .live-sub { color: rgba(255,255,255,0.6); font-size: 14px; letter-spacing: 0.5px; margin-bottom: 36px; }
        .live-cta {
            display: inline-flex; align-items: center; gap: 12px;
            background: #1877F2; border: none;
            color: white; padding: 18px 48px; border-radius: 50px;
            text-decoration: none; font-size: 15px; font-weight: 700;
            letter-spacing: 1.5px; text-transform: uppercase;
            transition: background 0.3s, transform 0.3s, box-shadow 0.3s;
            position: relative; z-index: 1;
            box-shadow: 0 8px 32px rgba(24,119,242,0.55);
        }
        .live-cta:hover { background: #1464d8; transform: translateY(-4px); box-shadow: 0 14px 42px rgba(24,119,242,0.65); }
        .live-auto-close { color: rgba(255,255,255,0.4); font-size: 12px; margin-top: 20px; letter-spacing: 0.5px; position: relative; z-index: 1; }
        .live-offline {
            position: relative; z-index: 1;
            color: rgba(255,255,255,0.6); font-size: 14px; letter-spacing: 1px;
            background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12);
            border-radius: 16px; padding: 28px 36px; display: inline-block;
        }
        .live-offline strong { color: white; display: block; font-size: 17px; margin-bottom: 8px; letter-spacing: 2px; }
        .live-countdown { color: rgba(255,255,255,0.45); font-size: 12px; margin-top: 10px; letter-spacing: 1px; }

        /* ── INSTAGRAM ── */
        .ig-clean-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 16px;
            margin: 40px auto 32px;
            max-width: 1100px;
        }
        .ig-clean-grid.loaded { gap: 12px; }
        .ig-item {
            display: block;
            position: relative;
            border-radius: 16px;
            overflow: hidden;
            aspect-ratio: 1;
            background: linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
            background-size: cover;
            background-position: center;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
            transition: transform 0.4s ease, box-shadow 0.4s ease;
            text-decoration: none;
            cursor: pointer;
        }
        .ig-item:hover { transform: translateY(-6px) scale(1.02); box-shadow: 0 12px 32px rgba(0,0,0,0.2); }
        .ig-item::after {
            content: '';
            position: absolute;
            inset: 0;
            background: rgba(0,0,0,0);
            transition: background 0.3s;
        }
        .ig-item:hover::after { background: rgba(0,0,0,0.25); }
        .ig-item .ig-icon {
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%,-50%) scale(0);
            opacity: 0;
            transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1);
            z-index: 2;
            color: white;
            width: 40px; height: 40px;
        }
        .ig-item:hover .ig-icon {
            transform: translate(-50%,-50%) scale(1);
            opacity: 1;
        }
        .ig-loading { color: var(--muted); font-size: 13px; margin: 20px 0; }
        @media (max-width: 900px) {
            .ig-clean-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
        }
        @media (max-width: 500px) {
            .ig-clean-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
        }

        #page-404 { background:linear-gradient(135deg,var(--azul-dark) 0%,var(--azul) 50%,#0a3d7a 100%); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:40px 20px; box-sizing:border-box; }
        .error-scene { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; justify-items:center; gap:clamp(8px,2vw,32px); width:100%; max-width:1000px; margin:0 auto; }
        .error-figure { display:flex; flex-direction:column; align-items:center; gap:6px; width:100%; }
        .error-figure-left { grid-column:1; justify-self:end; animation:walkInLeft 10s linear 0.1s forwards; }
        .error-figure-right { grid-column:3; justify-self:start; animation:walkInRight 10s linear 0.6s forwards; }
        @keyframes walkInLeft { 0%{opacity:1;transform:translateX(-40vw)} 100%{opacity:1;transform:translateX(0)} }
        @keyframes walkInRight { 0%{opacity:1;transform:translateX(40vw)} 100%{opacity:1;transform:translateX(0)} }
        .error-fig-svg { display:flex; flex-direction:column; align-items:center; gap:8px; }
        .error-figure svg { width:clamp(45px,6vw,70px); height:auto; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.15)); display:block; }

        /* ── Walking limb animations ── */
        .error-figure-left.walking .leg-left { animation:legSwing 1.2s ease-in-out infinite; }
        .error-figure-left.walking .leg-right { animation:legSwing 1.2s ease-in-out 0.6s infinite; }
        .error-figure-left.walking .arm-left { animation:armSwing 1.2s ease-in-out 0.6s infinite; }
        .error-figure-left.walking .arm-right { animation:armSwing 1.2s ease-in-out infinite; }
        .error-figure-left.walking svg { animation:bodyBobLeft 1.2s ease-in-out infinite; }

        .error-figure-right.walking .leg-left { animation:legSwing 1.2s ease-in-out infinite; }
        .error-figure-right.walking .leg-right { animation:legSwing 1.2s ease-in-out 0.6s infinite; }
        .error-figure-right.walking .arm-left { animation:armSwing 1.2s ease-in-out 0.6s infinite; }
        .error-figure-right.walking .arm-right { animation:armSwing 1.2s ease-in-out infinite; }
        .error-figure-right.walking .mega { animation:megaSwing 1.2s ease-in-out infinite; }
        .error-figure-right.walking svg { animation:bodyBobRight 1.2s ease-in-out infinite; }

        @keyframes legSwing { 0%,100%{transform:rotate(-14deg)} 50%{transform:rotate(14deg)} }
        @keyframes armSwing { 0%,100%{transform:rotate(8deg)} 50%{transform:rotate(-8deg)} }
        @keyframes megaSwing { 0%,100%{transform:rotate(-4deg)} 50%{transform:rotate(4deg)} }
        @keyframes bodyBobLeft { 0%,100%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} }
        @keyframes bodyBobRight { 0%,100%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-3px) rotate(-1deg)} }

        .error-center { text-align:center; flex-shrink:0; }
        .error-404 { font-family:'Bebas Neue',sans-serif; font-size:clamp(64px,12vw,120px); letter-spacing:10px; color:white; opacity:0.8; line-height:1; margin:0; text-shadow:0 4px 40px rgba(0,0,0,0.2); }
        .error-sub { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(15px,2vw,22px); letter-spacing:2px; color:rgba(255,255,255,0.8); margin:6px 0 16px; }
        .error-sign { background:white; color:var(--azul); font-weight:700; font-size:clamp(11px,1.2vw,14px); text-align:center; padding:clamp(6px,0.8vw,12px) clamp(10px,1.2vw,18px); border-radius:8px; line-height:1.5; box-shadow:0 4px 16px rgba(0,0,0,0.12); position:relative; white-space:nowrap; }
        .error-sign::after { content:''; position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-top:8px solid white; }
        .error-bubble { background:rgba(255,255,255,0.15); backdrop-filter:blur(8px); color:white; font-size:clamp(11px,1.1vw,14px); padding:clamp(10px,1.2vw,16px) clamp(12px,1.5vw,20px); border-radius:14px; line-height:1.5; max-width:280px; text-align:center; border:1px solid rgba(255,255,255,0.2); position:relative; opacity:0; }
        .error-bubble strong { color:#ffd700; }
        .error-bubble em { color:#ffd700; font-style:italic; }
        .error-bubble.visible { opacity:1; }
        .error-bubble::before { content:''; position:absolute; top:50%; left:100%; transform:translateY(-50%); width:0; height:0; border-top:8px solid transparent; border-bottom:8px solid transparent; border-left:10px solid rgba(255,255,255,0.15); }
        .bubble-line { display:none; }
        .bubble-line.visible { display:block; animation:bubbleText 0.4s ease forwards; }
        @keyframes bubbleText { 0%{opacity:0;transform:translateY(6px)} 100%{opacity:1;transform:translateY(0)} }

        @media (max-width:700px) {
            .error-scene { grid-template-columns:1fr; gap:10px; }
            .error-figure-left { grid-column:1; justify-self:center; }
            .error-figure-right { grid-column:1; justify-self:center; }
            .error-center { grid-column:1; }
            .error-figure { flex-direction:row; gap:8px; width:100%; justify-content:center; }
            .error-figure svg { width:45px; }
            .error-bubble { max-width:240px; }
            .error-bubble::before { top:auto; bottom:100%; left:50%; transform:translateX(-50%); border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:10px solid rgba(255,255,255,0.15); border-top:none; }
            .error-sign { white-space:normal; }
            .error-figure-left { animation-name:walkInLeftMobile; animation-duration:8s; }
            .error-figure-right { animation-name:walkInRightMobile; animation-duration:8s; }
            @keyframes walkInLeftMobile { 0%{opacity:1;transform:translateX(-30vw)} 100%{opacity:1;transform:translateX(0)} }
            @keyframes walkInRightMobile { 0%{opacity:1;transform:translateX(30vw)} 100%{opacity:1;transform:translateX(0)} }
        }

        .ig-profile-btn {
            display: inline-flex; align-items: center; gap: 10px;
            background: white; border: 2px solid var(--azul);
            color: var(--azul); padding: 15px 40px; border-radius: 50px;
            text-decoration: none; font-weight: 700; font-size: 13px;
            letter-spacing: 2px; text-transform: uppercase;
            transition: color 0.4s, transform 0.3s, box-shadow 0.3s;
            position: relative; overflow: hidden; z-index: 1;
        }
        .ig-profile-btn::before {
            content: ''; position: absolute; inset: 0;
            background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
            transform: translateX(-101%);
            transition: transform 0.4s ease; z-index: -1;
            border-radius: 48px;
        }
        .ig-profile-btn:hover::before { transform: translateX(0); }
        .ig-profile-btn:hover { color: white; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(188,24,136,0.35); border-color: transparent; }

        /* ── HERO PEQUEÑOS ── */
        .hero-small {
            height: 55vh;
            height: 55dvh;
            display: flex; align-items: center; justify-content: center;
            text-align: center; color: white; position: relative; overflow: hidden;
        }
        .hero-small-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 12px; }
        .hero-small h1 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(42px, 8vw, 80px); font-weight: 400; letter-spacing: 8px; text-transform: uppercase; }
        .hero-small-line { width: 50px; height: 2px; background: rgba(255,255,255,0.5); }
        .hero-conocenos {
            background: linear-gradient(rgba(0,0,0,0.45), rgba(0,30,87,0.6)), url('../image/conocenos.jpg');
            background-size: cover; background-position: center 30%;
        }
        .hero-contacto {
            background: linear-gradient(rgba(0,30,87,0.5), rgba(0,0,0,0.5)), url('../image/contacto.jpg');
            background-size: cover; background-position: center center;
        }
        .hero-transmisiones {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 50%, #0a3d7a 100%);
        }

        /* ── Panel lateral EN VIVO ── */
        .transmision-layout {
            display: flex;
            gap: 32px;
            align-items: stretch;
            width: 100%;
            max-width: 1180px;
            margin: 0 auto;
            position: relative;
            z-index: 2;
        }
        .transmision-layout .transmision-content {
            flex: 1 1 55%;
            min-width: 0;
            max-width: none;
            margin: 0;
            text-align: left;
        }
        .trans-panel {
            flex: 0 0 360px;
            background: rgba(255,255,255,0.06);
            border: 1px solid rgba(255,255,255,0.1);
            border-radius: 14px;
            overflow: hidden;
            backdrop-filter: blur(12px);
            display: flex;
            flex-direction: column;
            min-height: 420px;
        }
        .trans-tabs {
            display: flex;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }
        .trans-tab {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 4px;
            padding: 14px 8px 10px;
            background: transparent;
            border: none;
            color: rgba(255,255,255,0.45);
            font-family: 'Montserrat', sans-serif;
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
            cursor: pointer;
            transition: color 0.2s, background 0.2s;
        }
        .trans-tab:hover { color: rgba(255,255,255,0.75); }
        .trans-tab.active {
            color: #fff;
            border-bottom: 2px solid var(--gold, #c9a84c);
            background: rgba(255,255,255,0.04);
        }
        .trans-content {
            display: none;
            flex-direction: column;
            flex: 1;
            overflow: hidden;
        }
        .trans-content.active { display: flex; }

        /* Agenda */
        .trans-label {
            font-family: 'Montserrat', sans-serif;
            font-size: 10px;
            letter-spacing: 2px;
            color: var(--gold, #c9a84c);
            padding: 20px 20px 4px;
            margin: 0;
        }
        .trans-next-date {
            font-family: 'Montserrat', sans-serif;
            font-size: 13px;
            font-weight: 700;
            color: #fff;
            padding: 0 20px 16px;
            margin: 0;
        }
        .trans-schedule {
            padding: 0 20px;
            display: flex;
            flex-direction: column;
            gap: 0;
        }
        .trans-service {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 14px 0;
        }
        .trans-time {
            font-family: 'Montserrat', sans-serif;
            font-size: 18px;
            font-weight: 700;
            color: #fff;
        }
        .trans-sname {
            font-size: 12px;
            color: rgba(255,255,255,0.55);
            letter-spacing: 1px;
        }
        .trans-divider {
            height: 1px;
            background: rgba(255,255,255,0.08);
        }
        .trans-note {
            font-size: 11px;
            color: rgba(255,255,255,0.35);
            padding: 16px 20px;
            margin: 0;
            letter-spacing: 1px;
        }

        /* Notas */
        .trans-toolbar {
            display: flex;
            gap: 4px;
            padding: 10px 14px;
            border-bottom: 1px solid rgba(255,255,255,0.08);
            background: rgba(0,0,0,0.2);
        }
        .trans-toolbar button {
            width: 30px;
            height: 28px;
            border: none;
            border-radius: 5px;
            background: rgba(255,255,255,0.08);
            color: #fff;
            cursor: pointer;
            font-size: 13px;
            transition: background 0.15s;
        }
        .trans-toolbar button:hover { background: rgba(255,255,255,0.18); }
        .trans-notes {
            flex: 1;
            padding: 14px;
            color: #fff;
            font-size: 16px;
            line-height: 1.7;
            outline: none;
            overflow-y: auto;
            min-height: 200px;
        }
        .trans-notes:empty::before {
            content: attr(placeholder);
            color: rgba(255,255,255,0.25);
            pointer-events: none;
        }
        .trans-notes-footer {
            display: flex;
            gap: 8px;
            padding: 10px 14px;
            border-top: 1px solid rgba(255,255,255,0.08);
            justify-content: center;
        }
        .trans-clear-btn, .trans-copy-btn, .trans-download-btn {
            border: none;
            border-radius: 6px;
            padding: 6px 14px;
            font-size: 11px;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
            cursor: pointer;
            transition: opacity 0.2s;
        }
        .trans-clear-btn { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); }
        .trans-copy-btn { background: var(--gold, #c9a84c); color: #1a1f2e; }
        .trans-download-btn { background: var(--azul, #1a3a6b); color: #fff; }
        .trans-clear-btn:hover, .trans-copy-btn:hover, .trans-download-btn:hover { opacity: 0.8; }

        /* Biblia reader */
        .trans-bible-reader {
            flex: 1;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            background: #fff;
            min-height: 380px;
        }
        .dark .trans-bible-reader {
            background: #111827;
        }
        .trans-bible-toolbar {
            display: flex;
            gap: 6px;
            padding: 10px 12px;
            border-bottom: 1px solid rgba(0,0,0,0.08);
            background: #f8f8f8;
            align-items: center;
            flex-wrap: wrap;
        }
        .dark .trans-bible-toolbar {
            background: #1a1f2e;
            border-bottom-color: rgba(255,255,255,0.08);
        }
        .trans-bible-select {
            flex: 1;
            border: 1px solid #ddd;
            border-radius: 6px;
            padding: 7px 10px;
            font-size: 13px;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;
            background: #fff;
            color: #222;
            outline: none;
            cursor: pointer;
            min-width: 0;
        }
        .dark .trans-bible-select {
            background: #253044;
            border-color: rgba(255,255,255,0.1);
            color: #fff;
        }
        .trans-bible-nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 6px 12px;
            border-bottom: 1px solid rgba(0,0,0,0.06);
            background: #f8f8f8;
        }
        .dark .trans-bible-nav {
            background: #1a1f2e;
            border-bottom-color: rgba(255,255,255,0.06);
        }
        .trans-bible-nav button {
            border: none;
            background: transparent;
            color: var(--azul, #1a3a6b);
            font-size: 18px;
            cursor: pointer;
            padding: 4px 10px;
            border-radius: 5px;
            transition: background 0.15s;
        }
        .dark .trans-bible-nav button { color: var(--gold, #c9a84c); }
        .trans-bible-nav button:hover { background: rgba(0,0,0,0.06); }
        .trans-bible-ref {
            font-size: 11px;
            font-family: 'Montserrat', sans-serif;
            font-weight: 700;
            letter-spacing: 1px;
            color: #555;
            text-transform: uppercase;
        }
        .dark .trans-bible-ref { color: #aaa; }
        .trans-bible-verses {
            flex: 1;
            overflow-y: auto;
            padding: 14px;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .trans-bible-verse {
            display: flex;
            gap: 8px;
            font-size: 13px;
            line-height: 1.75;
            color: #222;
        }
        .dark .trans-bible-verse { color: #ddd; }
        .trans-bible-vnum {
            flex-shrink: 0;
            font-size: 10px;
            font-weight: 700;
            color: var(--azul, #1a3a6b);
            margin-top: 3px;
            min-width: 18px;
        }
        .dark .trans-bible-vnum { color: var(--gold, #c9a84c); }
        .trans-bible-loading {
            text-align: center;
            color: #999;
            font-size: 13px;
            padding: 32px;
        }
        .trans-bible-version {
            text-align: center;
            font-size: 10px;
            letter-spacing: 2px;
            color: #bbb;
            padding: 8px;
            border-top: 1px solid rgba(0,0,0,0.05);
        }
        .dark .trans-bible-version {
            color: #555;
            border-top-color: rgba(255,255,255,0.05);
        }

        /* ── Modo claro para el panel EN VIVO ── */
        html:not(.dark) .trans-panel {
            background: rgba(255,255,255,0.92);
            border-color: rgba(0,0,0,0.08);
        }
        html:not(.dark) .trans-tab {
            color: rgba(0,0,0,0.5);
        }
        html:not(.dark) .trans-tab:hover { color: rgba(0,0,0,0.75); }
        html:not(.dark) .trans-tab.active {
            color: #222;
            background: rgba(0,0,0,0.03);
        }
        html:not(.dark) .trans-next-date,
        html:not(.dark) .trans-time { color: #222; }
        html:not(.dark) .trans-sname { color: rgba(0,0,0,0.5); }
        html:not(.dark) .trans-divider { background: rgba(0,0,0,0.08); }
        html:not(.dark) .trans-note { color: rgba(0,0,0,0.35); }
        html:not(.dark) .trans-toolbar {
            background: rgba(0,0,0,0.04);
            border-bottom-color: rgba(0,0,0,0.08);
        }
        html:not(.dark) .trans-toolbar button {
            background: rgba(0,0,0,0.06);
            color: #333;
        }
        html:not(.dark) .trans-toolbar button:hover { background: rgba(0,0,0,0.12); }
        html:not(.dark) .trans-notes { color: #222; }
        html:not(.dark) .trans-notes:empty::before { color: rgba(0,0,0,0.25); }
        html:not(.dark) .trans-notes-footer { border-top-color: rgba(0,0,0,0.08); }
        html:not(.dark) .trans-clear-btn {
            background: rgba(0,0,0,0.06);
            color: rgba(0,0,0,0.6);
        }
        html:not(.dark) .trans-tabs { border-bottom-color: rgba(0,0,0,0.08); }

        /* Responsive */
        @media (max-width: 900px) {
            .transmision-layout {
                flex-direction: column;
            }
            .trans-panel {
                flex: 0 0 auto;
                width: 100%;
                min-height: 380px;
            }
        }
        @media (max-width: 480px) {
            .transmision-hero { padding: 60px 12px 60px; }
            .transmision-bigtext { font-size: clamp(54px, 24vw, 120px); }
            .transmision-title { font-size: clamp(22px, 6vw, 30px); line-height: 1.1; }
            .transmision-badge { font-size: 10px; padding: 8px 16px; gap: 8px; }
            .trans-tab { padding: 10px 4px 8px; font-size: 9px; gap: 2px; }
            .trans-tab svg { width: 14px; height: 14px; }
            .trans-label { padding: 14px 14px 4px; }
            .trans-next-date { padding: 0 14px 12px; font-size: 12px; }
            .trans-schedule { padding: 0 14px; }
            .trans-service { padding: 10px 0; }
            .trans-time { font-size: 15px; }
            .trans-sname { font-size: 10px; }
            .trans-note { padding: 12px 14px; font-size: 10px; }
            .trans-toolbar { padding: 8px 10px; gap: 3px; }
            .trans-toolbar button { width: 26px; height: 24px; font-size: 11px; }
            .trans-notes { padding: 10px; font-size: 16px; min-height: 160px; }
            .trans-notes-footer { padding: 8px 10px; gap: 6px; }
            .trans-clear-btn, .trans-copy-btn, .trans-download-btn { padding: 5px 10px; font-size: 10px; }
            .trans-bible-toolbar { padding: 8px 10px; gap: 4px; }
            .trans-bible-select { font-size: 12px; padding: 5px 8px; }
            .trans-bible-nav { padding: 4px 10px; }
            .trans-bible-nav button { font-size: 15px; padding: 3px 8px; }
            .trans-bible-ref { font-size: 10px; }
            .trans-bible-verses { padding: 10px; gap: 8px; }
            .trans-bible-verse { font-size: 12px; gap: 6px; }
            .trans-bible-vnum { font-size: 9px; min-width: 15px; }
            .trans-bible-reader { min-height: 300px; }
            .trans-panel { min-height: 340px; }
        }

        /* ── TRANSMISIÓN HERO CINEMATOGRÁFICO (página EN VIVO) ── */
        .transmision-hero {
            position: relative; overflow: hidden;
            background: linear-gradient(160deg, var(--azul-dark) 0%, #04122e 55%, #000914 100%);
            padding: 110px 24px 100px;
            display: flex; align-items: center; justify-content: center;
            text-align: center;
        }
        .transmision-particles {
            position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none;
        }
        .transmision-bigtext {
            position: absolute; top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(90px, 22vw, 320px);
            line-height: 0.95; letter-spacing: 6px;
            color: rgba(255,255,255,0.03);
            text-align: center;
            z-index: 0; pointer-events: none; user-select: none;
            left: 30%;
        }
        .transmision-content {
            position: relative; z-index: 2;
            max-width: 760px; margin: 0 auto; width: 100%;
            display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center;
        }
        .transmision-badge {
            display: inline-flex; align-items: center; gap: 10px;
            background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14);
            border-radius: 50px; padding: 10px 24px;
            color: rgba(255,255,255,0.85); font-size: 11px; font-weight: 700;
            letter-spacing: 3px; text-transform: uppercase;
            backdrop-filter: blur(6px);
        }
        .transmision-dot {
            width: 9px; height: 9px; border-radius: 50%; background: #ff4444;
            animation: pulse-dot 1.5s infinite; flex-shrink: 0;
        }
        .transmision-title {
            color: #fff; font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(32px, 5vw, 56px); letter-spacing: 3px;
            line-height: 1.15; font-weight: 400; text-transform: uppercase;
            margin: 0; text-align: center;
        }
        .transmision-card { margin-top: 12px; width: 100%; }
        @media (max-width: 600px) {
            .transmision-hero { padding: 80px 16px 70px; }
            .transmision-bigtext { font-size: clamp(70px, 28vw, 160px); letter-spacing: 3px; }
            .transmision-title { font-size: clamp(26px, 7vw, 38px); }
        }

        /* ── HERO PASTOR ── */
        .hero-pastor-page {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 50%, #0a3d7a 100%);
            height: 55vh;
            height: 55dvh; display: flex; align-items: center; justify-content: center;
            text-align: center; color: white; position: relative; overflow: hidden;
        }
        .hero-pastor-page::before {
            content: '';
            position: absolute; inset: 0;
            background: radial-gradient(ellipse at center, rgba(201,168,76,0.12) 0%, transparent 70%);
            pointer-events: none;
        }
        .hero-pastor-page::after {
            content: '';
            position: absolute;
            top: -100px; right: -100px;
            width: 400px; height: 400px; border-radius: 50%;
            background: rgba(255,255,255,0.03);
            animation: rotateBubble 25s linear infinite;
        }
        .hero-pastor-particles {
            position: absolute; inset: 0; pointer-events: none; overflow: hidden;
        }

        /* ── NUESTRO PASTOR ── */
        .pastor-hero-section {
            padding: 80px 0 60px;
            background: white;
        }
        .pastor-photo-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 60px;
        }
        .pastor-photo-frame {
            position: relative;
            width: 280px;
            height: 280px;
            margin-bottom: 28px;
        }
        .pastor-photo-ring {
            position: absolute; inset: -8px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--dorado), var(--azul), var(--dorado));
            animation: spinRing 6s linear infinite;
            z-index: 0;
        }
        @keyframes spinRing { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
        .pastor-photo-ring-2 {
            position: absolute; inset: -4px;
            border-radius: 50%;
            background: white;
            z-index: 1;
        }
        .pastor-photo-img {
            position: relative; z-index: 2;
            width: 100%; height: 100%;
            border-radius: 50%;
            object-fit: cover;
            object-position: center top;
            box-shadow: 0 20px 60px rgba(0,48,135,0.3);
        }
        .pastor-photo-badge {
            position: absolute; bottom: 8px; right: 8px;
            background: linear-gradient(135deg, var(--dorado), #e8c35a);
            width: 54px; height: 54px; border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            box-shadow: 0 4px 15px rgba(201,168,76,0.5);
            z-index: 3;
            border: 3px solid white;
            animation: pulseBadge 2s ease-in-out infinite;
        }
        @keyframes pulseBadge {
            0%, 100% { transform: scale(1); box-shadow: 0 4px 15px rgba(201,168,76,0.5); }
            50% { transform: scale(1.1); box-shadow: 0 6px 25px rgba(201,168,76,0.7); }
        }
        .pastor-name-display {
            text-align: center;
        }
        .pastor-name-display h2 {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(32px, 5vw, 52px);
            font-weight: 600;
            color: var(--azul-dark);
            letter-spacing: 2px;
            margin-bottom: 6px;
            line-height: 1.1;
        }
        .pastor-name-display .pastor-title-tag {
            display: inline-block;
            background: linear-gradient(135deg, var(--azul), var(--azul-light));
            color: white; font-size: 11px; letter-spacing: 4px;
            text-transform: uppercase; padding: 6px 20px; border-radius: 50px;
            margin-bottom: 16px; font-weight: 700;
        }
        .pastor-name-display .pastor-church-tag {
            display: block;
            font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
            color: #888; font-weight: 600;
        }

        /* ── PASTOR INFO CARDS ── */
        .pastor-info-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
            margin-bottom: 60px;
        }
        .pastor-info-card {
            background: white; border-radius: 18px;
            padding: 36px 28px; text-align: center;
            box-shadow: var(--shadow);
            border: 1px solid rgba(0,48,135,0.06);
            transition: transform 0.4s ease, box-shadow 0.4s ease;
            position: relative; overflow: hidden;
        }
        .pastor-info-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
            background: linear-gradient(90deg, var(--dorado), var(--azul));
            transform: scaleX(0); transform-origin: left;
            transition: transform 0.4s ease;
        }
        .pastor-info-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
        .pastor-info-card:hover::before { transform: scaleX(1); }
        .pic-icon { color: var(--azul); margin-bottom: 16px; }
        .pastor-info-card h4 { color: var(--azul); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 10px; font-weight: 700; }
        .pastor-info-card p { color: #555; font-size: 14px; line-height: 1.7; }
        .pastor-info-card a { color: var(--azul); text-decoration: none; }
        .pastor-info-card a:hover { color: var(--verde); text-decoration: underline; }

        /* ── PASTOR HISTORIA ── */
        .pastor-historia {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 100%);
            border-radius: 24px; padding: 60px 52px;
            color: white; margin-bottom: 60px;
            position: relative; overflow: hidden;
        }
        .pastor-historia::before {
            content: '"';
            position: absolute; top: -20px; left: 30px;
            font-family: 'Cormorant Garamond', serif;
            font-size: 200px; color: rgba(255,255,255,0.05);
            line-height: 1; pointer-events: none;
        }
        .pastor-historia h3 {
            font-size: 13px; letter-spacing: 4px; text-transform: uppercase;
            color: var(--dorado); margin-bottom: 24px; font-weight: 700;
        }
        .pastor-historia p {
            font-size: 16px; line-height: 2; color: rgba(255,255,255,0.88);
            margin-bottom: 18px; position: relative; z-index: 1;
        }
        .pastor-historia p:last-child { margin-bottom: 0; }

        /* ── LOGROS / HITOS ── */
        .pastor-hitos {
            margin-bottom: 60px;
        }
        .hitos-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
        }
        .hito-item {
            background: white; border-radius: 16px;
            padding: 32px 28px; display: flex; gap: 20px;
            align-items: flex-start; box-shadow: var(--shadow);
            border-left: 4px solid var(--dorado);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .hito-item:hover { transform: translateX(6px); box-shadow: var(--shadow-lg); }
        .hito-icon { color: var(--dorado); flex-shrink: 0; margin-top: 2px; }
        .hito-item h4 { color: var(--azul); font-size: 13px; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px; font-weight: 700; }
        .hito-item p { color: #666; font-size: 13px; line-height: 1.7; }

        /* ── VERSÍCULO PASTORAL ── */
        .pastor-versiculo {
            background: var(--gris-claro); border-radius: 20px;
            padding: 52px; text-align: center; margin-bottom: 20px;
            border: 1px solid rgba(0,48,135,0.08);
        }
        .pastor-versiculo .cross-icon { color: var(--dorado); margin-bottom: 20px; }
        .pastor-versiculo blockquote {
            font-family: 'Cormorant Garamond', serif;
            font-style: italic; font-size: clamp(20px, 3vw, 28px);
            color: var(--azul-dark); line-height: 1.6; margin-bottom: 16px;
        }
        .pastor-versiculo cite { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: #888; font-weight: 600; font-style: normal; }

        /* ── MISIÓN Y VISIÓN ── */
        .mv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 60px; }
        .mv-card {
            display: flex; flex-direction: column; align-items: center;
            text-align: center; padding: 52px 40px; background: white;
            border-radius: 18px; box-shadow: var(--shadow);
            transition: transform 0.4s ease, box-shadow 0.4s ease;
            position: relative; overflow: hidden;
        }
        .mv-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
            background: linear-gradient(90deg, var(--verde), var(--azul));
        }
        .mv-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
        .mv-card svg { color: var(--verde); margin-bottom: 24px; }
        .mv-card h3 { color: var(--azul); font-size: 14px; letter-spacing: 3px; text-transform: uppercase; font-weight: 700; margin-bottom: 18px; }
        .mv-card p { color: #666; font-size: 15px; line-height: 1.9; }

        /* ── HISTORIA ── */
        .history-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-top: 60px; }
        .history-text p { color: #555; font-size: 15px; line-height: 2; margin-bottom: 18px; }
        .history-img { width: 100%; border-radius: 20px; box-shadow: var(--shadow-lg); transition: transform 0.5s ease; }
        .history-img:hover { transform: scale(1.02); }

        /* ── VALORES ── */
        .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 60px; }
        .value-card {
            background: white; padding: 48px 32px; border-radius: 18px;
            box-shadow: var(--shadow); text-align: center;
            position: relative; transition: transform 0.4s ease, box-shadow 0.4s ease; overflow: hidden;
        }
        .value-card::before {
            content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%;
            background: linear-gradient(to bottom, var(--verde), var(--azul));
            transform: scaleY(0); transform-origin: top; transition: transform 0.4s ease;
        }
        .value-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); }
        .value-card:hover::before { transform: scaleY(1); }
        .value-card svg { color: var(--verde); margin-bottom: 20px; transition: transform 0.4s; }
        .value-card:hover svg { transform: scale(1.2); }
        .value-card h3 { color: var(--azul); margin-bottom: 12px; font-size: 14px; letter-spacing: 2px; text-transform: uppercase; }
        .value-card p { color: #666; font-size: 14px; line-height: 1.8; }

        /* ── CONTACTO ── */
        .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 60px; align-items: start; }
        .contact-form-box { background: white; padding: 44px; border-radius: 20px; box-shadow: var(--shadow-lg); }
        .form-group { margin-bottom: 22px; position: relative; }
        .form-group label { display: block; margin-bottom: 8px; color: var(--azul); font-weight: 700; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; }
        .form-group input, .form-group textarea {
            width: 100%; padding: 14px 18px; border: 1.5px solid #e8e8e8;
            border-radius: 10px; font-family: inherit; font-size: 14px;
            transition: border-color 0.3s, box-shadow 0.3s, transform 0.2s; background: #fafafa;
        }
        .form-group input:focus, .form-group textarea:focus {
            outline: none; border-color: var(--verde); background: white;
            box-shadow: 0 0 0 4px rgba(46,125,50,0.08); transform: translateY(-1px);
        }
        .form-group input.error, .form-group textarea.error {
            border-color: #d63f3f; background: #fff5f5;
            box-shadow: 0 0 0 4px rgba(214,63,63,0.08);
        }
        .form-group input.valid, .form-group textarea.valid {
            border-color: var(--verde);
        }
        .form-error {
            display: none; font-size: 11px; color: #d63f3f; margin-top: 4px; font-weight: 600;
        }
        .form-error.visible { display: block; }
        .btn-submit {
            background: linear-gradient(135deg, var(--azul), var(--azul-light));
            color: white; border: none; padding: 16px 30px;
            border-radius: 50px; font-weight: 700; cursor: pointer;
            text-transform: uppercase; letter-spacing: 2px; width: 100%;
            font-size: 13px; font-family: inherit; transition: var(--transition);
            box-shadow: 0 6px 20px rgba(0,48,135,0.3);
            position: relative; overflow: hidden;
        }
        .btn-submit:hover:not(:disabled) { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,48,135,0.4); }
        .btn-submit:disabled { opacity: 0.7; cursor: not-allowed; transform: none; }
        .btn-loading { display: inline-flex; align-items: center; gap: 8px; }
        .form-success {
            display: flex; align-items: center; gap: 12px; margin-top: 20px;
            padding: 16px 20px; background: rgba(46,125,50,0.08); border-radius: 12px;
            border: 1px solid rgba(46,125,50,0.2);
        }
        .form-success p { color: var(--verde); font-size: 13px; font-weight: 600; margin: 0; }
        @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
        .contact-info-box { padding: 8px 0; }
        .info-item {
            display: flex; gap: 20px; margin-bottom: 32px; align-items: flex-start;
            padding: 20px; border-radius: 14px; transition: background 0.3s;
        }
        .info-item:hover { background: var(--gris-claro); }
        .info-icon { color: var(--verde); flex-shrink: 0; margin-top: 2px; }
        .info-text h4 { color: var(--azul); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 5px; }
        .info-text p { color: #666; font-size: 14px; line-height: 1.6; }
        .map-wrap { margin-top: 24px; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-lg); border: 1px solid rgba(0,48,135,0.10); }
        .map-wrap iframe { display: block; width: 100%; height: 300px; }
        .map-footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: var(--gris-claro); border-top: 1px solid rgba(0,0,0,0.06); }
        .map-footer span { font-size: 12px; color: #888; }
        .map-footer a { font-size: 12px; font-weight: 600; color: var(--azul); text-decoration: none; letter-spacing: 0.5px; display: flex; align-items: center; gap: 5px; }
        .map-footer a:hover { color: var(--verde); }
        .map-footer a svg { width: 13px; height: 13px; }

        /* ── GALERÍA PÚBLICA ── */
        .galeria-publica-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
            gap: 12px; margin-top: 8px;
        }
        .galeria-publica-grid a {
            display: block; position:relative; border-radius: 14px; overflow: hidden;
            aspect-ratio: 1; background: var(--gris-claro);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            box-shadow: var(--shadow);
        }
        .galeria-publica-grid a:hover { transform: scale(1.03); box-shadow: var(--shadow-lg); }
        .galeria-publica-grid img {
            width: 100%; height: 100%; object-fit: cover; display: block;
            transition: transform 0.4s ease;
        }
        .galeria-publica-grid a:hover img { transform: scale(1.06); }
        .galeria-publica-grid .galeria-play-icon { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:44px; color:#fff; background:rgba(0,0,0,0.25); pointer-events:none; text-shadow:0 2px 8px rgba(0,0,0,0.5); }
        .galeria-vacia { text-align:center; color:#999; grid-column:1/-1; padding: 40px 0; font-size: 14px; }

        @media (max-width: 600px) {
            .galeria-publica-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 8px;
            }
        }

        .evento-share-btn {
            margin-top: 18px; padding: 10px 20px;
            background: transparent; border: 1.5px solid var(--azul);
            color: var(--azul); border-radius: 50px;
            font-size: 12px; font-weight: 700; letter-spacing: 1px;
            text-transform: uppercase; cursor: pointer;
            transition: all 0.3s ease; font-family: inherit;
        }
        .evento-share-btn:hover { background: var(--azul); color: white; transform: translateY(-1px); }
        .evento-share-btn svg { transition: transform 0.3s; }
        .evento-share-btn:hover svg { transform: scale(1.2); }
        /* ── FOOTER MINIMALISTA ── */
        #mainFooter {
            background: var(--azul-footer, #001e57);
            color: rgba(255,255,255,0.6);
            padding: 40px 0 32px;
            text-align: center;
        }

        .footer-inner {
            max-width: 900px;
            margin: 0 auto;
            padding: 0 24px;
        }

        .footer-nav-links {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            gap: 4px 8px;
            margin-bottom: 28px;
        }

        .footer-sep {
            color: rgba(255,255,255,0.25);
            font-size: 12px;
        }

        .footer-link {
            color: rgba(255,255,255,0.55);
            text-decoration: none;
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 1.5px;
            text-transform: uppercase;
            transition: color 0.2s;
        }

        .footer-link:hover {
            color: #fff;
        }

        .footer-divider {
            width: 100%;
            height: 1px;
            background: rgba(255,255,255,0.1);
            margin-bottom: 20px;
        }

        .footer-legal {
            font-size: 11px;
            opacity: 0.4;
            line-height: 1.9;
            text-align: center;
        }

        @media (max-width: 600px) {
            .footer-nav-links { gap: 6px 6px; }
            .footer-link { font-size: 10px; letter-spacing: 1px; }
            .footer-sep { display: none; }
        }

        /* ── AVISO DE PRIVACIDAD ── */
        .hero-privacidad {
            background: linear-gradient(135deg, var(--azul-dark) 0%, #0a2e6e 50%, var(--azul) 100%);
            position: relative; overflow: hidden;
        }
        .hero-privacidad::after {
            content: '';
            position: absolute; inset: 0;
            background: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M40 40l20-20M40 40L20 20M40 40l20 20M40 40L20 60'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        }
        .privacy-intro {
            background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
            border-left: 4px solid var(--azul);
            border-radius: 12px; padding: 32px 36px;
            display: flex; align-items: flex-start; gap: 20px;
            margin-bottom: 48px; max-width: 860px; margin-left: auto; margin-right: auto;
        }
        .privacy-intro p { font-size: 15px; line-height: 1.8; color: #444; flex: 1; }
        .privacy-badge { color: var(--azul); flex-shrink: 0; margin-top: 4px; }
        .privacy-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 24px; margin-bottom: 60px;
        }
        .privacy-card {
            background: white; border-radius: 16px;
            padding: 32px 28px;
            box-shadow: 0 4px 24px rgba(0,0,40,0.07);
            border: 1px solid rgba(0,48,135,0.07);
            position: relative; overflow: hidden;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .privacy-card::before {
            content: '';
            position: absolute; top: 0; left: 0; right: 0; height: 3px;
            background: linear-gradient(90deg, var(--azul), var(--verde));
            opacity: 0; transition: opacity 0.3s;
        }
        .privacy-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,48,135,0.12); }
        .privacy-card:hover::before { opacity: 1; }
        .privacy-card-icon {
            width: 60px; height: 60px; border-radius: 14px;
            background: linear-gradient(135deg, var(--azul-dark), var(--azul));
            display: flex; align-items: center; justify-content: center;
            margin-bottom: 18px; color: white;
        }
        .privacy-card h3 {
            color: var(--azul); font-size: 14px; font-weight: 700;
            letter-spacing: 1.5px; text-transform: uppercase;
            margin-bottom: 14px; padding-bottom: 10px;
            border-bottom: 1px solid rgba(0,48,135,0.1);
        }
        .privacy-card p { font-size: 14px; line-height: 1.75; color: #555; margin-bottom: 8px; }
        .privacy-card ul { list-style: none; padding: 0; margin: 10px 0; }
        .privacy-card ul li {
            font-size: 14px; line-height: 1.7; color: #555; padding: 4px 0 4px 18px;
            position: relative;
        }
        .privacy-card ul li::before {
            content: '›'; position: absolute; left: 0;
            color: var(--azul); font-weight: 700;
        }
        .privacy-card a { color: var(--azul); text-decoration: none; }
        .privacy-card a:hover { text-decoration: underline; }
        .arco-box {
            background: linear-gradient(135deg, #f0f4ff, #e8f0fe);
            border-radius: 10px; padding: 16px 20px; margin: 14px 0;
        }
        .arco-box p { font-size: 13px; color: var(--azul); margin: 4px 0; font-weight: 600; }
        .arco-box a { color: var(--azul); }
        .privacy-date-box {
            background: #f8f9ff; border-radius: 10px;
            padding: 14px 20px; margin: 14px 0;
        }
        .privacy-date-box p { font-size: 13px; color: #555; margin: 4px 0; }
        .privacy-footer-cta {
            text-align: center; padding: 60px 40px;
            background: linear-gradient(135deg, var(--azul-dark), var(--azul));
            border-radius: 20px; color: white;
        }
        .privacy-cross { font-size: 32px; color: var(--dorado); margin-bottom: 16px; }
        .privacy-footer-cta p {
            font-family: 'Cormorant Garamond', serif; font-style: italic;
            font-size: 18px; line-height: 1.7; opacity: 0.85; margin-bottom: 28px;
            max-width: 600px; margin-left: auto; margin-right: auto;
        }
        .btn-privacy-contact {
            display: inline-block; padding: 14px 48px;
            border: 2px solid rgba(255,255,255,0.7); color: white;
            font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 3px;
            border-radius: 50px; background: transparent; cursor: pointer;
            transition: all 0.3s ease;
        }
        .btn-privacy-contact:hover {
            background: white; color: var(--azul);
        }

        /* ── COOKIE BANNER ── */
        .cookie-banner {
            position: fixed; bottom: 0; left: 0; right: 0;
            background: #001e57;
            color: white; padding: 24px 28px;
            z-index: 99999; display: flex;
            align-items: center; justify-content: space-between;
            gap: 20px; flex-wrap: wrap;
            transform: translateY(100%);
            transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
            border-top: 2px solid var(--dorado);
            box-shadow: 0 -8px 32px rgba(0,0,0,0.2);
        }
        .cookie-banner.visible { transform: translateY(0); }
        .cookie-banner p { font-size: 13px; line-height: 1.6; opacity: 0.9; flex: 1; min-width: 250px; color: rgba(255,255,255,0.85); }
        .cookie-banner a { color: var(--dorado); text-decoration: none; font-weight: 600; }
        .cookie-banner a:hover { text-decoration: underline; }
        .cookie-buttons { display: flex; gap: 12px; flex-shrink: 0; }
        .cookie-accept {
            background: var(--azul-light); color: white;
            border: none; padding: 12px 28px; border-radius: 50px;
            font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
            text-transform: uppercase; cursor: pointer; transition: background 0.3s, transform 0.2s;
            box-shadow: 0 4px 12px rgba(0,48,135,0.3);
        }
        .cookie-accept:hover { background: var(--verde); transform: translateY(-1px); }
        .cookie-decline {
            background: transparent; color: rgba(255,255,255,0.5);
            border: 1px solid rgba(255,255,255,0.15); padding: 12px 20px; border-radius: 50px;
            font-size: 12px; cursor: pointer; transition: all 0.3s;
        }
        .cookie-decline:hover { color: white; border-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.05); }

        /* ── REGISTER CUSTOM PROPERTY (necesario para animar el border beam) ── */
        @property --btt-angle {
          syntax: '<angle>';
          inherits: false;
          initial-value: 0deg;
        }

        /* ── BACK TO TOP ── */
        .back-to-top {
            position: fixed; bottom: 28px; right: 28px; z-index: 999;
            width: 48px; height: 48px; border-radius: 50%;
            background: radial-gradient(circle at 42% 38%, #1a3d8f 0%, #003087 45%, #001a4d 100%);
            color: rgba(255,255,255,0.8);
            border: none; cursor: pointer;
            display: flex; align-items: center; justify-content: center;
            box-shadow:
                0 6px 32px rgba(0,48,135,0.65),
                0 2px 8px  rgba(0,0,0,0.6),
                inset 0 1px 2px rgba(255,255,255,0.15),
                inset 0 -2px 8px rgba(0,0,0,0.5);
            opacity: 0; transform: translateY(20px);
            transition: opacity 0.35s ease, transform 0.35s ease, color 0.25s;
            pointer-events: none;
            isolation: isolate;
            overflow: visible;
        }
        .back-to-top.visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
        .back-to-top:hover { color: #ffffff; }
        .back-to-top:active { transform: scale(0.95) translateY(0); }

        /* ── ARO CROMÁTICO ANIMADO (border beam) ── */
        .back-to-top::before {
            content: '';
            position: absolute;
            inset: -5px;
            border-radius: 50%;
            padding: 3px;
            background: conic-gradient(
                from var(--btt-angle, 0deg),
                #181818   0deg,  #242424  18deg, #303030  36deg, #3c3c3c  54deg,
                #484848  72deg,  #525252  90deg, #4a4a4a 108deg, #3e3e3e 126deg,
                #343434 144deg,  #2c2c2c 162deg,
                #383848 175deg,  #505068 182deg, #6068a0 188deg,
                #7080b8 192deg,  #8898cc 196deg, #a0b0d8 200deg,
                #c8d4e8 203deg,  #e4eaf8 206deg, #f4f6ff 208deg,
                #ffffff 210deg,  #fef8f0 212deg,
                #f0d898 214deg,  #e0b860 217deg, #c89038 221deg,
                #a07030 226deg,  #786050 232deg,
                #585050 240deg,  #484040 250deg, #383838 262deg,
                #282828 278deg,  #202020 300deg, #1c1c1c 330deg,
                #181818 360deg
            );
            -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;
            animation: bttBeamSpin 4s linear infinite;
            opacity: 0;
            transition: opacity 0.35s;
            pointer-events: none;
            z-index: -1;
        }
        .back-to-top.visible::before { opacity: 1; }

        @keyframes bttBeamSpin {
            from { --btt-angle: 0deg; }
            to   { --btt-angle: 360deg; }
        }

        /* ── REVEAL ANIMATIONS ── */
        .reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s cubic-bezier(0.165, 0.84, 0.44, 1), transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1); }
        .reveal.visible { opacity: 1; transform: translateY(0); }
        .reveal-left { opacity: 0; transform: translateX(-50px); transition: opacity 0.8s ease, transform 0.8s ease; }
        .reveal-left.visible { opacity: 1; transform: translateX(0); }
        .reveal-right { opacity: 0; transform: translateX(50px); transition: opacity 0.8s ease, transform 0.8s ease; }
        .reveal-right.visible { opacity: 1; transform: translateX(0); }
        .delay-1 { transition-delay: 0.1s; }
        .delay-2 { transition-delay: 0.2s; }
        .delay-3 { transition-delay: 0.3s; }
        .delay-4 { transition-delay: 0.4s; }

        /* ══════════════════════════════════════════════════════
           RESPONSIVE COMPLETO — todos los dispositivos
           iPhone SE (375px) → iPhone 16 Pro Max (430px)
           Android desde 360px → tablets → desktop
        ══════════════════════════════════════════════════════ */

        /* Container padding reducido en móvil */
        @media (max-width: 600px) {
            .container { padding: 0 16px; }
            .section { padding: 60px 0; }
            #mainHeader > .container { padding: 0 16px; }
        }

        /* ── HEADER / NAV ── */
        @media (max-width: 768px) {
            .hamburger { display: flex; order: 2; }
            #theme-toggle { order: 1; }
            nav {
                position: fixed; left: -100%; top: 0;
                flex-direction: column; background: var(--nav-mobile-bg, white);
                width: 82%; max-width: 320px; height: 100vh;
                height: 100dvh;
                padding: 72px 28px 40px; box-shadow: 10px 0 40px rgba(0,0,0,0.15);
                z-index: 1050; gap: 24px;
                transition: left 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), background 0.3s ease;
                overflow-y: auto;
            }
            nav.nav-active { left: 0; }
            nav a { font-size: 14px; letter-spacing: 2px; }
        }

        /* ── SKIP TO CONTENT ── */
        .skip-link {
            position: fixed; top: -100%; left: 16px; z-index: 99999;
            background: var(--azul); color: white;
            padding: 12px 24px; border-radius: 0 0 8px 8px;
            font-size: 13px; font-weight: 700; text-decoration: none;
            transition: top 0.3s ease;
        }
        .skip-link:focus { top: 0; }

        /* ── HERO PRINCIPAL ── */
        @media (max-width: 600px) {
            .hero h1 { font-size: clamp(44px, 16vw, 80px); letter-spacing: 4px; }
            .hero-sub { font-size: clamp(14px, 4vw, 20px); letter-spacing: 3px; }
            .hero-slogan { font-size: clamp(13px, 3.5vw, 18px); letter-spacing: 1px; }
            .btn-outline { padding: 12px 36px; font-size: 11px; letter-spacing: 2px; }
        }

        /* ── STATS BAR ── */
        @media (max-width: 900px) {
            .stats-grid { grid-template-columns: repeat(2, 1fr); }
            .stat-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.1); }
        }
        @media (max-width: 500px) {
            .stats-grid { grid-template-columns: repeat(2, 1fr); }
            .stat-item { padding: 32px 16px; }
            .stat-number { font-size: clamp(36px, 10vw, 56px); }
        }

        /* ── FLOATING VERSES ── */
        @media (max-width: 900px) { .fv-grid { grid-template-columns: 1fr; gap: 20px; } }
        @media (max-width: 600px) {
            .floating-verse-section { padding: 52px 0; }
            .fv-card { padding: 28px 20px; }
            .fv-text { font-size: clamp(15px, 4vw, 19px); }
        }

        /* ── IGLESIA CARDS (INICIO) ── */
        @media (max-width: 900px) { .cards-grid { grid-template-columns: repeat(2, 1fr); } }
        @media (max-width: 500px) {
            .cards-grid { grid-template-columns: 1fr; gap: 14px; }
            .card { padding: 32px 20px; }
        }

        /* ── LIVE / COUNTDOWN WRAPPER ── */
        @media (max-width: 900px) { .live-wrapper { padding: 40px 28px; } }
        @media (max-width: 600px) {
            .live-wrapper { padding: 36px 20px; border-radius: 20px; }
            .live-cta { padding: 15px 28px; font-size: 13px; letter-spacing: 1px; width: 100%; justify-content: center; }
            .live-title { font-size: clamp(18px, 5vw, 26px); }
        }

        /* ── VERSÍCULO DEL DÍA ── */
        @media (max-width: 600px) {
            .vd-card { padding: 32px 18px 28px; border-radius: 18px; overflow: visible; }
            .vd-text { font-size: clamp(17px, 4.5vw, 22px); padding: 0 4px; }
            .vd-day-badge { font-size: 9px; letter-spacing: 1.5px; padding: 6px 14px; left: 50%; transform: translateX(-50%); }
        }
        @media (max-width: 360px) {
            .vd-day-badge {
                font-size: 8px;
                letter-spacing: 1px;
                padding: 5px 10px;
                max-width: calc(100% - 32px);
                left: 50%;
                transform: translateX(-50%);
            }
            .vd-card {
                padding: 28px 14px 24px;
            }
        }

        /* ── BANNER PRÓXIMOS EVENTOS (INICIO) - CARRUSEL ── */
        .eventos-carousel-wrap {
            position: relative;
            overflow: hidden;
            border-radius: 24px;
            box-shadow: var(--shadow-lg);
        }
        .eventos-carousel-track {
            display: flex;
            transition: none;
        }
        .evento-slide {
            min-width: 100%;
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 60%, #0a3d7a 100%);
            border-radius: 24px;
            padding: 52px 48px;
            align-items: center;
            justify-content: space-between;
            gap: 32px;
            flex-wrap: wrap;
            position: relative;
            overflow: hidden;
        }
        .evento-slide::before {
            content: '';
            position: absolute;
            inset: 0;
            background: radial-gradient(ellipse at 80% 50%, rgba(201,168,76,0.12) 0%, transparent 60%);
            pointer-events: none;
        }
        .eventos-carousel-dots {
            display: flex;
            justify-content: center;
            gap: 8px;
            margin-top: 16px;
        }
        .carousel-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: rgba(0,0,0,0.15);
            border: none;
            cursor: pointer;
            transition: all 0.3s ease;
            padding: 0;
        }
        .carousel-dot.active {
            background: var(--azul);
            transform: scale(1.3);
        }
        .eventos-carousel-progress {
            position: absolute;
            bottom: 0;
            left: 0;
            height: 3px;
            background: rgba(201,168,76,0.7);
            border-radius: 0 0 24px 24px;
            width: 0%;
            transition: width linear;
        }
        @media (max-width: 600px) {
            .evento-slide {
                flex-direction: column;
                text-align: center;
                padding: 36px 20px;
                gap: 24px;
            }
            .eventos-banner-btn { width: 100%; justify-content: center; }
        }

        /* ── INSTAGRAM ── */
        @media (max-width: 900px) { .ig-clean-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
        @media (max-width: 500px) {
            .ig-clean-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
            .ig-iframe-wrap iframe { height: 480px; }
            .ig-profile-btn { padding: 13px 28px; font-size: 12px; width: 100%; justify-content: center; }
        }

        /* ── HERO PEQUEÑOS (secciones internas) ── */
        @media (max-width: 600px) {
            .hero-small { height: 44vh; min-height: 220px; }
            .hero-small h1 { font-size: clamp(34px, 11vw, 60px); letter-spacing: 4px; }
        }
        @media (max-width: 480px) {
            .hero-small { height: 40vh; min-height: 200px; }
            .hero-small h1 { font-size: clamp(24px, 7vw, 36px); letter-spacing: 2px; }
        }

        /* ── MISIÓN Y VISIÓN ── */
        @media (max-width: 900px) { .mv-grid { grid-template-columns: 1fr; } }
        @media (max-width: 600px) {
            .mv-card { padding: 36px 24px; }
        }

        /* ── HISTORIA ── */
        @media (max-width: 900px) { .history-grid { grid-template-columns: 1fr; gap: 36px; } }
        @media (max-width: 600px) {
            .history-grid { gap: 24px; }
            .history-text p { font-size: 14px; }
        }

        /* ── VALORES ── */
        @media (max-width: 900px) { .values-grid { grid-template-columns: repeat(2, 1fr); } }
        @media (max-width: 500px) {
            .values-grid { grid-template-columns: 1fr; }
            .value-card { padding: 36px 24px; }
        }

        /* ── NUESTRO PASTOR ── */
        @media (max-width: 900px) {
            .pastor-info-grid { grid-template-columns: 1fr 1fr; }
            .hitos-grid { grid-template-columns: 1fr; }
            .pastor-historia { padding: 40px 28px; }
        }
        @media (max-width: 600px) {
            .pastor-photo-frame { width: 220px; height: 220px; }
            .pastor-name-display h2 { font-size: clamp(24px, 7vw, 38px); }
            .pastor-info-grid { grid-template-columns: 1fr; gap: 14px; }
            .pastor-info-card { padding: 28px 20px; }
            .pastor-historia { padding: 32px 20px; border-radius: 18px; }
            .pastor-historia p { font-size: 14px; line-height: 1.85; }
            .hito-item { padding: 24px 20px; }
            .pastor-versiculo { padding: 36px 20px; }
            .pastor-hitos { margin-bottom: 40px; }
        }
        @media (max-width: 500px) {
            .pastor-info-grid { grid-template-columns: 1fr; }
            .hitos-grid { gap: 14px; }
        }

        /* ── CONTACTO ── */
        @media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
        @media (max-width: 600px) {
            .contact-form-box { padding: 32px 20px; border-radius: 16px; }
            .form-group input, .form-group textarea { font-size: 16px; } /* evita zoom en iOS */
            .btn-submit { padding: 15px 20px; }
        }

        /* ── PRIVACIDAD ── */
        @media (max-width: 900px) {
            .privacy-grid { grid-template-columns: 1fr; }
            .privacy-intro { flex-direction: column; gap: 12px; }
        }
        @media (max-width: 600px) {
            .privacy-card { padding: 28px 20px; }
            .privacy-intro { padding: 24px 20px; }
            .privacy-footer-cta { padding: 40px 20px; }
            .arco-box { padding: 14px 16px; }
        }

        /* ── EVENTOS ── */
        @media (max-width: 700px) {
            .eventos-grid { grid-template-columns: 1fr; gap: 24px; }
            .evento-info { padding: 22px 20px 26px; }
            .evento-title { font-size: clamp(22px, 6vw, 30px); }
        }
        @media (max-width: 480px) {
            .evento-img-wrap { aspect-ratio: 4/5; }
        }

        /* ── FOOTER ── */
        @media (max-width: 600px) {
            footer { padding: 48px 0 32px; }
            .footer-nav-links { gap: 8px; }
            .footer-link { font-size: 10px; }
        }

        /* ── WHATSAPP + BACK TO TOP ── */
        @media (max-width: 600px) {
            .wa-float { bottom: 90px; right: 16px; }
            .wa-btn { width: 44px; height: 44px; }
            .back-to-top { bottom: 20px; right: 16px; width: 42px; height: 42px; }
            .back-to-top::before { inset: -4px; padding: 2.5px; }
        }

        /* ── SECCIÓN/TÍTULO ── */
        @media (max-width: 600px) {
            .section-title { font-size: clamp(18px, 5.5vw, 28px); letter-spacing: 2px; overflow-wrap: break-word; hyphens: auto; }
            .section-sub { font-size: 11px; letter-spacing: 2px; margin-bottom: 40px; }
        }
        @media (max-width: 480px) {
            .section-title { font-size: clamp(15px, 4.5vw, 22px); letter-spacing: 1px; }
        }

        /* ── SCHEDULE (horarios) ── */
        @media (max-width: 600px) {
            .schedule { padding: 36px 20px; border-radius: 16px; }
            .time-slot { font-size: 15px; }
        }
        /* ── PANTALLA DE CARGA ── */
        .loading-screen {
            position: fixed; inset: 0; z-index: 99999;
            background: #ffffff;
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            gap: 40px;
            transition: opacity 0.7s ease, visibility 0.7s ease;
        }
        .loading-screen.hidden { opacity: 0; visibility: hidden; pointer-events: none; display: none !important; }

        .loading-scene {
            display: flex; align-items: flex-end; gap: 32px;
            position: relative;
        }

        /* Figuras humanas */
        .loading-figure { opacity: 0; }
        .loading-figure-left {
            animation: figureEntryLeft 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.4s forwards;
        }
        .loading-figure-right {
            animation: figureEntryRight 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.55s forwards;
        }
        @keyframes figureEntryLeft {
            0% { opacity: 0; transform: translateX(-40px) rotate(-8deg); }
            100% { opacity: 1; transform: translateX(0) rotate(0deg); }
        }
        @keyframes figureEntryRight {
            0% { opacity: 0; transform: translateX(40px) rotate(8deg); }
            100% { opacity: 1; transform: translateX(0) rotate(0deg); }
        }

        /* bob después de entrar */
        @keyframes figureBobLeft {
            0%, 100% { opacity: 1; transform: translateY(0) rotate(-2deg); }
            50% { opacity: 1; transform: translateY(-8px) rotate(0deg); }
        }
        @keyframes figureBobRight {
            0%, 100% { opacity: 1; transform: translateY(0) rotate(2deg); }
            50% { opacity: 1; transform: translateY(-8px) rotate(0deg); }
        }
        .loading-figure-left.loaded { animation: figureBobLeft 2.4s ease-in-out infinite; }
        .loading-figure-right.loaded { animation: figureBobRight 2.4s ease-in-out 0.3s infinite; }

        /* Logo central */
        .loading-logo-wrap {
            position: relative; width: 120px; height: 120px;
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
            opacity: 0;
            animation: logoEntry 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s forwards;
        }
        @keyframes logoEntry {
            0% { opacity: 0; transform: scale(0.5); }
            100% { opacity: 1; transform: scale(1); }
        }
        .loading-logo-img {
            width: 80px; height: 80px; border-radius: 50%;
            object-fit: cover; position: relative; z-index: 2;
            border: 3px solid #003087;
            box-shadow: 0 8px 32px rgba(0,48,135,0.25);
        }
        .loading-logo-ring {
            position: absolute; border-radius: 50%;
            border: 1.5px solid rgba(0,48,135,0.25);
            animation: ringPulse 2.4s ease-in-out infinite;
        }
        .ring1 { width: 100px; height: 100px; animation-delay: 0s; }
        .ring2 { width: 116px; height: 116px; animation-delay: 0.4s; border-color: rgba(0,48,135,0.15); }
        .ring3 { width: 132px; height: 132px; animation-delay: 0.8s; border-color: rgba(0,48,135,0.08); }
        @keyframes ringPulse {
            0%, 100% { transform: scale(0.92); opacity: 0.3; }
            50% { transform: scale(1); opacity: 1; }
        }

        /* Texto */
        .loading-text-wrap {
            text-align: center; opacity: 0;
            animation: textEntry 0.7s ease 0.9s forwards;
        }
        @keyframes textEntry {
            0% { opacity: 0; transform: translateY(16px); }
            100% { opacity: 1; transform: translateY(0); }
        }
        .loading-title {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(28px, 6vw, 48px);
            letter-spacing: 8px; color: #003087;
            text-transform: uppercase; margin-bottom: 16px;
            line-height: 1;
        }
        .loading-bar-wrap {
            width: 220px; height: 2px;
            background: rgba(0,48,135,0.12);
            border-radius: 2px; overflow: hidden;
            margin: 0 auto 12px;
        }
        .loading-bar {
            height: 100%; width: 0%;
            background: linear-gradient(90deg, #003087, #1a4a9a, #2E7D32);
            border-radius: 2px;
            transition: width 0.4s ease;
        }
        .loading-sub {
            font-size: 10px; letter-spacing: 3px;
            text-transform: uppercase; color: rgba(0,48,135,0.4);
            font-family: 'Montserrat', sans-serif; font-weight: 600;
        }

        /* ── COOKIE ICON ── */
        .cookie-icon { flex-shrink: 0; color: rgba(255,255,255,0.7); }
        .cookie-banner { gap: 16px; }

        /* ── ARCO BOX SVG ICONS ── */
        .arco-icon {
            display: inline-flex; align-items: center; vertical-align: middle;
            margin-right: 6px; color: var(--azul);
        }

        /* ── MEJORAS VISUALES GENERALES ── */

        /* Cursor personalizado sutil */
        body { cursor: default; }
        a, button { cursor: pointer; }

        /* Cards: hover más pronunciado */
        .card {
            transition: transform 0.4s cubic-bezier(0.165,0.84,0.44,1), box-shadow 0.4s ease;
        }
        .card:hover {
            transform: translateY(-8px);
            box-shadow: 0 24px 60px rgba(0,48,135,0.14);
        }

        /* Section separators */
        .section-divider {
            width: 100%; height: 1px;
            background: linear-gradient(90deg, transparent, rgba(0,48,135,0.12), transparent);
            margin: 0;
        }

        /* Mejora schedule: más elegante */
        .schedule {
            border: 1px solid rgba(0,48,135,0.08);
        }

        /* fv-cards: más definidas */
        .fv-card {
            border: 1px solid rgba(255,255,255,0.18);
        }

        /* Privacy cards en hover */
        .privacy-card { position: relative; }

        /* Smooth page transitions */
        .page-section {
            transition: opacity 0.45s cubic-bezier(0.4,0,0.2,1);
        }

        /* Progress indicator */

        /* Nav: active indicator mejorado */
        nav a.active::after { background: var(--azul); }

        /* Línea decorativa bajo titulos de secciones hero */
        .hero-small-line {
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
            width: 80px; height: 1px;
        }

        /* Input focus mejorado */
        .contact-form-box input:focus,
        .contact-form-box textarea:focus {
            outline: none;
            border-color: var(--azul);
            box-shadow: 0 0 0 3px rgba(0,48,135,0.08);
        }

        /* Footer logo area */
        .footer-logo-area { margin-bottom: 24px; }

        /* ── BOTÓN FLOTANTE DE WHATSAPP ── */
        .wa-float {
            position: fixed; bottom: 88px; right: 28px; z-index: 998;
            display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
        }
        .wa-tooltip {
            background: #111; color: #fff; font-size: 12px; font-weight: 600;
            letter-spacing: 0.5px; padding: 8px 14px; border-radius: 50px;
            white-space: nowrap; opacity: 0; transform: translateX(10px);
            transition: opacity 0.3s ease, transform 0.3s ease;
            pointer-events: none; box-shadow: 0 4px 16px rgba(0,0,0,0.25);
        }
        .wa-float:hover .wa-tooltip { opacity: 1; transform: translateX(0); }
        .wa-btn {
            width: 56px; height: 56px; border-radius: 50%; background: #25D366;
            display: flex; align-items: center; justify-content: center;
            box-shadow: 0 6px 24px rgba(37,211,102,0.45);
            text-decoration: none; position: relative;
            transition: transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275), box-shadow 0.3s;
            border: none; cursor: pointer;
        }
        .wa-btn:hover { transform: scale(1.12) translateY(-4px); box-shadow: 0 12px 36px rgba(37,211,102,0.55); }
        .wa-btn::before {
            content: ''; position: absolute; inset: -4px; border-radius: 50%;
            background: rgba(37,211,102,0.25); animation: waPulse 2.2s ease-out infinite;
        }
        .wa-btn::after {
            content: ''; position: absolute; inset: -8px; border-radius: 50%;
            background: rgba(37,211,102,0.12); animation: waPulse 2.2s ease-out 0.4s infinite;
        }
        @keyframes waPulse {
            0% { transform: scale(0.9); opacity: 0.8; }
            100% { transform: scale(1.6); opacity: 0; }
        }
        .wa-dot {
            position: absolute; top: 2px; right: 2px;
            width: 14px; height: 14px; background: #ff4444;
            border-radius: 50%; border: 2px solid white; z-index: 1;
            animation: dotBounce 1.4s ease-in-out infinite;
        }
        @keyframes dotBounce { 0%,100%{transform:scale(1)} 50%{transform:scale(1.3)} }

        /* ── VERSÍCULO DEL DÍA ── */
         .versiculo-dia-section {
             background: linear-gradient(135deg, #f8f9fa 0%, #eef2f8 100%);
             padding: 86px 0 72px; position: relative; overflow: hidden;
         }
        .versiculo-dia-section::before {
            content: ''; position: absolute; top: -60px; right: -60px;
            width: 280px; height: 280px; border-radius: 50%;
            background: radial-gradient(circle, rgba(0,48,135,0.06) 0%, transparent 70%);
            pointer-events: none;
        }
        .vd-card {
            max-width: 720px; margin: 0 auto; background: white;
            border-radius: 24px; box-shadow: 0 8px 40px rgba(0,48,135,0.10);
            padding: 52px 56px; text-align: center; position: relative;
            overflow: visible; border: 1px solid rgba(0,48,135,0.07);
        }
        .vd-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
            background: linear-gradient(90deg, var(--azul), var(--verde), var(--dorado));
            background-size: 200%; animation: shimmer 4s linear infinite;
        }
         .vd-day-badge {
             position: absolute;
             top: -14px; left: 50%;
             transform: translateX(-50%);
             background: var(--dorado);
             color: white; font-size: 9px; font-weight: 700;
             letter-spacing: 2px; text-transform: uppercase;
             padding: 7px 16px; border-radius: 20px;
             white-space: nowrap;
             max-width: calc(100% - 48px);
             overflow: hidden;
             text-overflow: ellipsis;
         }
        /* Comillas decorativas 4 completas */
        .vd-quotes-wrap {
            display: flex; justify-content: space-between; align-items: flex-start;
            padding: 0; margin-bottom: -16px; pointer-events: none;
        }
        .vd-quote-open, .vd-quote-close {
            font-family: 'Cormorant Garamond', serif;
            font-size: clamp(64px, 8vw, 96px);
            color: var(--dorado);
            opacity: 0.22;
            line-height: 0.8;
            user-select: none;
            flex-shrink: 0;
            width: 52px;
            display: flex; align-items: flex-start; justify-content: flex-start;
        }
        .vd-quote-close {
            justify-content: flex-end;
            align-items: flex-end;
            padding-bottom: 0;
        }
        .vd-text {
            font-family: 'Cormorant Garamond', serif; font-style: italic;
            font-size: clamp(20px, 2.8vw, 28px); color: var(--azul-dark);
            line-height: 1.65; margin-bottom: 24px;
            transition: opacity 0.5s ease, transform 0.5s ease;
            position: relative; z-index: 1;
            padding: 0 12px;
        }
        .vd-text.fading { opacity: 0; transform: translateY(10px); }
        .vd-ref {
            display: inline-block; font-size: 11px; letter-spacing: 3px;
            text-transform: uppercase; color: white; font-weight: 700;
            background: linear-gradient(135deg, var(--verde), #1b5e20);
            padding: 8px 24px; border-radius: 50px; margin-bottom: 24px;
            transition: opacity 0.5s ease;
        }
        .vd-ref.fading { opacity: 0; }
        .vd-nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 8px; }
        .vd-nav-btn {
            width: 38px; height: 38px; border-radius: 50%;
            border: 1.5px solid rgba(0,48,135,0.2); background: transparent;
            color: var(--azul); display: flex; align-items: center; justify-content: center;
            cursor: pointer; transition: background 0.3s, transform 0.3s;
        }
        .vd-nav-btn:hover { background: var(--azul); color: white; transform: scale(1.1); }
        .vd-dots { display: flex; gap: 6px; align-items: center; }
        .vd-dot {
            width: 7px; height: 7px; border-radius: 50%;
            background: rgba(0,48,135,0.18); cursor: pointer;
            transition: background 0.3s, transform 0.3s;
        }
        .vd-dot.active { background: var(--azul); transform: scale(1.5); }
        @media (max-width: 600px) { .vd-card { padding: 36px 20px; overflow: visible; } }

        /* ── ANIMACIONES SCROLL MEJORADAS ── */
        .reveal-zoom {
            opacity: 0; transform: scale(0.93);
            transition: opacity 0.9s cubic-bezier(0.165,0.84,0.44,1), transform 0.9s cubic-bezier(0.165,0.84,0.44,1);
        }
        .reveal-zoom.visible { opacity: 1; transform: scale(1); }
        .reveal-blur {
            opacity: 0; filter: blur(6px); transform: translateY(18px);
            transition: opacity 0.9s ease, filter 0.9s ease, transform 0.9s ease;
        }
        .reveal-blur.visible { opacity: 1; filter: blur(0); transform: translateY(0); }
        .stagger-children > * {
            opacity: 0; transform: translateY(28px);
            transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.165,0.84,0.44,1);
        }
        .stagger-children.visible > *:nth-child(1){opacity:1;transform:translateY(0);transition-delay:0s}
        .stagger-children.visible > *:nth-child(2){opacity:1;transform:translateY(0);transition-delay:.12s}
        .stagger-children.visible > *:nth-child(3){opacity:1;transform:translateY(0);transition-delay:.24s}
        .stagger-children.visible > *:nth-child(4){opacity:1;transform:translateY(0);transition-delay:.36s}
        .stagger-children.visible > *:nth-child(5){opacity:1;transform:translateY(0);transition-delay:.48s}
        .stagger-children.visible > *:nth-child(6){opacity:1;transform:translateY(0);transition-delay:.60s}

        /* ── Aviso Importante Overlap ── */
        .eventos-hero--overlap {
            padding-bottom: 56px;
        }
        .eventos-aviso-wrap {
            position: relative;
            z-index: 10;
            margin-top: -56px;
            padding: 0 24px;
            display: flex;
            justify-content: center;
            margin-bottom: 48px;
        }
        .eventos-aviso {
            display: flex;
            align-items: flex-start;
            gap: 18px;
            background: #fff;
            border-left: 4px solid var(--azul, #1a3a6b);
            border-radius: 12px;
            box-shadow: 0 8px 40px rgba(0,0,0,0.13);
            padding: 22px 28px;
            max-width: 740px;
            width: 100%;
            /* Animación entrada */
            opacity: 0;
            transform: translateY(32px);
            transition: opacity 0.6s ease, transform 0.6s ease;
        }
        .eventos-aviso.aviso-visible {
            opacity: 1;
            transform: translateY(0);
        }
        .dark .eventos-aviso {
            background: #1a1f2e;
            border-left-color: var(--gold, #c9a84c);
            box-shadow: 0 8px 40px rgba(0,0,0,0.4);
        }
        .eventos-aviso-icon {
            flex-shrink: 0;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            background: var(--azul, #1a3a6b);
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .dark .eventos-aviso-icon {
            background: var(--gold, #c9a84c);
        }
        .eventos-aviso-titulo {
            display: block;
            font-family: 'Montserrat', sans-serif;
            font-weight: 700;
            font-size: 12px;
            letter-spacing: 2.5px;
            text-transform: uppercase;
            color: var(--azul, #1a3a6b);
            margin-bottom: 6px;
        }
        .dark .eventos-aviso-titulo {
            color: var(--gold, #c9a84c);
        }
        .eventos-aviso-texto {
            font-size: 14px;
            color: #555;
            line-height: 1.6;
            margin: 0;
        }
        .dark .eventos-aviso-texto {
            color: #aaa;
        }
        /* ── Botones Visto / Borrar ── */
        .eventos-aviso {
            position: relative;
        }
        .aviso-actions {
            display: flex;
            flex-direction: column;
            gap: 8px;
            margin-left: auto;
            flex-shrink: 0;
            align-self: center;
        }
        .aviso-btn {
            display: flex;
            align-items: center;
            gap: 5px;
            border: none;
            border-radius: 6px;
            padding: 6px 12px;
            font-size: 11px;
            font-family: 'Montserrat', sans-serif;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
            cursor: pointer;
            transition: opacity 0.2s, transform 0.15s;
            white-space: nowrap;
        }
        .aviso-btn:hover { opacity: 0.8; transform: scale(0.97); }
        .aviso-btn--visto {
            background: var(--azul, #1a3a6b);
            color: #fff;
        }
        .dark .aviso-btn--visto {
            background: var(--gold, #c9a84c);
            color: #1a1f2e;
        }
        .aviso-btn--borrar {
            background: transparent;
            color: #999;
            border: 1px solid #ddd;
        }
        .dark .aviso-btn--borrar {
            color: #666;
            border-color: #333;
        }
        /* Campana flotante */
        .aviso-bell-btn {
            border: none;
            background: var(--azul, #1a3a6b);
            color: #fff;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 16px rgba(0,0,0,0.15);
            transition: transform 0.2s, opacity 0.2s;
        }
        .aviso-bell-btn:hover { transform: scale(1.08); }
        .dark .aviso-bell-btn {
            background: var(--gold, #c9a84c);
            color: #1a1f2e;
        }

        @media (max-width: 600px) {
            .eventos-aviso-wrap {
                padding: 0 16px;
                margin-top: -40px;
                margin-bottom: 32px;
            }
            .eventos-aviso {
                padding: 16px 14px;
                gap: 12px;
            }
            .eventos-aviso-icon {
                width: 38px;
                height: 38px;
            }
        }

        /* ── Event Cards: entrada profesional (fade + scale + slide) ── */
        .eventos-grid.stagger-children > * {
            opacity: 0;
            transform: translateY(40px) scale(0.95);
            transition: opacity 0.9s cubic-bezier(0.165,0.84,0.44,1), transform 0.9s cubic-bezier(0.165,0.84,0.44,1);
        }
        .eventos-grid.stagger-children.visible > *:nth-child(1){opacity:1;transform:translateY(0) scale(1);transition-delay:0s}
        .eventos-grid.stagger-children.visible > *:nth-child(2){opacity:1;transform:translateY(0) scale(1);transition-delay:.15s}
        .eventos-grid.stagger-children.visible > *:nth-child(3){opacity:1;transform:translateY(0) scale(1);transition-delay:.3s}
        .eventos-grid.stagger-children.visible > *:nth-child(4){opacity:1;transform:translateY(0) scale(1);transition-delay:.45s}
        .eventos-grid.stagger-children.visible > *:nth-child(5){opacity:1;transform:translateY(0) scale(1);transition-delay:.6s}
        .eventos-grid.stagger-children.visible > *:nth-child(6){opacity:1;transform:translateY(0) scale(1);transition-delay:.75s}

        /* ── PRÓXIMOS EVENTOS ── */
        .eventos-hero {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 60%, #0a3d7a 100%);
            position: relative; overflow: hidden;
        }
        .eventos-hero::before {
            content: '';
            position: absolute; inset: 0;
            background: radial-gradient(ellipse at 30% 50%, rgba(201,168,76,0.12) 0%, transparent 60%),
                        radial-gradient(ellipse at 80% 20%, rgba(46,125,50,0.10) 0%, transparent 50%);
            pointer-events: none;
        }
        .eventos-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
            gap: 36px;
            margin-top: 60px;
        }
        .evento-card {
            background: white;
            border-radius: 24px;
            box-shadow: 0 8px 40px rgba(0,48,135,0.10);
            overflow: hidden;
            transition: transform 0.4s cubic-bezier(0.165,0.84,0.44,1), box-shadow 0.4s ease;
            border: 1px solid rgba(0,48,135,0.07);
            position: relative;
        }
        .evento-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
            background: linear-gradient(90deg, var(--azul), var(--verde), var(--dorado));
            background-size: 200%; animation: shimmer 4s linear infinite;
            z-index: 1;
        }
        .evento-card:hover {
            transform: translateY(-10px);
            box-shadow: 0 24px 60px rgba(0,48,135,0.18);
        }
        .evento-img-wrap {
            width: 100%;
            aspect-ratio: 9/10;
            overflow: hidden;
            position: relative;
            background: var(--gris-claro);
        }
        .evento-img-wrap img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center top;
            display: block;
            transition: transform 0.6s ease;
        }
        .evento-card:hover .evento-img-wrap img {
            transform: scale(1.04);
        }
        .evento-badge {
            position: absolute;
            top: 16px; right: 16px;
            background: linear-gradient(135deg, var(--dorado), #e8c35a);
            color: var(--azul-dark);
            font-size: 10px; font-weight: 800;
            letter-spacing: 2px; text-transform: uppercase;
            padding: 6px 16px; border-radius: 50px;
            box-shadow: 0 4px 16px rgba(201,168,76,0.45);
            z-index: 2;
        }
        .evento-info {
            padding: 28px 32px 32px;
        }
        .evento-tag-row {
            display: flex; align-items: center; gap: 10px;
            margin-bottom: 14px; flex-wrap: wrap;
        }
        .evento-tag {
            display: inline-flex; align-items: center; gap: 6px;
            font-size: 10px; font-weight: 700; letter-spacing: 2px;
            text-transform: uppercase; color: var(--verde);
            background: rgba(46,125,50,0.09);
            padding: 5px 12px; border-radius: 50px;
        }
        .evento-title {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(26px, 3.5vw, 36px);
            color: var(--azul-dark);
            letter-spacing: 3px;
            line-height: 1.1;
            margin-bottom: 10px;
        }
        .evento-desc {
            color: #666; font-size: 14px; line-height: 1.8;
            margin-bottom: 22px;
        }
        .evento-meta {
            display: flex; flex-direction: column; gap: 10px;
            padding: 18px 0; border-top: 1px solid #f0f0f0;
        }
        .evento-meta-item {
            display: flex; align-items: center; gap: 12px;
            font-size: 13px; color: #555;
        }
        .evento-meta-icon {
            width: 34px; height: 34px; border-radius: 10px;
            background: linear-gradient(135deg, var(--azul-dark), var(--azul));
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0; color: white;
        }
        .evento-meta-label {
            font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
            color: #aaa; font-weight: 700; display: block;
        }
        .evento-meta-value {
            font-weight: 700; color: var(--azul-dark); font-size: 14px;
        }
        .evento-invitado-wrap {
            display: flex; align-items: center; gap: 14px;
            padding: 14px 0 0; border-top: 1px solid #f0f0f0; margin-top: 14px;
        }
        .evento-invitado-avatar {
            width: 52px; height: 52px; border-radius: 50%;
            object-fit: cover; border: 3px solid var(--dorado);
            box-shadow: 0 4px 14px rgba(201,168,76,0.3);
        }
        .evento-invitado-info {}
        .evento-invitado-label {
            font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
            color: #aaa; font-weight: 700; display: block; margin-bottom: 2px;
        }
        .evento-invitado-name {
            font-family: 'Cormorant Garamond', serif;
            font-size: 18px; font-weight: 600; color: var(--azul-dark);
            letter-spacing: 1px;
        }
        .eventos-empty {
            text-align: center; padding: 80px 40px;
            color: #999; font-size: 15px; line-height: 2;
        }
        @media (max-width: 700px) {
            .eventos-grid { grid-template-columns: 1fr; gap: 24px; }
            .evento-info { padding: 22px 22px 26px; }
        }

        /* ── MARQUEE INFINITO ── */
        .marquee-section {
            background: linear-gradient(135deg, var(--azul-dark) 0%, var(--azul) 50%, #0a3d7a 100%);
            padding: 22px 0;
            overflow: hidden;
            position: relative;
            border-top: 1px solid rgba(201,168,76,0.2);
            border-bottom: 1px solid rgba(201,168,76,0.2);
        }
        .marquee-section::before,
        .marquee-section::after {
            content: '';
            position: absolute;
            top: 0; bottom: 0;
            width: 80px;
            z-index: 2;
            pointer-events: none;
        }
        .marquee-section::before {
            left: 0;
            background: linear-gradient(90deg, var(--azul-dark) 0%, transparent 100%);
        }
        .marquee-section::after {
            right: 0;
            background: linear-gradient(270deg, var(--azul-dark) 0%, transparent 100%);
        }
        .marquee-track {
            display: flex;
            white-space: nowrap;
            will-change: transform;
            width: max-content;
        }
        .marquee-track.animating {
            animation: marqueeScroll 50s linear infinite;
        }
        .marquee-track.animating:hover {
            animation-play-state: paused;
        }
        .marquee-group {
            display: flex;
            align-items: center;
            flex-shrink: 0;
        }
        .marquee-word {
            display: inline-flex;
            align-items: center;
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(18px, 2.6vw, 30px);
            color: white;
            letter-spacing: 4px;
            padding: 0 24px;
            position: relative;
            text-transform: uppercase;
            opacity: 0.92;
            transition: opacity 0.3s ease;
        }
        .marquee-word:hover {
            opacity: 1;
        }
        .marquee-word::after {
            content: '●';
            color: var(--dorado);
            font-size: clamp(5px, 0.8vw, 8px);
            position: absolute;
            right: -5px;
            top: 50%;
            transform: translateY(-50%);
            opacity: 0.6;
        }
        .marquee-word:last-child::after {
            display: none;
        }
        @keyframes marqueeScroll {
            0% { transform: translateX(0); }
            100% { transform: translateX(-50%); }
        }
        @media (max-width: 700px) {
            .marquee-section { padding: 14px 0; }
            .marquee-section::before,
            .marquee-section::after { width: 30px; }
            .marquee-word { font-size: 14px; letter-spacing: 2px; padding: 0 14px; }
        }

        /* ════════════════════════════════════════════════════════════
           SUPER ANIMATIONS — Ef ectos profesionales
        ════════════════════════════════════════════════════════════ */

        /* ── Glassmorphism ── */
        .glass {
            background: rgba(255,255,255,0.08);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid rgba(255,255,255,0.15);
        }
        .glass-dark {
            background: rgba(0,30,87,0.6);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            border: 1px solid rgba(255,255,255,0.1);
        }

        /* ── 3D Tilt Container ── */
        .tilt-3d {
            transform-style: preserve-3d;
            perspective: 1000px;
            transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .tilt-3d:hover {
            transform: perspective(1000px) rotateX(var(--tilt-y, 0deg)) rotateY(var(--tilt-x, 0deg));
        }
        .tilt-content {
            transform: translateZ(30px);
            transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .tilt-content-deep {
            transform: translateZ(50px);
            transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .tilt-shadow {
            box-shadow: 0 20px 60px rgba(0,48,135,0.12);
            transition: box-shadow 0.6s cubic-bezier(0.23, 1, 0.32, 1);
        }
        .tilt-3d:hover .tilt-shadow {
            box-shadow: 0 30px 80px rgba(0,48,135,0.20);
        }

        /* ── Button Ripple ── */
        .ripple-btn {
            position: relative;
            overflow: hidden;
            isolation: isolate;
        }
        .ripple-btn .ripple-effect {
            position: absolute;
            border-radius: 50%;
            background: rgba(255,255,255,0.35);
            transform: scale(0);
            animation: rippleAnim 0.7s ease-out forwards;
            pointer-events: none;
        }
        @keyframes rippleAnim {
            to { transform: scale(4); opacity: 0; }
        }

        /* ── Button Shine ── */
        .shine-btn::after {
            content: '';
            position: absolute;
            top: -50%; left: -60%;
            width: 40%; height: 200%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
            transform: skewX(-25deg);
            transition: left 0.7s ease;
            pointer-events: none;
        }
        .shine-btn:hover::after {
            left: 120%;
        }

        /* ── Magnetic Button ── */
        .magnetic-btn {
            transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1);
        }

        /* ── Text Gradient ── */
        .text-gradient {
            background: linear-gradient(135deg, var(--azul), var(--verde), var(--dorado));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        .text-gradient-gold {
            background: linear-gradient(135deg, var(--dorado), #e8c35a, var(--dorado));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        /* ── Typed Cursor ── */
        .typed-cursor {
            display: inline-block;
            width: 2px;
            height: 1em;
            background: var(--dorado);
            margin-left: 2px;
            animation: cursorBlink 0.8s step-end infinite;
            vertical-align: text-bottom;
        }
        @keyframes cursorBlink {
            0%, 100% { opacity: 1; }
            50% { opacity: 0; }
        }

        /* ── Canvas Particles Container ── */
        #particlesCanvas {
            position: absolute;
            inset: 0;
            z-index: 2;
            pointer-events: none;
        }

        /* ── Reveal Animations Enhanced ── */
        .reveal-scale {
            opacity: 0;
            transform: scale(0.85);
            transition: opacity 0.9s cubic-bezier(0.165,0.84,0.44,1), transform 0.9s cubic-bezier(0.165,0.84,0.44,1);
        }
        .reveal-scale.visible {
            opacity: 1;
            transform: scale(1);
        }
        .reveal-rotate {
            opacity: 0;
            transform: perspective(600px) rotateY(12deg) translateX(-20px);
            transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.165,0.84,0.44,1);
        }
        .reveal-rotate.visible {
            opacity: 1;
            transform: perspective(600px) rotateY(0) translateX(0);
        }
        .reveal-fade {
            opacity: 0;
            transition: opacity 1s ease;
        }
        .reveal-fade.visible {
            opacity: 1;
        }

        /* ── Hero Title Shine ── */
        .hero-title-shine {
            position: relative;
            display: inline-block;
        }
        .hero-title-shine::before {
            content: '';
            position: absolute;
            top: 0; left: -100%;
            width: 60%; height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent);
            animation: titleShine 4s ease-in-out infinite;
            pointer-events: none;
        }
        @keyframes titleShine {
            0% { left: -100%; }
            50% { left: 200%; }
            100% { left: 200%; }
        }

        /* ── Hero Floating Elements ── */
        .float-element {
            animation: floatElement 6s ease-in-out infinite;
        }
        .float-element-delay-1 { animation-delay: -2s; }
        .float-element-delay-2 { animation-delay: -4s; }
        .float-element-delay-3 { animation-delay: -1s; }
        @keyframes floatElement {
            0%, 100% { transform: translateY(0px) rotate(0deg); }
            33% { transform: translateY(-12px) rotate(1deg); }
            66% { transform: translateY(6px) rotate(-1deg); }
        }

        /* ── Glowing Border ── */
        .glow-border {
            position: relative;
        }
        .glow-border::before {
            content: '';
            position: absolute;
            inset: -1px;
            border-radius: inherit;
            background: linear-gradient(135deg, var(--azul), var(--verde), var(--dorado), var(--azul));
            background-size: 400% 400%;
            animation: gradientBorder 4s ease infinite;
            z-index: -1;
            opacity: 0;
            transition: opacity 0.4s ease;
        }
        .glow-border:hover::before {
            opacity: 1;
        }
        @keyframes gradientBorder {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* ── Page Transition Overlay ── */
        #pageTransitionOverlay {
            position: fixed;
            inset: 0;
            z-index: 99998;
            background: var(--azul-dark);
            clip-path: circle(0% at 50% 50%);
            pointer-events: none;
            transition: clip-path 0.6s cubic-bezier(0.77, 0, 0.18, 1);
        }
        #pageTransitionOverlay.active {
            clip-path: circle(150% at 50% 50%);
        }

        /* ── Smooth Dark Mode Transition ── */
        html.dark-transition *,
        html.dark-transition *::before,
        html.dark-transition *::after {
            transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease !important;
        }

        /* ── Gradient Heading Underline ── */
        .gradient-underline {
            position: relative;
            display: inline-block;
        }
        .gradient-underline::after {
            content: '';
            position: absolute;
            bottom: -4px; left: 0;
            width: 100%; height: 3px;
            background: linear-gradient(90deg, var(--azul), var(--verde), var(--dorado), var(--azul));
            background-size: 300% 100%;
            animation: underlineShimmer 3s linear infinite;
            border-radius: 2px;
        }
        @keyframes underlineShimmer {
            0% { background-position: 0% 50%; }
            100% { background-position: 300% 50%; }
        }

        /* ── Card Shimmer Border ── */
        .shimmer-card {
            position: relative;
            overflow: hidden;
        }
        .shimmer-card::before {
            content: '';
            position: absolute;
            top: -2px; left: -2px;
            right: -2px; bottom: -2px;
            background: linear-gradient(135deg, transparent 40%, rgba(201,168,76,0.2) 50%, transparent 60%);
            background-size: 200% 200%;
            animation: shimmerRotate 6s ease-in-out infinite;
            border-radius: inherit;
            z-index: -1;
            opacity: 0;
            transition: opacity 0.5s ease;
        }
        .shimmer-card:hover::before {
            opacity: 1;
        }
        @keyframes shimmerRotate {
            0% { background-position: 0% 0%; }
            50% { background-position: 100% 100%; }
            100% { background-position: 0% 0%; }
        }

        /* ── Stats Ring ── */
        .stat-ring {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .stat-ring svg {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0; left: 0;
            transform: rotate(-90deg);
        }
        .stat-ring svg circle {
            fill: none;
            stroke-width: 3;
            stroke-linecap: round;
            stroke-dasharray: 283;
            stroke-dashoffset: 283;
            transition: stroke-dashoffset 2s cubic-bezier(0.165, 0.84, 0.44, 1);
        }
        .stat-ring.visible svg circle {
            stroke-dashoffset: var(--ring-offset);
        }

        /* ── Custom Cursor Glow ── */
        #cursorGlow {
            position: fixed;
            width: 120px;
            height: 120px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(0,48,135,0.06) 0%, transparent 70%);
            pointer-events: none;
            z-index: 9999;
            transform: translate(-50%, -50%);
            transition: width 0.3s, height 0.3s;
        }
        html.dark #cursorGlow {
            background: radial-gradient(circle, rgba(201,162,39,0.06) 0%, transparent 70%);
        }

        /* ── Mobile Nav Overlay ── */
        .nav-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.5);
            z-index: 1049;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.4s ease;
        }
        .nav-overlay.active {
            opacity: 1;
            pointer-events: auto;
        }

        /* ── Smooth section transitions ── */
        .page-section {
            transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }
        .page-section.active {
            opacity: 1;
        }


        /* ── Loading screen logo glow ── */
        .loading-logo-img {
            box-shadow: 0 0 30px rgba(0,48,135,0.15), 0 8px 32px rgba(0,48,135,0.25);
        }

        /* ── Counter number style ── */
        .stat-number {
            position: relative;
            z-index: 1;
        }

        /* ── Smooth image loading ── */
        img[loading="lazy"] {
            opacity: 0;
            transition: opacity 0.5s ease;
        }
        img[loading="lazy"].loaded {
            opacity: 1;
        }

        /* ── Particle burst for loading screen ── */
        .particle-burst {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0; left: 0;
            pointer-events: none;
            overflow: hidden;
        }
        .particle-burst span {
            position: absolute;
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--dorado);
            animation: burstFloat 2s ease-out forwards;
            opacity: 0;
        }
        @keyframes burstFloat {
            0% { transform: translate(0, 0) scale(0); opacity: 1; }
            100% { transform: translate(var(--bx), var(--by)) scale(1); opacity: 0; }
        }

        /* ── Testimonial / quote animation ── */
        .quote-appear {
            opacity: 0;
            transform: scale(0.95);
        }
        .quote-appear.visible {
            animation: quoteIn 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
        }
        @keyframes quoteIn {
            0% { opacity: 0; transform: scale(0.95) translateY(10px); }
            100% { opacity: 1; transform: scale(1) translateY(0); }
        }

        /* ── Loading bar glow ── */
        .loading-bar {
            box-shadow: 0 0 10px rgba(0,48,135,0.3);
        }




        /* ── Responsive: reduce tilt on mobile ── */
        @media (max-width: 768px) {
            .tilt-3d { perspective: none; }
            .tilt-content, .tilt-content-deep { transform: none !important; }
            #cursorGlow { display: none; }
            #pageTransitionOverlay { display: none; }
        }
        /* ── COUNTDOWN CARDS ── */
        .countdown-wrapper {
            position: relative; z-index: 1;
        }
        .countdown-date-label {
            display: flex; align-items: center; justify-content: center; gap: 10px;
            color: rgba(255,255,255,0.75); font-size: 13px; letter-spacing: 2px;
            text-transform: uppercase; margin-bottom: 28px; font-weight: 600;
            text-align: center; flex-wrap: wrap;
        }
        .countdown-date-label svg { opacity: 0.8; flex-shrink: 0; }
        .countdown-cards {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 22px;
            align-items: center;
        }
        /* Los separadores : entre tarjetas se ocultan en la versión grid */
        .countdown-cards .cd-sep { display: none; }
        .cd-card {
            display: flex; flex-direction: column; align-items: center;
            background: rgba(255,255,255,0.10);
            border: 1px solid rgba(255,255,255,0.18);
            border-radius: 18px;
            padding: 20px 10px 14px;
            backdrop-filter: blur(8px);
            position: relative; overflow: hidden;
            transition: background 0.3s, transform 0.3s;
            width: 100%;
        }
        .cd-card:hover {
            background: rgba(255,255,255,0.16);
            transform: translateY(-4px);
        }
        .cd-card::before {
            content: '';
            position: absolute; top: 0; left: 0; right: 0; height: 2px;
            background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0.1));
        }
        .cd-number {
            font-family: 'Bebas Neue', sans-serif;
            font-size: clamp(32px, 5vw, 56px);
            color: #fff;
            line-height: 1;
            letter-spacing: 2px;
            text-shadow: 0 2px 20px rgba(0,0,0,0.3);
            transition: opacity 0.15s;
        }
        .cd-number.flip {
            opacity: 0.3;
            transform: scale(0.9);
            transition: opacity 0.1s, transform 0.1s;
        }
        .cd-label {
            font-size: 8px; letter-spacing: 2px; text-transform: uppercase;
            color: rgba(255,255,255,0.55); font-weight: 700; margin-top: 8px;
            text-align: center;
        }
        .cd-sep {
            font-family: 'Bebas Neue', sans-serif;
            font-size: 40px; color: rgba(255,255,255,0.3);
            align-self: center; padding-bottom: 18px; line-height: 1;
            animation: sepPulse 1s ease-in-out infinite;
        }
        @keyframes sepPulse {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 0.7; }
        }
        .countdown-next-label {
            color: rgba(255,255,255,0.4); font-size: 11px; letter-spacing: 1.5px;
            text-align: center;
        }
        /* Tablet: 4 en fila sigue bien */
        @media (max-width: 600px) {
            .countdown-cards {
                grid-template-columns: repeat(2, 1fr);
                gap: 12px;
                max-width: 280px;
                margin-left: auto;
                margin-right: auto;
            }
            .cd-card { padding: 20px 12px 14px; border-radius: 16px; }
            .cd-number { font-size: 44px; }
            .cd-label { font-size: 9px; letter-spacing: 2.5px; }
            .countdown-date-label { font-size: 11px; letter-spacing: 1.5px; gap: 6px; }
        }

/* ══════════════════════════════════════════
   DROPDOWN CONÓCENOS — Iglesia Nueva Vida
══════════════════════════════════════════ */

.nav-dropdown-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

/* Puente invisible que cubre el hueco entre trigger y menú */
.nav-dropdown-wrap::after {
    content: '';
    position: absolute;
    bottom: -16px;
    left: -24px;
    right: -24px;
    height: 16px;
    background: transparent;
}

.nav-dropdown-trigger {
    display: flex !important;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    color: #444;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    position: relative;
    padding-bottom: 4px;
    transition: color 0.3s, transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.nav-dropdown-trigger::after {
    content: '';
    position: absolute; bottom: 0; left: 0;
    width: 0; height: 2px;
    background: var(--verde);
    transition: width 0.3s ease;
}
.nav-dropdown-trigger:hover,
.nav-dropdown-wrap.open .nav-dropdown-trigger,
.nav-dropdown-trigger.active {
    color: var(--azul);
}
.nav-dropdown-trigger:hover::after,
.nav-dropdown-trigger.active::after {
    width: 100%;
}

.dropdown-arrow {
    transition: transform 0.25s ease;
    flex-shrink: 0;
    margin-top: 1px;
    color: currentColor;
}
.nav-dropdown-wrap:hover .dropdown-arrow {
    transform: rotate(180deg);
}

/* ── Live badge EN VIVO ── */
.live-nav-badge {
    display: inline-block;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #e74c3c;
    margin-left: 4px;
    animation: livePulse 1.8s ease-in-out infinite;
    box-shadow: 0 0 8px rgba(231,76,60,0.6);
    vertical-align: middle;
    position: relative;
    top: -1px;
}
@keyframes livePulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.75); }
}
/* Hero-mode variant */
#mainHeader.hero-mode:not(.scrolled) .live-nav-badge {
    background: #e74c3c;
    box-shadow: 0 0 12px rgba(231,76,60,0.8);
}

/* Menú flotante — desktop */
.nav-dropdown-menu {
    position: absolute;
    top: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 16px 48px rgba(0, 48, 135, 0.14), 0 2px 8px rgba(0,0,0,0.07);
    padding: 6px 0;
    min-width: 210px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
    z-index: 3000;
    border-top: 3px solid var(--azul);
}
.nav-dropdown-menu::before {
    content: '';
    position: absolute;
    top: -8px; left: 50%;
    transform: translateX(-50%);
    width: 0; height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 7px solid var(--azul);
}
.nav-dropdown-wrap:hover .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
    transform: translateX(-50%) translateY(0);
}

.nav-dropdown-item {
    display: block;
    padding: 10px 22px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #555 !important;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.18s, color 0.18s, padding-left 0.18s;
}
.nav-dropdown-item::after { display: none !important; }
.nav-dropdown-item:hover {
    background: rgba(0, 48, 135, 0.06);
    color: var(--azul) !important;
    padding-left: 28px;
}
.nav-dropdown-item + .nav-dropdown-item {
    border-top: 1px solid rgba(0,0,0,0.05);
}

/* ── DROPDOWN NAV (desktop) — dark mode ── */
html.dark .nav-dropdown-menu {
  background: #1a1a2e !important;
  border-top-color: var(--dorado) !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5) !important;
}
html.dark .nav-dropdown-menu::before {
  border-bottom-color: var(--dorado) !important;
}
html.dark .nav-dropdown-item {
  color: #bcc !important;
}
html.dark .nav-dropdown-item:hover {
  background: rgba(255,255,255,0.06) !important;
  color: #eee !important;
}
html.dark .nav-dropdown-item + .nav-dropdown-item {
  border-top-color: rgba(255,255,255,0.08) !important;
}

/* ── DROPDOWN NAV (móvil acordeón) — dark mode ── */
@media (max-width: 768px) {
  html.dark .nav-dropdown-menu {
    background: rgba(255,255,255,0.05) !important;
    border-left-color: var(--dorado) !important;
  }
  html.dark .nav-dropdown-trigger {
    color: #bcc !important;
  }
  html.dark .nav-dropdown-trigger:hover,
  html.dark .nav-dropdown-wrap.open .nav-dropdown-trigger {
    color: #eee !important;
  }
}

/* ── MÓVIL: Acordeón dentro del drawer ── */
@media (max-width: 768px) {
    .nav-dropdown-wrap {
        flex-direction: column;
        align-items: center;
        width: 100%;
        gap: 0;
    }
    .nav-dropdown-wrap::after { display: none; }
    .nav-dropdown-trigger {
        width: auto;
        justify-content: center;
        gap: 6px;
        padding: 4px 0;
    }
    .nav-dropdown-menu {
        position: static !important;
        transform: none !important;
        left: auto !important; top: auto !important;
        box-shadow: none;
        border-radius: 6px;
        border-top: none;
        border-left: 3px solid var(--azul);
        background: rgba(0, 48, 135, 0.04);
        padding: 2px 0;
        min-width: unset;
        width: calc(100% - 12px);
        margin-left: 12px;
        margin-top: 6px;
        /* Acordeón cerrado — display:none es más confiable en flex drawer */
        display: none;
        flex-direction: column;
        overflow: hidden;
        pointer-events: none;
    }
    .nav-dropdown-menu::before { display: none; }
    .nav-dropdown-wrap.open .nav-dropdown-menu {
        display: flex;
        flex-direction: column;
        pointer-events: all;
        animation: dropdownSlideIn 0.28s ease;
    }
    @keyframes dropdownSlideIn {
        from { opacity: 0; transform: translateY(-6px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    .nav-dropdown-wrap.open .dropdown-arrow {
        transform: rotate(180deg);
    }
    .nav-dropdown-item {
        display: block !important;
        width: 100%;
        font-size: 13px;
        padding: 10px 16px;
        box-sizing: border-box;
        white-space: normal;
        color: #333 !important;
        text-decoration: none;
    }
    .nav-dropdown-item:hover { padding-left: 22px; color: var(--azul) !important; }

    .nav-submenu-trigger {
        color: #333 !important;
    }
}

/* ══════════════════════════════════════════
   SUBMENÚ ANIDADO "Ministerios"
══════════════════════════════════════════ */

.nav-submenu-wrap {
    position: relative;
}

.nav-submenu-trigger {
    width: 100%;
    box-sizing: border-box;
}

.submenu-arrow {
    transition: transform 0.22s ease;
    flex-shrink: 0;
    margin-left: 12px;
    transform: rotate(-90deg);
}

/* ── Estado base: oculto ── */
.nav-submenu-menu {
    position: absolute;
    top: -6px;
    left: calc(100% + 6px);
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 16px 48px rgba(0, 48, 135, 0.14), 0 2px 8px rgba(0,0,0,0.07);
    padding: 6px 0;
    min-width: 220px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
    z-index: 3100;
    border-left: 3px solid var(--azul);
}

.nav-submenu-menu::before {
    content: '';
    position: absolute;
    top: 18px;
    left: -7px;
    width: 0; height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 7px solid var(--azul);
}

/* ── Desktop (hover) ── */
@media (hover: hover) and (pointer: fine) {
    .nav-submenu-wrap:hover .nav-submenu-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: all;
    }
}

/* ── Abierto por JS (mobile + cualquier caso) ── */
.nav-submenu-wrap.open .nav-submenu-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}

/* ── Móvil / acordeón ── */
@media (max-width: 768px) {
    .nav-submenu-wrap {
        width: 100%;
    }
    .nav-submenu-trigger {
        width: 100%;
        box-sizing: border-box;
    }
    .submenu-arrow {
        transform: rotate(0deg);
    }
    .nav-submenu-wrap.open .submenu-arrow {
        transform: rotate(180deg);
    }
    .nav-submenu-menu {
        display: none !important;
        position: static !important;
        left: auto !important; top: auto !important;
        box-shadow: none;
        border-radius: 6px;
        border-left: 3px solid var(--verde);
        background: rgba(0, 48, 135, 0.04);
        padding: 2px 0;
        min-width: unset;
        width: calc(100% - 12px);
        margin-left: 12px;
        margin-top: 4px;
    }
    .nav-submenu-menu::before { display: none !important; }
    .nav-submenu-wrap.open .nav-submenu-menu {
        display: flex !important;
        flex-direction: column;
        animation: dropdownSlideIn 0.28s ease;
    }
}

/* ══════════════════════════════════════════
   CONOCENOS — Filtrado de sub-secciones
══════════════════════════════════════════ */

/* Cuando conocenos está en modo sub-ruta: ocultar todas las sub-secciones */
#conocenos.show-sub .conocenos-sub {
    display: none !important;
}

/* Mostrar solo la sub-sección activa */
#conocenos.show-sub .conocenos-sub.active-sub {
    display: block !important;
}

/* ══════════════════════════════════════════
   EN VIVO — Filtrado de sub-secciones
   ══════════════════════════════════════════ */

.envivo-sub { display: block; }
#transmisiones.show-sub .envivo-sub { display: none !important; }
#transmisiones.show-sub .envivo-sub.active-sub { display: block !important; }

/* ══════════════════════════════════════
   TEXT REVEAL — letra por letra
══════════════════════════════════════ */
.split-title .split-char {
    display: inline-block;
    opacity: 0;
    transform: translateY(28px) rotateX(-40deg);
    transition: none;
}
.split-title .split-space {
    display: inline-block;
    width: 0.3em;
}
.split-title.split-visible .split-char {
    animation: charReveal 0.55s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes charReveal {
    from {
        opacity: 0;
        transform: translateY(28px) rotateX(-40deg);
    }
    to {
        opacity: 1;
        transform: translateY(0) rotateX(0deg);
    }
}

/* Perspectiva para que el rotateX se vea bien */
.split-title {
    perspective: 600px;
    transform-style: preserve-3d;
}

/* Mobile: animación más ligera */
@media (max-width: 600px) {
    .split-title .split-char {
        transform: translateY(18px);
    }
    @keyframes charReveal {
        from { opacity: 0; transform: translateY(18px); }
        to   { opacity: 1; transform: translateY(0); }
    }
}

/* ══════════════════════════════════════════
   WHATSAPP PROFESIONAL
══════════════════════════════════════════ */

/* Flotante: oculto en desktop siempre */
@media (min-width: 769px) {
    .wa-float { display: none !important; }
}

/* Flotante: en móvil oculto por defecto, visible solo con .wa-visible */
@media (max-width: 768px) {
    .wa-float { opacity: 0; pointer-events: none; transition: opacity 0.3s; }
    .wa-float.wa-visible { opacity: 1; pointer-events: all; }
}

/* Botón elegante en sección Contacto */
.wa-contact-btn-wrap {
    display: none;
    justify-content: center;
    margin: 24px 0 32px;
}

@media (min-width: 769px) {
    .wa-contact-btn-wrap { display: flex; }
}

.wa-contact-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 32px;
    background: transparent;
    border: 1.5px solid var(--azul);
    color: var(--azul);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.3s;
    text-transform: uppercase;
}

.wa-contact-btn:hover {
    background: var(--azul);
    color: #fff;
}

html:not(.dark) .wa-contact-btn {
    border-color: var(--azul);
    color: var(--azul);
}

html:not(.dark) .wa-contact-btn:hover {
    background: var(--azul);
    color: #fff;
}

.dark .wa-contact-btn {
    border-color: rgba(255,255,255,0.4);
    color: rgba(255,255,255,0.85);
}

.dark .wa-contact-btn:hover {
    background: rgba(255,255,255,0.15);
    border-color: rgba(255,255,255,0.7);
    color: #fff;
}

/* ══════════════════════════════════════════
   MENÚ PANTALLA COMPLETA
══════════════════════════════════════════ */

/* Botón de 4 puntos */
.menu-dots-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    z-index: 99999;
    position: relative;
}

.dot-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    width: 20px;
    height: 20px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--azul);
    transition: transform 0.3s ease, background 0.3s ease;
}

html.dark .dot {
    background: rgba(255,255,255,0.85);
}

.menu-dots-btn:hover .dot-grid {
    transform: rotate(90deg) scale(1.15);
}

.menu-dots-btn:hover .dot {
    transform: scale(1.3);
}

.menu-dots-btn.active .dot-grid {
    transform: rotate(45deg);
}

/* Overlay fullscreen */
.fullscreen-menu {
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: var(--azul-dark, #0a1f44);
    display: none;
    opacity: 0;
    transition: opacity 0.35s ease;
    overflow-y: auto;
}

.fullscreen-menu.open {
    display: block;
    opacity: 1;
}

/* ===== Efectos decorativos del menú fullscreen ===== */
.menu-particles,
.menu-rays,
.menu-doves {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
}

/* Rayos de luz tipo vitral — difuso ambiental */
.menu-rays::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 80% 60% at 50% 0%,
        rgba(255,255,255,0.04) 0%,
        rgba(201,168,76,0.06) 25%,
        transparent 60%
    );
    animation: menuRayPulse 8s ease-in-out infinite;
    pointer-events: none;
}
.menu-window-scene {
    position: absolute;
    bottom: 0;
    right: 0;
    width: clamp(160px, 20vw, 260px);
    height: auto;
    opacity: 0.85;
    pointer-events: none;
    z-index: 1;
}
.menu-window-pane {
    transform-origin: left center;
    animation: windowOpen 4s ease-in-out infinite;
}
.menu-arm-right {
    transform-origin: 170px 196px;
    animation: armPush 4s ease-in-out infinite;
}
.menu-ray-line {
    opacity: 0;
    animation: rayFlash 4s ease-in-out infinite;
}
.menu-ray-line:nth-child(2) { animation-delay: 0.15s; }
.menu-ray-line:nth-child(3) { animation-delay: 0.3s; }
.menu-ray-line:nth-child(4) { animation-delay: 0.45s; }
@keyframes windowOpen {
    0%, 10%   { transform: rotateY(0deg); opacity: 0.3; }
    25%, 75%  { transform: rotateY(-25deg); opacity: 1; }
    90%, 100% { transform: rotateY(0deg); opacity: 0.3; }
}
@keyframes armPush {
    0%, 10%   { transform: rotate(0deg); }
    25%, 75%  { transform: rotate(-18deg); }
    90%, 100% { transform: rotate(0deg); }
}
@keyframes rayFlash {
    0%, 8%    { opacity: 0; }
    20%, 80%  { opacity: 1; }
    92%, 100% { opacity: 0; }
}
.menu-rays::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        /* Beam 1 — desde arriba-izquierda */
        conic-gradient(
            from 105deg at 30% 0%,
            transparent 0deg,
            rgba(201,168,76,0.04) 5deg,
            rgba(255,255,255,0.06) 8deg,
            rgba(201,168,76,0.03) 12deg,
            transparent 16deg
        ),
        /* Beam 2 — desde arriba-derecha */
        conic-gradient(
            from 75deg at 70% 0%,
            transparent 0deg,
            rgba(255,255,255,0.04) 5deg,
            rgba(201,168,76,0.05) 8deg,
            rgba(255,255,255,0.02) 12deg,
            transparent 16deg
        ),
        /* Beam 3 — barrido lateral */
        linear-gradient(
            100deg,
            transparent 38%,
            rgba(255,255,255,0.02) 42%,
            rgba(201,168,76,0.06) 46%,
            rgba(255,255,255,0.04) 49%,
            transparent 50%,
            rgba(255,255,255,0.04) 51%,
            rgba(201,168,76,0.06) 54%,
            rgba(255,255,255,0.02) 58%,
            transparent 62%
        );
    background-blend-mode: normal;
    animation: menuRaySweep 24s ease-in-out infinite;
    filter: blur(2px);
}

@keyframes menuRaySweep {
    0%, 100% { transform: scaleX(1) translateX(0); opacity: 0.7; }
    25%      { transform: scaleX(1.05) translateX(3%); opacity: 1; }
    50%      { transform: scaleX(1) translateX(0); opacity: 0.8; }
    75%      { transform: scaleX(0.95) translateX(-3%); opacity: 1; }
}
@keyframes menuRayPulse {
    0%, 100% { opacity: 0.6; }
    50%      { opacity: 1; }
}

/* Palomas flotando */
.menu-dove {
    position: absolute;
    bottom: -15%;
    color: rgba(255,255,255,0.5);
    opacity: 0;
    animation-name: menuDoveFloat;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}
.menu-dove svg { width: 100%; height: auto; display: block; }
@keyframes menuDoveFloat {
    0%   { transform: translate(0, 0) rotate(0deg); opacity: 0; }
    12%  { opacity: 0.55; }
    50%  { transform: translate(24px, -55vh) rotate(-5deg); opacity: 0.5; }
    88%  { opacity: 0; }
    100% { transform: translate(46px, -115vh) rotate(-7deg); opacity: 0; }
}

/* Respetar accesibilidad: usuarios con "reducir movimiento" activado */
@media (prefers-reduced-motion: reduce) {
    .menu-rays::before,
    .menu-rays::after,
    .menu-dove {
        animation: none !important;
    }
}

/* Close button */
.fullscreen-close {
    position: absolute;
    top: 22px;
    right: 22px;
    background: none;
    border: none;
    cursor: pointer;
    color: rgba(255,255,255,0.6);
    padding: 8px;
    transition: color 0.3s, transform 0.3s;
    z-index: 3;
}

.fullscreen-close:hover {
    color: #fff;
    transform: rotate(90deg);
}

/* Inner layout grid */
.fullscreen-menu-inner {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    max-width: 960px;
    margin: 0 auto;
    padding: 100px 48px;
    min-height: 100vh;
    min-height: 100dvh;
    align-content: center;
    gap: 60px;
    position: relative;
    z-index: 2;
}

/* Main links column */
.fullscreen-menu-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fullscreen-link-wrap {
    overflow: hidden;
}

.fullscreen-link {
    display: inline-block;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    position: relative;
    padding: 6px 0;
    transition: color 0.3s, transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: pointer;
    background: none;
    border: none;
    font-family: inherit;
}

.fullscreen-link::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 4px;
    width: 0;
    height: 2px;
    background: var(--dorado, #c9a84c);
    transition: width 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fullscreen-link:hover::after,
.fullscreen-link-wrap .fullscreen-toggle:hover::after {
    width: 100%;
}

.fullscreen-link:hover {
    color: #fff;
    transform: translateX(6px);
}

/* ===== Animación de entrada/salida de los links del menú ===== */
.fullscreen-link,
.fullscreen-toggle {
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.fullscreen-menu.open .fullscreen-link,
.fullscreen-menu.open .fullscreen-toggle {
    animation: menuLinkIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes menuLinkIn {
    from { opacity: 0; transform: translateY(100%); }
    to   { opacity: 1; transform: translateY(0); }
}

.fullscreen-menu-main .fullscreen-link-wrap:nth-child(1) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(1) .fullscreen-toggle { animation-delay: 0.05s; }
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(2) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(2) .fullscreen-toggle { animation-delay: 0.12s; }
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(3) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(3) .fullscreen-toggle { animation-delay: 0.19s; }
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(4) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(4) .fullscreen-toggle { animation-delay: 0.26s; }
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(5) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(5) .fullscreen-toggle { animation-delay: 0.33s; }
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(6) .fullscreen-link,
.fullscreen-menu-main .fullscreen-link-wrap:nth-child(6) .fullscreen-toggle { animation-delay: 0.40s; }

@media (prefers-reduced-motion: reduce) {
    .fullscreen-link, .fullscreen-toggle {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}

/* Toggle button for expandable items */
.fullscreen-toggle {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 34px;
    font-weight: 700;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.85);
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 0;
    font-family: inherit;
    position: relative;
    transition: color 0.3s, transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fullscreen-toggle::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 4px;
    width: 0;
    height: 2px;
    background: var(--dorado, #c9a84c);
    transition: width 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fullscreen-toggle:hover {
    color: #fff;
}

.fullscreen-arrow {
    transition: transform 0.35s ease;
}

.fullscreen-toggle.open .fullscreen-arrow {
    transform: rotate(-180deg);
}

/* Sub-links accordion */
.fullscreen-sub {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.fullscreen-sub.open {
    max-height: 700px;
}

.fullscreen-nested-wrap {
    padding-left: 12px;
}

.fullscreen-toggle-nested {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--dorado, #c9a84c);
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px 0;
    font-family: inherit;
    transition: color 0.25s;
}

.fullscreen-toggle-nested:hover {
    color: #fff;
}

.fullscreen-toggle-nested .fullscreen-arrow {
    transition: transform 0.35s ease;
}

.fullscreen-toggle-nested.open .fullscreen-arrow {
    transform: rotate(-180deg);
}

.fullscreen-sub-nested {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.fullscreen-sub-nested.open {
    max-height: 400px;
}

.fullscreen-sub-nested a {
    display: block;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    text-decoration: none;
    padding: 5px 0 5px 8px;
    transition: color 0.25s, padding-left 0.25s;
}

.fullscreen-sub-nested a:hover {
    color: var(--dorado, #c9a84c);
    padding-left: 16px;
}

.fullscreen-sub a {
    display: block;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    padding: 7px 0 7px 12px;
    transition: color 0.25s, padding-left 0.25s;
    position: relative;
}

.fullscreen-sub a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--dorado, #c9a84c);
    transform: translateY(-50%) scale(0);
    transition: transform 0.3s;
}

.fullscreen-sub a:hover {
    color: var(--dorado, #c9a84c);
    padding-left: 20px;
}

.fullscreen-sub a:hover::before {
    transform: translateY(-50%) scale(1);
}

/* Secondary column */
.fullscreen-menu-secondary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.fullscreen-social {
    display: flex;
    gap: 28px;
}

.fullscreen-social a {
    color: rgba(255,255,255,0.4);
    transition: color 0.3s, transform 0.3s;
    display: flex;
}

.fullscreen-social a:hover {
    color: #fff;
    transform: scale(1.2) translateY(-3px);
}

/* Responsive */
@media (max-width: 768px) {
    .fullscreen-menu-inner {
        grid-template-columns: 1fr;
        padding: 80px 24px 48px;
        align-content: start;
        justify-items: start;
        gap: 48px;
        min-height: 100dvh;
    }
    .fullscreen-link,
    .fullscreen-toggle {
        font-size: 24px;
        letter-spacing: 4px;
    }
    .fullscreen-menu-secondary {
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .fullscreen-link,
    .fullscreen-toggle {
        font-size: 20px;
        letter-spacing: 3px;
    }
    .fullscreen-menu-inner {
        padding: 72px 20px 40px;
    }
}

        /* ══════════════ CONTACTO SUB-SECCIONES ══════════════ */
        #contacto .contacto-sub { display: block; }
        #contacto.show-sub .contacto-sub { display: none; }
        #contacto.show-sub .contacto-sub.active-sub { display: block; }

        /* ══════════════ ¿ERES NUEVO AQUÍ? ══════════════ */
        .nuevo-quote-wrap {
            border-left: 3px solid var(--dorado);
            padding: 24px 32px;
            margin: 0 auto 48px;
            max-width: 700px;
            background: rgba(0,48,135,0.04);
            border-radius: 0 12px 12px 0;
        }
        .nuevo-quote {
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: clamp(17px, 2.2vw, 22px);
            color: var(--azul-dark);
            line-height: 1.6;
            margin-bottom: 10px;
        }
        .nuevo-quote-author {
            font-size: 11px;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--dorado);
            font-weight: 600;
        }
        .nuevo-info-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 20px;
            margin-bottom: 56px;
        }
        .nuevo-info-card {
            background: white;
            border: 1px solid rgba(0,48,135,0.1);
            border-radius: 14px;
            padding: 28px 22px;
            text-align: center;
            box-shadow: 0 2px 12px rgba(0,48,135,0.06);
            transition: transform 0.3s, box-shadow 0.3s;
        }
        .nuevo-info-card:hover { transform: translateY(-4px); box-shadow: 0 6px 24px rgba(0,48,135,0.12); }
        .nuevo-info-icon {
            width: 50px; height: 50px;
            background: rgba(0,48,135,0.07);
            border-radius: 50%;
            display: flex; align-items: center; justify-content: center;
            margin: 0 auto 16px;
            color: var(--azul);
        }
        .nuevo-info-card h3 {
            font-size: 10px;
            letter-spacing: 2.5px;
            text-transform: uppercase;
            color: var(--azul);
            font-weight: 700;
            margin-bottom: 8px;
        }
        .nuevo-info-card p { color: #666; font-size: 13px; line-height: 1.7; }

        /* ══════════════ FAQ ACCORDION ══════════════ */
        .faq-list { display: flex; flex-direction: column; gap: 10px; max-width: 780px; margin: 40px auto 0; }
        .faq-item {
            background: white;
            border-radius: 10px;
            overflow: hidden;
            box-shadow: 0 2px 10px rgba(0,48,135,0.06);
            border: 1px solid rgba(0,48,135,0.08);
            position: relative;
            transition: box-shadow 0.3s, border-color 0.3s;
        }
        .faq-item::before {
            content: '';
            position: absolute;
            left: 0; top: 0; bottom: 0;
            width: 3px;
            background: var(--dorado);
            border-radius: 10px 0 0 10px;
            opacity: 0;
            transition: opacity 0.3s;
        }
        .faq-item.open { box-shadow: 0 6px 22px rgba(0,48,135,0.11); border-color: rgba(201,168,76,0.3); }
        .faq-item.open::before { opacity: 1; }
        .faq-trigger {
            width: 100%; background: none; border: none; cursor: pointer;
            padding: 20px 24px;
            display: flex; align-items: center; justify-content: space-between; gap: 14px;
            text-align: left;
        }
        .faq-trigger-text {
            font-size: 11px; font-weight: 700; letter-spacing: 2px;
            text-transform: uppercase; color: var(--azul); transition: color 0.3s; line-height: 1.4;
        }
        .faq-item.open .faq-trigger-text { color: var(--dorado); }
        .faq-icon {
            width: 26px; height: 26px; border-radius: 50%;
            background: rgba(0,48,135,0.07);
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0; transition: background 0.3s, transform 0.35s cubic-bezier(0.4,0,0.2,1);
            color: var(--azul);
        }
        .faq-item.open .faq-icon { background: var(--dorado); color: white; transform: rotate(45deg); }
        .faq-body {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows 0.35s cubic-bezier(0.4,0,0.2,1);
        }
        .faq-item.open .faq-body { grid-template-rows: 1fr; }
        .faq-body-inner { overflow: hidden; }
        .faq-body-content {
            padding: 0 24px 20px; padding-top: 16px;
            color: #555; font-size: 14px; line-height: 1.8;
            border-top: 1px solid rgba(0,48,135,0.07);
        }

        /* ══════════════ NUEVO CTA WHATSAPP ══════════════ */
        .nuevo-cta { text-align: center; }
        .nuevo-cta-label {
            color: #999; font-size: 11px; letter-spacing: 2px;
            text-transform: uppercase; margin-bottom: 18px;
        }
        .btn-nuevo-wa {
            display: inline-flex; align-items: center; gap: 10px;
            background: #25D366; color: white;
            padding: 15px 34px; border-radius: 50px;
            font-size: 12px; font-weight: 700; letter-spacing: 2px;
            text-transform: uppercase; text-decoration: none;
            transition: all 0.3s; box-shadow: 0 4px 18px rgba(37,211,102,0.25);
        }
        .btn-nuevo-wa:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(37,211,102,0.4); }

        @media (max-width: 600px) {
            .nuevo-info-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
            .nuevo-info-card { padding: 20px 14px; }
            .nuevo-quote-wrap { padding: 18px 20px; }
            .faq-trigger { padding: 16px 18px; }
            .faq-body-content { padding: 0 18px 16px; padding-top: 14px; }
        }
        @media (max-width: 380px) {
            .nuevo-info-grid { grid-template-columns: 1fr; }
        }

        /* ══════════════════════════════════════════════════════
           MEJORA VISUAL — ¿ERES NUEVO AQUÍ? (sobreescribe con especificidad)
           ══════════════════════════════════════════════════════ */

        /* — Badge de bienvenida encima del título (solo en eres-nuevo) — */
        .contacto-sub[data-known-sub-contacto="eres-nuevo"] .hero-small-content::before {
            content: '✦ BIENVENIDO';
            display: block;
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 4px;
            color: var(--dorado);
            margin-bottom: 14px;
            opacity: 0.9;
        }

        /* — Quote del pastor mejorada — */
        .nuevo-quote-wrap {
            border-left: 3px solid var(--dorado) !important;
            background: linear-gradient(135deg, rgba(0,48,135,0.03) 0%, rgba(201,168,76,0.06) 100%) !important;
            border-radius: 0 16px 16px 0 !important;
            padding: 28px 36px !important;
            max-width: 760px !important;
            position: relative;
            text-align: center;
        }
        .nuevo-quote-wrap::after {
            content: '"';
            position: absolute;
            top: -10px;
            right: 24px;
            font-family: 'Cormorant Garamond', serif;
            font-size: 100px;
            color: var(--dorado);
            opacity: 0.12;
            line-height: 1;
            pointer-events: none;
        }
        .nuevo-quote {
            font-size: clamp(18px, 2.4vw, 24px) !important;
            line-height: 1.65 !important;
            color: var(--azul-dark) !important;
        }
        .nuevo-quote-author {
            font-size: 10px !important;
            letter-spacing: 4px !important;
            color: var(--dorado) !important;
        }

        /* — Separador decorativo entre secciones — */
        .nuevo-quote-wrap { margin-bottom: 36px !important; }
        .nuevo-info-grid {
            margin-top: 56px !important;
            position: relative;
        }
        .contacto-sub[data-known-sub-contacto="eres-nuevo"] .section > .container > .nuevo-info-grid::before {
            content: '';
            position: absolute;
            top: -28px;
            left: 50%;
            transform: translateX(-50%);
            width: 40px;
            height: 2px;
            background: linear-gradient(90deg, var(--dorado), var(--verde));
        }

        /* — Tarjetas info: borde superior dorado + azul, icono más grande — */
        .nuevo-info-card {
            border-top: 3px solid transparent !important;
            background-clip: padding-box !important;
            border-radius: 16px !important;
            padding: 32px 24px !important;
            box-shadow: 0 4px 20px rgba(0,48,135,0.07) !important;
            position: relative;
            overflow: hidden;
            transition: transform 0.3s cubic-bezier(0.175,0.885,0.32,1.275), box-shadow 0.3s !important;
        }
        .nuevo-info-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 3px;
            background: linear-gradient(90deg, var(--azul), var(--dorado));
            border-radius: 16px 16px 0 0;
        }
        .nuevo-info-card:hover {
            transform: translateY(-6px) !important;
            box-shadow: 0 12px 36px rgba(0,48,135,0.14) !important;
        }
        .nuevo-info-icon {
            width: 58px !important;
            height: 58px !important;
            background: linear-gradient(135deg, rgba(0,48,135,0.08) 0%, rgba(201,168,76,0.1) 100%) !important;
            border-radius: 14px !important;
            color: var(--azul) !important;
            margin-bottom: 18px !important;
        }
        .nuevo-info-card h3 {
            font-size: 11px !important;
            letter-spacing: 2.5px !important;
            color: var(--azul) !important;
            margin-bottom: 10px !important;
        }
        .nuevo-info-card p {
            color: #5a6474 !important;
            font-size: 13.5px !important;
            line-height: 1.75 !important;
        }

        /* — Sección de pasos "Tu primera visita" — */
        .nuevo-steps {
            display: flex;
            gap: 0;
            justify-content: center;
            align-items: flex-start;
            margin: 44px auto 48px;
            max-width: 860px;
            position: relative;
        }
        .nuevo-steps::before {
            content: '';
            position: absolute;
            top: 28px;
            left: calc(16.66% + 28px);
            right: calc(16.66% + 28px);
            height: 2px;
            background: linear-gradient(90deg, var(--dorado), var(--verde), var(--dorado));
            opacity: 0.35;
        }
        .nuevo-step {
            flex: 1;
            text-align: center;
            padding: 0 16px;
        }
        .nuevo-step-num {
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--azul) 0%, var(--azul-light) 100%);
            color: white;
            font-size: 18px;
            font-weight: 700;
            font-family: 'Cormorant Garamond', serif;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 14px;
            box-shadow: 0 4px 16px rgba(0,48,135,0.25);
            position: relative;
            z-index: 1;
        }
        .nuevo-step-num::after {
            content: '';
            position: absolute;
            inset: -3px;
            border-radius: 50%;
            border: 2px solid var(--dorado);
            opacity: 0.5;
        }
        .nuevo-step-label {
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 2.5px;
            text-transform: uppercase;
            color: var(--azul);
            margin-bottom: 6px;
            display: block;
        }
        .nuevo-step-desc {
            font-size: 12.5px;
            color: #6b7280;
            line-height: 1.6;
        }
        .nuevo-steps-title {
            text-align: center;
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: var(--dorado);
            margin-bottom: 36px;
            display: block;
        }

        /* — FAQ: encabezado de sección mejorado — */
        .faq-list {
            gap: 8px !important;
        }
        .faq-item {
            border-radius: 12px !important;
            box-shadow: 0 2px 14px rgba(0,48,135,0.055) !important;
        }
        .faq-trigger {
            padding: 22px 26px !important;
        }
        .faq-trigger-text {
            font-size: 12px !important;
            letter-spacing: 1.8px !important;
        }
        .faq-body-content {
            font-size: 14.5px !important;
            line-height: 1.85 !important;
            color: #4b5563 !important;
            padding: 0 26px 22px !important;
            padding-top: 18px !important;
        }

        /* — CTA WhatsApp: fondo de card mejorado — */
        .nuevo-cta {
            background: linear-gradient(135deg, rgba(0,48,135,0.03) 0%, rgba(46,125,50,0.04) 100%);
            border: 1px solid rgba(0,48,135,0.08);
            border-radius: 20px;
            padding: 40px 32px;
            max-width: 480px;
            margin: 48px auto 0 !important;
        }
        .nuevo-cta-label {
            font-size: 12px !important;
            letter-spacing: 2.5px !important;
            color: var(--azul) !important;
            opacity: 0.7;
            margin-bottom: 20px !important;
        }
        .btn-nuevo-wa {
            padding: 16px 40px !important;
            font-size: 11px !important;
            letter-spacing: 2.5px !important;
            border-radius: 60px !important;
            box-shadow: 0 6px 24px rgba(37,211,102,0.3) !important;
        }

        /* — Fuerza 2×2 simétrico siempre en pantallas ≥601px — */
        @media (min-width: 601px) {
            .nuevo-info-grid { grid-template-columns: 1fr 1fr !important; }
        }

        /* — Responsive ajustes — */
        @media (max-width: 600px) {
            .nuevo-steps { flex-direction: column; align-items: center; gap: 32px; }
            .nuevo-steps::before { display: none; }
            .nuevo-step { max-width: 280px; }
            .nuevo-quote-wrap { padding: 22px 22px !important; }
            .nuevo-quote-wrap::after { display: none; }
            .nuevo-info-grid { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
            .nuevo-info-card { padding: 22px 16px !important; }
            .nuevo-cta { padding: 28px 20px; }
        }
        @media (max-width: 380px) {
            .nuevo-info-grid { grid-template-columns: 1fr !important; }
            .nuevo-steps { gap: 24px; }
        }

        /* ── Mobile general ── */
        @media (max-width: 480px) {
            .nuevo-quote-author { font-size: 9px !important; letter-spacing: 3px !important; }
            .nuevo-info-card h3 { font-size: 10px !important; }
            .nuevo-info-card p { font-size: 12.5px !important; }
            .btn-nuevo-wa { padding: 14px 28px !important; font-size: 10px !important; }
        }

        /* ── Dark mode eres-nuevo ── */
        .dark .nuevo-quote-wrap { background: rgba(255,255,255,0.04) !important; border-left: 3px solid var(--dorado) !important; }
        .dark .nuevo-quote { color: #ddd !important; }
        .dark .nuevo-quote-author { color: #bbb !important; }
        .dark .nuevo-info-card { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.08); }
        .dark .nuevo-info-card::before { background: linear-gradient(90deg, var(--dorado), rgba(201,168,76,0.2)); }
        .dark .nuevo-info-icon { background: rgba(0,48,135,0.35) !important; }
        .dark .nuevo-info-icon svg { opacity: 0.85; }
        .dark .nuevo-info-card h3 { color: #ddd; }
        .dark .nuevo-info-card p { color: #aab !important; }
        .dark .faq-item { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.07); }
        .dark .faq-item.open { border-color: rgba(201,168,76,0.25); box-shadow: 0 6px 22px rgba(0,0,0,0.3); }
        .dark .faq-trigger-text { color: #ddd; }
        .dark .faq-item.open .faq-trigger-text { color: var(--dorado); }
        .dark .faq-body-content { color: #bbb !important; }
        .dark .nuevo-cta { background: linear-gradient(135deg, rgba(0,48,135,0.5), rgba(0,30,87,0.6)) !important; border-color: rgba(255,255,255,0.1); }
        .dark .nuevo-cta-label { color: var(--dorado) !important; opacity: 0.9; }
        .dark .nuevo-step-num { background: linear-gradient(135deg, rgba(0,48,135,0.6), rgba(46,125,50,0.4)); color: #fff; }
        .dark .nuevo-step-desc { color: #aab; }
        .dark .nuevo-steps::before { background: linear-gradient(90deg, rgba(255,255,255,0.15), rgba(255,255,255,0.05), rgba(255,255,255,0.15)); opacity: 0.5; }
        .dark .nuevo-steps-title { color: var(--dorado); }
        .dark .nuevo-step-label { color: #ccc; }
        .dark .hero-contacto { background: linear-gradient(135deg, #0a1628 0%, #0d1f3c 50%, #1a0d1a 100%) !important; }
        .dark .hero-contacto .hero-small-line { background: linear-gradient(90deg,transparent,var(--dorado),transparent); }
        .dark .nuevo-step-num::after { border-color: rgba(201,168,76,0.4); }

/* Hero CTA group */
.hero-cta-group {
    display: flex; gap: 16px; flex-wrap: wrap; justify-content: center;
    margin-top: 12px;
}
.hero-cta-group .btn-outline { margin-top: 0; }
.btn-solid-gold {
    margin-top: 0; display: inline-block;
    padding: 14px 52px; border: 2px solid var(--dorado);
    color: var(--azul-dark); font-weight: 700; font-size: 12px;
    text-transform: uppercase; letter-spacing: 3px;
    text-decoration: none; border-radius: 50px;
    transition: var(--transition); cursor: pointer;
    background: var(--dorado); opacity: 0;
    animation: heroEntry 0.8s 1.2s ease forwards;
}
.btn-solid-gold:hover { background: transparent; color: var(--dorado); }
@media (max-width: 600px) {
    .hero-cta-group { flex-direction: column; align-items: center; }
}

/* Dark mode — Logo INV */
html.dark .logo-text-full .logo-top,
html.dark .logo-text-full .logo-bottom,
html.dark .logo-text-abbr { color: var(--dm-text-primary); }
html.dark #mainHeader.hero-mode:not(.scrolled) .logo-text-full .logo-top,
html.dark #mainHeader.hero-mode:not(.scrolled) .logo-text-full .logo-bottom {
    color: #fff;
}
