/* =========================================================
   PARRILLA ARGENTINA — Hoja de estilos
   ========================================================= */

/* ---------- Variables ---------- */
:root {
  --crema: #f7f6f4;
  --crema-alt: #ececec;
  --carbon: #0d0d0d;
  --rojo: #b91c1c;
  --fuego: #dc2626;
  --fuego-oscuro: #991b1b;
  --fuego-claro: #f87171;

  --text-dark: #121212;
  --text-muted: #5a5a5a;
  --text-light: #f7f6f4;
  --text-light-muted: #b3b3b3;

  --border-dark: rgba(0, 0, 0, 0.14);
  --border-light: rgba(255, 255, 255, 0.2);

  --font-display: 'Fraunces', serif;
  --font-body: 'Work Sans', sans-serif;

  --container: 1180px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 26px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Reset ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  background: var(--crema);
  color: var(--text-dark);
  font-family: var(--font-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  overflow-wrap: break-word;
  animation: page-fade-in 0.7s ease;
}
@keyframes page-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
address { font-style: normal; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }



.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 1.1em; height: 1.1em; flex-shrink: 0; }

.section-inner { max-width: var(--container); margin: 0 auto; padding: 0 32px; }

#inicio, #nosotros, #propuesta, #horarios, #reservas, #ubicacion { scroll-margin-top: 100px; }

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.01em;
  text-decoration: none;
  text-underline-offset: 6px;
}

.section-tag {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fuego);
  margin-bottom: 14px;
}
.section-tag--light { color: var(--fuego); }

/* ---------- Botones ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 13px 26px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.92rem;
  white-space: nowrap;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.btn-fuego {
  background: var(--fuego);
  color: var(--crema);
}
.btn-fuego:hover {
  background: var(--fuego-oscuro);
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 12px 28px -10px rgba(220, 38, 38, 0.55);
}

.btn.nav-cta { background: var(--rojo); }
.btn.nav-cta:hover { background: #5c1a1a; transform: translateY(-2px); }

.btn-outline {
  border: 1.5px solid var(--border-dark);
  color: var(--text-dark);
}
.btn-outline:hover { border-color: var(--fuego); color: var(--fuego); transform: translateY(-3px); }

/* =========================================================
   HEADER
   ========================================================= */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border-dark);
  transition: box-shadow 0.3s ease;
}
.site-header.scrolled { box-shadow: 0 8px 24px -16px rgba(185, 28, 28, 0.4); }

.header-contact {
  display: flex;
  align-items: center;
  gap: 56px;
}
.header-contact-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.95rem;
  color: var(--text-muted);
  white-space: nowrap;
  transition: color 0.25s ease;
}
.header-contact-item:hover { color: var(--fuego); }
.header-contact-item .icon { width: 16px; height: 16px; color: var(--fuego); flex-shrink: 0; }

.header-inner {
  width: 100%;
  padding: 6px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 90px;
}

.brand { display: flex; align-items: center; }
.brand-logo {
  height: 72px;
  width: 72px;
  object-fit: cover;
  border-radius: 50%;
  display: block;
  transition: transform 0.4s var(--ease), box-shadow 0.4s ease;
}
.brand:hover .brand-logo { transform: rotate(-8deg) scale(1.06); box-shadow: 0 6px 18px -6px rgba(220, 38, 38, 0.5); }

.nav { display: flex; align-items: center; gap: 64px; }
.nav a {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.nav a:not(.nav-cta) {
  font-size: 1.05rem;
  color: var(--text-muted);
  position: relative;
  transition: color 0.25s ease;
}
.nav .nav-cta { font-size: 1rem; padding: 15px 30px; }
.nav a:not(.nav-cta):hover,
.nav a:not(.nav-cta).active { color: var(--fuego); }

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px; height: 40px;
  z-index: 110;
}
.nav-toggle span {
  width: 22px; height: 2px;
  background: var(--text-dark);
  transition: transform 0.35s var(--ease), opacity 0.25s ease;
}
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-overlay {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 99;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.nav-overlay.show { opacity: 1; pointer-events: auto; }

/* =========================================================
   HERO
   ========================================================= */
.hero {
  position: relative;
  background: var(--crema);
  color: var(--text-dark);
  padding: 176px 0 88px;
  min-height: 100vh;
  display: flex;
  align-items: center;
  text-align: left;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('imagenes/parrilla dos.png') center 35% / cover no-repeat;
  z-index: 0;
}
.hero-inner { position: relative; z-index: 1; max-width: 800px; margin: 0; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* =========================================================
   EFECTOS: aparición al hacer scroll
   ========================================================= */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
[data-reveal].in-view { opacity: 1; transform: translateY(0); }

/* =========================================================
   EFECTOS: hero (zoom lento + resplandor que sigue el cursor)
   ========================================================= */
.hero::before { animation: hero-zoom 16s ease-in-out infinite alternate; }
@keyframes hero-zoom {
  from { transform: scale(1); }
  to { transform: scale(1.1); }
}
.hero-glow {
  position: absolute;
  top: 0; left: 0;
  width: 460px; height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(220, 38, 38, 0.35), transparent 70%);
  filter: blur(10px);
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.hero-glow.active { opacity: 1; }

/* =========================================================
   SOBRE EL LUGAR + PROPUESTA (bloque combinado)
   ========================================================= */
.about-offer { background: var(--crema); color: var(--text-dark); }

.about-block { padding: 100px 0 70px; }
.about-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 70px;
}
.about-lead h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.18; color: var(--text-dark); }
.about-content p {
  font-size: 1.05rem;
  color: var(--text-muted);
  max-width: 520px;
  margin-bottom: 28px;
}
.chip-list { display: flex; flex-wrap: wrap; gap: 10px; }
.chip-list li {
  font-size: 0.85rem;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 999px;
  border: 1px solid var(--border-dark);
  color: var(--text-dark);
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.chip-list li:hover {
  background: var(--fuego);
  border-color: var(--fuego);
  color: var(--crema);
  transform: translateY(-3px);
}

.offer-block {
  padding: 70px 0 50px;
  border-top: 1px dashed var(--border-dark);
}
.offer-head { max-width: 460px; margin-bottom: 52px; }
.offer-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); color: var(--text-dark); }
.offer-head-cta { margin-top: 22px; }

.menu-categories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 44px 56px;
}

.menu-category-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border-dark);
}
.menu-category {
  padding: 14px;
  border-radius: var(--radius-lg);
  transition: transform 0.35s var(--ease), background 0.35s ease, box-shadow 0.35s ease;
}
.menu-category:hover {
  transform: translateY(-6px);
  background: rgba(220, 38, 38, 0.04);
  box-shadow: 0 16px 32px -20px rgba(0, 0, 0, 0.25);
}
.menu-category-img {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  transition: transform 0.35s var(--ease);
}
.menu-category:hover .menu-category-img { transform: scale(1.12) rotate(-4deg); }
.menu-category-head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-dark);
}
.menu-category-head h3 .icon { width: 19px; height: 19px; color: var(--fuego); flex-shrink: 0; }

.menu-dishes { display: flex; flex-direction: column; }
.menu-dishes li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 6px;
  border-bottom: 1px dashed var(--border-dark);
  font-size: 0.95rem;
  border-radius: var(--radius-sm);
  transition: background 0.25s ease, padding-left 0.25s ease;
}
.menu-dishes li:hover { background: rgba(220, 38, 38, 0.06); padding-left: 12px; }
.menu-dishes li:last-child { border-bottom: none; }
.dish-name { color: var(--text-muted); }
.dish-price {
  flex-shrink: 0;
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--fuego);
  white-space: nowrap;
  transition: transform 0.25s var(--ease);
}
.menu-dishes li:hover .dish-price { transform: scale(1.1); }

.menu-cta {
  margin-top: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.offer-note {
  font-size: 0.82rem;
  color: var(--text-muted);
  max-width: 480px;
}

/* =========================================================
   HORARIOS
   ========================================================= */
.hours { padding: 50px 0 40px; }
.hours-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
}
.hours-lead { max-width: 460px; }
.hours-lead h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.18; margin-bottom: 22px; }

.hours-status {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: 999px;
  background: var(--crema-alt);
  border: 1px solid var(--border-dark);
}
.status-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--text-muted); }
.hours-status.is-open .status-dot {
  background: var(--text-dark);
  animation: status-pulse 1.6s ease-in-out infinite;
}
@keyframes status-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(18, 18, 18, 0.35); }
  50% { box-shadow: 0 0 0 5px rgba(18, 18, 18, 0); }
}
.hours-status.is-open { color: var(--text-dark); }
.hours-status.is-closed .status-dot { background: var(--rojo); }
.hours-status.is-closed { color: var(--rojo); }

.hours-list {
  background: var(--carbon);
  border-radius: var(--radius-lg);
  padding: 10px 8px;
}
.hours-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px dashed var(--border-light);
  color: var(--text-light-muted);
  font-size: 0.95rem;
}
.hours-row:last-child { border-bottom: none; }
.hours-row .day { font-weight: 600; color: var(--crema); }
.hours-row .time { font-variant-numeric: tabular-nums; }
.hours-row.is-today {
  background: rgba(220, 38, 38, 0.14);
  border-radius: var(--radius-sm);
  animation: today-glow 2.6s ease-in-out infinite;
}
@keyframes today-glow {
  0%, 100% { background: rgba(220, 38, 38, 0.14); }
  50% { background: rgba(220, 38, 38, 0.26); }
}
.hours-row.is-today .day { color: var(--fuego-claro); }
.hours-row--closed .time { color: var(--text-light-muted); }
.closed-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fuego-claro);
  border: 1px dashed var(--fuego-claro);
  padding: 4px 12px;
  border-radius: 999px;
  transform: rotate(-2deg);
}

/* =========================================================
   RESERVAS
   ========================================================= */
.reservas { background: var(--crema); padding: 80px 0; }
.reservas-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.reservas-head { max-width: 520px; margin-bottom: 44px; }
.reservas-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); color: var(--text-dark); }
.reservas-desc { color: var(--text-muted); font-size: 1rem; margin-top: 18px; }

.reservas-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
  max-width: 640px;
  text-align: left;
  background: var(--crema-alt);
  border: 1px solid var(--border-dark);
  border-top: 4px solid var(--fuego);
  border-radius: var(--radius-lg);
  padding: 44px 48px;
  transition: box-shadow 0.35s ease, transform 0.35s var(--ease);
}
.reservas-form:hover { box-shadow: 0 24px 48px -30px rgba(0, 0, 0, 0.3); transform: translateY(-3px); }

.form-group-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fuego);
  margin-top: -6px;
  margin-bottom: -6px;
}

/* Separador entre cada bloque del formulario: línea punteada con
   un rombo rojo al medio, mismo espíritu "cartelería" que el resto del sitio. */
.form-divider {
  position: relative;
  height: 1px;
  margin: 2px 0;
  background: repeating-linear-gradient(90deg, var(--border-dark) 0 6px, transparent 6px 13px);
}
.form-divider-mark {
  position: absolute;
  top: 50%; left: 50%;
  width: 10px; height: 10px;
  background: var(--fuego);
  border: 3px solid var(--crema-alt);
  transform: translate(-50%, -50%) rotate(45deg);
}

.form-row { display: flex; gap: 16px; }
.form-row--3 .form-field { min-width: 0; }
.form-field { flex: 1; display: flex; flex-direction: column; gap: 7px; }
.form-field label {
  font-size: 0.75rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.form-field input,
.form-field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--border-dark);
  border-radius: var(--radius-sm);
  background: var(--crema);
  color: var(--text-dark);
  font-size: 0.95rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.form-field input:focus,
.form-field textarea:focus {
  outline: none;
  border-color: var(--fuego);
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14);
}
.form-field textarea { resize: vertical; min-height: 90px; }

.reservas-submit { width: 100%; margin-top: 4px; }
.reservas-note { font-size: 0.8rem; color: var(--text-muted); }

/* =========================================================
   UBICACIÓN Y CONTACTO
   ========================================================= */
.location { background: var(--crema); color: var(--text-dark); padding: 40px 0 110px; }

.location-head { max-width: 460px; margin-bottom: 32px; }
.location-head h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); color: var(--text-dark); }

.location-card {
  display: flex;
  align-items: stretch;
  gap: 28px;
}

.location-info {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
  flex: 1.3;
  background: var(--carbon);
  color: var(--text-light);
  border-left: 6px solid var(--fuego);
  border-radius: var(--radius-lg);
  padding: 48px 52px;
  transition: transform 0.35s var(--ease), box-shadow 0.35s ease;
}
.location-info:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.5);
}
.location-info address { margin: 0; }
.address-link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 1.05rem;
  color: var(--text-light-muted);
  transition: color 0.25s ease, transform 0.25s ease;
}
.address-link:hover { color: var(--fuego-claro); transform: translateX(4px); }
.address-link .icon { color: var(--fuego-claro); margin-top: 3px; flex-shrink: 0; transition: transform 0.3s var(--ease); }
.address-link:hover .icon { transform: scale(1.2); }
.location-phone {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.05rem;
}
.location-phone .icon { color: var(--fuego-claro); }
.location-phone a { font-weight: 600; color: var(--crema); }
.location-phone a:hover { color: var(--fuego-claro); }

.location-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 14px;
  flex: 1;
  max-width: 300px;
}
.location-actions .btn { width: 100%; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer {
  background: var(--crema);
  color: var(--text-muted);
  padding: 70px 0 0;
  border-top: 1px solid var(--border-dark);
}

.footer-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 64px;
  padding-bottom: 50px;
}

.footer-col {
  flex: 0 1 180px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-col h3 {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--fuego);
  margin-bottom: 16px;
}
.footer-col a, .footer-col p {
  font-size: 0.9rem;
  color: var(--text-muted);
  transition: color 0.25s ease, transform 0.25s ease;
  display: inline-block;
}
.footer-col a:hover { color: var(--fuego); transform: translateX(5px); }
.footer-col .footer-closed { color: var(--fuego); font-weight: 600; }

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 22px 0;
  border-top: 1px solid var(--border-dark);
}
.footer-copy { font-size: 0.78rem; opacity: 0.7; }
.footer-credit { font-size: 0.78rem; opacity: 0.7; }

/* =========================================================
   BOTÓN FLOTANTE DE WHATSAPP
   ========================================================= */
.whatsapp-float {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px -8px rgba(0, 0, 0, 0.55);
  z-index: 90;
  transition: transform 0.3s var(--ease), box-shadow 0.3s ease;
}
.whatsapp-float::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25d366;
  z-index: -1;
  animation: whatsapp-pulse 2.4s ease-out infinite;
}
@keyframes whatsapp-pulse {
  0% { transform: scale(1); opacity: 0.55; }
  100% { transform: scale(1.9); opacity: 0; }
}
.whatsapp-float .icon { width: 30px; height: 30px; }
.whatsapp-float:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 14px 30px -8px rgba(0, 0, 0, 0.65);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1900px) {
  .header-contact { display: none; }
}

/* Achica los espacios grandes del header antes de pasar al menú hamburguesa,
   para que el nav completo (ahora con el link de Reservas) no se desborde
   en laptops/tablets. */
@media (max-width: 1900px) {
  .header-inner { gap: 32px; }
  .nav { gap: 26px; }
  .nav a:not(.nav-cta) { font-size: 0.95rem; }
  .nav .nav-cta { padding: 12px 22px; font-size: 0.9rem; }
}

@media (max-width: 980px) {
  .about-grid { grid-template-columns: 1fr; gap: 36px; }
  .menu-categories { grid-template-columns: 1fr; gap: 40px; }
  .footer-grid { gap: 40px; }
  .location-card { flex-direction: column; gap: 24px; }
  .location-actions { max-width: none; }
}

@media (max-width: 900px) {
  .nav {
    position: fixed;
    top: 0; right: 0;
    height: 100vh;
    width: min(300px, 82vw);
    background: var(--crema);
    border-left: 1px solid var(--border-dark);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 24px;
    padding: 40px;
    transform: translateX(100%);
    transition: transform 0.45s var(--ease);
    z-index: 105;
  }
  .nav.open { transform: translateX(0); }
  .nav a:not(.nav-cta) { font-size: 1.1rem; color: var(--text-dark); }
  .nav-cta { margin-top: 10px; }
  .nav-toggle { display: flex; }
}

@media (max-width: 640px) {
  .section-inner { padding: 0 22px; }
  .header-inner { padding: 16px 22px; }
  .hero { padding: 132px 0 40px; min-height: auto; flex-direction: column; }
  /* En celular la foto es muy panorámica: con "cover" el cartel del medio
     quedaba cortado a los costados. Acá se muestra completa, con su
     proporción real, en vez de recortada dentro de un hero de 100vh. */
  .hero::before {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    aspect-ratio: 1717 / 916;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    animation: none;
  }
  .menu-cta { flex-direction: column; align-items: stretch; text-align: center; gap: 18px; }
  .hours-row { padding: 14px 16px; font-size: 0.9rem; }
  .reservas { padding: 60px 0; }
  .reservas-form { padding: 32px 22px; }
  .form-row, .form-row--3 { flex-direction: column; gap: 18px; }
  .location-info { padding: 32px 24px; }
  .about-block { padding: 60px 0; }
  .offer-block { padding: 60px 0 40px; }
  .hours { padding: 40px 0 40px; }
  .location { padding: 40px 0 76px; }
  .whatsapp-float { width: 52px; height: 52px; right: 16px; bottom: 16px; }
  .whatsapp-float .icon { width: 26px; height: 26px; }
  .footer-grid { gap: 30px; }
  .footer-col { flex: 1 1 140px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
  .section-inner { padding: 0 18px; }
  .header-inner { padding: 14px 18px; }
  .brand-logo { height: 56px; width: 56px; }
  .hero { padding: 118px 0 56px; }
  .about-lead h2, .hours-lead h2, .offer-head h2, .reservas-head h2, .location-head h2 { font-size: 1.6rem; }
  .menu-category-img { width: 44px; height: 44px; }
  .menu-category-head h3 { font-size: 1.02rem; }
  .menu-dishes li { font-size: 0.9rem; padding: 9px 0; }
  .reservas-form { padding: 26px 18px; }
  .location-info { padding: 26px 22px; }
  .location-card { gap: 20px; }
  .btn { padding: 13px 20px; white-space: normal; text-align: center; }
  .whatsapp-float { width: 48px; height: 48px; right: 14px; bottom: 14px; }
  .whatsapp-float .icon { width: 24px; height: 24px; }
}

/* Dirección visual: papel cálido, carbón y acentos de brasa. */
:root { --crema:#f6f1e8; --crema-alt:#eee6da; --carbon:#231f1a; --text-dark:#29251f; --text-muted:#70675d; --fuego:#a72e23; --rojo:#a72e23; --fuego-oscuro:#812219; --fuego-claro:#eea58e; --radius-lg:8px; --radius-md:6px; }
body { animation:none; }
h1,h2,h3 { font-weight:500; letter-spacing:-.045em; text-decoration:none; }
:focus-visible { outline:3px solid #bb642d; outline-offset:5px; }
[hidden] { display:none !important; }
.skip-link { position:fixed; top:10px; left:10px; transform:translateY(-160%); z-index:200; background:var(--crema); padding:12px 20px; }
.skip-link:focus { transform:none; }
.btn { border-radius:4px; min-height:48px; }
.text-link { display:inline-block; font-size:.88rem; font-weight:600; border-bottom:1px solid currentColor; padding:6px 0; }
.text-link:hover { color:var(--fuego); }
.site-header { background:rgba(246,241,232,.96); }
.header-inner { max-width:1440px; margin:auto; padding:10px 32px; }
.brand-logo { width:60px; height:60px; }
.nav a { text-decoration:none; }
.nav a:not(.nav-cta) { font-size:.82rem; font-weight:500; }
.hero { display:block; min-height:0; padding:81px 0 0; background:var(--carbon); }
.hero::before,.hero::after,.hero-glow { display:none; }
.hero-photo { display:block; width:100%; height:clamp(270px,46vw,590px); object-fit:contain; background:#16121b; }
.hero-inner { max-width:var(--container); margin:auto; padding:38px 32px 44px; display:grid; grid-template-columns:1.25fr 1fr; align-items:center; gap:60px; color:var(--crema); }
.hero .section-tag { color:#e9b39c; font-size:.67rem; }
.hero h1 { font-size:clamp(1.9rem,3.2vw,3rem); line-height:1.12; }
.hero h1 em { font-weight:400; color:#e8c3ac; }
.hero-welcome p { color:#d4c8b9; font-size:.92rem; max-width:340px; margin-bottom:22px; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.hero-actions .btn { background:#f2ded0; color:#33221b; }
.hero-actions .text-link { color:var(--crema); }
.about-block { padding:100px 32px 55px; }
.about-lead h2,.offer-head h2,.hours-lead h2,.reservas-head h2,.location-head h2 { font-size:clamp(2.25rem,4.5vw,4rem); line-height:1.08; }
.about-content { padding-top:28px; }
.about-content p { font-weight:400; line-height:1.9; }
.chip-list { gap:0; }
.chip-list li { padding:8px 14px 8px 0; margin-right:14px; border:0; border-radius:0; border-bottom:1px solid var(--border-dark); font-size:.73rem; }
.chip-list li:hover { background:transparent; color:var(--fuego); transform:none; }
.gallery-section { padding-bottom:96px; }
.gallery-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:28px; gap:20px; }
.gallery-heading>p:last-child { font-size:.87rem; color:var(--text-muted); }
.local-gallery { display:grid; grid-template-columns:1.4fr 1fr; gap:22px; }
.gallery-slot { margin:0; min-width:0; }
.gallery-slot--large { grid-row:span 2; }
.photo-placeholder { min-height:190px; height:calc(100% - 33px); display:flex; flex-direction:column; justify-content:center; align-items:center; padding:30px; text-align:center; background:#e8dfd1; border:1px solid #d5c7b5; outline:1px solid #d5c7b5; outline-offset:-12px; color:#746451; }
.gallery-slot--large .photo-placeholder { min-height:430px; background:#e0d5c3; }
.photo-placeholder .icon { width:34px; height:34px; margin-bottom:20px; }
.photo-placeholder span { font-family:var(--font-display); font-size:1.8rem; }
.photo-placeholder small { font-size:.7rem; max-width:220px; margin-top:7px; }
.gallery-slot figcaption { font-size:.72rem; color:var(--text-muted); padding-top:10px; }
.gallery-slot img { width:100%; height:calc(100% - 33px); object-fit:cover; }
.offer-block { padding:80px 32px; border-top:1px solid var(--border-dark); }
.offer-head { max-width:none; position:relative; padding-right:230px; margin-bottom:36px; }
.offer-head-cta { position:absolute; right:0; bottom:0; }
.menu-tools { margin-bottom:16px; display:flex; flex-direction:column; gap:24px; }
.menu-filters { display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid var(--border-dark); padding-bottom:20px; }
.menu-filter { font-size:.8rem; border:1px solid var(--border-dark); border-radius:30px; padding:10px 19px; transition:background .2s,color .2s; }
.menu-filter:hover,.menu-filter.is-active { color:var(--crema); background:var(--carbon); border-color:var(--carbon); }
.menu-search { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:.8rem; }
.menu-search input { font:inherit; border:0; border-bottom:1px solid #aa9a86; background:transparent; padding:12px 0; width:min(320px,65%); border-radius:0; color:var(--text-dark); }
.menu-results { font-size:.75rem; color:var(--text-muted); margin-bottom:28px; }
.menu-categories { gap:30px 50px; }
.menu-category { padding:0 0 25px; border-radius:0; border-bottom:1px solid var(--border-dark); }
.menu-category:hover { transform:none; box-shadow:none; background:transparent; }
.menu-category-head { gap:18px; border:0; padding:0; }
.menu-category-img { width:82px; height:82px; border-radius:4px; }
.menu-category:hover .menu-category-img { transform:scale(1.04); }
.menu-category-head h3 { font-size:1.35rem; letter-spacing:-.025em; }
.menu-category-head h3 .icon { display:none; }
.menu-dishes li { font-size:.86rem; border-radius:0; padding:10px 0; }
.dish-price { font-family:var(--font-body); font-weight:600; font-size:.84rem; }
.hours { background:var(--crema-alt); padding:80px 0; }
.hours-grid { grid-template-columns:1fr 1fr; gap:80px; }
.hours-row { background:transparent; border-radius:0; }
.reservas { padding:100px 0; background:var(--carbon); color:var(--crema); }
.reservas-inner { display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:start; text-align:left; }
.reservas-head { text-align:left; max-width:none; }
.reservas-head h2 { color:var(--crema); }
.reservas .section-tag { color:#e9b39c; }
.reservas-desc { color:#c5b8a6; line-height:1.9; font-size:.94rem; }
.reservation-steps { margin:32px 0; }
.reservation-steps p { padding:13px 0; border-bottom:1px solid #ffffff26; font-size:.85rem; }
.reservation-steps span { color:#d9ac91; margin-right:18px; font-size:.7rem; }
.reservas-head .text-link { color:#ead6c7; }
.reservas-form { background:var(--crema); color:var(--text-dark); padding:36px; gap:18px; border:0; border-radius:5px; max-width:none; }
.reservas-form:hover { transform:none; box-shadow:none; }
.form-field input,.form-field textarea { font-family:var(--font-body); min-width:0; border-radius:3px; background:#fffaf2; }
.reservation-feedback { color:var(--fuego-oscuro); font-size:.85rem; }
.reservation-feedback:empty { display:none; }
.reservas-note { font-size:.73rem; line-height:1.7; }
.location { padding:90px 0; }
.location>.section-inner { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; }
.location-head { margin:0; }
.contact-intro { margin-top:25px; font-size:.92rem; color:var(--text-muted); max-width:300px; }
.location-card { flex-direction:column; gap:24px; }
.location-info { padding:28px 0; background:transparent; color:var(--text-dark); border:0; border-top:1px solid var(--border-dark); border-bottom:1px solid var(--border-dark); border-radius:0; }
.location-info:hover { transform:none; box-shadow:none; }
.address-link,.location-phone a { color:var(--text-dark); }
.location-actions { max-width:none; display:grid; grid-template-columns:1fr 1fr; }
.location-actions .btn:first-child { grid-column:span 2; }
.site-footer { background:#211e19; color:#d4c8b9; padding:56px 0 0; }
.footer-invitation { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:45px; }
.footer-invitation>p { font-family:var(--font-display); font-size:clamp(2.3rem,5vw,4.5rem); letter-spacing:-.04em; color:var(--crema); }
.footer-grid { border-top:1px solid #ffffff24; padding-top:45px; gap:40px; display:grid; grid-template-columns:1.3fr .7fr 1fr 1fr; }
.footer-brand img { border-radius:50%; }
.footer-brand p { margin:16px 0; color:#e8dfd1; font-family:var(--font-display); font-size:1.4rem; }
.footer-col h3 { color:#e9b39c; }
.footer-col a,.footer-col p { color:#c6bba9; font-size:.8rem; font-weight:400; }
.footer-col .footer-closed { color:#e9b39c; }
.footer-bottom { border-color:#ffffff24; padding-bottom:30px; }
.whatsapp-float::before { animation:none; }
[data-reveal] { opacity:1; transform:none; }
.reveal-ready [data-reveal]:not(.in-view) { opacity:0; transform:translateY(22px); }
@media (max-width:900px) {
 .hero-inner { gap:30px; }
 .reservas-inner,.location>.section-inner { grid-template-columns:1fr; gap:40px; }
 .reservas-head { max-width:550px; }
 .hours-grid { gap:35px; }
 .footer-grid { grid-template-columns:1fr 1fr; }
 .nav:not(.open) { visibility:hidden; }
 .nav.open { visibility:visible; }
}
@media (max-width:640px) {
 .header-inner { padding:10px 20px; }
 .brand-logo { height:54px; width:54px; }
 .hero { padding:75px 0 0; }
 .hero-photo { height:auto; aspect-ratio:1717/916; }
 .hero-inner { grid-template-columns:1fr; padding:28px 22px 36px; gap:22px; }
 .hero h1 { font-size:1.9rem; }
 .hero-welcome p { margin-bottom:18px; }
 .hero-actions { gap:18px; }
 .hero-actions .btn { font-size:.8rem; padding:12px 16px; }
 .about-block { padding:60px 22px 30px; }
 .about-grid { gap:0; }
 .gallery-section { padding-bottom:55px; }
 .gallery-heading { align-items:start; flex-direction:column; gap:8px; }
 .local-gallery { gap:16px; grid-template-columns:1fr 1fr; }
 .gallery-slot--large { grid-column:span 2; grid-row:auto; }
 .gallery-slot--large .photo-placeholder { min-height:260px; }
 .photo-placeholder { min-height:210px; padding:22px 16px; }
 .photo-placeholder span { font-size:1.25rem; }
 .photo-placeholder small { font-size:.65rem; }
 .offer-block { padding:50px 22px; }
 .offer-head { padding-right:0; }
 .offer-head-cta { position:static; }
 .menu-filters { gap:7px; }
 .menu-filter { padding:9px 13px; font-size:.73rem; }
 .menu-category-head h3 { font-size:1.3rem; }
 .menu-category-img { width:70px; height:70px; }
 .hours { padding:55px 0; }
 .hours-grid { grid-template-columns:1fr; }
 .reservas { padding:60px 0; }
 .reservas-form { padding:25px 20px; }
 .location { padding:60px 0; }
 .location-info { padding:24px 0; }
 .footer-invitation { align-items:start; flex-direction:column; padding-bottom:30px; }
 .footer-grid { gap:32px 24px; }
 .footer-brand { grid-column:span 2; }
 .footer-bottom { padding-right:75px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none !important; transition:none !important; }
 .reveal-ready [data-reveal]:not(.in-view) { opacity:1; transform:none; }
}
@media (prefers-reduced-motion:no-preference) {
 .hero-inner>div { animation:welcome-in .8s var(--ease) both; }
 .hero-welcome { animation-delay:.15s !important; }
 .photo-placeholder { transition:background .4s ease, transform .5s var(--ease); }
 .gallery-slot:hover .photo-placeholder { background:#d9cbb6; transform:translateY(-4px); }
 .nav a:not(.nav-cta)::after { content:''; position:absolute; left:0; bottom:-7px; width:100%; height:1px; background:var(--fuego); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
 .nav a:hover::after,.nav a.active::after { transform:scaleX(1); }
}
@keyframes welcome-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:901px) {
 .hero-photo { height:clamp(300px,calc(100svh - 310px),540px); }
}

/* Fotos de la galería: marcos estables y encuadres por sección. */
.gallery-slot { display:flex; flex-direction:column; }
.gallery-photo { position:relative; flex:1; min-height:210px; overflow:hidden; border-radius:4px; }
.gallery-slot--large .gallery-photo { min-height:470px; }
.gallery-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center 58%; transition:transform .6s var(--ease); }
.gallery-slot--large img { object-position:center; }
.gallery-slot--table img { object-position:center 65%; }
.gallery-slot figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; padding-top:12px; }
.gallery-slot figcaption strong { color:var(--text-dark); font-weight:600; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .gallery-slot:hover img { transform:scale(1.035); } }
@media (max-width:640px) {
 .gallery-slot--large .gallery-photo { min-height:300px; }
 .gallery-photo { min-height:230px; }
 .gallery-slot figcaption { flex-direction:column; }
}

/* Logo provisto: conservar completo el dibujo y su texto. */
.brand-logo { width:76px; height:76px; object-fit:contain; border-radius:0; }
.footer-brand img { width:112px; height:112px; object-fit:contain; border-radius:0; }
@media (max-width:640px) { .brand-logo { width:54px; height:54px; } }

/* Portada con foto sola y navegación transparente sobre la imagen. */
.site-header, .site-header.scrolled {
 position:absolute;
 background:transparent;
 backdrop-filter:none;
 border-bottom:0;
 box-shadow:none;
}
.hero { padding:0; background:transparent; }
.hero-photo { width:100%; height:auto; aspect-ratio:1717 / 916; object-fit:contain; background:transparent; }
.nav a:not(.nav-cta) { color:#fff; text-shadow:0 1px 5px #000,0 0 16px #000; }
.nav a:not(.nav-cta):hover,.nav a:not(.nav-cta).active { color:#ffd4b1; }
.nav-toggle span { background:#fff; box-shadow:0 1px 4px #000; }
.nav-toggle.open span { background:var(--text-dark); box-shadow:none; }
@media (max-width:900px) {
 .nav a:not(.nav-cta) { color:var(--text-dark); text-shadow:none; }
 .nav a:not(.nav-cta):hover,.nav a:not(.nav-cta).active { color:var(--fuego); }
}

/* Portada a pantalla completa y paleta blanca. */
:root {
 --crema:#ffffff;
 --crema-alt:#ffffff;
 --carbon:#181818;
 --text-dark:#181818;
 --text-muted:#626262;
 --text-light:#ffffff;
 --text-light-muted:#d0d0d0;
 --border-dark:rgba(0,0,0,.14);
}
.hero { height:100svh; min-height:480px; padding:0; }
.hero-photo { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:center; }
.form-field input,.form-field textarea { background:#fff; }
.reservas,.site-footer { background:#fff; color:var(--text-dark); border-top:1px solid var(--border-dark); }
.reservas-head h2,.footer-invitation>p,.footer-brand p { color:var(--text-dark); }
.reservas-desc,.footer-col a,.footer-col p { color:var(--text-muted); }
.reservas .section-tag,.reservation-steps span,.footer-col h3,.footer-col .footer-closed { color:var(--fuego); }
.reservas-head .text-link { color:var(--text-dark); }
.reservas-form { border:1px solid var(--border-dark); }
.reservation-steps p,.footer-grid,.footer-bottom { border-color:var(--border-dark); }
.hours { border-top:1px solid var(--border-dark); }
.menu-search input { border-color:#999; }
@media (max-width:640px) {
 .hero { height:100svh; min-height:420px; }
 .hero-photo { object-fit:cover; object-position:center; }
}

/* Indicador de apertura 3D: pulso abierto, balanceo cerrado. */
.status-stage { perspective:900px; padding:25px 8px 28px; }
.hours-status {
 --status-face:#515966; --status-edge:#303641;
 position:relative; display:flex; align-items:center; gap:24px;
 width:100%; max-width:420px; min-height:144px; padding:28px;
 border:1px solid #ffffff50; border-radius:24px;
 background:linear-gradient(145deg,#ffffff20,transparent 65%),var(--status-face);
 color:#fff; transform-style:preserve-3d; transform:rotateX(10deg);
 box-shadow:0 10px 0 var(--status-edge),0 24px 30px -14px #0005;
 text-decoration:none; transition:background .4s,box-shadow .3s;
}
.hours-status.is-open { --status-face:#117444; --status-edge:#08492c; color:#fff; }
.hours-status.is-closed { --status-face:#ae302d; --status-edge:#70211e; color:#fff; }
.status-orb { position:relative; display:grid; place-items:center; width:64px; height:64px; flex-shrink:0; border-radius:50%; background:radial-gradient(circle at 30% 20%,#ffffff70,#ffffff10 70%); border:1px solid #ffffff65; box-shadow:inset 0 -5px 8px #0002,0 8px 12px #0002; transform:translateZ(22px); }
.status-orb .icon { width:34px; height:34px; }
.status-copy { display:flex; flex-direction:column; gap:8px; transform:translateZ(16px); }
#hoursStatusText { font-family:var(--font-display); font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.15; font-weight:600; }
.status-action { font-size:.76rem; font-weight:500; color:#fff; }
.status-hint { margin:0 8px; color:var(--text-muted); font-size:.75rem; }
.hours-status:focus-visible { outline:3px solid var(--text-dark); outline-offset:16px; }
@media (prefers-reduced-motion:no-preference) {
 .hours-status.is-open { animation:status-open-float 3.4s ease-in-out infinite; }
 .is-open .status-orb::after { content:''; position:absolute; inset:-2px; border:2px solid #fff9; border-radius:50%; animation:status-open-ring 2.4s ease-out infinite; }
 .hours-status.is-closed { animation:status-closed-rock 5s ease-in-out infinite; transform-origin:50% 0; }
 .hours-status:hover { animation-play-state:paused; }
 .hours-status:active { animation:none; transform:translateY(7px) rotateX(0deg); box-shadow:0 3px 0 var(--status-edge),0 10px 18px -12px #0005; }
}
@keyframes status-open-float { 0%,100% { transform:rotateX(10deg) translateY(0); } 50% { transform:rotateX(3deg) translateY(-7px); } }
@keyframes status-open-ring { 0% { transform:scale(1); opacity:.7; } 100% { transform:scale(1.55); opacity:0; } }
@keyframes status-closed-rock { 0%,65%,100% { transform:rotateX(8deg) rotateY(0deg); } 73% { transform:rotateX(8deg) rotateY(-6deg) rotateZ(-1deg); } 82% { transform:rotateX(8deg) rotateY(5deg) rotateZ(1deg); } 91% { transform:rotateX(8deg) rotateY(-2deg); } }
@media (max-width:480px) {
 .hours-status { padding:24px 20px; gap:18px; min-height:130px; }
 .status-orb { width:52px; height:52px; }
 .status-action { font-size:.72rem; }
}
@media (prefers-reduced-motion:reduce) { .hours-status { transform:none; } }

.demo-notice { position:absolute; top:100svh; left:0; width:100%; padding:10px 22px; background:#fff; color:#626262; font-size:.72rem; text-align:center; z-index:2; border-bottom:1px solid #ddd; }
#demoDialog { margin:auto; width:min(440px,calc(100% - 40px)); padding:32px; border:1px solid #ddd; border-radius:12px; background:#fff; color:#181818; }
#demoDialog::backdrop { background:#0008; }
#demoDialog h2 { font-size:1.8rem; line-height:1.2; }
#demoDialog p { margin:20px 0; line-height:1.7; }

/* Secciones y listas sin líneas divisorias decorativas. */
.offer-block,.menu-filters,.menu-category,.menu-category-head,
.menu-dishes li,.hours,.hours-row,.reservas,.site-footer,
.reservation-steps p,.location-info,.footer-grid,.footer-bottom,
.chip-list li,.text-link { border-top:0; border-bottom:0; }
.gallery-heading>.section-tag { color:var(--fuego); font-size:.78rem; }

/* Navegación legible sobre la fotografía, con estados de interacción claros. */
.header-inner { gap:24px; padding:18px 32px; }
.header-contact { display:none; }
.nav { gap:4px; padding:8px; background:rgba(18,18,18,.9); border:1px solid #ffffff26; border-radius:14px; box-shadow:0 8px 28px #0003; backdrop-filter:blur(12px); }
.nav a:not(.nav-cta) { display:flex; align-items:center; justify-content:center; min-height:46px; padding:10px 15px; color:#fff; font-size:.94rem; font-weight:600; text-shadow:none; border-radius:8px; transition:background .2s ease,color .2s ease; }
.nav a:not(.nav-cta):hover { background:#ffffff20; color:#fff; }
.nav a:not(.nav-cta).active { background:#fff; color:#181818; }
.nav a:not(.nav-cta)::after { display:none; }
.nav .nav-cta { margin:0 0 0 8px; min-height:46px; padding:12px 22px; border-radius:8px; font-size:.92rem; background:#b63026; color:#fff; }
.nav .nav-cta:hover { background:#94261e; transform:translateY(-1px); }
.nav a:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.nav-toggle { width:46px; height:46px; align-items:center; background:rgba(18,18,18,.92); border:1px solid #ffffff30; border-radius:10px; }
.nav-toggle span,.nav-toggle.open span { background:#fff; box-shadow:none; }
@media (max-width:1100px) and (min-width:901px) {
 .header-inner { padding:16px 22px; gap:18px; }
 .nav a:not(.nav-cta) { padding:10px 10px; font-size:.88rem; }
 .nav .nav-cta { padding:12px 16px; }
}
@media (max-width:900px) {
 .header-inner { padding:14px 22px; }
 .nav { width:min(340px,88vw); height:100dvh; padding:90px 26px 35px; gap:10px; border-radius:0; background:#181818; backdrop-filter:none; justify-content:flex-start; overflow-y:auto; }
 .nav a:not(.nav-cta) { justify-content:flex-start; width:100%; padding:13px 18px; font-size:1.1rem; min-height:50px; color:#fff; }
 .nav a:not(.nav-cta):hover { color:#fff; }
 .nav a:not(.nav-cta).active { color:#181818; }
 .nav .nav-cta { width:100%; margin:14px 0 0; }
}
@media (prefers-reduced-motion:reduce) { .nav a { transition:none; } }

/* Navegación editorial blanca, integrada con la identidad del restaurante. */
.site-header,.site-header.scrolled { position:absolute; top:22px; left:0; right:0; padding:0 28px; background:transparent; }
.header-inner { max-width:1220px; min-height:90px; padding:10px 18px 10px 22px; gap:32px; background:#fff; border-radius:6px; box-shadow:0 12px 36px #0002; }
.brand { flex-shrink:0; }
.brand-logo { width:80px; height:80px; object-fit:contain; }
.brand:hover .brand-logo { transform:scale(1.04); box-shadow:none; }
.nav { position:static; display:flex; gap:12px; padding:0; background:transparent; border:0; box-shadow:none; backdrop-filter:none; border-radius:0; }
.nav a:not(.nav-cta) { position:relative; color:#393939; font-size:.95rem; font-weight:500; letter-spacing:.01em; min-height:48px; padding:12px 14px; border-radius:0; background:transparent; }
.nav a:not(.nav-cta):hover,.nav a:not(.nav-cta).active { color:var(--fuego); background:transparent; }
.nav a:not(.nav-cta)::after { content:''; display:block; position:absolute; bottom:6px; left:14px; width:calc(100% - 28px); height:2px; background:var(--fuego); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.nav a:not(.nav-cta):hover::after,.nav a:not(.nav-cta).active::after { transform:scaleX(1); }
.nav .nav-cta { min-height:50px; margin-left:20px; padding:13px 24px; border-radius:4px; gap:20px; font-size:.9rem; background:var(--fuego); box-shadow:none; }
.nav .nav-cta span { font-size:1.15rem; transition:transform .25s ease; }
.nav .nav-cta:hover span { transform:translate(2px,-2px); }
.nav a:focus-visible { outline:2px solid var(--fuego); outline-offset:4px; }
.nav-toggle { border:0; background:#f3f3f3; border-radius:4px; }
.nav-toggle span,.nav-toggle.open span { background:#181818; }
@media (max-width:1100px) and (min-width:901px) {
 .nav { gap:3px; }
 .nav a:not(.nav-cta) { padding:12px 10px; font-size:.88rem; }
 .nav .nav-cta { margin-left:8px; padding:12px 18px; }
 .header-inner { gap:18px; }
}
@media (max-width:900px) {
 .site-header,.site-header.scrolled { top:14px; padding:0 16px; }
 .header-inner { padding:6px 12px; min-height:76px; }
 .brand-logo { width:64px; height:64px; }
 .nav { position:fixed; top:0; right:0; width:min(360px,90vw); height:100dvh; padding:110px 28px 32px; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:10px; background:#fff; box-shadow:-15px 0 50px #0002; overflow-y:auto; }
 .nav a:not(.nav-cta) { justify-content:flex-start; font-family:var(--font-display); font-size:1.65rem; min-height:56px; padding:12px 16px; color:#292929; }
 .nav a:not(.nav-cta):hover,.nav a:not(.nav-cta).active { color:var(--fuego); }
 .nav a:not(.nav-cta)::after { left:16px; width:32px; bottom:5px; }
 .nav .nav-cta { margin:24px 0 0; width:100%; min-height:54px; }
 .nav-toggle { position:relative; }
}

/* Menú lateral desplegable en todas las pantallas. */
.site-header,.site-header.scrolled { top:20px; padding:0 24px; }
.header-inner { max-width:none; min-height:0; padding:0; background:transparent; border-radius:0; box-shadow:none; }
.nav-toggle { position:fixed; top:24px; right:24px; display:flex; width:54px; height:54px; align-items:center; justify-content:center; background:#fff; border:0; border-radius:8px; box-shadow:0 4px 18px #0003; z-index:110; }
.nav-toggle span { width:24px; }
.nav { position:fixed; top:0; right:0; width:min(420px,90vw); height:100vh; height:100dvh; padding:110px 32px 36px; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:12px; background:#fff; border:0; border-radius:0; box-shadow:-15px 0 50px #0002; overflow-y:auto; transform:translateX(100%); visibility:hidden; transition:transform .4s var(--ease),visibility .4s; z-index:105; }
.nav.open { transform:translateX(0); visibility:visible; }
.nav a:not(.nav-cta) { justify-content:flex-start; font-family:var(--font-display); font-size:1.7rem; min-height:56px; padding:12px 16px; color:#292929; }
.nav a:not(.nav-cta):hover,.nav a:not(.nav-cta).active { color:var(--fuego); }
.nav a:not(.nav-cta)::after { left:16px; width:32px; bottom:5px; }
.nav .nav-cta { margin:24px 0 0; width:100%; min-height:54px; }
@media (max-width:640px) { .site-header,.site-header.scrolled { top:16px; padding:0 16px; } .nav-toggle { top:18px; right:16px; } .nav { padding-left:24px; padding-right:24px; } }
@media (prefers-reduced-motion:reduce) { .nav { transition:none; } }

/* Preguntas frecuentes: acordeón nativo, accesible con teclado. */
#preguntas { scroll-margin-top:40px; }
.faq { padding:70px 0 100px; background:#fff; }
.faq-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:start; }
.faq-heading h2 { font-size:clamp(2.25rem,4.5vw,4rem); line-height:1.08; }
.faq-heading>p:last-child { color:var(--text-muted); font-size:.88rem; max-width:280px; margin-top:24px; }
.faq-items { display:grid; gap:12px; }
.faq-item { background:#f6f6f6; border-radius:8px; }
.faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px; cursor:pointer; list-style:none; font-size:1rem; font-weight:600; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:hover { color:var(--fuego); }
.faq-item summary:focus-visible { outline-offset:3px; border-radius:8px; }
.faq-plus { position:relative; width:20px; height:20px; flex-shrink:0; }
.faq-plus::before,.faq-plus::after { content:''; position:absolute; top:9px; left:2px; width:16px; height:2px; background:currentColor; }
.faq-plus::after { transform:rotate(90deg); transition:transform .25s ease; }
.faq-item[open] .faq-plus::after { transform:rotate(0); }
.faq-item[open] summary { color:var(--fuego); }
.faq-answer { padding:0 24px 24px; color:var(--text-muted); font-size:.92rem; line-height:1.85; }
.faq-answer .text-link { margin-top:14px; color:var(--fuego); }
@media (max-width:900px) { .faq-layout { grid-template-columns:1fr; gap:32px; } }
@media (max-width:640px) { .faq { padding:45px 0 65px; } .faq-item summary { padding:20px; font-size:.94rem; } .faq-answer { padding:0 20px 20px; } }

/* Apertura del panel: fondo gradual y enlaces escalonados. */
.nav-overlay { background:rgba(0,0,0,.62); transition:opacity .45s ease; }
@media (prefers-reduced-motion:no-preference) {
 .nav a { opacity:0; transform:translateX(22px); transition:opacity .22s ease,transform .22s ease,background .2s ease,color .2s ease; }
 .nav.open a { opacity:1; transform:translateX(0); transition-duration:.38s; transition-delay:calc(100ms + var(--nav-order,0) * 55ms); }
 .nav a:nth-child(1) { --nav-order:0; }
 .nav a:nth-child(2) { --nav-order:1; }
 .nav a:nth-child(3) { --nav-order:2; }
 .nav a:nth-child(4) { --nav-order:3; }
 .nav a:nth-child(5) { --nav-order:4; }
 .nav a:nth-child(6) { --nav-order:5; }
 .nav a:nth-child(7) { --nav-order:6; }
 .faq-item[open] .faq-answer { animation:faq-answer-in .28s ease both; }
}
@keyframes faq-answer-in { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce) { .nav-overlay,.nav a,.faq-plus::after { transition:none; } .nav a { opacity:1; transform:none; } }

/* La portada permanece detrás del contenido durante el desplazamiento. */
html,body { overflow-x:clip; }
main { position:relative; isolation:isolate; }
main>.hero { position:sticky; top:0; z-index:0; }
main>section:not(.hero) { position:relative; z-index:1; background:#fff; }
.about-offer { box-shadow:0 -20px 45px -30px #0008; }
.site-footer { position:relative; z-index:1; }
@media (prefers-reduced-motion:reduce) { main>.hero { position:relative; } }

/* Bloque independiente de preguntas frecuentes dentro de la página. */
.faq { padding:100px 0 120px; margin:35px 0 45px; }
.faq-layout { max-width:900px; grid-template-columns:1fr; gap:42px; }
.faq-heading { text-align:center; }
.faq-heading h2 { font-size:clamp(2.2rem,4.5vw,3.8rem); }
.faq-heading>p:last-child { max-width:560px; margin:22px auto 0; line-height:1.8; }
.faq-items { gap:16px; }
.faq-item summary { padding:26px 28px; }
.faq-answer { padding:0 28px 28px; }
@media (max-width:640px) {
 .faq { padding:65px 0 75px; margin:15px 0 25px; }
 .faq-layout { gap:30px; }
 .faq-item summary { padding:22px 20px; }
 .faq-answer { padding:0 20px 22px; }
}

/* Las fotos entran lateralmente al llegar a la galería. */
@media (prefers-reduced-motion:no-preference) {
 .gallery-slot[data-reveal] { --gallery-entry:90px; transition:opacity .85s ease,transform 1.1s var(--ease); }
 .gallery-slot--large[data-reveal] { --gallery-entry:-90px; }
 .reveal-ready .gallery-slot[data-reveal]:not(.in-view) { opacity:0; transform:translateX(var(--gallery-entry)); }
 .reveal-ready .gallery-slot[data-reveal].in-view { opacity:1; transform:translateX(0); }
}
@media (max-width:640px) and (prefers-reduced-motion:no-preference) {
 .gallery-slot[data-reveal] { --gallery-entry:36px; }
 .gallery-slot--large[data-reveal] { --gallery-entry:-36px; }
}

/* Entrada de horarios: columnas laterales y días en secuencia. */
@media (prefers-reduced-motion:no-preference) {
 .hours-lead[data-reveal],.hours-list[data-reveal] { transition:opacity .8s ease,transform 1s var(--ease); }
 .reveal-ready .hours-lead[data-reveal]:not(.in-view) { opacity:0; transform:translateX(-60px); }
 .reveal-ready .hours-list[data-reveal]:not(.in-view) { opacity:0; transform:translateX(60px); }
 .reveal-ready .hours-lead.in-view,.reveal-ready .hours-list.in-view { opacity:1; transform:translateX(0); }
 .reveal-ready .hours-list .hours-row { opacity:0; transform:translateY(16px); transition:opacity .5s ease,transform .65s var(--ease); }
 .reveal-ready .hours-list.in-view .hours-row { opacity:1; transform:translateY(0); transition-delay:calc(180ms + var(--day-order,0) * 85ms); }
 .hours-row:nth-child(1) { --day-order:0; }
 .hours-row:nth-child(2) { --day-order:1; }
 .hours-row:nth-child(3) { --day-order:2; }
 .hours-row:nth-child(4) { --day-order:3; }
 .hours-row:nth-child(5) { --day-order:4; }
 .hours-row:nth-child(6) { --day-order:5; }
 .hours-row:nth-child(7) { --day-order:6; }
}
@media (max-width:640px) and (prefers-reduced-motion:no-preference) {
 .reveal-ready .hours-lead[data-reveal]:not(.in-view) { transform:translateX(-28px); }
 .reveal-ready .hours-list[data-reveal]:not(.in-view) { transform:translateX(28px); }
}

/* Fotografía final centrada, conservando toda la composición original. */
.faq-photo { width:100%; max-width:736px; margin:8px auto 0; }
.faq-photo img { display:block; width:100%; height:auto; aspect-ratio:736 / 981; border-radius:8px; }
@media (max-width:640px) { .faq-photo { margin-top:0; } }

/* Cartas fotográficas superpuestas. Sin JavaScript se muestran en una grilla. */
.dish-carousel { width:100%; min-width:0; margin-top:24px; }
.dish-deck { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.dish-card { margin:0; min-width:0; overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 14px 35px #0002; }
.dish-card img { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; }
.dish-card figcaption { padding:18px 20px; font-family:var(--font-display); font-size:1.15rem; }
.dish-carousel.is-ready .dish-deck { display:block; position:relative; height:570px; perspective:1200px; touch-action:pan-y; }
.is-ready .dish-card { position:absolute; top:30px; left:50%; width:min(62%,350px); transform:translateX(calc(-50% + var(--offset))) translateY(var(--lift)) rotate(var(--angle)) scale(var(--scale)); opacity:var(--opacity); z-index:var(--layer); transition:transform .65s var(--ease),opacity .45s ease; pointer-events:none; }
.is-ready .dish-card img { transform:scale(1.04) translate(var(--image-x,0px),var(--image-y,0px)); transition:transform .35s ease-out; }
.dish-controls { display:flex; justify-content:center; align-items:center; gap:26px; margin-top:20px; }
.dish-controls button { width:54px; height:54px; border:1px solid #dedede; border-radius:50%; font-size:1.6rem; background:#fff; transition:background .2s,color .2s; }
.dish-controls button:hover { background:var(--fuego); color:#fff; }
.dish-count { min-width:60px; text-align:center; color:var(--text-muted); font-size:.85rem; font-variant-numeric:tabular-nums; }
@media (max-width:640px) { .dish-carousel.is-ready .dish-deck { height:clamp(340px,105vw,510px); } .dish-card figcaption { padding:14px 12px; font-size:.95rem; } .is-ready .dish-card { width:68%; } }
@media (prefers-reduced-motion:reduce) { .dish-card,.is-ready .dish-card img,.dish-controls button { transition:none; } }

/* Correcciones de adaptación móvil verificadas en pantallas estrechas. */
.faq { margin:0; }
@media (max-width:640px) {
 .hero { height:auto; min-height:0; padding-top:90px; background:#fff; }
 .hero-photo { height:auto; aspect-ratio:1717 / 916; object-fit:contain; }
 .menu-filter { min-height:44px; }
 .form-field input,.form-field textarea,.menu-search input { font-size:16px; }
 .form-field,.reservas-inner,.hours-grid,.location-card { min-width:0; }
 .dish-carousel { --card-spread:14%; }
 .dish-carousel.is-ready .dish-deck { height:clamp(355px,105vw,510px); }
 .faq { margin:0; }
 .nav { padding-bottom:max(36px,env(safe-area-inset-bottom)); }
 .whatsapp-float { bottom:max(16px,env(safe-area-inset-bottom)); }
}
@media (max-width:360px) {
 .location-actions { grid-template-columns:1fr; }
 .location-actions .btn:first-child { grid-column:auto; }
 .footer-grid { grid-template-columns:1fr; }
 .footer-brand { grid-column:auto; }
 .hours-status { gap:12px; padding:22px 16px; }
 .hours-row { padding:14px 12px; }
}
@media (max-width:640px) {
 .dish-carousel.is-ready .dish-deck { overflow:clip; }
}
