@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;600;700&family=Lobster&display=swap');

/* === VARIABLES === */
:root {
    --color-primary: #F50057;       
    --color-primary-dark: #C51162;  
    --color-accent: #FF6D00;        
    --color-accent-light: #FF9E80;  
    --color-yellow: #FFD600;        
    --color-turquoise: #00BFA5;     
    --color-white: #FFFFFF;
    --color-dark: #212121;
    --color-light-bg: #FFF8E1;      
    --color-gray: #F5F5F5;
    --color-shadow: rgba(0, 0, 0, 0.2);
}

/* Reset y Base */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: 'Fredoka', sans-serif;
    color: var(--color-dark);
    background-color: var(--color-light-bg);
    line-height: 1.6;
    padding-top: 60px;
    overflow-x: hidden;
}

h1, h2, h3, .nav-brand { font-family: 'Lobster', cursive; letter-spacing: 1px; }

/* ... (El resto del CSS anterior se mantiene igual) ... */

body {
    font-family: 'Fredoka', sans-serif;
    color: var(--color-dark);
    background-color: var(--color-light-bg);
    line-height: 1.6;
    padding-top: 50px; /* REDUCIDO: Antes 60px */
    overflow-x: hidden;
}

/* === NAVBAR COMPACTA === */
.navbar {
    position: fixed; top: 0; left: 0; width: 100%;
    background: var(--color-primary);
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    z-index: 1000;
    padding: 0.2rem 0; /* REDUCIDO: Antes 0.5rem */
    height: 50px;      /* Altura fija controlada */
    display: flex; align-items: center; /* Centrado vertical perfecto */
}

.nav-container {
    max-width: 1200px; margin: 0 auto; padding: 0 15px;
    display: flex; justify-content: space-between; align-items: center;
    width: 100%;
}

.nav-brand {
    color: var(--color-white); 
    font-size: 1.3rem; /* REDUCIDO: Un poco más pequeño */
    text-decoration: none;
    display: flex; align-items: center; gap: 8px;
    text-shadow: 2px 2px 0px rgba(0,0,0,0.2);
}

/* ICONO MÁS PEQUEÑO */
.nav-logo-mini {
    height: 30px; /* REDUCIDO: Antes 40px */
    width: auto; 
    border-radius: 50%;
    border: 1px solid var(--color-yellow);
    background: white;
}

.nav-menu { display: flex; gap: 15px; } /* Gap reducido un poco */
.nav-menu a {
    color: var(--color-white); text-decoration: none;
    font-weight: 600; font-size: 1rem; transition: color 0.3s;
}
.nav-menu a:hover { color: var(--color-yellow); }

.hamburger { display: none; flex-direction: column; cursor: pointer; background: none; border: none; }
.hamburger .bar { width: 22px; height: 2px; background-color: var(--color-white); margin: 3px 0; transition: 0.3s; }

/* === RESPONSIVE (Móvil) === */
@media (max-width: 768px) {
    .hamburger { display: flex; }
    
    .nav-menu {
        position: fixed; 
        top: 50px; /* Justo debajo de la navbar */
        right: -100%; /* Empieza escondido a la DERECHA */
        left: auto;   /* Anulamos la propiedad left anterior */
        
        /* Diseño "Cajón" Moderno */
        width: 85%; /* No ocupa toda la pantalla, se ve más elegante */
        height: calc(100vh - 50px);
        
        /* Fondo mejorado: Degradado + Textura sutil */
        background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
        background-image: 
            radial-gradient(circle at 100% 0%, rgba(255,255,255,0.1) 10%, transparent 11%),
            radial-gradient(circle at 0% 100%, rgba(255,255,255,0.1) 10%, transparent 11%);
            
        /* Sombra para que se note que está encima */
        box-shadow: -5px 0 15px rgba(0,0,0,0.3);
        
        flex-direction: column; 
        align-items: center; 
        justify-content: flex-start; /* Alineación arriba para que no queden tan separados */
        padding-top: 3rem; /* Espacio arriba interno */
        gap: 2rem; /* Espacio entre enlaces */
        
        transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1); /* Animación suave */
    }
    
    /* Estado visible */
    .nav-menu:not(.hidden) { 
        right: 0; /* Se desliza hasta el borde derecho */
        left: auto;
    }
    
    .nav-menu.hidden {
        right: -100%; /* Se esconde a la derecha */
        left: auto;
        display: flex; /* Mantiene display flex para la animación */
    }

    /* Estilo de los enlaces en móvil para que se vean más grandes */
    .nav-menu a {
        font-size: 1.4rem;
        border-bottom: 1px solid rgba(255,255,255,0.1);
        width: 80%;
        text-align: center;
        padding-bottom: 10px;
    }
    
    /* Botón activo (Eventos) resaltado */
    .nav-menu a[href="#eventos"] {
        background: rgba(255, 255, 255, 0.1);
        border-radius: 10px;
        border: none;
        padding: 10px 0;
    }

    .hero h2 { font-size: 2rem; }
    /* ... resto igual ... */
}

/* === HERO === */
.hero {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%);
    color: var(--color-white); text-align: center;
    padding: 60px 20px 100px 20px; min-height: 85vh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    position: relative; overflow: hidden;
}
.logo-container {
    margin-bottom: 2rem; position: relative; z-index: 2;
    animation: float 6s ease-in-out infinite;
    display: flex; justify-content: center; width: 100%;
}
.main-logo {
    width: 400px; max-width: 90%; height: auto;
    border-radius: 50%; border: 8px solid var(--color-white);
    box-shadow: 0 10px 30px rgba(0,0,0,0.4); background: white;
}
.hero h2 { font-size: 3.5rem; margin-bottom: 0.5rem; text-shadow: 3px 3px 0px var(--color-primary-dark); z-index: 2; position: relative; }
.hero p { font-size: 1.5rem; margin-bottom: 2rem; z-index: 2; position: relative; }
.wave-bottom {
    position: absolute; bottom: 0; left: 0; width: 100%; height: 40px;
    background-image: radial-gradient(circle, transparent 50%, var(--color-light-bg) 50%);
    background-size: 40px 40px; background-repeat: repeat-x; background-position: 0 20px; z-index: 3;
}

/* === BOTONES === */
.btn {
    display: inline-block; padding: 12px 30px; border-radius: 50px;
    text-decoration: none; font-weight: 700; transition: all 0.3s ease;
    border: none; cursor: pointer; font-size: 1.1rem;
    z-index: 5; position: relative; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.btn-primary { background-color: var(--color-yellow); color: var(--color-primary-dark); }
.btn-primary:hover { background-color: white; transform: translateY(-3px); color: var(--color-accent); }

/* === MENÚ === */
/* CAMBIO: Contenedor para el encabezado del menú (título + taco) */
.menu-header {
    text-align: center;
    position: relative;
    margin-bottom: 2rem;
    display: flex; justify-content: center; align-items: center; gap: 1rem;
}

.section-title {
    text-align: center; font-size: 3rem; color: var(--color-primary);
    margin: 0; position: relative; display: inline-block;
}
.section-title::before, .section-title::after { content: '★'; color: var(--color-yellow); font-size: 1.5rem; margin: 0 10px; vertical-align: middle; }

/* CAMBIO: Decoración de Taco */
.taco-decoration {
    display: inline-block;
    animation: float 4s ease-in-out infinite;
}
.taco-decoration img {
    height: 60px; /* Tamaño del taco decorativo */
    width: auto;
    filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2));
}

.menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; padding: 0 20px; }
.menu-card {
    background: white; border-radius: 15px; padding: 25px;
    text-align: center; box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s;
    border-top: 5px solid var(--color-primary); border-bottom: 5px solid var(--color-accent);
}
.menu-card:hover { transform: translateY(-5px); }
.card-icon { font-size: 2.5rem; color: var(--color-primary); margin-bottom: 1rem; text-shadow: 2px 2px 0px var(--color-yellow); }
.menu-card h3 { color: var(--color-accent); font-size: 1.5rem; margin-bottom: 1rem; }
.carnitas-list, .drinks-list, .sides-list { list-style: none; text-align: left; padding: 0; color: #555; }
.carnitas-list li, .drinks-list li, .sides-list li { padding: 8px 0; border-bottom: 1px dashed #ddd; margin-bottom: 5px; }

/* === EVENTOS === */
.events {
    padding: 60px 20px;
    background-color: var(--color-white);
    background-image: radial-gradient(var(--color-yellow) 15%, transparent 16%),
                      radial-gradient(var(--color-turquoise) 15%, transparent 16%);
    background-size: 60px 60px;
    background-position: 0 0, 30px 30px;
}
.events-content { display: flex; justify-content: center; }
.events-card {
    background: white;
    max-width: 800px; width: 100%;
    padding: 3rem;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    border: 4px solid var(--color-accent);
    position: relative;
}
.events-icon { font-size: 4rem; color: var(--color-primary); margin-bottom: 1rem; }
.events-intro { font-size: 1.2rem; color: #555; margin-bottom: 2rem; }
.events-details { text-align: left; background: var(--color-light-bg); padding: 1.5rem; border-radius: 10px; margin-bottom: 2rem; }
.events-details ul { list-style: none; }
.events-details li { margin-bottom: 1rem; font-size: 1.1rem; color: #444; }
.events-details i { color: var(--color-turquoise); margin-right: 10px; }

.btn-whatsapp {
    background-color: #25D366; color: white; font-size: 1.2rem; padding: 15px 35px;
}
.btn-whatsapp:hover { background-color: #128C7E; color: white; }

/* === MODAL === */
.modal {
    display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.7); justify-content: center; align-items: center;
}
.modal[aria-hidden="false"] { display: flex; }
.modal-content {
    background: white; padding: 2rem; border-radius: 10px; width: 90%; max-width: 600px;
    position: relative; border: 4px solid var(--color-yellow); max-height: 90vh; overflow-y: auto;
}
.modal-close { position: absolute; top: 10px; right: 15px; font-size: 2rem; border: none; background: none; cursor: pointer; color: var(--color-primary); }
.menu-complete-list li { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eee; }
.price { color: var(--color-primary); font-weight: bold; font-size: 1.2rem; }

/* === ACERCA Y UBICACIÓN === */
.about, .location { padding: 4rem 20px; background: white; }
.location { background-color: var(--color-light-bg); }
.about-content, .location-content { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; }
.about-text, .about-image, .location-info, .map-container { flex: 1 1 300px; }
.about-photo { width: 100%; height: auto; max-height: 400px; object-fit: cover; border-radius: 15px; box-shadow: 10px 10px 0px var(--color-yellow); }
.features { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 1rem; }
.feature-item i { color: var(--color-turquoise); margin-right: 5px; }

/* === CONTACTO === */
.contact { padding: 80px 20px 100px 20px; background-color: white; text-align: center; }
.social-links-large { display: flex; justify-content: center; gap: 30px; flex-wrap: wrap; margin-top: 2rem; padding: 20px 0; }
.social-link-large {
    width: 70px; height: 70px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    color: white; font-size: 2rem; text-decoration: none; transition: transform 0.3s, box-shadow 0.3s;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.social-link-large:hover { transform: scale(1.1); box-shadow: 0 10px 20px rgba(0,0,0,0.3); }
.facebook { background: #1877F2; }
.whatsapp { background: #25D366; }
.instagram { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.tiktok { background: #000; }

/* === RESEÑAS Y QR === */
.reviews-section { background: var(--color-gray); padding: 3rem 20px; text-align: center; border-top: 5px solid var(--color-turquoise); }
.rating-stars { color: var(--color-yellow); font-size: 1.5rem; margin: 10px 0; }
.reviews-btn {
    background: white; border: 2px solid var(--color-primary); color: var(--color-primary);
    padding: 10px 20px; border-radius: 20px; text-decoration: none; font-weight: bold; display: inline-block; margin-top: 10px;
}
.reviews-content { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem; }
#qrCodeContainer {
    background: white; padding: 15px; border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.1); display: inline-block;
    min-width: 256px; min-height: 256px;
}

/* === FOOTER === */
.footer { background: var(--color-dark); color: white; padding: 3rem 20px; text-align: center; border-top: 8px solid var(--color-primary); }
.footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-bottom: 2rem; }
.footer-section h4 { color: var(--color-primary); margin-bottom: 1rem; }
.footer-section ul { list-style: none; }
.footer-section a { color: #ccc; text-decoration: none; }

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .hamburger { display: flex; }
    .nav-menu {
        position: fixed; top: 60px; left: -100%; width: 100%; height: calc(100vh - 60px);
        background: var(--color-primary); flex-direction: column; align-items: center; justify-content: center; transition: 0.3s;
    }
    .nav-menu.hidden { left: -100%; display: flex; }
    .nav-menu:not(.hidden) { left: 0; }
    .hero h2 { font-size: 2.2rem; }
    .main-logo { width: 250px; border-width: 5px; }
    #qrCodeContainer img, #qrCodeContainer canvas { max-width: 100%; height: auto !important; }
}
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
#eventos .section-title {
    text-align: center !important; 
    width: 100%;
    display: block;
    text-shadow: 
        2px 2px 0px #FFFFFF, 
        4px 4px 10px rgba(0,0,0,0.3);
    margin-bottom: 2rem;
    position: relative;
    z-index: 10;
}