        :root {
            --primario: #137f41;    /* Verde - principal */
            --secundario: #b20e0d;  /* Rojo - precios y llamadas fuertes */
            --terciario: #f2eb5f;   /* Amarillo - acentos y hover */
            --gris-claro: #f8f9fa;
            --texto: #2c3e50;
            --fondo-footer: #111;
        }
        * { margin:0; padding:0; box-sizing:border-box; }
        body { font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif; color:var(--texto); line-height:1.6; background:#fff; }
        a { text-decoration:none; color:inherit; }

        /* Header */
        header { background:white; position:fixed; width:100%; top:0; z-index:1000; box-shadow:0 2px 10px rgba(0,0,0,0.1); }
        .navbar { max-width:1400px; margin:0 auto; padding:1rem 2rem; display:flex; justify-content:space-between; align-items:center; }
        .logo { display:flex; align-items:center; font-size:1.8rem; font-weight:bold; color:var(--primario); }
        .logo i { background:var(--primario); color:white; width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-right:10px; font-size:1.4rem; }
        nav ul { display:flex; gap:2.5rem; list-style:none; }
        nav a { position:relative; padding:0.5rem 0; font-weight:500; }
        nav a:hover, nav a.active { color:var(--primario); }
        nav a.active::after { content:''; position:absolute; bottom:-8px; left:0; width:100%; height:3px; background:var(--primario); border-radius:2px; }

        /* Hero */
        .hero {
        height: 100vh;
        min-height: 600px; /* evita que se vea muy pequeño en móviles */
        background: 
            linear-gradient(rgba(0,0,0,0.65), rgba(0,0,0,0.65)), 
            url('assets/img/logo-nalfre.jpg') center/cover no-repeat;
        background-attachment: fixed; /* opcional pero queda brutal en escritorio */
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        color: white;
        padding-top: 80px; /* por el header fijo */}
        .hero h1 { font-size:4.5rem; margin-bottom:1rem; }
        .tu-cocina { color:var(--terciario); }
        .hero p { font-size:1.3rem; max-width:700px; margin:0 auto 2rem; }
        .btn { padding:1rem 2.5rem; border-radius:50px; font-weight:bold; margin:0 10px; display:inline-block; transition:all .3s; }
        .btn-primario { background:var(--primario); color:white; }
        .btn-primario:hover { background:#0f5f31; transform:scale(1.05); }
        .btn-secundario { background:var(--secundario); color:white; }
        .btn-secundario:hover { background:#8c0a0a; }
        .btn-transparente { background:transparent; border:2px solid white; color:white; }
        .btn-transparente:hover { background:rgba(255,255,255,0.15); }

        /* Secciones */
        section { padding:6rem 2rem; max-width:1400px; margin:0 auto; }
        h2 { text-align:center; font-size:2.8rem; margin-bottom:1rem; color:var(--primario); }
        .subtitle { text-align:center; color:#7f8c8d; max-width:800px; margin:0 auto 3rem; }

        .sobre { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
        .sobre img { width:100%; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,0.1); }
        .sobre h2 { color:var(--primario); text-align:left; }
        .ventajas { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; margin-top:2rem; }
        .ventaja { display:flex; align-items:center; gap:1rem; }
        .ventaja i { color:var(--primario); font-size:1.5rem; }
        
        /* APARTADO DE HORARIO - NOTA AMARILLA MÁS PEQUEÑA Y SIN LÍNEAS */
        .nota-horario {
            background: var(--terciario); /* Amarillo oficial */
            border-radius: 15px;
            padding: 1.2rem 1.5rem;
            max-width: 280px;              /* ← Más pequeño (antes ~500px) */
            margin: 2rem auto 0;
            box-shadow: 0 6px 20px rgba(0,0,0,0.15);
            text-align: center;
            color: #1e3a8a; /* Azul oscuro */
        }
        
        .nota-horario h3 {
            font-size: 1.6rem;             /* ← Título más pequeño */
            margin-bottom: 1rem;
            color: #1e3a8a;
        }
        
        .nota-horario p {
            font-size: 1rem;               /* ← Texto más pequeño */
            line-height: 1.8;
            margin: 0.5rem 0;
        }
        
        .etiqueta-cerrado {
            display: inline-block;
            background: var(--secundario); /* Rojo */
            color: white;
            padding: 0.4rem 1.2rem;
            border-radius: 50px;
            font-weight: bold;
            margin-top: 0.8rem;
            font-size: 0.95rem;
        }
        
        /* Responsive: aún más pequeño en móviles */
        @media (max-width: 768px) {
            .nota-horario {
                max-width: 300px;
                padding: 1rem;
            }
            .nota-horario h3 { font-size: 1.4rem; }
            .nota-horario p { font-size: 0.95rem; }
        }

        /* BUSCADOR DE PRODUCTOS */
        .buscador-container {
            max-width: 600px;
            margin: 0 auto 1.5rem;
            position: relative;
        }
        .buscador {
            width: 100%;
            padding: 1rem 1.5rem 1rem 3.5rem;
            border: 3px solid var(--primario);
            border-radius: 50px;
            font-size: 1.1rem;
            background: white;
            box-shadow: 0 5px 15px rgba(19,127,65,0.1);
            transition: all .3s;
        }
        .buscador:focus {
            outline: none;
            border-color: var(--terciario);
            box-shadow: 0 8px 25px rgba(19,127,65,0.2);
        }
        .buscador-icon {
            position: absolute;
            left: 1.2rem;
            top: 50%;
            transform: translateY(-50%);
            color: var(--primario);
            font-size: 1.4rem;
            pointer-events: none;
        }
        /* BOTÓN DESCARGAR CATÁLOGO PDF */
        .boton-catalogo {
            display: inline-flex;
            align-items: center;
            gap: 0.8rem;
            padding: 1rem 1.8rem;
            background: var(--primario);
            color: white;
            border-radius: 50px;
            font-weight: bold;
            font-size: 1rem;
            text-decoration: none;
            box-shadow: 0 5px 15px rgba(19,127,65,0.3);
            transition: all .3s;
            white-space: nowrap;
        }
        .boton-catalogo:hover {
            background: #0f5f31;
            transform: translateY(-3px);
            box-shadow: 0 8px 25px rgba(19,127,65,0.4);
        }
        .boton-catalogo i {
            font-size: 1.3rem;
        }
        
        /* Contenedor para centrar buscador + botón en una fila (en escritorio) */
        .buscador-y-boton {
            display: flex;
            flex-direction: column;        /* ← uno debajo del otro */
            align-items: center;           /* ← centrado horizontal */
            gap: 1rem;                   /* ← espacio entre buscador y botón */
            max-width: 600px;
            margin: 0 auto 2.5rem auto;
        }
        
        /* Productos */
        .destacados {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 2rem 2rem;
            margin-top: 3rem;
            justify-content: center;
        }
        
        .card {
            background: white;
            border-radius: 30px;
            box-shadow: 0 5px 20px rgba(0,0,0,0.08);
            transition: all .3s ease;
            border: 2px solid transparent;
            display: flex;
            flex-direction: column;
        }
        .card:hover {
            transform: translateY(-10px);
            border-color: var(--terciario);
        }
        .card img {
            width: 100%;
            height: 200px;
            object-fit: cover;
            border-top-left-radius: 30px;   /* ← redondeado arriba */
            border-top-right-radius: 30px;
        }
        .card-content {
            padding: 1.5rem;
            flex-grow: 1;
        }
        .precio, .peso {
            background: var(--secundario);
            color: white;
            padding: 0.5rem 1rem;
            border-radius: 50px;
            font-weight: bold;
            font-size: 1rem;
            display: inline-block;
            margin: 0.5rem 0.5rem 0.5rem 0;
        }
        .peso {
            background: #137f41;
        }
        
        /* DESCRIPCIÓN OCULTA POR DEFECTO */
        .card-content p {
            display: none;
            margin-top: 1rem;
            line-height: 1.6;
        }
        
        .card.active .card-content p {
            display: block;
        }
        
        /* CONSISTENCIA EN ESCRITORIO */
        @media (min-width: 769px) {
            .card {
                height: 460px;                  /* ← altura fija cuando cerrada */
                overflow: hidden;
                width: 300px;
                margin: 0 auto;
                transition: height 0.4s ease, box-shadow 0.3s ease;
            }
        
            .card.active {
                height: auto;                   /* ← se expande */
                overflow: visible;
                box-shadow: 0 15px 40px rgba(0,0,0,0.15);
            }
        
            .card img {
                height: 220px;                  /* ← imagen fija */
            }
        
            .card-content {
                display: flex;
                flex-direction: column;
            }
        
            .card-content h3 {
                margin-bottom: 0.8rem;
            }
        
            .precio, .peso {
                margin: 0.5rem 0.5rem 0.5rem 0;
                align-self: flex-start;
            }
        
            .destacados {
                grid-template-columns: repeat(auto-fit, minmax(280px, 380px));
            }
        }

        .filtros { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; margin-bottom:3rem; }
        .filtro {
            padding:0.9rem 2rem;
            border-radius:50px;
            background:#f5f5f5;
            cursor:pointer;
            transition:all .3s;
            font-weight:600;
            border:2px solid transparent;
        }
        .filtro:hover { background:var(--terciario); color:#333; }
        .filtro.activo {
            background:var(--terciario);
            color:#333;
            border-color:var(--primario);
        }

        /* Contacto */
        .contacto { background:var(--gris-claro); }
        .form-container { max-width:600px; margin:0 auto; background:white; padding:3rem; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,0.1); }
        .form-group { margin-bottom:1.5rem; }
        .form-group label { display:block; margin-bottom:0.5rem; font-weight:600; color:var(--primario); }
        .form-group input, .form-group textarea {
            width:100%; padding:1rem; border:2px solid #ddd; border-radius:10px; font-size:1rem;
            transition:border .3s;
        }
        .form-group input:focus, .form-group textarea:focus {
            border-color:var(--primario); outline:none;
        }
        .btn-enviar {
            background:var(--primario);
            color:white;
            padding:1.1rem;
            border:none;
            border-radius:50px;
            font-size:1.1rem;
            font-weight:bold;
            cursor:pointer;
            width:100%;
            transition:all .3s;
        }
        .btn-enviar:hover { background:#0f5f31; transform:scale(1.02); }

        /* Footer */
        footer { background:var(--fondo-footer); color:white; padding:4rem 2rem 2rem; }
        .footer-content { max-width:1600px; margin:0 auto; display:grid; grid-template-columns:2fr 2fr 1fr 1fr; gap:3rem; }
        .footer-links h4 { color:var(--terciario); margin-bottom:1rem; font-size:1.3rem; }
        .footer-links a { display:block; margin-bottom:0.8rem; color:#bdc3c7; transition:color .3s; }
        .footer-links a:hover { color:var(--terciario); }
        .contacto-info i { color:var(--primario); margin-right:10px; }
        .copyright { text-align:center; margin-top:3rem; padding-top:2rem; border-top:1px solid #333; color:#95a5a6; }
        .social a { color:#95a5a6; font-size:1.6rem; margin:0 1rem; transition:color .3s; }
        .social a:hover { color:var(--terciario); }
        /* ACOMODA PERFECTO EL CORREO Y EL TELÉFONO EN EL FOOTER */
        .contacto-info p,
        .contacto-info a {
            display: flex;
            align-items: center;
            gap: 0.8rem;           /* espacio entre icono y texto */
            margin-bottom: 0.8rem;
            flex-wrap: nowrap;     /* ← evita que se brinque el texto */
            line-height: 1.4;
        }
        
        .contacto-info i {
            color: var(--primario);
            font-size: 1.3rem;
            min-width: 26px;       /* ← fuerza que el icono siempre ocupe el mismo espacio */
            text-align: center;
        }
        
        /* En móviles sigue viéndose bien */
        @media (max-width: 768px) {
            .contacto-info p,
            .contacto-info a {
                flex-wrap: wrap;     /* permite salto de línea solo en móvil si es muy largo */
                justify-content: center;
            }
        }

        @media (max-width:768px) {
            .sobre { grid-template-columns:1fr; }
            .ventajas { grid-template-columns:1fr; }
            .footer-content { grid-template-columns:1fr; text-align:center; }
            nav ul { gap:1rem; font-size:0.95rem; }
        }
        
        /* Teléfonos pequeños */
        @media (max-width: 480px) {
        
            header .navbar {
                flex-direction: column;
                gap: 1rem;
                padding: 1rem;
            }
        
            nav ul {
                flex-wrap: wrap;
                justify-content: center;
            }
        
            .hero {
                background-attachment: scroll; /* evita bug en móviles */
                padding: 120px 1rem 2rem;
            }
        
            .hero h1 {
                font-size: 2.2rem;
            }
        
            .hero p {
                font-size: 1rem;
            }
        
            .btn {
                display: block;
                width: 100%;
                margin: 10px 0;
                text-align: center;
            }
        
            section {
                padding: 4rem 1rem;
            }
        
            h2 {
                font-size: 2rem;
            }
        
            .sobre {
                gap: 2rem;
            }
        
            .ventaja {
                font-size: 0.95rem;
            }
        
            .buscador {
                font-size: 1rem;
                padding: 0.9rem 1.2rem 0.9rem 3rem;
            }
        
            .boton-catalogo {
                width: 100%;
                justify-content: center;
            }
        
            .destacados {
                gap: 1.5rem;
            }
        
            .card img {
                height: 180px;
            }
        
            .precio {
                font-size: 0.9rem;
            }
        
            .form-container {
                padding: 2rem 1.5rem;
            }
        
            footer {
                padding: 3rem 1rem 1.5rem;
            }
        
            .footer-content {
                gap: 2rem;
            }
        
            .social a {
                margin: 0 0.5rem;
            }
        }
        
        /* Tablets */
        @media (max-width: 1024px) {
        
            .hero h1 {
                font-size: 3rem;
            }
        
            .navbar {
                padding: 1rem;
            }
        
            section {
                padding: 5rem 2rem;
            }
        
            .footer-content {
                grid-template-columns: 1fr 1fr;
                text-align: center;
            }
        
            .contacto-info {
                text-align: center;
            }
        }
        /* HERO COMPLETO EN MOVIL (SIN RECORTES) */
        @media (max-width: 768px) {
        
            .hero {
                height: auto;
                min-height: 100vh;
                background-attachment: scroll;
                background-position: center;
                background-repeat: no-repeat;
                background-size: contain;   /* ✅ AQUÍ SE VE COMPLETA */
                padding: 140px 1rem 3rem;
            }
        
        }
        
        /* Ajuste fino para teléfonos pequeños */
        @media (max-width: 480px) {
        
            .hero {
                background-size: contain;  /* mantiene la imagen completa */
                padding-top: 160px;
            }
        
        }
        /* MODAL ACERCA DE */
        .modal-acerca {
            display: none;
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.65);
            z-index: 2000;
            align-items: flex-start;     /* 🔑 evita corte vertical */
            justify-content: center;
            padding: 2rem 1rem;          /* espacio arriba y abajo */
            overflow-y: auto;            /* 🔑 permite scroll si es necesario */
        }

        .modal-acerca-contenido {
            background: white;
            max-width: 600px;
            width: 100%;
            padding: 2.5rem 2.5rem 2rem;
            border-radius: 25px;
            box-shadow: 0 20px 50px rgba(0,0,0,0.25);
            position: relative;
            animation: modalEntrada 0.35s ease;
        }
        
        .modal-acerca-contenido h2 {
            text-align: center;
            margin-bottom: 1rem;
            color: var(--primario);
        }
        
        .modal-acerca-contenido p {
            font-size: 1.05rem;
            line-height: 1.8;
            margin-bottom: 1rem;
            color: var(--texto);
        }
        
        /* Botón cerrar */
        .modal-cerrar {
            position: absolute;
            top: 15px;
            right: 20px;
            background: none;
            border: none;
            font-size: 2rem;
            cursor: pointer;
            color: var(--secundario);
            transition: transform .2s, color .2s;
        }
        
        .modal-cerrar:hover {
            transform: scale(1.2);
            color: #8c0a0a;
        }
        
        /* Animación */
        @keyframes modalEntrada {
            from {
                opacity: 0;
                transform: translateY(30px) scale(0.95);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }
        
        /* Responsive */
        @media (max-width: 480px) {
            .modal-acerca-contenido {
                padding: 2rem 1.5rem;
            }
            .modal-acerca-contenido p {
                font-size: 1rem;
            }
        }
        /* ===== AJUSTES RESPONSIVE DEL MODAL ===== */
        @media (max-width: 768px) {
        
            .modal-acerca {
                align-items: flex-end;      /* se pega abajo */
                padding: 0;
            }
        
            .modal-acerca-contenido {
                max-width: 100%;
                width: 100%;
                max-height: 90vh;           /* no cubre todo */
                border-radius: 25px 25px 0 0;
                padding: 1.8rem 1.5rem 2rem;
                overflow-y: auto;           /* scroll interno */
                animation: modalSube 0.35s ease;
            }
        
            .modal-cerrar {
                top: 12px;
                right: 16px;
                font-size: 1.8rem;
            }
        }
        
        /* Animación móvil */
        @keyframes modalSube {
            from {
                transform: translateY(100%);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }