/* =========================================
   FUENTES
   ========================================= */
@font-face {
    font-family: 'Panton';
    src: url('fonts/Panton-LightCaps.woff2') format('woff2');
    font-weight: 400;
}
@font-face {
    font-family: 'Panton';
    src: url('fonts/Panton-BlackCaps.woff2') format('woff2');
    font-weight: 700;
}

@font-face {
    font-family: 'PantonBlack';
    src: url('fonts/Panton-BlackCaps.woff2') format('woff2');
    font-weight: 700;
}
@font-face {
    font-family: 'PantonLight';
    src: url('fonts/Panton-LightCaps.woff2') format('woff2');
    font-weight: 300; /* Light */
}

.panton-blackcaps {
    font-family: 'Panton', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
}

.panton-lightcaps {
    font-family: 'Panton', sans-serif;
    font-weight: 300;
    text-transform: uppercase;
}

/* =========================================
   ESTRUCTURA PRINCIPAL
   ========================================= */
body {
    font-family: 'Inter', sans-serif;
    margin: 0;
    padding: 0;
    background-color: #111;
 
    /* Eliminamos el flex para que el div hijo pueda crecer libremente */
}

.main-container {
    background: linear-gradient(
        135deg, 
        #b91c1c 0%,     
        25%,            
        #850800 100%    
    );
    width: 100%;
    min-height: 100vh;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px;
    overflow-y: auto;
    overflow-x: hidden;
    
    /* En PC/TV la barra de desplazamiento se ve mejor estilizada */
}

.main-container-dark {
    background: linear-gradient(
        135deg, 
        #610000 0%,     
        25%,            
        #3b0000 100%    
    );
    width: 100%;
    min-height: 100vh;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px;
    overflow-y: auto;
    overflow-x: hidden;
    
    /* En PC/TV la barra de desplazamiento se ve mejor estilizada */
}

#logoContainer {
    width: 100%;
    max-width: 300px;
    margin-bottom: 2rem;
    padding: 1rem;
    border: 4px solid #fbbe4c;
    border-radius: 20px;
    /* Sombra dorada para un efecto de neón/lujo */
    box-shadow: 0 0 15px 5px rgba(251, 190, 76, 0.5), inset 0 0 10px rgba(251, 190, 76, 0.3);

}


/* =========================================
   ESTILOS DE BOTONES (JUEGO 3D) - CORREGIDO
   ========================================= */

.btn-game-base {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    
    /* Borde grueso */
    border-width: 2px;
    border-style: solid;
    
    /* Sombra Sólida (La altura del botón) */
    box-shadow: 0 6px 0 rgba(0,0,0,0.3); /* Un poco más alto para mejor efecto */
    
    transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.1s;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

/* === AQUÍ ESTÁ LA CORRECCIÓN DEL SALTO === */
.btn-game-base:active {
    /* El botón baja 6px (la misma altura que la sombra) */
    transform: translateY(6px) !important;
    
    /* La sombra desaparece (porque el botón la tapó) */
    box-shadow: 0 0 0 rgba(0,0,0,0) !important;
    
    /* ELIMINADO: margin-bottom. Esto causaba el salto. */
}

/* --- CLASE PARA BOTONES REDONDOS (FAB) --- */
.btn-fab {
    /* Tamaños definidos en HTML con Tailwind ahora para ser responsivos */
    border-radius: 50% !important;
    padding: 0;
    aspect-ratio: 1 / 1; /* Asegura que siempre sea círculo perfecto */
}

/* OSCURO */
.btn-dark {
    background: linear-gradient(180deg, #2e2e2e 0%, #111 100%);
    color: #ffffff;
    border-color: #1f1f1f;
    box-shadow: 0 6px 0 #000000;
}

/* --- COLORES (Sin cambios, solo referencias de sombra ajustadas a la variable) --- */
/* ORO */
.btn-gold {
    background: linear-gradient(180deg, #ecd96c 0%, #ffc107 100%);
    color: #000;
    border-color: #fdd05d;
    box-shadow: 0 6px 0 #6e4801;
}

/* VERDE */
.btn-green {
    background: linear-gradient(180deg, #69fd9f 0%, #22c55e 100%);
    color: #000;
    border-color: #43db7d;
    box-shadow: 0 6px 0 #14532d;
}
/* AZUL */
.btn-blue {
    background: linear-gradient(180deg, #60a5fa 0%, #2563eb 100%);
    color: #fff;
    border-color: #1e40af;
    box-shadow: 0 6px 0 #21367a;
}
/* ROJO */
.btn-red {
    background: linear-gradient(180deg, #f87171 0%, #dc2626 100%);
    color: #fff;
    border-color: #991b1b;
    box-shadow: 0 6px 0 #6b1919;
}
/* MORADO */
.btn-purple {
    background: linear-gradient(180deg, #c084fc 0%, #7e22ce 100%);
    color: #fff;
    border-color: #6b21a8;
    box-shadow: 0 6px 0 #581c87;
}

/* =========================================
   ELEMENTOS DE INTERFAZ
   ========================================= */
.dashed-box {
    
    border: 3px dashed #dfa506;
    border-radius: 16px;
    position: relative;
    width: 100%;
}

.input-field {
    background-color: rgba(255, 255, 255, 0.9);
    border: 2px solid #fbbe4c;
    border-radius: 12px;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    width: 100%;
    outline: none;
    text-align: center;
    color: #333;
}
.input-field:focus {
    box-shadow: 0 0 0 3px rgba(251, 190, 76, 0.5);
    border-color: #e6a525;
}

.text-gold-admin {
    color: #fbbe4c;
    text-shadow: 1px 1px 0 #000;
    letter-spacing: 1px;
}

.btn-pulse { /* This class is already in your bingo75.html */
    animation: pulse 2s infinite;
}

.btn-pulse:hover { /* This class is already in your bingo75.html */
animation:none
}

@keyframes pulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.02); opacity: 0.95; }
    100% { transform: scale(1); opacity: 1; }
}

/* Simulación Cartas */
.card-mini {
    width: 24px;
    height: 34px;
    border-radius: 3px;
    border: 1px solid #fff;
    box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}
.card-green { background-color: #22c55e; transform: rotate(-20deg) translateX(-5px); z-index: 1; }
.card-red { background-color: #ef4444; transform: translateY(-5px); z-index: 2; }
.card-blue { background-color: #3b82f6; transform: rotate(20deg) translateX(5px); z-index: 3; }

/*BARRA DE CARGA*/

.bottom-loader-container {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 6px; /* Altura de la barra */
    background-color: rgba(0, 0, 0, 0.2); /* Fondo oscuro transparente */
    z-index: 9999; /* Por encima de todo */
    overflow: hidden;
}

.loader-bar {
    height: 100%;
    background: #fbbe4c; /* Tu color dorado 'Gold' */
    box-shadow: 0 0 10px #fbbe4c; /* Un pequeño brillo */
    width: 0%;
    animation: loadingAnimation 1.5s infinite ease-in-out;
}

/* Animación de izquierda a derecha */
@keyframes loadingAnimation {
    0% { width: 0%; margin-left: 0%; }
    50% { width: 70%; margin-left: 0%; }
    100% { width: 100%; margin-left: 100%; }
}



/* =========================================
   LAYOUT DE JUEGO (jugar.html)
   ========================================= */

/* Header Superior (Ronda + Jugadores) */
.game-header {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 12px 16px;
    z-index: 10;
    gap: 10px;
}

.round-badge {
    background: linear-gradient(180deg, #f3f4f6 0%, #e5e7eb 100%);
    border: 2px solid #d1d5db;
    border-radius: 8px;
    padding: 6px 20px;
    font-family: 'Panton', sans-serif; /* PantonBlack */
    font-weight: 700;
    font-size: 1.2rem;
    color: #1f2937;
    box-shadow: 0 4px 0 rgba(0,0,0,0.15);
    text-transform: uppercase;
}

.players-badge {
    display: flex;
    align-items: center;
    background: rgba(0, 0, 0, 0.4);
    border-radius: 20px;
    padding: 6px 14px;
    border: 1px solid rgba(255,255,255,0.1);
    color: #fff;
    font-family: 'Panton', sans-serif;
    font-weight: 700;
}

.live-dot {
    width: 10px; height: 10px;
    background-color: #ef4444;
    border-radius: 50%;
    margin-right: 8px;
    box-shadow: 0 0 8px #ef4444;
}

/* Barra de Herramientas (Iconos + Puntos) */
.toolbar-container {
    display: flex;
    justify-content: space-between; /* Distribuye espacio */
    align-items: center;
    width: 100%;
    padding: 0 16px 10px 16px;
    z-index: 9;
}

.loyalty-pill {
    display: flex;
    align-items: center;
    background: linear-gradient(180deg, #ecd96c 0%, #ffc107 100%);
    border: 2px solid #fdd05d;
    border-radius: 25px;
    padding: 6px 16px;
    box-shadow: 0 4px 0 #b4860b; /* Sombra sólida tipo botón */
    cursor: pointer;
    font-family: 'Panton', sans-serif;
    font-weight: 700;
    color: #000;
    font-size: 1.1rem;
    margin: 0 10px;
}

/* Botones Circulares Pequeños (Iconos) */
.icon-btn-small {
    width: 48px; height: 48px;
    border-radius: 50%;
    display: flex; justify-content: center; align-items: center;

  
    cursor: pointer;
    transition: transform 0.1s;
}
.icon-btn-small:active { transform: scale(0.95); background: rgba(255,255,255,0.2); }
.icon-btn-small svg { width: 24px; height: 24px; fill: #fff; }

.btn-board-highlight {
    color: #fbbe4c;
}
.btn-board-highlight svg { fill: #fbbe4c; }




/* Área Central (Bola + Historial) */
.game-display-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    position: relative;
    margin-top: 10px;
}



.counter-badge {
    position: absolute;
    right: 0px; top: 10px;
    background: rgba(0,0,0,0.6);
    padding: 6px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.1);
    color: #fbbe4c;
    font-family: 'Panton', sans-serif; /* LightCaps si tienes la fuente cargada */
    font-weight: 700;
}

/* =========================================
   CAMBIOS SOLICITADOS EN UI.CSS
   ========================================= */

/* 1. HACER MÁS PEQUEÑO EL CONTENEDOR DE FICHAS RECIENTES */
.history-track {
    width: 85%;            /* Reducido de 95% */
    max-width: 350px;      /* Reducido de 400px */
    height: 70px;          /* Reducido de 70px */
    margin-top: -20px;     /* Ajustado overlap */
    z-index: 4;
    transition: all 0.3s ease;
}

/* Ajuste del contenedor de la bola principal para dar espacio a los lados */
.main-ball-container {
    width: 190px;          /* Ligeramente más pequeño para móviles */
    height: 190px;
    display: flex; 
    justify-content: center; 
    align-items: center;
    z-index: 5;
    flex-shrink: 0;        /* Evita que se aplaste */
}
#mainBallCanvas { width: 100%; height: 100%; }

/* Popover Horizontal para Columnas */
.columns-popover {
    /* CAMBIO CLAVE: Fixed para escapar de cualquier contenedor con scroll u overflow */
    position: fixed; 
    
    /* Z-index muy alto para estar encima de todo */
    z-index: 9999; 
    
    background: rgba(30, 30, 30, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 50px;
    padding: 6px;
    display: flex;
    gap: 5px;
    width: max-content;
    
    /* Animación de entrada */
    opacity: 0;
    visibility: hidden;
    transform: scale(0.9);
    transition: opacity 0.2s, transform 0.2s;
    
    /* Sombra para que destaque sobre el fondo */
    box-shadow: 0 4px 15px rgba(0,0,0,0.5);
}

.columns-popover.active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
}

.col-opt-btn {
    background: transparent;
    border: none;
    color: #888;
    font-family: 'Panton', sans-serif;
    font-weight: 700;
    font-size: 0.85rem; /* Un poco más legible */
    padding: 4px 12px;  /* Más área de click */
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.col-opt-btn:hover {
    background: rgba(255,255,255,0.15);
    color: #fff;
}

.col-opt-btn.active {
    background: #FFD700;
    color: #000;
    box-shadow: 0 2px 10px rgba(255, 215, 0, 0.4);
}

/* Transición suave para las cartas al cambiar columnas */
#cardsContainer {
    transition: grid-template-columns 0.3s ease-out;

}

/* 2. AJUSTES PARA EL PANEL DE REACCIONES (Ahora flotará a la derecha del botón) */
.reactions-popover {
    /* CAMBIO CLAVE: Fixed para escapar del contenedor con scroll */
    position: fixed; 
    
    /* Inicialmente oculto y sin coordenadas fijas (las pondrá JS) */
    z-index: 9999; 
    
    /* Estilo del contenedor */
    background: rgba(20, 20, 20, 0.98);
    border: 1px solid #FFD700;
    border-radius: 50px; 
    padding: 8px 6px;
    
    display: none;
    flex-direction: column;
    
    
    box-shadow: 0 5px 20px rgba(0,0,0,0.8);
    
    /* Animación */
    transition: opacity 0.2s, transform 0.2s;
    opacity: 0;
    transform: scale(0.9); /* Efecto zoom ligero */
}

/* El estado activo */
.reactions-popover.active { 
    display: flex;
    opacity: 1;
    transform: scale(1); /* Zoom normal al abrir */
}

.reaction-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.1s;
    padding: 0;
}

.reaction-btn:hover {
    transform: scale(1.2);
    background: rgba(255, 215, 0, 0.1); /* Brillo dorado suave */
}

.reaction-btn:active {
    transform: scale(0.9);
}

.reaction-btn svg {
    width: 24px;
    height: 24px;
    fill: #FFD700; /* Color dorado para los iconos */
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.5));
}

@keyframes popIn {
    from { opacity: 0; transform: scale(0.8) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}
/* Clase utilitaria para alinear verticalmente los botones laterales */
.side-controls {
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative; 
    z-index: 100; /* IMPORTANTE: Mayor que el z-index de la bola (5) */
}

#recentBallsCanvas { width: 100%; height: 100%; }


/* Área de Cartas Scrollable */
.cards-scroll-area {
    flex: 1;
    width: 100%;
    overflow-y: auto;
    padding: 20px 10px 100px 10px; /* Mucho padding abajo para los botones flotantes */
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;

}

/* Botones Flotantes (FABs) */
.fab-container {
    position: absolute;
    bottom: 30px;
    width: 100%;
    padding: 0 30px;
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    z-index: 20;
}

.fab-btn-large {
    pointer-events: auto;
    width: 64px; height: 64px; /* Grandes como en el menú */
    border-radius: 50%;
    display: flex; justify-content: center; align-items: center;
    cursor: pointer;
    box-shadow: 0 6px 12px rgba(0,0,0,0.4);
    transition: transform 0.1s;
    border: 2px solid rgba(255,255,255,0.1);
}
.fab-btn-large:active { transform: scale(0.95); }


.fab-dark { background: #1f1f1f; color: #fbbe4c; border-color: #fbbe4c; }
.fab-light { background: #f3f4f6; color: #1f1f1f; border-color: #fff; }



/* ESTADO ACTIVO (Solo cuando tiene la clase .active) */
.modal-overlay.active {
    display: flex !important; /* Forzamos flex al abrir */
}

/* CONTENIDO DEL MODAL */
.modal-content-board {
    background: #1f1f1f;
    border: 2px solid #fbbe4c;
    border-radius: 16px;
    width: 100%; 
    z-index: 20;
    max-width: 400px; /* Ancho máximo en móvil */
    max-height: 90vh; /* Que no se salga de la pantalla */
    display: flex; 
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 0 30px rgba(251, 190, 76, 0.3);
}



.modal-header {
    background: #2a2a2a;
    padding: 12px 16px;
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid #333;
}
.modal-title {
    color: #fbbe4c;
    font-family: 'Panton', sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    margin: 0;
}

.board-canvas-container {
    background: #000;
    width: 100%;
    /* Truco para mantener proporción si es necesario, o dejar auto */
    display: flex; justify-content: center;
    padding: 10px;
}


.reactions-popover.active { opacity: 1; pointer-events: auto; transform: translateY(0); }
.emoji-btn { font-size: 28px; cursor: pointer; background:none; border:none; transition: transform 0.1s;}
.emoji-btn:hover { transform: scale(1.2); }

/* MODAL TABLERO - ESTILO BASE (Móvil) */
.modal-overlay {
    display: none; /* Oculto por defecto en móvil */
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.95); /* Fondo oscuro más fuerte */
    z-index: 20;
    justify-content: center; align-items: center;
    padding: 10px;
    backdrop-filter: blur(5px); /* Efecto borroso bonito */
}
.modal-overlay.active { display: flex; }

.modal-content-board {
    background: #1f1f1f; /* Esto ya no se ve porque lo tapa el wrapper, pero sirve de fallback */
    border: none;        /* Quitamos borde del padre, lo tiene el wrapper */
    border-radius: 16px;
    width: 100%; 
    max-width: 500px;
    display: flex; 
    flex-direction: column;
    
    /* --- EL CAMBIO IMPORTANTE --- */
    overflow: visible !important; /* <--- ESTO permite que la burbuja flote fuera */
    box-shadow: none;             /* La sombra ahora la tiene el wrapper interno */
}

.modal-header {
    background: #2a2a2a;
    padding: 12px 16px;
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid #333;
}

/* =========================================
   ESTILOS NUEVOS PARA TABLERO DIVIDIDO
   ========================================= */

/* 1. EL MARCO (Frame) */
.board-wrapper {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    
    /* Fondo base */
    background: #121212; 
    
    /* Borde Dorado Sólido */
    border: 3px solid #fbbe4c; 
    

    /* Curvatura fuerte (igual al logo) */
    border-radius: 20px; 
    
    /* Sombra exterior e interior para efecto "Real/Neon" */
    box-shadow: 
        0 0 15px rgba(251, 190, 76, 0.4), /* Resplandor externo */
        inset 0 0 10px rgba(0, 0, 0, 0.8); /* Sombra interna para profundidad */
        
    /* Importante: Esto recorta el contenido para que siga la curva */
    overflow: hidden; 
    
    /* Asegura que el borde no se coma el contenido */
    box-sizing: border-box; 
}

/* 2. CABECERA (LETRAS) */
.board-header-sticky {
    flex: 0 0 auto;
    background: #1a1a1a;
    
    /* Borde inferior para separar de los números */
    border-bottom: 2px solid rgba(251, 190, 76, 0.5); 
    
    z-index: 10;
    
    /* Sombra que cae sobre los números */
    box-shadow: 0 4px 12px rgba(0,0,0,0.8); 
    
    /* FORZAR LA CURVA EN LAS ESQUINAS SUPERIORES */
    /* Usamos un poco menos que el padre (20px - 3px borde) para encajar perfecto */
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
}

/* 3. ZONA DE SCROLL (NÚMEROS) */
.board-scroll-area {
    flex: 1;
    overflow-y: auto;
    background: #111; /* Fondo muy oscuro */
    position: relative;
    padding-bottom: 20px;
    
    /* FORZAR LA CURVA EN LAS ESQUINAS INFERIORES */
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
}

 /* Ajuste para ocultar la barra de scroll pero mantener funcionalidad */
        .no-scrollbar::-webkit-scrollbar {
            display: none;
        }
        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
        /* Scrollbar personalizada para la lista de ganadores */
        .custom-scrollbar::-webkit-scrollbar {
            width: 6px;
        }
        .custom-scrollbar::-webkit-scrollbar-track {
            background: #1a1a1a;
        }
        .custom-scrollbar::-webkit-scrollbar-thumb {
            background: #333;
            border-radius: 3px;
        }
        .custom-scrollbar::-webkit-scrollbar-thumb:hover {
            background: #555;
        }

        
/* Asegurar canvas full width */
#boardHeaderCanvas, #boardGridCanvas {
    display: block;
    width: 100%;
}

/* =========================================
   BOTÓN DE CERRAR FLOTANTE (MÓVIL)
   ========================================= */
.floating-close-btn {
    position: absolute;
    /* Ajustamos para que quede justo en la esquina superior derecha */
    top: -12px; 
    right: -10px;
    
    width: 36px;
    height: 36px;
    
    /* Estilo botón rojo circular */
    background: linear-gradient(135deg, #ef4444, #b91c1c);
    border: 2px solid #ffffff;
    border-radius: 50%;
    
    /* Centrar icono X */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* Sombra para profundidad */
    box-shadow: 0 4px 8px rgba(0,0,0,0.5);
    z-index: 60; /* Encima del tablero */
    cursor: pointer;
    transition: transform 0.1s;
}

.floating-close-btn:active {
    transform: scale(0.9);
}

/* Opcional: Si en PC (md) quieres ocultarlo absolutamente */
@media (min-width: 768px) {
    .floating-close-btn {
        display: none !important;
    }
}

/* =========================================
   AJUSTE RESPONSIVE (PC vs MÓVIL)
   ========================================= */

/* EN MÓVIL: El modal flota, pero usamos el mismo wrapper interno */
@media (max-width: 767px) {
    .modal-content-board {
        height: 80vh; /* Altura fija en móvil para permitir scroll */
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }
}

/* EN PC (md): Definimos la altura máxima del widget en el sidebar */
@media (min-width: 768px) {
    .modal-overlay {
        display: flex !important;
        position: static !important;
        width: 100% !important;
        padding: 0 !important;
        background: transparent !important;
        backdrop-filter: none !important;
    }

    .modal-content-board {
        width: 100% !important;
        /* AQUÍ DEFINES LA ALTURA DEL WIDGET EN LA BARRA LATERAL */
        /* Puede ser fija (ej. 400px) o relativa al viewport */
        height: calc(100vh - 425px) !important; 
        min-height: 300px;
        
        /* Quitamos bordes del contenedor padre*/
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
    }
    
    /* El wrapper interno es el que lleva el estilo */
    .board-wrapper {
        border-width: 2px;
    }
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}


/* Animación de entrada estilo "Pop" */
@keyframes popIn {
    0% { transform: scale(0.5); opacity: 0; }
    60% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

.animate-pop-in {
    animation: popIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* Animación de salida */
.animate-pop-out {
    transform: scale(0);
    opacity: 0;
    transition: all 0.3s ease-in;
}

/* Estilo para items de ganadores en transición */
.winner-row-transition {
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50px;
    padding: 10px 30px;
    color: white;
    font-family: 'Panton', sans-serif;
    font-size: 1.5rem;
    width: 100%;
    max-width: 500px;
}

/* SWITCH TOGGLE MODERNO */
.switch-toggle {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}
.switch-toggle input { opacity: 0; width: 0; height: 0; }
.slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: #333;
    transition: .4s;
    border-radius: 34px;
    border: 1px solid #555;
}
.slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 2px;
    bottom: 2px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}


input:checked + .slider {
    background-color: #FFD700; /* Dorado al activar */
    border-color: #FFD700;
}
input:checked + .slider:before {
    transform: translateX(24px);
    background-color: #000;
}


/* =========================================
   SWITCH ÚNICO PARA VOTACIÓN (ROJO vs AZUL)
   ========================================= */

/* Contenedor principal (Nombre nuevo) */
.switch-turn-selector {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}

.switch-turn-selector input { 
    opacity: 0; 
    width: 0; 
    height: 0; 
}

/* LA PISTA (TRACK) - Nombre nuevo: .slider-turn */
.slider-turn {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    transition: .4s;
    border-radius: 34px;
    border: 2px solid rgba(255,255,255,0.1);
    
    /* --- ESTADO DEFAULT: NOCHE (8:00 PM) --- */
    /* Fondo Rojo Oscuro */
    background-color: #7f1d1d; 
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.5);
}

/* LA BOLA (KNOB) */
.slider-turn:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 2px;
    bottom: 2px;
    background-color: white; /* Bola blanca */
    transition: .4s cubic-bezier(0.4, 0.0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
    z-index: 2;
}

/* --- ESTADO ACTIVADO: TARDE (2:00 PM) --- */
input:checked + .slider-turn {
    /* Fondo Azul Oscuro */
    background-color: #1e3a8a; 
    border-color: #60a5fa;
}

input:checked + .slider-turn:before {
    transform: translateX(24px);
    background-color: #fff; 
}

/* OPCIONAL: Añadir un pequeño brillo interno de color */
input:checked + .slider-turn {
    box-shadow: inset 0 2px 5px rgba(0,0,0,0.5), 0 0 10px rgba(37, 99, 235, 0.3);
}

.paused-state {
    filter: grayscale(100%) brightness(0.5); /* Blanco y negro y más oscuro */
    transition: filter 0.5s ease;
    pointer-events: none; /* Evita clicks mientras está pausado */
}


/* =========================================
   CORRECCIÓN DEFINITIVA OVERLAY BINGO (PC) - VERSIÓN STRICT PIXEL
   ========================================= */
@media (min-width: 768px) {
    
    #overlayCongratulations {
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
        height: 100vh !important;
        width: 100vw !important;
    }

    #congratsContent {
        position: relative !important;
        width: auto !important;
        height: auto !important;
        
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        
        gap: 15px !important; 
    }

    /* TEXTOS GRANDES */
    #congratsContent h1 {
        font-size: 80px !important; /* Tamaño fijo grande */
        line-height: 1 !important;
        margin: 0 !important;
        text-align: center !important;
        color: #FFD700 !important;
        text-shadow: 0 0 30px rgba(255, 215, 0, 0.6);
        flex-shrink: 0 !important;
    }

    #congratsContent h2 {
        font-size: 32px !important; /* Tamaño fijo mediano */
        margin: 0 !important;
        text-align: center !important;
        color: #ffffff !important;
        flex-shrink: 0 !important;
    }

    /* WRAPPER DE LA CARTA: TAMAÑO FIJO ESTRICTO */
    #congratsContent > .relative {
        /* Definimos un tamaño de tarjeta de presentación estándar en pantalla */
        height: 380px !important; 
        width: 300px !important;
        
        /* Aseguramos que si la pantalla es enana (laptop pequeña), se encoja */
        max-height: 45vh !important; 
        max-width: auto !important;
        
        /* Mantenemos proporción */
        aspect-ratio: 300 / 380 !important;
        
        flex-shrink: 0 !important;
        margin: 0 auto !important;
        
        display: flex !important;
        justify-content: center;
        align-items: center;
    }

    #winnerCardCanvas {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }
    
    #congratsContent .winner-details { display: none !important; }
}

   /* MI CUENTA */
   
   /* Ajustes específicos para el modal de pagos */
        .payment-step { display: none; }
        .payment-step.active { display: flex; flex-direction: column; animation: fadeIn 0.3s ease-out; }
        
        /* Estilos para el status badge */
        .status-badge {
            font-family: 'Panton', sans-serif;
            font-size: 0.75rem;
            padding: 4px 10px;
            border-radius: 4px 12px 12px 4px;
            color: white;
            text-transform: uppercase;
            font-weight: bold;
            box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
        }
        .status-paid { background-color: #22c55e; }
        .status-gifted { background-color: #3b82f6; }
        .status-pending { background-color: #ef4444; }
        .status-redeemed { background-color: #ec4899; }
        .status-dinamica { background-color: #a855f7; }

        /* Contenedor de carta */
        .my-card-wrapper {
            position: relative;
           
            background: linear-gradient(
                135deg, 
                #272727 0%,     
                25%,            
                #111111 100%    
            );
            color: #fff;
            border-radius: 10px 10px  10% 10% ;
            
            /* CAMBIO: Padding 0 para que no haya márgenes alrededor del canvas */
            padding: 0; 
            
            /* CAMBIO: Overflow hidden para que el canvas no se salga de las esquinas */
            overflow: hidden;

            box-shadow: 0 4px 10px rgba(0,0,0,0.3);
            display: flex;
            flex-direction: column;
            
            /* Gap pequeño solo para separar el header del canvas */
       
        }


        /* =========================================
   MUDANZA DE RESERVAR.HTML A UI.CSS
   ========================================= */

/* Estilos base para la App de Reservas */
.app-body {
    overflow: hidden; 
    height: 100vh;      /* Fallback */
    height: 100dvh;     /* Altura real en móviles modernos */
    background-color: #121212; 
    overscroll-behavior: none; 
    display: flex;
    flex-direction: column;
}

/* Área de scroll suave */
.scroll-area-native {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    /* IMPORTANTE: min-height 0 permite al flexbox calcular el scroll interno */
    min-height: 0; 
}

/* Scrollbar personalizada fina */
.scroll-area-native::-webkit-scrollbar { width: 4px; }
.scroll-area-native::-webkit-scrollbar-track { background: #121212; }
.scroll-area-native::-webkit-scrollbar-thumb { background: #333; border-radius: 3px; }

/* --- ESTILOS DE CARTA (Redimensionados) --- */
.card-select-item {
    aspect-ratio: 4/5;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Panton', sans-serif;
    font-weight: 900;
    border-radius: 6px; /* Borde un poco menos redondo al ser más pequeña */
    cursor: pointer;
    user-select: none;
    position: relative;
    font-size: 0.9rem; /* REDUCIDO: de 1.1rem a 0.9rem */
}

/* Estados de la carta */
.card-available { background-color: #2a2a2a; border: 1px solid #444; color: white; }
.card-reserved { background-color: #161616; border: 1px solid #222; color: #444; }

/* Modos de juego (Selección) */
.mode-tarde .card-selected { background-color: #3b82f6; border-color: #93c5fd; color: white; box-shadow: 0 0 8px rgba(59,130,246,0.5); transform: scale(0.95); }
.mode-noche .card-selected { background-color: #ef4444; border-color: #fca5a5; color: white; box-shadow: 0 0 8px rgba(239,68,68,0.5); transform: scale(0.95); }

/* --- MODALES CON FUENTE PANTON --- */
#modalTitle {
    font-family: 'Panton', sans-serif; 
    font-weight: 700; /* BlackCaps */
}
#modalBody {
    font-family: 'Panton', sans-serif;
    font-weight: 300; /* LightCaps para lectura */
    font-size: 1rem;  /* Un poco más grande para leer bien */
    line-height: 1.4;
}


.pattern-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2px;
    margin: 0 auto 10px auto;
    background-color: #000;
    padding: 2px;
    border-radius: 4px;
    border: 1px solid #333;
}

.pattern-cell {
    background-color: #222;
    aspect-ratio: 1/1;
    border-radius: 1px;
}

.pattern-cell.active {
    background-color: #fbbe4c; /* Gold para las celdas pintadas */
    box-shadow: 0 0 4px rgba(251, 190, 76, 0.5);
}

/* Panel de Admin en la parte superior */
.admin-panel {
    background: rgba(255, 215, 0, 0.1);
    border: 1px solid #fbbe4c;
    border-radius: 12px;
    padding: 10px;
    margin-bottom: 15px;
    display: none; /* Oculto por defecto */
    flex-direction: column;
    gap: 8px;
}

.admin-panel.visible {
    display: flex;
}

/* Estado de Selección Manual (Admin) */
.card-select-item.admin-selected {
    border: 3px solid #fbbe4c !important; /* Borde Dorado Grueso */
    background-color: rgba(251, 190, 76, 0.1) !important;
    transform: scale(0.98);
}

/* Botón de Cuenta Regresiva */
.btn-countdown {
    background-color: #1f2937; /* Gray 800 */
    color: #fbbe4c;
    font-family: 'Panton', monospace;
    cursor: not-allowed;
    border: 1px solid #374151;
}


/* =========================================
   ESTILOS PARA ESTADÍSTICAS (STATS)
   ========================================= */

/* Grid de contadores superiores */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}

.stat-box {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.stat-value {
    font-family: 'Panton', sans-serif; /* <--- IMPORTANTE */
    font-weight: 900; /* BlackCaps */
    font-size: 1.3rem; /* Un poco más grande para destacar */
    color: white;
    text-shadow: 0 2px 4px rgba(0,0,0,0.3); /* Sombra suave para legibilidad */
}

/* 2. El dinero total (Ya tenía clase, pero aseguramos estilo) */
#statsTotalCollected {
    font-family: 'Panton', sans-serif;
    font-weight: 900;
    letter-spacing: 1px;
}

/* 3. Número de la Carta en la Lista (El cuadro gris) */
.card-number-box {
    font-family: 'Panton', sans-serif;
    font-weight: 900;
    font-size: 1.1rem;
}

/* 4. Botones de Acción (Info, Calcular, Admin) */
.btn-action-panton {
    font-family: 'Panton', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.stat-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    color: #aaa;
    margin-top: 2px;
    font-weight: bold;
}

/* Caja de Dinero Total (Destacada) */
.money-box {
    background: linear-gradient(180deg, rgba(20, 83, 45, 0.8) 0%, rgba(5, 46, 22, 0.8) 100%);
    border: 1px solid #22c55e;
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 12px;
    text-align: center;
    box-shadow: 0 4px 15px rgba(34, 197, 94, 0.2);
}

/* Badges de Estado (Igual que en Android) */
.status-badge {
    font-size: 0.7rem;
    padding: 4px 8px;
    border-radius: 4px;
    font-weight: bold;
    text-transform: uppercase;
    color: white;
    display: inline-block;
}

.bg-status-paid { background-color: #16a34a; }     /* Green 600 */
.bg-status-gifted { background-color: #0284c7; }   /* Sky 600 */
.bg-status-dinamica { background-color: #9333ea; } /* Purple 600 */
.bg-status-redeemed { background-color: #db2777; } /* Pink 600 */
.bg-status-pending { background-color: #dc2626; }  /* Red 600 */
.bg-status-canjeada { background-color: #be185d; } /* Pink 700 */

/* Icono Sol/Luna en la carta */
.game-badge-icon {
    width: 20px;
    height: 20px;
}
.icon-tarde { color: #3b82f6; } /* Azul */
.icon-noche { color: #ef4444; } /* Rojo */


.prize-list-container {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 20px;
}

/* Fila individual de premio */
.prize-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 10px 14px;
    transition: background 0.2s;
}

/* Fila Destacada (Cartón Lleno) */
.prize-row-gold {
    background: linear-gradient(90deg, rgba(255, 215, 0, 0.1) 0%, rgba(0,0,0,0) 100%);
    border: 1px solid #FFD700; /* Borde Dorado */
    box-shadow: 0 0 10px rgba(255, 215, 0, 0.1);
}

/* Texto de la izquierda (Nombre de ronda) */
.prize-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.85rem;
    color: #ccc;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Texto de la derecha (Monto) */
.prize-amount {
    font-family: 'Panton', sans-serif;
    font-weight: 900;
    font-size: 1rem;
    color: #fff;
    letter-spacing: 0.5px;
}

/* Color específico para el monto dorado */
.text-gold-prize {
    color: #FFD700;
    text-shadow: 0 0 5px rgba(255, 215, 0, 0.4);
}

/* Badge pequeño para enumerar */
.round-badge {
    background: rgba(255,255,255,0.1);
    color: #aaa;
    font-size: 0.7rem;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: bold;
}

.responsive-wrapper {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

@media (min-width: 1024px) {
    .responsive-wrapper {
        max-width: 1200px; /* Ancho máximo estilo Dashboard */
        margin: 0 auto;    /* Centrado */
        border-left: 1px solid rgba(255,255,255,0.05);
        border-right: 1px solid rgba(255,255,255,0.05);
        box-shadow: 0 0 50px rgba(0,0,0,0.5);
    }
}

/* GRID DE ESTADÍSTICAS:
   Móvil: 3 columnas (tu diseño actual).
   PC: 6 columnas en una sola fila (más elegante). */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}

@media (min-width: 768px) {
    .stats-grid {
        grid-template-columns: repeat(6, 1fr); /* Todas en una fila */
        gap: 12px;
    }
}

/* LISTA DE CARTAS:
   Móvil: Flex vertical (una debajo de otra).
   PC: Grid (varias tarjetas por fila). */
#cardsListContainer {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 80px;
}

@media (min-width: 768px) {
    #cardsListContainer {
        display: grid;
        /* Rellena con tantas columnas como quepan (mínimo 300px ancho cada una) */
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 12px;
    }
}

/* BOTONES HEADER EN PC:
   Evita que se estiren al infinito con flex-1 */
@media (min-width: 768px) {
    .btn-action-panton {
        flex: none !important; /* Quita el estiramiento */
        width: auto !important;
        min-width: 160px;      /* Ancho mínimo elegante */
        padding-left: 24px;
        padding-right: 24px;
    }
    
    /* El buscador no debe ocupar toda la pantalla */
    #searchContainer {
        max-width: 500px;
    }
}

/* =========================================
   MENÚ DINÁMICAS (POPUP)
   ========================================= */

.dinamica-menu-container {
    position: absolute;
    top: 110%; /* Justo debajo del botón */
    left: 50%;
    transform: translateX(-50%) translateY(-10px); /* Centrado y desplazado arriba */
    
    background: linear-gradient(180deg, #c084fc 0%, #7e22ce 100%);
    border: 2px solid #6b21a8;
    border-radius: 20px;
    padding: 8px 6px;
    
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 4px 15px rgba(0,0,0,0.4);
    
    /* Estado inicial: Oculto */
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 100;
}

/* Estado Visible */
.dinamica-menu-container.active {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0); /* Animación de caída */
}

/* Botones dentro del menú */
.menu-option-btn {
    width: 44px;
    height: 44px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    color: white;
    background: rgba(255,255,255,0.1); /* Fondo sutil */
    transition: transform 0.1s, background 0.2s;
}

.menu-option-btn:hover {
    background: rgba(255,255,255,0.3);
    transform: scale(1.1);
}

.menu-option-btn:active {
    transform: scale(0.95);
}


/* =========================================
   FIX: ZOOM PREVIEW (Scrollbars & Rendimiento)
   ========================================= */

/* Estilo de Scrollbar personalizado para el Zoom */
#imagePreviewContainer::-webkit-scrollbar {
    width: 6px;
    height: 6px; /* Importante para el scroll horizontal */
}

#imagePreviewContainer::-webkit-scrollbar-track {
    background: #1a1a1a;
    border-radius: 4px;
}

#imagePreviewContainer::-webkit-scrollbar-thumb {
    background: #fbbe4c; /* Dorado */
    border-radius: 3px;
}

#imagePreviewContainer::-webkit-scrollbar-thumb:hover {
    background: #e6a525;
}

/* Optimización para evitar LAG */
#imagePreviewContainer.zoomed-mode {
    display: block !important;
    overflow: auto !important;
    cursor: zoom-out !important;
    
    /* Quita efectos pesados durante el zoom */
    border-radius: 0 !important; 
    border: none !important;
    background: #000 !important; /* Fondo negro sólido es más rápido que transparent */
    
    /* Aceleración de Hardware */
    will-change: scroll-position; 
    touch-action: pan-x pan-y;
}

/* Optimización de la imagen al hacer Zoom */
#imgPreview.zoomed-img {
    max-width: none !important;
    max-height: none !important;
    width: 200% !important; /* Bajamos de 250% a 200% para mejor rendimiento */
    height: auto !important;
    
    /* Evita que el navegador intente suavizar la transición del ancho */
    transition: none !important; 
    
    /* Centrado si sobra espacio */
    margin: 0 auto;
    display: block;
}

/* ==========================================================================
   ESTILOS PARA LA NUEVA PÁGINA DE PRESENTACIÓN (INDEX.HTML) - v2
   ========================================================================== */

/* --- Contenedor del Video de Fondo --- */
.landing-video-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -1; 
    overflow: hidden;
    background-color: #111; /* Color de fondo por si el video no carga */
}

.landing-video-background video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- Capa de Color Negro Semitransparente (NUEVO) --- */
.landing-color-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.8); /* Capa negra. Ajusta el último valor (0.45) para más o menos oscuridad */
    z-index: 1;
}

/* --- Capa de Efecto Granulado (NUEVO Y MEJORADO) --- */
.landing-grain-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Usamos una textura de ruido muy pequeña y eficiente que se repite */
    background-image: url('https://www.transparenttextures.com/patterns/black-linen.png');
    opacity: 0.5; /* Ajusta la intensidad del grano (valores bajos como 0.05 a 0.2 funcionan bien) */
    z-index: 2; /* Se asegura de que esté por encima de la capa de color */
    pointer-events: none; /* Impide que esta capa bloquee los clics en el contenido */
}


/* --- Estructura General de la Página (Sin cambios, pero incluido por si acaso) --- */
.landing-container {
    position: relative;
    z-index: 1;
    color: white;
}

.landing-header {
    min-height: 85vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 1rem;
    text-align: center;
}

.logo-container-landing {
    background-color: rgba(209, 54, 59, 0.8);
    backdrop-filter: blur(10px);
    border: 3px solid #fbbe4c;
    border-radius: 1.5rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 0 25px rgba(251, 190, 76, 0.4);
    max-width: 280px;
}

.text-shadow-lg { text-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.text-shadow-md { text-shadow: 0 2px 5px rgba(0,0,0,0.5); }

.landing-sections {
    background-color: #111;
}

.landing-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 6rem 2rem;
    display: flex;
    align-items: center;
    gap: 3rem;
    border-bottom: 1px solid #374151;
}

.landing-section.reverse {
    flex-direction: row-reverse;
}

.section-image, .section-text {
    flex: 1;
}

.section-image img {
    width: 100%;
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}

.section-text h2 {
    font-size: 3rem;
    color: #fbbe4c;
    margin-bottom: 1rem;
    line-height: 1.2;
}

.section-text p {
    font-size: 1.125rem;
    color: #d1d5db;
    line-height: 1.8;
}

.landing-footer {
    padding: 6rem 2rem;
    text-align: center;
    background-color: #080808;
}

.landing-footer h2 {
    font-size: 3rem;
    color: #fbbe4c;
}

.landing-footer p {
    font-size: 1.25rem;
    color: #d1d5db;
    margin-top: 0.5rem;
}

/* --- Animación de Scroll --- */
.scroll-animate {
    opacity: 0;
    transform: scale(0.9) translateY(50px);
    transition: opacity 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275), transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.scroll-animate.visible {
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* --- Ajustes para Móviles --- */
@media (max-width: 768px) {
    .landing-section, .landing-section.reverse {
        flex-direction: column;
        padding: 4rem 1.5rem;
        gap: 2rem;
    }
    .section-text h2, .landing-footer h2 {
        font-size: 2.25rem;
    }
    .section-text p, .landing-footer p {
        font-size: 1rem;
    }
    .landing-header h1 {
        font-size: 3rem;
    }
}



/* --- Estilos para la Sección de Reseñas con Imágenes (v2) --- */
.landing-reviews-section {
    max-width: 100%; /* Ocupa todo el ancho para que el scroll funcione de borde a borde */
    text-align: center;
    padding: 6rem 0; /* Ajustamos el padding para que el scroll se vea mejor */
    overflow: hidden; /* Evita que la sombra de las imágenes se corte */
}

.landing-reviews-section h2 {
    font-size: 3rem;
    color: #fbbe4c;
    padding: 0 1rem; /* Añade padding horizontal al título en móviles */
}

.landing-reviews-section p {
    padding: 0 1rem;
}

.image-reviews-container {
    display: flex;
    gap: 1.5rem; /* Espacio entre las imágenes de las reseñas */
    overflow-x: auto; /* ¡La clave para el scroll horizontal! */
    padding: 2rem 1.5rem; /* Padding interno para que las imágenes no peguen a los bordes */
    /* Oculta la barra de scroll visualmente pero mantiene la funcionalidad */
    scrollbar-width: none;  /* Firefox */
    -ms-overflow-style: none;  /* Internet Explorer 10+ */
}
.image-reviews-container::-webkit-scrollbar {
    display: none;  /* Safari and Chrome */
}

.review-image {
    max-height: 450px; /* Altura máxima de las capturas de pantalla */
    width: auto; /* El ancho se ajusta automáticamente */
    border-radius: 0.75rem; /* Bordes redondeados */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.4);
    flex-shrink: 0; /* Evita que las imágenes se encojan */
    transition: transform 0.3s ease-in-out;
}

.review-image:hover {
    transform: scale(1.03) translateY(-5px); /* Pequeño zoom y elevación al pasar el mouse */
}