/* ==========================================================================
   HEADER GASTRO - REFINADO CON ICONOS GRANDES
   ========================================================================== */

.glass-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 18px 0; 
    background: rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: var(--gastro-transition);
}

/* Alineación vertical perfecta */
.glass-header .row {
    display: flex !important;
    align-items: center !important;
    margin: 0;
}

.glass-header .navbar {
    padding: 0;
}

/* --- IZQUIERDA: Menú Hamburguesa --- */

.navbar-toggler-custom {
    background: none;
    border: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    cursor: pointer;
}

.menu-icon-bar {
    width: 24px; 
    height: 1px;
    background: #ffffff;
    position: relative;
    display: block;
}

.menu-icon-bar::before,
.menu-icon-bar::after {
    content: '';
    width: 24px;
    height: 1px;
    background: #ffffff;
    position: absolute;
    left: 0;
}

.menu-icon-bar::before { top: -8px; }
.menu-icon-bar::after { bottom: -8px; }

.menu-text-label {
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.7rem; 
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 500;
}

/* --- CENTRO: Branding / Logo --- */

.site-branding {
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

.site-branding img {
    max-height: 65px; 
    width: auto;
    display: block;
}

.site-title a {
    color: #ffffff !important;
    font-family: var(--font-heading);
    text-transform: uppercase;
    letter-spacing: 5px; 
    font-size: 1.5rem; 
    font-weight: 700;
    text-decoration: none;
    line-height: 1;
    display: block;
}

/* --- DERECHA: Botón de Reserva y Redes Sociales --- */

.btn-header-outline {
    font-family: var(--font-body);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 9px 22px;
    transition: var(--gastro-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

.btn-header-outline:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

/* Contenedor de redes sociales */
.header-socials {
    display: flex;
    align-items: center;
}

.social-icon-link {
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--gastro-transition);
    opacity: 0.8;
    text-decoration: none;
}

/* Aumento del tamaño de los iconos SVG */
.social-icon-link svg {
    width: 22px; /* Tamaño un poco más grande y visible */
    height: 22px;
}

.social-icon-link:hover {
    color: var(--gastro-primary); 
    transform: translateY(-2px);
    opacity: 1;
}






/* ==========================================================================
   HERO VIDEO SECTION - GASTRO
   ========================================================================== */

.hero-video-section {
    position: relative;
    height: 100vh; /* Ocupa toda la pantalla[cite: 2] */
    width: 100%;
    overflow: hidden;
    background-color: #000; 
}

/* Control del video de fondo */
.video-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-video {
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover; /* Asegura que el video llene el espacio sin estirarse */
}

/* Oscurecimiento del video para que resalte el texto blanco */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
    z-index: 2;
}

/* Posicionamiento del contenido sobre el video */
.hero-video-section .container {
    position: relative;
    z-index: 3;
}

/* Tipografía del Hero (Basada en la imagen de referencia) */
.hero-title-main {
    font-family: var(--font-heading);
    font-size: 3.5rem; 
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    letter-spacing: -2px;
}

.hero-title-main span {
    font-size: 3rem;
    font-weight: 400;
}

.hero-description-main {
    font-family: var(--font-body);
    font-size: 0.85rem;
    letter-spacing: 2px;
    font-weight: 500;
    opacity: 0.9;
    max-width: 800px;
}

/* ==========================================================================
   BOTONES DEL HERO (Elegantes y Sin !important)
   ========================================================================== */

.hero-video-section .hero-btns-main {
    margin-top: 40px;
    display: flex;
    gap: 20px;
}

/* 1. Botón Sólido (RESERVE NOW) - Usamos selector específico para evitar !important */
.hero-video-section a.btn-gastro-solid {
    display: inline-block;
    background-color: var(--gastro-primary); /* Color dorado del root */
    color: var(--gastro-secondary);         /* Texto oscuro definido en root[cite: 1] */
    padding: 16px 45px;
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 3px;
    text-decoration: none;                  /* Eliminamos el subrayado por defecto */
    transition: var(--gastro-transition);
    border: 1px solid var(--gastro-primary);
}

.hero-video-section a.btn-gastro-solid:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: #000000;
    transform: translateY(-3px);
}

/* 2. Botón Outline (CALL PICK UP) */
.hero-video-section a.btn-header-outline {
    display: inline-block;
    background-color: transparent;
    color: #ffffff;
    padding: 16px 45px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 3px;
    text-decoration: none;
    transition: var(--gastro-transition);
}

.hero-video-section a.btn-header-outline:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
    color: #ffffff;
    transform: translateY(-3px);
}

/* Ajustes para móviles */
@media (max-width: 991px) {
    .hero-title-main {
        font-size: 3rem;
    }
    .hero-title-main span {
        font-size: 2rem;
    }
    .hero-video-section .hero-btns-main {
        flex-direction: column;
    }
    .hero-video-section a.btn-gastro-solid, 
    .hero-video-section a.btn-header-outline {
        width: fit-content;
        text-align: center;
    }
}




/* ==========================================================================
   OPENING HOURS BAR - GASTRO BRAND STYLE
   ========================================================================== */

.hours-bar-section {
    background-color: #050505; /* Fondo negro profundo para resaltar el dorado */
    padding: 50px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.hours-flex-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 50px;
}

/* --- BLOQUE DE TÍTULO --- */

.hours-title-block {
    text-align: right;
    padding-right: 50px;
    border-right: 1px solid rgba(198, 163, 108, 0.3); /* Línea divisoria en dorado tenue */
}

.hours-subtitle {
    display: block;
    color: var(--gastro-primary); /* DORADO DE TU MARCA */
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 4px;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.hours-main-title {
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 6px;
    margin: 0;
    text-transform: uppercase;
}

/* --- BLOQUE DE CONTENIDO --- */

.hours-content-block {
    display: flex;
}

.hour-col {
    padding: 0 35px;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
}

.hour-col:first-child {
    border-left: none;
}

.day-label {
    color: #ffffff;
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.time-label {
    color: rgba(255, 255, 255, 0.5); /* Blanco suavizado */
    font-family: var(--font-body);
    font-size: 0.8rem;
    letter-spacing: 1px;
}

/* --- RESPONSIVO --- */

@media (max-width: 991px) {
    .hours-flex-container {
        flex-direction: column;
        gap: 30px;
    }
    .hours-title-block {
        text-align: center;
        padding-right: 0;
        border-right: none;
        border-bottom: 1px solid rgba(198, 163, 108, 0.2);
        padding-bottom: 20px;
    }
    .hours-content-block {
        flex-direction: column;
        gap: 20px;
    }
    .hour-col {
        border-left: none;
        padding: 0;
        text-align: center;
    }
}



/* ==========================================================================
   CATERING IMPACT SECTION - STATIC BACKGROUND (NO PARALLAX)
   ========================================================================== */

.catering-impact-section {
    position: relative;
    padding: 80px 0; /* Slim design */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    /* Removed parallax: attachment set to scroll */
    background-attachment: scroll; 
    min-height: 450px;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.catering-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Dark gradient for text readability */
    background: linear-gradient(to left, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.2) 100%);
    z-index: 1;
}

.catering-content-wrapper {
    position: relative;
    z-index: 2;
}

.catering-title {
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 2.5rem; 
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 20px;
    text-transform: uppercase;
    line-height: 1;
    /* Title forced into a single line */
    white-space: nowrap; 
}

.catering-description {
    color: rgba(255, 255, 255, 0.9);
    font-family: var(--font-body);
    font-size: 1.05rem;
    line-height: 1.7;
    /* Broad width to avoid contracted text */
    max-width: 850px; 
    margin-left: auto; 
    margin-bottom: 30px;
}

/* Square Button Style */
.catering-impact-section .btn-gastro-solid {
    background-color: var(--gastro-primary);
    color: #000000;
    padding: 14px 40px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 0 !important; /* Strict geometric corners */
    display: inline-block;
    transition: var(--gastro-transition);
}

.catering-impact-section .btn-gastro-solid:hover {
    background-color: #ffffff;
    transform: translateY(-2px);
}

/* --- RESPONSIVE ADJUSTMENTS --- */
@media (max-width: 1300px) {
    .catering-title {
        font-size: 2.8rem;
    }
}

@media (max-width: 991px) {
    .catering-title {
        white-space: normal; /* Allow wrapping only on mobile/tablets */
        font-size: 2.2rem;
    }
    .catering-impact-section {
        text-align: center;
        padding: 60px 0;
    }
    .catering-description {
        margin: 0 auto 25px auto;
    }
}


/* ==========================================================================
   BOOK VENUE SECTION - GEOMETRIC LUXURY (UPDATED)
   ========================================================================== */

.book-venue-section {
    background-color: var(--bg-dark); 
    color: #ffffff;
}

.venue-card {
    border: 1px solid rgba(198, 163, 108, 0.2); 
    background-color: rgba(255, 255, 255, 0.01);
    border-radius: 0 !important; /* Cuadrado estricto */
    display: flex;
    flex-wrap: wrap;
    align-items: stretch; /* Estira ambas columnas al mismo alto */
}

.venue-image-col {
    display: flex;
}

.venue-content-box {
    border-left: 1px solid rgba(198, 163, 108, 0.2);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.book-venue-section .section-subtitle {
    color: var(--gastro-primary); 
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.book-venue-section .section-title {
    font-family: var(--font-heading);
    font-size: 2.8rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.book-venue-section .section-description {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.7);
}

/* Características con diseño cuadrado */
.venue-features {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.9rem;
    letter-spacing: 1px;
}

.feature-icon-square {
    width: 8px;
    height: 8px;
    background-color: var(--gastro-primary);
    border-radius: 0; /* Icono geométrico */
    display: block;
}

/* Imagen que cubre el 100% del alto */
.venue-image-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 550px;
    overflow: hidden;
}

.venue-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.8);
    transition: var(--gastro-transition);
    display: block;
}

.venue-image-wrapper:hover .venue-img {
    filter: brightness(1);
    transform: scale(1.05);
}

/* BOTÓN GASTRO SOLID - ESTILO GEOMÉTRICO */
.btn-gastro-solid {
    background-color: var(--gastro-primary);
    color: #000000 !important;
    padding: 16px 40px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-decoration: none !important;
    border-radius: 0 !important; /* Sin bordes redondeados */
    display: inline-block;
    transition: var(--gastro-transition);
    border: 1px solid var(--gastro-primary);
}

.btn-gastro-solid:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: #000000 !important;
    transform: translateY(-2px);
}

/* Responsivo */
@media (max-width: 991px) {
    .venue-card {
        display: block;
    }
    .venue-content-box {
        border-left: none;
        border-top: 1px solid rgba(198, 163, 108, 0.2);
    }
    .venue-image-wrapper {
        min-height: 400px;
    }
    .book-venue-section .section-title {
        font-size: 2.2rem;
    }
}



/* ==========================================================================
   SIGNATURE DISHES - MOBILE OPTIMIZED
   ========================================================================== */

.signature-dishes-section {
    background-color: #0a0a0a;
    color: #ffffff;
    overflow: hidden;
}

/* Título con tamaño fluido */
.responsive-h2 {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 5vw, 2.8rem); /* Escala entre 2rem y 2.8rem según el ancho */
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.dish-card {
    background-color: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(198, 163, 108, 0.15);
    border-radius: 0 !important; /* Cuadrado estricto */
    height: 100%; /* Asegura que todas las cards midan lo mismo en una fila */
    display: flex;
    flex-direction: column;
    transition: var(--gastro-transition);
}

.dish-image-wrapper {
    position: relative;
    height: 250px; /* Altura base para móviles */
    overflow: hidden;
}

@media (min-width: 992px) {
    .dish-image-wrapper {
        height: 300px; /* Altura para pantallas grandes */
    }
}

.dish-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.9);
}

/* Ajustes para Tablets y Móviles */
@media (max-width: 991px) {
    .signature-dishes-section {
        padding: 60px 0;
    }
    
    .dish-card {
        margin-bottom: 10px;
    }

    .dish-name {
        font-size: 1.2rem;
    }
}

@media (max-width: 576px) {
    .responsive-h2 {
        letter-spacing: 1px;
    }
    
    .dish-price-tag {
        padding: 6px 12px;
        font-size: 0.75rem;
    }
    
    /* Botón más grande para facilitar el toque en móvil */
    .btn-gastro-outline,
    .btn-gastro-solid {
        width: 100%;
        text-align: center;
        padding: 18px;
    }
}

/* --- ESTILO DE BOTÓN GASTRO SOLID (Añadido al final) --- */
.btn-gastro-solid {
    background-color: var(--gastro-primary); /* Dorado GASTRO */
    color: #000000 !important;
    padding: 16px 45px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    text-decoration: none !important;
    border-radius: 0 !important; /* Bordes cuadrados estrictos según diseño luxury */
    display: inline-block;
    transition: var(--gastro-transition);
    border: 1px solid var(--gastro-primary);
    cursor: pointer;
}

.btn-gastro-solid:hover {
    background-color: #ffffff;
    border-color: #ffffff;
    color: #000000 !important;
    transform: translateY(-3px);
}






/* ==========================================================================
   GASTRO - GALLERY SECTION
   ========================================================================== */

.gallery-section {
    background-color: #050505; /* Un negro ligeramente distinto al footer para dar profundidad */
    padding: 100px 0;
}

/* Títulos de Sección */
.section-title {
    font-family: var(--font-heading);
    color: #ffffff;
    font-size: 2.5rem;
    font-weight: 700;
    letter-spacing: 4px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.title-divider {
    width: 60px;
    height: 3px;
    background-color: var(--gastro-primary); /* Dorado GASTRO */
}

.section-subtitle {
    color: #999999;
    font-family: var(--font-body);
    font-size: 1rem;
    letter-spacing: 1px;
}

/* Items de Galería - Geometría Cuadrada Estricta */
.gallery-item {
    display: block;
    position: relative;
    overflow: hidden; /* Clave para que la imagen no se salga al hacer zoom */
    border-radius: 0 !important; /* Cuadrado absoluto */
    background-color: #000000;
}

.gallery-item img {
    width: 100%;
    height: 350px; /* Altura fija para que todas las cajas sean iguales */
    object-fit: cover; /* Centra y recorta la imagen sin deformarla */
    transition: transform 0.6s ease;
    border-radius: 0 !important;
}

/* Efecto Overlay (Capa oscura y dorado) */
.gallery-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all 0.4s ease;
}

.gallery-icon {
    color: var(--gastro-primary);
    font-size: 2rem;
    transform: scale(0.5);
    transition: transform 0.4s ease;
}

/* Interacciones Hover */
.gallery-item:hover img {
    transform: scale(1.08); /* Zoom in sutil */
}

.gallery-item:hover .gallery-overlay {
    opacity: 1; /* Aparece la capa oscura */
}

.gallery-item:hover .gallery-icon {
    transform: scale(1); /* El icono crece a su tamaño normal */
}





/* ==========================================================================
   GASTRO - ASYMMETRIC JOURNAL CAROUSEL
   ========================================================================== */

.journal-section {
    background-color: #000000;
    padding: 100px 0;
    border-top: 1px solid rgba(198, 163, 108, 0.1);
    overflow: hidden; /* Evita que el carrusel rompa el ancho de la página */
}

/* Ajuste del Título a la Izquierda */
.section-title.text-start {
    margin-bottom: 15px;
}

.title-divider-left {
    width: 60px;
    height: 3px;
    background-color: var(--gastro-primary); /* Dorado GASTRO */
    margin-left: 0; /* Alineado a la izquierda */
}

/* ==========================================================================
   CARRUSEL CSS MODERNO (LIGERO Y SIN JS)
   ========================================================================== */

.gastro-carousel-track {
    display: flex;
    gap: 30px; /* Separación entre tarjetas */
    overflow-x: auto; /* Habilita el scroll horizontal */
    scroll-snap-type: x mandatory; /* Fuerza a que las tarjetas se ajusten perfectamente al soltar */
    padding-bottom: 20px; /* Espacio para la sombra al hacer hover */
    scroll-behavior: smooth; /* Deslizamiento suave al cambiar de artículo */
    
    /* Ocultar la barra de scroll para un look de lujo */
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

.gastro-carousel-track::-webkit-scrollbar {
    display: none; /* Chrome, Safari y Opera */
}

.gastro-carousel-slide {
    flex: 0 0 calc(50% - 15px); /* Exactamente 2 tarjetas a la vez (50% menos la mitad del gap) */
    scroll-snap-align: start; /* Alinea la tarjeta al inicio del contenedor al deslizar */
}

/* ==========================================================================
   DISEÑO DE LA TARJETA (GEOMETRÍA ESTRICTA)
   ========================================================================== */

.gastro-blog-card {
    background-color: #050505;
    border: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.4s ease;
    height: 420px; /* Altura fija para que todas las tarjetas sean idénticas */
    display: flex;
    flex-direction: column;
    border-radius: 0 !important; /* Cuadrado absoluto */
}

.gastro-blog-card:hover {
    border-color: rgba(198, 163, 108, 0.4); /* Borde dorado al hover */
    transform: translateY(-5px);
}

.blog-image-wrapper {
    position: relative;
    overflow: hidden;
    height: 220px;
    border-radius: 0 !important;
}

.blog-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.gastro-blog-card:hover .blog-img {
    transform: scale(1.05); /* Zoom elegante */
}

.blog-content {
    padding: 30px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;
}

.blog-title {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    line-height: 1.4;
}

.blog-title a {
    color: #ffffff;
    text-decoration: none !important;
    transition: 0.3s;
}

.blog-title a:hover {
    color: var(--gastro-primary);
}

/* Botón Cuadrado */
.gastro-btn-outline {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gastro-primary);
    text-decoration: none !important;
    padding: 12px 25px;
    border: 1px solid var(--gastro-primary);
    transition: all 0.3s ease;
    border-radius: 0 !important; /* Estrictamente cuadrado */
    background: transparent;
}

.gastro-btn-outline:hover {
    background-color: var(--gastro-primary);
    color: #000000 !important;
}

/* Adaptación a Móviles */
@media (max-width: 991px) {
    .section-title.text-start, 
    .section-subtitle.text-start {
        text-align: center !important;
    }
    .title-divider-left {
        margin: 0 auto 30px auto; /* Centrar línea en móviles */
    }
    .gastro-carousel-slide {
        flex: 0 0 100%; /* En móviles es mejor que ocupe el 100% para que se lea bien el artículo completo */
    }
}




/* ==========================================================================
   GASTRO - NEWSLETTER SECTION
   ========================================================================== */

.newsletter-section {
    background-color: #000000;
    padding: 80px 0;
}

/* Caja contenedora con estilo de lujo */
.newsletter-wrapper {
    background-color: #050505;
    border: 1px solid rgba(198, 163, 108, 0.3); /* Borde dorado visible */
    padding: 60px 50px;
    position: relative;
    border-radius: 0 !important; /* Geometría estricta */
}

/* Tipografía */
.newsletter-title {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.newsletter-desc {
    color: #999999;
    font-size: 0.95rem;
    letter-spacing: 1px;
    margin-bottom: 0;
    line-height: 1.6;
}

/* ==========================================================================
   CONTACT FORM 7 - CUSTOM STYLING (GEOMETRÍA PERFECTA)
   ========================================================================== */

/* 1. Forzar a que cualquier párrafo interno inyectado por CF7 actúe como fila flex */
.newsletter-flex p,
.newsletter-flex form > p {
    display: flex !important;
    flex-direction: row !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

/* 2. Destruir los saltos de línea invisibles (<br>) de CF7 */
.newsletter-flex br {
    display: none !important; 
}

/* Eliminar márgenes por defecto de CF7 que rompen el diseño */
.gastro-newsletter-form .wpcf7-form-control-wrap {
    flex-grow: 1 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gastro-newsletter-form .wpcf7-not-valid-tip {
    font-size: 0.75rem;
    color: #dc3545; /* Rojo para el error */
    margin-top: 5px;
    position: absolute;
}

/* Estructura Flexbox para unir Input y Botón */
.newsletter-flex {
    display: flex;
    width: 100%;
    align-items: flex-start;
    position: relative;
}

/* Campo de Email */
.newsletter-flex input[type="email"] {
    width: 100%;
    height: 55px !important;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2); /* Borde sutil blanco */
    border-right: none !important; /* SE QUITA EL BORDE DERECHO PARA UNIRLO AL BOTÓN */
    color: #ffffff;
    padding: 0 20px;
    font-family: var(--font-body);
    font-size: 0.9rem;
    letter-spacing: 1px;
    border-radius: 0 !important; /* Cuadrado perfecto */
    outline: none;
    transition: all 0.3s ease;
    box-shadow: none !important;
    margin: 0 !important;
    vertical-align: top;
}

.newsletter-flex input[type="email"]:focus {
    border-color: var(--gastro-primary);
    background-color: rgba(198, 163, 108, 0.05); /* Fondo ligeramente dorado al escribir */
}

/* Quitar el fondo amarillo de auto-completar en Chrome */
.newsletter-flex input[type="email"]:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 50px #050505 inset;
    -webkit-text-fill-color: #ffffff;
}

/* Botón de Suscripción */
.newsletter-flex input[type="submit"] {
    height: 55px !important;
    background-color: var(--gastro-primary);
    color: #000000 !important;
    border: 1px solid var(--gastro-primary);
    padding: 0 35px;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 0 !important; /* Cuadrado perfecto */
    margin: 0 !important;
    vertical-align: top;
}

.newsletter-flex input[type="submit"]:hover {
    background-color: #ffffff; /* Al hacer hover cambia a blanco */
    border-color: #ffffff;
    color: #000000 !important;
}

/* Esconder el loader (spinner) feo por defecto de CF7 */
.gastro-newsletter-form .wpcf7-spinner {
    display: none !important;
}

/* Mensaje de éxito/error de CF7 adaptado al diseño */
.gastro-newsletter-form .wpcf7-response-output {
    margin: 20px 0 0 0 !important;
    border-radius: 0 !important;
    font-size: 0.85rem;
    letter-spacing: 1px;
    padding: 15px !important;
    border: 1px solid var(--gastro-primary) !important;
    color: var(--gastro-primary);
}

/* ==========================================================================
   ADAPTACIÓN MÓVIL
   ========================================================================== */
@media (max-width: 991px) {
    .newsletter-wrapper {
        padding: 40px 25px;
        text-align: center;
    }
}

@media (max-width: 575px) {
    .newsletter-flex {
        flex-direction: column; /* En celulares los apilamos para que no se aprieten */
    }
    
    .newsletter-flex p,
    .newsletter-flex form > p {
        flex-direction: column !important; /* Forzar que el párrafo inyectado también se apile en móvil */
    }
    
    .newsletter-flex input[type="email"] {
        border-right: 1px solid rgba(255, 255, 255, 0.2) !important; /* Devolvemos el borde derecho */
        margin-bottom: 15px !important;
    }
    
    .newsletter-flex input[type="submit"] {
        width: 100%; /* El botón ocupa todo el ancho */
    }
}