/* ───────────────────────────────────────────────────────────────────────────
   miski.css — identidad de Miski Mikuy encima de base.css.

   Paleta primaria = la del logo oficial (carmín, azul rótulo, blanco). Paleta
   de soporte = la del estudio de marca, sacada del mural del local (noche de
   selva, crema de maíz, verde otorongo, ámbar jaguar). Tipografía: DM Serif
   Display para lo destacado, Jost para lo funcional (SPEC §1).

   base.css sigue mandando en las clases de CONTRATO con la Suite (article.dish,
   .price, section.menusec, .dgroup…): aquí solo se recolorean.
   ─────────────────────────────────────────────────────────────────────────── */

:root{
  --carmin:#BC1031;
  --azul:#2E4B9F;
  --blanco:#FFFFFF;
  --noche:#0E1413;
  --noche-2:#101917;
  --noche-3:#14201E;
  --crema:#F2EAD9;
  --crema-suave:#C9C0AC;
  --piedra:#8E8776;
  --verde:#314747;
  --ambar:#D9964A;

  /* Se pisan las variables de base.css para que las páginas de carta y menú
     hereden la identidad sin reescribir sus reglas. */
  --fondo:var(--noche);
  --papel:var(--noche-2);
  --tinta:var(--crema);
  --suave:var(--crema-suave);
  --acento:var(--carmin);
  --oro:var(--ambar);
  --linea:rgba(242,234,217,.14);
  --serif:'DM Serif Display',Georgia,serif;
  --sans:Jost,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ancho:1160px;
}

body{font-weight:300;}
::selection{background:var(--carmin);color:var(--crema);}
a{color:var(--ambar);}
a:hover{color:var(--crema);}

/* ── Cargador (RF-M16) ──────────────────────────────────────────────────── */
/* Solo existe con html.cargando (lo pone un script inline en <head>, y solo sin
   «reducir movimiento»). Fondo = el carmín exacto del sello; el vídeo del logo va
   recortado a su disco (radio 412/1024 = 40,25 %), así el disco se funde con el
   fondo y solo se ven la luna y las letras transformándose. */
.cargador{display:none;}
html.cargando{overflow:hidden;}
html.cargando .cargador,html.cargado .cargador{
  display:flex;align-items:center;justify-content:center;position:fixed;inset:0;z-index:100;
  background:var(--carmin);
}
/* El disco: envoltorio circular que recorta el vídeo (overflow, no clip-path). El
   vídeo mide 1/0,788 del disco, porque el disco del logo ocupa el 78,8 % del
   fotograma (radio 412/1024·2); se recorta medio punto por dentro del borde para
   que el antialias comprimido (un anillo oscuro) no se vea sobre el rojo. */
.cargador-disco{
  width:min(56vmin,440px);aspect-ratio:1;border-radius:50%;overflow:hidden;position:relative;
  will-change:transform;transform-origin:50% 50%;
}
.cargador-sello{
  position:absolute;width:127.5%;height:127.5%;left:-13.75%;top:-13.75%;display:block;object-fit:contain;
}
.cargador.cerrando{transition:clip-path .95s cubic-bezier(.65,0,.35,1);will-change:clip-path;}
.cargador.cerrando .cargador-disco{transition:transform .95s cubic-bezier(.65,0,.35,1);}
.cargador.fuera{opacity:0;transition:opacity .6s ease;pointer-events:none;}
/* Mientras el cargador manda, el sello del hero (vídeo con blend, caro de componer)
   queda oculto: si no, durante la transición del rojo el navegador enseña tiles sin
   pintar. Se muestra justo antes de retirar el rojo, cuando el disco del cargador
   ya lo tapa exactamente. */
html.cargando .hero-sello video{visibility:hidden;}
/* El texto del hero espera al cargador y entra al retirarse el rojo. */
html.cargando .hero-texto{opacity:0;}
/* La entrada del texto la hace GSAP (js/miski.js) al retirarse el cargador. */
.hero-texto h1 .linea{display:block;overflow:hidden;}
.hero-texto h1 .linea>span{display:block;}

/* ── Música de la casa (RF-M20) ─────────────────────────────────────────── */
/* Botón fijo abajo a la izquierda. Mientras el hero está en pantalla, js/miski.js lo
   traslada (transform) hasta el hueco de la fila de botones; al hacer scroll vuelve a
   su esquina. Sin JS o con «reducir movimiento», se queda en la esquina. */
.musica-hueco{display:inline-block;width:48px;height:48px;align-self:center;}
.musica{
  position:fixed;left:22px;bottom:22px;z-index:60;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(242,234,217,.45);background:rgba(14,20,19,.72);backdrop-filter:blur(8px);
  color:var(--crema);cursor:pointer;display:grid;place-items:center;padding:0;
  transition:background .3s,border-color .3s,box-shadow .3s;will-change:transform;
}
.musica:hover{border-color:var(--crema);background:rgba(14,20,19,.9);}
.musica:focus-visible{outline:2px solid var(--ambar);outline-offset:3px;}
.musica[aria-pressed="true"]{background:var(--carmin);border-color:var(--carmin);box-shadow:0 0 0 6px rgba(188,16,49,.18);}
.musica .musica-nota,.musica .musica-ondas{grid-area:1/1;}
.musica .musica-ondas{display:none;align-items:flex-end;gap:3px;height:18px;}
.musica .musica-ondas i{display:block;width:3px;height:6px;background:var(--crema);border-radius:2px;animation:musicaOnda 1s ease-in-out infinite;}
.musica .musica-ondas i:nth-child(2){animation-delay:.15s}.musica .musica-ondas i:nth-child(3){animation-delay:.3s}.musica .musica-ondas i:nth-child(4){animation-delay:.45s}
@keyframes musicaOnda{0%,100%{height:5px}50%{height:18px}}
.musica[aria-pressed="true"] .musica-nota{display:none;}
.musica[aria-pressed="true"] .musica-ondas{display:flex;}
.musica-pista{
  position:fixed;left:84px;bottom:30px;z-index:60;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--crema);background:rgba(14,20,19,.82);padding:7px 12px;
  opacity:0;transform:translateX(-8px);transition:opacity .4s,transform .4s;pointer-events:none;
}
.musica-pista.visible{opacity:1;transform:none;}
@media (max-width:720px){.musica{bottom:74px;}.musica-pista{bottom:82px;left:80px;}}
@media (prefers-reduced-motion:reduce){.musica .musica-ondas i{animation:none;height:10px;}}

/* ── Cabecera ───────────────────────────────────────────────────────────── */
header.sitio{
  position:fixed;left:0;right:0;top:0;z-index:50;
  background:rgba(14,20,19,.72);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(242,234,217,.1);
}
header.sitio .envoltorio{height:72px;}
/* Barra sin logo (hotfix 11/09/2026): el menú ocupa el sitio de la marca y «Reservar»
   se queda solo en el borde derecho. */
header.sitio nav{margin-left:0;flex:1;justify-content:flex-start;gap:clamp(6px,2vw,22px);align-items:center;}
header.sitio nav a.reservar{margin-left:auto;}
header.sitio nav a{
  color:var(--crema-suave);font-weight:400;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;border-radius:0;padding:8px 6px;text-decoration:none;
}
header.sitio nav a:hover{color:var(--crema);}
header.sitio nav a[aria-current="page"]{background:none;color:var(--crema);}
header.sitio nav a.reservar{background:var(--carmin);color:var(--crema);padding:10px 18px;}
header.sitio nav a.reservar:hover{filter:brightness(1.12);}

/* ── Hero de marca (RF-M01…M04) ─────────────────────────────────────────── */
.hero-marca{
  position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;
  padding:112px 0 64px;text-align:left;
}
/* Dos discos tenues detrás del sello, como en el prototipo: dan aire al vídeo
   sin añadir nada que no sea la propia forma del logo. */
.hero-marca::before,.hero-marca::after{
  content:"";position:absolute;top:50%;border-radius:50%;transform:translateY(-50%);pointer-events:none;
  /* Detrás del contenido con z-index negativo (la sección no crea contexto de
     apilamiento, así que caen bajo su fondo transparente y sobre el del body).
     Antes se resolvía con z-index:1 en .envoltorio, pero ese contexto de
     apilamiento aislaba el mix-blend-mode del sello y el cuadrado del vídeo
     quedaba 3 niveles más oscuro que el fondo. */
  z-index:-1;
}
/* Sin marca de agua en el hero (la medialuna vive en Destacados). */
.hero-marca::before,.hero-marca::after{display:none;}
/* RF-M19: vídeo de fondo. Va a z-index:-2 con un velo de noche encima para que sello y
   textos sigan leyéndose. */
.hero-fondo{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none;}
.hero-fondo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block;transform:scale(1.02);}
.hero-fondo .velo{
  position:absolute;inset:0;
  /* Hotfix 11/09/2026: solo se sombrean los BORDES; el centro del vídeo queda con sus colores
     vivos, sin desenfoque. Viñeta radial + un poco más de sombra bajo la cabecera y el pie. */
  background:radial-gradient(ellipse 62% 58% at 50% 46%,rgba(14,20,19,0) 0%,rgba(14,20,19,0) 42%,rgba(14,20,19,.55) 78%,rgba(14,20,19,.9) 100%),
             linear-gradient(180deg,rgba(14,20,19,.55) 0%,rgba(14,20,19,0) 22%,rgba(14,20,19,0) 74%,rgba(14,20,19,.8) 100%);
}
@media (max-width:720px){.hero-fondo .velo{background:radial-gradient(ellipse 70% 52% at 50% 45%,rgba(14,20,19,0) 0%,rgba(14,20,19,0) 40%,rgba(14,20,19,.6) 80%,rgba(14,20,19,.92) 100%),linear-gradient(180deg,rgba(14,20,19,.6) 0%,rgba(14,20,19,0) 24%,rgba(14,20,19,0) 70%,rgba(14,20,19,.88) 100%);}}
/* El hero no usa el ancho máximo de la página: el texto va siempre pegado al borde
   izquierdo de la ventana con el margen de la casa. */
.hero-marca .envoltorio{
  position:relative;width:100%;max-width:none;display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:clamp(30px,5vw,60px);padding:0 clamp(20px,4vw,56px);
}
.hero-marca{align-items:stretch;}
.hero-texto{align-self:flex-end;}
.hero-sello{align-self:center;}
.hero-texto{flex:1 1 380px;min-width:0;}
.hero-texto .sobre{color:var(--ambar);font-weight:500;letter-spacing:.32em;}
.hero-texto h1{
  font-family:var(--serif);font-weight:400;margin:18px 0 0;
  font-size:clamp(52px,8vw,110px);line-height:.98;letter-spacing:-.01em;color:var(--crema);
}
.hero-texto h1 em{font-style:italic;}
.hero-texto p{margin:22px 0 0;max-width:480px;font-size:clamp(16px,1.9vw,19px);line-height:1.55;color:#E4DCC9;}
.hero-texto p em{font-family:var(--serif);font-style:italic;color:var(--crema);}
.hero-texto p em.quechua{color:#D98A6E;}
.hero-texto .botones{justify-content:flex-start;margin-top:30px;}

/* El sello: un cuadrado 1:1 cuyo fondo es el mismo de la página, así el vídeo
   no tiene marco y el logo parece flotar. */
.hero-sello{
  /* hotfix 11/09: aire al lateral derecho en escritorio (el rótulo en órbita sobresale un 15 % del disco) */
  flex:0 1 auto;margin:0 clamp(48px,9vw,170px) 0 auto;display:flex;flex-direction:column;align-items:center;gap:14px;
}
/* El lienzo ES el disco del sello: recorte circular con overflow (como el disco del
   cargador), así el cuadrado oscuro del mp4 no existe y el sello funciona sobre
   cualquier fondo, incluido el vídeo del hero. El vídeo mide 1/0,788 del disco
   (radio 412/1024·2 = 78,8 % del fotograma) y se recorta medio punto por dentro. */
.hero-sello .lienzo{
  position:relative;width:clamp(230px,30vw,400px);aspect-ratio:1;border-radius:50%;overflow:hidden;
  will-change:transform;box-shadow:0 30px 80px rgba(0,0,0,.45);
}
.hero-sello video,.hero-sello .estatico{
  position:absolute;width:127.5%;height:127.5%;left:-13.75%;top:-13.75%;display:block;object-fit:contain;
}
.hero-sello .estatico{display:none;width:106.7%;height:106.7%;left:-3.35%;top:-3.35%;}
/* El rótulo orbita el disco: svg cuadrado un 30 % mayor que el lienzo, centrado sobre él. */
.hero-sello{position:relative;}
.hero-sello .orbita{
  position:absolute;left:-15%;top:-15%;width:130%;height:auto;aspect-ratio:1;
  pointer-events:none;overflow:visible;will-change:transform;
}
.hero-sello .orbita text{
  font-family:var(--sans);font-weight:500;font-size:9.8px;letter-spacing:.3em;text-transform:uppercase;fill:var(--crema-suave);
}
.hero-sello .pie{display:none;}
@media (max-width:720px){.hero-sello{margin:7vw auto 9vw;}}

/* RF-M02: con «reducir movimiento» no hay vídeo, hay logo. El <script> del
   hero además no llega a asignar el src, así que tampoco se descarga. */
@media (prefers-reduced-motion:reduce){
  .hero-sello video{display:none;}
  .hero-sello .estatico{display:block;}
  html{scroll-behavior:auto;}
}
.hero-sello.sin-video video{display:none;}
.hero-sello.sin-video .estatico{display:block;}

.hero-marca .desliza{
  position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(242,234,217,.65);
}

/* ── Botones ────────────────────────────────────────────────────────────── */
.boton{
  border-radius:0;font-weight:400;font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  padding:14px 22px;background:none;border:1px solid rgba(242,234,217,.45);color:var(--crema);
}
.boton:hover{border-color:var(--crema);background:rgba(242,234,217,.08);}
.boton.primario{background:var(--carmin);border-color:var(--carmin);color:var(--crema);}
.boton.primario:hover{filter:brightness(1.12);}
.boton.wa{background:#25D366;border-color:#25D366;color:#0C2912;}

/* ── Kickers y titulares comunes ────────────────────────────────────────── */
.sobre{
  display:flex;align-items:center;gap:16px;font-weight:500;font-size:12px;
  letter-spacing:.32em;text-transform:uppercase;color:#D6405C;margin-bottom:26px;
}
.sobre::after{content:"";flex:1;height:1px;background:currentColor;opacity:.25;}
.sobre.terracota{color:var(--terracota-claro);}
.sobre.carmin{color:#A01029;}
main h2{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.5vw,56px);line-height:1.08;margin:0;color:var(--crema);}
main h2 em{font-style:italic;}
main section p{font-size:17px;line-height:1.65;}

/* ── La casa: panel verde otorongo con el mural (RF-M10) ────────────────── */
:root{--terracota:#C06046;--terracota-claro:#D98A6E;--verde-2:#2A3D3D;--tinta-papel:#2A2420;--suave-papel:#6B6154;}
.panel-verde{background:var(--verde);color:var(--crema);overflow:hidden;position:relative;}
/* Hotfix 11/09/2026: la foto del local de fondo en La casa (RF-M10 ampliado). Va dentro del
   .pegajoso para viajar anclada con la sección en escritorio; el velo verde mantiene el
   contraste del texto y deja ver el rótulo del sello y el mural. */
.casa-anclada .pegajoso{position:relative;}
.casa-fondo{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.casa-fondo img{width:100%;height:100%;object-fit:cover;object-position:60% 48%;display:block;}
.casa-velo{
  position:absolute;inset:0;
  /* Velo NEUTRO (noche, no verde: el verde teñía de turquesa el mural). Sobre la zona del mural
     (izquierda-abajo) casi no hay velo, con borde difuminado; bajo el texto (derecha) es denso. */
  background:radial-gradient(ellipse 34% 50% at 26% 70%,rgba(14,20,19,0) 0%,rgba(14,20,19,0) 55%,rgba(14,20,19,.45) 100%),
             linear-gradient(90deg,rgba(14,20,19,.28) 0%,rgba(14,20,19,.5) 44%,rgba(14,20,19,.86) 100%),
             linear-gradient(180deg,rgba(14,20,19,.4),rgba(14,20,19,0) 28%,rgba(14,20,19,0) 72%,rgba(14,20,19,.35));
  background-blend-mode:normal;
}
.casa-anclada .envoltorio{position:relative;z-index:1;}
@media (max-width:720px){.casa-velo{background:linear-gradient(180deg,rgba(14,20,19,.82),rgba(14,20,19,.66) 50%,rgba(14,20,19,.84));}}
.panel-verde .envoltorio{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);
  align-items:center;padding-top:clamp(64px,8vw,110px);padding-bottom:clamp(64px,8vw,110px);
}
.panel-verde p{color:#E4DCC9;max-width:52ch;margin:24px 0 0;}
.panel-verde .chips{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.panel-verde .chips li{
  border:1px solid rgba(242,234,217,.3);padding:8px 14px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--crema-suave);
}
.panel-foto{margin:0;position:relative;}
.panel-foto .mural-lienzo{position:relative;aspect-ratio:4/3;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.35);background:var(--verde-2);}
.panel-foto img,.panel-foto video{width:100%;height:100%;object-fit:cover;object-position:62% 30%;display:block;}
.panel-foto video{position:absolute;inset:0;}
/* Mural animado: vídeo si se puede, foto si no (reduced-motion, error, sin src). */
.panel-foto .estatico{display:none;}
.panel-foto .sin-video video{display:none;}
.panel-foto .sin-video .estatico{display:block;}
@media (prefers-reduced-motion:reduce){
  .panel-foto video{display:none;}
  .panel-foto .estatico{display:block;}
}
.panel-foto figcaption{margin-top:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--crema-suave);}

/* RF-M11: la casa anclada. El anclaje (pin) y la transición los hace ScrollTrigger en
   js/miski.js; aquí solo la forma del contenedor que se fija una pantalla. Sin JS o
   sin movimiento, es un panel normal. */
/* Hotfix 11/09 (móvil): el anclaje de La casa vale en TODAS las pantallas con movimiento, también
   en el teléfono; en móvil el texto sale del anclaje a un bloque debajo (js/miski.js) y el vídeo
   va en bucle (el scrub por currentTime no va fino en iOS). */
@media (prefers-reduced-motion:no-preference){
  html.js .casa-anclada{overflow:visible;}
  html.js .casa-anclada .pegajoso{position:relative;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:center;}
  html.js .casa-anclada .pegajoso .envoltorio{padding-top:0;padding-bottom:0;width:100%;}
  /* Hotfix 11/09: el cuadro del mural ATERRIZA sobre el mural real de la foto de fondo. La
     figura va absoluta dentro del .pegajoso y js/miski.js le da la caja exacta de ese mural
     (según cómo recorte object-fit: cover la foto en cada pantalla); el texto pasa a la derecha. */
  html.js .casa-anclada .envoltorio{display:block;}
  html.js .casa-anclada .panel-texto{margin-left:auto;width:min(560px,46%);text-shadow:0 2px 22px rgba(0,0,0,.5);}
  html.js .casa-anclada .panel-foto{position:absolute;z-index:2;margin:0;}
  html.js .casa-anclada .mural-lienzo{
    transform-origin:50% 50%;will-change:transform;max-height:none;aspect-ratio:auto;width:100%;height:100%;box-shadow:none;
    /* Hotfix 11/09: al acabar la transición el cuadro se DIFUMINA en los bordes hasta transparente y
       se funde con la pintura de la pared. --r es el radio de la máscara: enorme al principio (sin
       pluma, el cuadro llena la pantalla) y 58 % al final; lo anima js/miski.js. */
    --r:400%;
    -webkit-mask-image:radial-gradient(ellipse var(--r) var(--r) at 50% 50%,#000 46%,rgba(0,0,0,0) 100%);
    mask-image:radial-gradient(ellipse var(--r) var(--r) at 50% 50%,#000 46%,rgba(0,0,0,0) 100%);
  }
  html.js .casa-anclada .panel-foto figcaption{display:none;}
  html.js .casa-anclada .mural-lienzo video{object-fit:fill;} /* el estirado vertical del ajuste fino (js) */
}
/* Tablet en VERTICAL (y cualquier ventana más alta que ancha) con el anclaje activo: la foto
   se recorta a lo ancho y el mural quedaría fuera por la izquierda. Se corre la foto para que
   el mural entre (object-position 10 %; js/miski.js lee ese valor), el texto va ARRIBA a todo
   el ancho y el cuadro aterriza debajo, en la mitad baja. */
@media (prefers-reduced-motion:no-preference) and (max-aspect-ratio:1/1){
  html.js .casa-anclada .casa-fondo img{object-position:10% 48%;}
  html.js .casa-anclada .pegajoso{align-items:flex-start;}
  html.js .casa-anclada .pegajoso .envoltorio{padding-top:clamp(84px,11vh,140px);}
  html.js .casa-anclada .panel-texto{margin:0;width:100%;max-width:640px;}
  html.js .casa-anclada .casa-velo{
    background:radial-gradient(ellipse 60% 32% at 40% 68%,rgba(14,20,19,0) 0%,rgba(14,20,19,0) 55%,rgba(14,20,19,.45) 100%),
               linear-gradient(180deg,rgba(14,20,19,.9) 0%,rgba(14,20,19,.82) 42%,rgba(14,20,19,.3) 62%,rgba(14,20,19,.35) 100%);
  }
  html.js .casa-anclada .panel-texto{will-change:opacity,transform;}
}
/* Móvil anclado: sin texto dentro (va debajo), velo ligero para que la foto y el mural luzcan. */
@media (max-width:720px) and (prefers-reduced-motion:no-preference){
  html.js .casa-anclada .casa-velo{
    background:radial-gradient(ellipse 70% 40% at 45% 62%,rgba(14,20,19,0) 0%,rgba(14,20,19,0) 50%,rgba(14,20,19,.4) 100%),
               linear-gradient(180deg,rgba(14,20,19,.55) 0%,rgba(14,20,19,.15) 30%,rgba(14,20,19,.15) 75%,rgba(14,20,19,.55) 100%);
  }
  html.js .casa-anclada .casa-fondo img{object-position:14% 48%;} /* el mural, centrado en el teléfono */
  html.js .casa-anclada .casa-texto-movil{position:relative;z-index:1;padding:44px 20px 56px;}
  html.js .casa-anclada .casa-texto-movil .panel-texto{width:auto;max-width:none;margin:0;text-shadow:none;}
}

/* ── Destacados: platos de la casa (RF-M05, RF-M09, RF-M14, RF-M26) ───────── */
/* Base = apilado (móvil, sin JS, «reducir movimiento»). El recorrido a pantalla
   completa se activa solo con html.js en escritorio con movimiento: los platos se
   apilan y cada uno entra con un círculo que crece desde su disco (js/miski.js),
   la transición del cargador al revés. */
.platos{background:#0A0F0E;position:relative;}
.platos article{box-sizing:border-box;padding:clamp(48px,8vw,90px) 20px;position:relative;overflow:hidden;}
.platos article.intro{display:flex;flex-direction:column;gap:18px;background:#0A0F0E;}
.platos article.intro h2{font-size:clamp(40px,7vw,96px);line-height:1;}
.platos article.intro p{max-width:520px;color:var(--crema-suave);font-size:clamp(15px,1.8vw,18px);margin:0;}
.platos article.intro .desliza{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--piedra);}
/* RF-M26: cada plato es un panel PLANO en un color del logo, como la ventana del cargador.
   Las variables --tinta/--suave/--acento/--gig se ajustan por color; el blanco invierte. */
.platos article.plato{
  display:grid;gap:22px;
  --tinta-plato:var(--crema);--suave-plato:rgba(242,234,217,.84);--acento-plato:var(--crema);--gig:rgba(255,255,255,.22);
}
.platos article.plato.rojo{background:var(--carmin);}
.platos article.plato.azul{background:var(--azul);--acento-plato:#FFD166;}
.platos article.plato.blanco{background:#FFFFFF;--tinta-plato:var(--noche);--suave-plato:#4A4642;--acento-plato:var(--carmin);--gig:rgba(14,20,19,.12);}
.platos .gigante{
  position:absolute;right:12px;top:6px;font-family:var(--serif);font-size:clamp(120px,34vw,200px);line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--gig);pointer-events:none;user-select:none;z-index:0;
}
.platos .texto,.platos figure{position:relative;}
.platos .num{font-family:var(--serif);font-size:16px;letter-spacing:.2em;color:var(--acento-plato);}
.platos h3{
  font-family:var(--serif);font-weight:400;font-style:italic;margin:12px 0 0;
  font-size:clamp(38px,6vw,84px);line-height:1.02;color:var(--tinta-plato);
}
.platos p.voz{
  font-family:var(--serif);font-size:clamp(19px,2vw,26px);line-height:1.3;color:var(--tinta-plato);
  max-width:34ch;margin:22px 0 0;padding-left:18px;border-left:2px solid var(--acento-plato);
}
.platos p.desc{max-width:46ch;color:var(--suave-plato);font-size:clamp(14px,1.5vw,16px);line-height:1.6;margin:16px 0 0;}
/* La foto, recortada sobre transparente (WebP con alfa, hotfix 11/09), se posa en un DISCO:
   ya no es negro con aro, es una sombra circular del propio color del panel —el sitio del
   plato— para que la comida se integre con el rojo, el blanco o el azul. El disco sigue
   siendo el centro del círculo de la transición. */
.platos figure{margin:0;order:-1;display:grid;justify-items:center;gap:14px;}
.platos .disco{
  width:min(80vw,440px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 42%,rgba(0,0,0,.22),rgba(0,0,0,.08) 62%,rgba(0,0,0,0) 72%);
}
.platos .disco img{width:104%;height:104%;max-width:none;object-fit:contain;display:block;filter:drop-shadow(0 26px 34px rgba(0,0,0,.45));}
.platos .disco.contener img{width:112%;height:112%;}
.platos article.plato.blanco .disco{background:radial-gradient(circle at 50% 42%,rgba(46,75,159,.16),rgba(46,75,159,.06) 62%,rgba(46,75,159,0) 72%);}
.platos article.plato.blanco .disco img{filter:drop-shadow(0 26px 34px rgba(14,20,19,.32));}
.platos figcaption{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--suave-plato);text-align:center;}
.platos .pie-pista,.platos .barra{display:none;}
/* Fundido Destacados → Redes: del azul del sexto plato a la noche de Redes. */
.platos .fundido{height:clamp(120px,22vh,240px);background:linear-gradient(180deg,var(--azul) 0%,#1E2F5F 45%,var(--noche) 100%);}
/* La barra y el pie del recorrido cambian de tinta con el panel que manda (data-tono lo
   pone js/miski.js): claros sobre rojo y azul, oscuros sobre el blanco. */
.platos[data-tono="oscuro"]{--ui-platos:var(--crema);}
.platos[data-tono="claro"]{--ui-platos:var(--noche);}

/* Escritorio con JS y movimiento: los platos apilados a pantalla completa; cada uno nace
   recortado a un círculo de radio 0 en el centro de su disco y crece hasta cubrirlo todo
   (js/miski.js). Texto a la izquierda (40 %), el disco a la derecha. */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  html.js .platos .pegajoso{position:relative;height:100vh;height:100svh;overflow:hidden;}
  html.js .platos .pista{position:relative;height:100%;}
  html.js .platos article{position:absolute;inset:0;width:100%;height:100%;padding:clamp(60px,8vh,110px) clamp(24px,6vw,90px);will-change:clip-path;}
  html.js .platos article.intro{justify-content:center;padding-left:clamp(24px,8vw,110px);}
  html.js .platos article.plato{
    display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);align-items:center;gap:clamp(24px,4vw,56px);
  }
  html.js .platos .gigante{
    right:auto;left:clamp(8px,3vw,48px);top:4vh;top:4svh;font-size:clamp(200px,30vw,420px);will-change:transform;
  }
  html.js .platos h3{font-size:clamp(48px,6.4vw,104px);}
  html.js .platos figure{order:0;height:80vh;height:80svh;align-content:center;}
  html.js .platos .disco{width:min(74vh,46vw);width:min(74svh,46vw);will-change:transform;}
  html.js .platos .pie-pista{
    display:flex;position:absolute;left:0;right:0;bottom:10px;padding:0 clamp(24px,7vw,100px) 12px;
    justify-content:space-between;gap:16px;font-size:12px;letter-spacing:.24em;
    text-transform:uppercase;color:var(--ui-platos,var(--piedra));pointer-events:none;z-index:20;transition:color .3s;
  }
  html.js .platos .barra{display:block;position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(127,127,127,.28);z-index:20;transition:opacity .35s;}
  html.js .platos[data-fin] .barra,html.js .platos[data-fin] .pie-pista{opacity:0;}
  html.js .platos .barra div{height:100%;background:var(--ui-platos,var(--carmin));transform:scaleX(0);transform-origin:0 50%;transition:background .3s;}
}

/* ── Parallax (RF-M15): lo anima GSAP; aquí solo los pseudoelementos del hero,
   que leen la variable --py de su section, y la luna del papel. ─────────────── */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
}
.papel{position:relative;overflow:hidden;}
.papel .envoltorio{position:relative;z-index:1;}
.papel .killa{
  position:absolute;right:-6vw;top:50%;width:min(46vw,560px);aspect-ratio:1;margin-top:-23vw;
  pointer-events:none;
  background:
    radial-gradient(circle at 66% 46%,var(--crema) 0 47%,transparent 47.6%),
    radial-gradient(circle at 50% 50%,rgba(42,36,32,.075) 0 49.4%,transparent 50%);
}

/* ── Dónde estamos: papel crema (RF-M10) ────────────────────────────────── */
.papel{background:var(--crema);color:var(--tinta-papel);padding:clamp(64px,8vw,110px) 0;}
.papel h2{color:var(--tinta-papel);}
.papel p{color:#4A423B;max-width:60ch;margin:24px 0 0;}
.papel a{color:#A01029;}
.papel a:hover{color:var(--tinta-papel);}
.papel .datos{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:34px;}
.papel .dato{font-size:15px;line-height:1.6;color:var(--tinta-papel);}
.papel .dato .etq{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--suave-papel);margin-bottom:6px;}
.papel .pendiente{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--suave-papel);}
.papel .botones{justify-content:flex-start;margin-top:34px;}
/* Mapa con el tema de la casa (RF-M18): marco fino sobre el papel, altura acotada. */
.papel .mapa-marco{
  position:relative;margin-top:clamp(30px,4vw,48px);border:1px solid rgba(42,36,32,.18);
  box-shadow:0 18px 50px rgba(42,36,32,.18);isolation:isolate;z-index:0;
}
.papel #mapa{width:100%;height:clamp(320px,48vh,520px);background:#E8DFCB;}
.papel .mapa-etiqueta{
  position:absolute;top:14px;left:14px;z-index:500;display:flex;align-items:center;gap:9px;
  background:rgba(14,20,19,.86);color:var(--crema);padding:9px 14px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;pointer-events:none;
}
.papel .mapa-etiqueta .punto{width:9px;height:9px;border-radius:50%;background:var(--carmin);box-shadow:0 0 10px var(--carmin);}
.papel .boton{border-color:rgba(42,36,32,.45);color:var(--tinta-papel);}
.papel .boton:hover{border-color:var(--tinta-papel);background:rgba(42,36,32,.06);}

/* ── Cierre en carmín ───────────────────────────────────────────────────── */
.cta-final{background:var(--carmin);color:var(--crema);padding:clamp(64px,8vw,110px) 0;text-align:center;}
.cta-final h2{font-size:clamp(40px,6vw,76px);}
.cta-final p{color:rgba(242,234,217,.85);margin:18px auto 0;max-width:46ch;}
.cta-final .botones{justify-content:center;margin-top:32px;}
.cta-final .boton.claro{border-color:rgba(242,234,217,.6);color:var(--crema);}
.cta-final .boton.claro:hover{background:rgba(242,234,217,.12);border-color:var(--crema);}

/* ── Pie ────────────────────────────────────────────────────────────────── */
footer.sitio{color:var(--piedra);font-size:12px;letter-spacing:.18em;text-transform:uppercase;}
footer.sitio .envoltorio{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;}
footer.sitio .marca{display:flex;align-items:center;gap:10px;color:var(--crema-suave);}
footer.sitio .marca img{width:26px;height:26px;}
footer.sitio a{color:var(--ambar);text-decoration:none;}
footer.sitio a:hover{color:var(--crema);}
footer.sitio .legal{width:100%;margin-top:6px;font-size:11px;letter-spacing:.12em;opacity:.7;}

/* ── Móvil ──────────────────────────────────────────────────────────────── */
@media (max-width:720px){
  header.sitio .envoltorio{height:auto;padding-top:10px;padding-bottom:10px;}
  /* Sin logo, en móvil la barra la llenan los enlaces útiles + «Reservar»: los
     secundarios (data-sec) se caen y el resto no parte nunca (fila deslizable). */
  header.sitio nav a[data-sec]{display:none;}
  header.sitio nav{margin-left:0;width:100%;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;}
  header.sitio nav::-webkit-scrollbar{display:none;}
  header.sitio nav a{padding:8px 6px;font-size:12px;letter-spacing:.05em;white-space:nowrap;}
  header.sitio nav a.reservar{padding:10px 14px;}
  .hero-marca{padding-top:96px;text-align:center;}
  .hero-marca .envoltorio{flex-direction:column-reverse;justify-content:center;}
  .hero-texto{flex-basis:auto;}
  .hero-texto p{margin-left:auto;margin-right:auto;}
  .hero-texto .botones{justify-content:center;}
  .hero-sello .lienzo{width:min(72vw,320px);}
  .hero-marca::before,.hero-marca::after{display:none;}
  /* RF-M06: la conversión siempre a mano en móvil. */
  .cta-fija{
    position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:1px;
    background:var(--noche);border-top:1px solid var(--linea);
  }
  .cta-fija a{
    flex:1;text-align:center;padding:16px 10px;font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;text-decoration:none;color:var(--crema);background:var(--carmin);
  }
  .cta-fija a.wa{background:#25D366;color:#0C2912;}
  body{padding-bottom:56px;}
}
@media (max-width:720px){
  .panel-verde .envoltorio{grid-template-columns:1fr;}
  .panel-foto{order:-1;}
  .panel-foto img{aspect-ratio:3/2;}
}
@media (min-width:721px){.cta-fija{display:none;}}

/* ══ Fase 09 · Los colores del logo, vivos (RF-M25) ══════════════════════════ */
:root{--azul-vivo:#2E4B9F;--azul-claro:#6F8DF2;--azul-noche:#1D3273;--carmin-vivo:#E0173F;--carmin-claro:#FF6B84;}
/* Los kickers y las cursivas de los titulares llevan el carmín del sello sobre la noche
   y el azul del logo sobre el papel: los dos colores de la marca, no tonos apagados. */
.sobre{color:var(--carmin-claro);}
.sobre.azul{color:var(--azul-claro);}
.sobre.claro{color:rgba(242,234,217,.85);}
main h2 em{color:var(--carmin-claro);}
.panel-verde h2 em{color:#FFB38F;}
.papel h2 em{color:var(--azul-vivo);}
.cta-final h2 em{color:var(--crema);text-shadow:0 0 34px rgba(255,255,255,.35);}
header.sitio nav a:hover{color:var(--azul-claro);}
header.sitio nav a.reservar{background:var(--carmin-vivo);box-shadow:0 8px 24px rgba(224,23,63,.35);}
header.sitio nav a.reservar:hover{filter:brightness(1.1);transform:translateY(-1px);}
footer.sitio a{color:var(--azul-claro);}
.hero-marca .boton.primario{background:var(--carmin-vivo);border-color:var(--carmin-vivo);box-shadow:0 12px 40px rgba(224,23,63,.35);}
.hero-marca .boton:not(.primario):hover{border-color:var(--azul-claro);color:var(--azul-claro);background:rgba(46,75,159,.15);}
/* Filete de dos colores bajo los kickers: el sello y el logo, juntos. */
.sobre::after{background:linear-gradient(90deg,currentColor,var(--azul-claro));opacity:.55;}

/* ══ Fase 09 · Redes (RF-M23) ═══════════════════════════════════════════════ */
.redes{position:relative;overflow:hidden;background:var(--noche);color:var(--crema);padding:clamp(72px,9vw,130px) 0 clamp(40px,5vw,70px);}
.redes .envoltorio{position:relative;z-index:2;}
.redes p{color:var(--crema-suave);max-width:54ch;margin:24px 0 0;}
/* El resplandor: azul del logo por un lado, carmín del sello por el otro. */
.redes-glow{
  position:absolute;inset:-20% -10%;pointer-events:none;z-index:0;
  background:
    radial-gradient(38% 45% at 18% 30%,rgba(46,75,159,.55),transparent 70%),
    radial-gradient(34% 40% at 84% 78%,rgba(224,23,63,.42),transparent 70%);
  filter:blur(10px);
}
.redes-botones{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.red{
  position:relative;display:inline-flex;align-items:center;gap:12px;padding:14px 22px 14px 18px;border-radius:999px;
  font-weight:500;font-size:15px;letter-spacing:.02em;text-decoration:none;color:var(--crema);
  border:1px solid rgba(242,234,217,.25);background:rgba(242,234,217,.06);transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .3s,border-color .3s;
}
.red .ico{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-size:16px;}
.red.tiktok .ico{background:#000;color:#fff;box-shadow:2px 0 0 #FE2C55,-2px 0 0 #25F4EE;}
.red.instagram .ico{background:linear-gradient(45deg,#F9CE34,#EE2A7B,#6228D7);color:#fff;}
.red .rebote{display:inline-block;transition:transform .5s cubic-bezier(.34,1.56,.64,1);}
.red:hover{transform:translateY(-3px) rotate(-1.5deg);background:rgba(242,234,217,.12);border-color:rgba(242,234,217,.6);}
.red:hover .rebote{transform:translateY(-8px) rotate(18deg) scale(1.35);}
.red.tiktok:hover{border-color:#25F4EE;}
.red.instagram:hover{border-color:#EE2A7B;}

/* La cinta: el @ gigante que se desplaza con el scroll (JS) y, sin JS, se queda quieta. */
.redes-cinta{
  position:relative;z-index:1;margin:clamp(40px,6vw,80px) 0 clamp(24px,3vw,40px);
  font-family:var(--serif);font-size:clamp(44px,8vw,120px);line-height:1;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(242,234,217,.35);
}
.cinta-linea{display:inline-flex;will-change:transform;}
.cinta-linea span{padding-right:.6em;}
.cinta-linea span em,.cinta-linea span{font-style:italic;}

/* Los teléfonos: dos filas CENTRADAS que se cruzan (JS mueve translateX con el scroll, en
   todas las pantallas). El recorte redondeado vive en .pantalla; la pegatina emoji queda
   fuera y sobresale del móvil (hotfix 10/09). */
.redes-filas{position:relative;z-index:1;display:grid;gap:clamp(18px,3vw,36px);justify-items:center;}
.redes-pista{display:flex;gap:clamp(14px,2.4vw,30px);width:max-content;will-change:transform;}
.telefono{
  position:relative;display:block;width:clamp(118px,18vw,230px);aspect-ratio:9/16;
  text-decoration:none;color:var(--crema);transform:rotate(calc(var(--giro,0) * 1deg));
  transition:transform .6s cubic-bezier(.34,1.56,.64,1),filter .5s;
}
.telefono .pantalla{
  position:absolute;inset:0;border-radius:26px;overflow:hidden;background:#000;
  box-shadow:0 30px 70px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.12);transition:box-shadow .6s;
}
.telefono .pantalla::before{ /* la muesca del móvil */
  content:"";position:absolute;top:10px;left:50%;width:34%;height:14px;margin-left:-17%;border-radius:8px;background:#000;z-index:3;
}
/* La pegatina: siempre a la vista, asomando por la esquina del móvil, con un vaivén propio;
   al pasar el ratón salta. */
.telefono::after{
  content:var(--pegatina,'🔥');position:absolute;right:-18px;top:-22px;font-size:clamp(34px,4vw,52px);line-height:1;z-index:4;
  transform:rotate(12deg);filter:drop-shadow(0 8px 14px rgba(0,0,0,.55));
  animation:pegatina-vaiven 3.2s ease-in-out infinite;transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
.telefono:nth-child(2)::after{animation-delay:-1.1s;right:auto;left:-18px;transform:rotate(-14deg);}
.telefono:nth-child(3)::after{animation-delay:-2.2s;top:auto;bottom:-16px;transform:rotate(8deg);}
.telefono:nth-child(4)::after{animation-delay:-0.6s;right:auto;left:-16px;top:auto;bottom:-12px;transform:rotate(-10deg);}
@keyframes pegatina-vaiven{0%,100%{translate:0 0;}50%{translate:0 -7px;}}
.telefono video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.telefono .pie{
  position:absolute;left:0;right:0;bottom:0;padding:44px 14px 14px;display:grid;gap:6px;z-index:2;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.82));font-size:12.5px;line-height:1.35;
}
.telefono .cifras{font-size:11px;letter-spacing:.08em;color:rgba(242,234,217,.8);}
.telefono:hover{transform:rotate(0deg) scale(1.06) translateY(-6px);z-index:5;}
.telefono:hover .pantalla{box-shadow:0 40px 90px rgba(0,0,0,.65),0 0 0 2px var(--azul-claro);}
.telefono:hover::after{transform:rotate(-8deg) scale(1.35) translateY(-10px);animation-play-state:paused;}
/* Al pasar el ratón por una fila, los vecinos se apagan un poco. */
.redes-pista:hover .telefono:not(:hover){filter:saturate(.7) brightness(.8);}
.redes p.redes-nota{position:relative;z-index:1;display:block;max-width:none;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin:clamp(28px,4vw,48px) auto 0;padding:0 20px;}
/* Wobble al pasar el ratón por una fila entera: los vecinos se apartan un poco. */
.redes-pista:hover .telefono:not(:hover){filter:saturate(.7) brightness(.8);}
.telefono{transition:transform .6s cubic-bezier(.34,1.56,.64,1),box-shadow .6s,filter .5s;}

/* ══ Fase 09 · Reseñas (RF-M24): bloque azul del logo ═══════════════════════ */
.resenas{position:relative;overflow:hidden;background:var(--azul-vivo);color:var(--crema);padding:clamp(72px,9vw,130px) 0;}
.resenas .envoltorio{position:relative;z-index:1;}
.resenas p{color:rgba(242,234,217,.85);max-width:52ch;margin:24px 0 0;}
.resenas h2 em{color:#FFD166;}
.resenas-sol{ /* el disco carmín del sello, asomando por detrás del azul */
  position:absolute;right:-12vw;top:-18vw;width:56vw;aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 40% 40%,#E0173F,#8E0A26 70%);opacity:.9;filter:blur(2px);
}
.resenas-cabecera{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(30px,5vw,72px);align-items:center;}
.resenas .botones{justify-content:flex-start;margin-top:32px;}
.resenas .boton.claro{border-color:rgba(242,234,217,.55);color:var(--crema);}
.resenas .boton.claro:hover{background:rgba(242,234,217,.12);border-color:var(--crema);}
.resenas .boton.primario{background:var(--carmin-vivo);border-color:var(--carmin-vivo);}
.nota-gigante{text-align:center;justify-self:center;}
.nota-gigante .numero{font-family:var(--serif);font-size:clamp(110px,16vw,220px);line-height:.9;font-weight:400;letter-spacing:-.04em;color:var(--crema);text-shadow:0 20px 60px rgba(0,0,0,.35);font-variant-numeric:tabular-nums;}
.nota-gigante .estrellas{position:relative;display:inline-block;font-size:clamp(28px,3.4vw,44px);line-height:1;letter-spacing:.08em;margin-top:8px;}
.nota-gigante .estrellas .fondo{color:rgba(242,234,217,.25);}
.nota-gigante .estrellas .lleno{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:#FFD166;text-shadow:0 0 22px rgba(255,209,102,.6);}
.nota-gigante .fuente{margin-top:12px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(242,234,217,.7);}
.resenas-rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(14px,2vw,24px);margin-top:clamp(48px,6vw,84px);}
.resena{
  margin:0;padding:26px 26px 22px;border-radius:18px;background:var(--crema);color:var(--tinta-papel);
  box-shadow:0 24px 60px rgba(0,0,0,.28);transform:rotate(calc(var(--r,0) * 1deg));
  transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .5s;
}
.resena:nth-child(odd){--r:-1.2;} .resena:nth-child(even){--r:1;} .resena:nth-child(3n){--r:.6;}
.resena:hover{transform:rotate(0) translateY(-6px) scale(1.02);box-shadow:0 34px 80px rgba(0,0,0,.36);}
.resena p{margin:0;color:var(--tinta-papel);font-family:var(--serif);font-size:clamp(17px,1.5vw,20px);line-height:1.45;max-width:none;}
.resena footer{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:18px;font-size:13px;color:var(--suave-papel);}
.resena .estrellitas{color:#E0A100;letter-spacing:.1em;font-size:14px;}
.resena cite{font-style:normal;font-weight:500;color:var(--azul-vivo);}
.resena time{margin-left:auto;}

@media (max-width:720px){
  /* Móvil: los mismos efectos, teléfonos más pequeños (tres por fila caben y asoman). */
  .telefono{width:34vw;}
  .telefono .pantalla{border-radius:18px;}
  .telefono .pie{padding:26px 10px 10px;font-size:11px;}
  .telefono .cifras{font-size:10px;}
  .telefono::after{font-size:30px;right:-12px;top:-14px;}
  .redes-cinta{-webkit-text-stroke:1px rgba(242,234,217,.45);}
  .resenas-cabecera{grid-template-columns:1fr;}
  .nota-gigante{justify-self:start;text-align:left;}
  .resenas-sol{right:-40vw;top:-30vw;width:110vw;}
  .resena time{margin-left:0;}
}
@media (prefers-reduced-motion:reduce){
  .telefono,.resena,.red{transition:none;transform:none;}
  .telefono::after{animation:none;}
  .nota-gigante .estrellas .lleno{width:98%!important;}
}

/* Tablet (721–960 px): la barra no parte en dos filas — los enlaces secundarios se retiran
   como en móvil y el resto no envuelve (visto en la matriz de plataformas, 11/09/2026). */
@media (min-width:721px) and (max-width:960px){
  header.sitio nav a[data-sec]{display:none;}
  header.sitio nav{flex-wrap:nowrap;gap:clamp(4px,1.2vw,14px);}
  header.sitio nav a{white-space:nowrap;padding:8px 8px;font-size:12px;}
}

/* ── Fase 12 · Carta y menú con el lenguaje del hero (RF-M27) ──────────────────
   Petición del 11/09/2026: «este estilo y colores hay que pasarlo al menú y la carta, así
   evitar tonos apagados». Arriba, el mismo fuego del hero a sangre con el título en blanco;
   debajo, las secciones son paneles planos carmín / azul / blanco (los de Destacados), con los
   platos en filas sobre el color. Las clases del contrato con la Suite no cambian: solo se
   recolorean y se maquetan a sangre. */
main.envoltorio > .hero{
  position:relative;width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;
  min-height:min(64vh,640px);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;
  text-align:left;padding:calc(72px + clamp(48px,9vh,110px)) max(20px,calc(50vw - var(--ancho)/2 + 20px)) clamp(36px,6vh,60px);
}
.hero .fuego{position:absolute;inset:0;z-index:0;pointer-events:none;background:var(--noche);}
.hero .fuego video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;transform:scale(1.02);}
.hero .fuego .velo{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,20,19,.62) 0%,rgba(14,20,19,.1) 30%,rgba(14,20,19,.15) 55%,rgba(14,20,19,.86) 100%);
}
.hero > *:not(.fuego){position:relative;z-index:1;}
.hero .sobre{
  display:inline-flex;color:#fff;background:var(--carmin);padding:7px 14px;font-size:12px;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;margin:0;
}
.hero .sobre::after{display:none;}
.hero h1{color:#fff;font-weight:400;font-size:clamp(46px,8vw,96px);line-height:.98;margin:18px 0 0;text-shadow:0 4px 30px rgba(14,20,19,.55);}
.hero p{color:#fff;margin:16px 0 0;max-width:58ch;font-size:17px;line-height:1.55;text-shadow:0 2px 14px rgba(14,20,19,.6);}
.hero .precio-menu{font-size:clamp(56px,11vw,120px);line-height:1;margin:14px 0 0;}
.hero .precio-menu sup{font-size:.4em;color:#FFD166;}
.hero .indice{margin-top:22px;gap:8px;}
.hero .indice a{background:#fff;color:var(--noche);border:0;font-weight:600;font-size:13px;padding:9px 15px;transition:background .2s,color .2s;}
.hero .indice a:hover{background:var(--carmin);color:#fff;}

/* Los paneles: cada sección a sangre, en carmín, azul o blanco por turno (la primera sección
   del <main> es el hero, por eso el conteo empieza en la 2ª). */
main > section.menusec, main > section.drinks{
  position:relative;width:100vw;margin-left:calc(50% - 50vw);border-top:0;
  padding:clamp(40px,6vw,76px) max(20px,calc(50vw - var(--ancho)/2 + 20px));
  background:var(--panel);color:var(--tinta-p);
  --panel:var(--carmin);--tinta-p:#fff;--suave-p:rgba(255,255,255,.86);--acento-p:#fff;--linea-p:rgba(255,255,255,.28);--aro:rgba(255,255,255,.6);
}
main > section:nth-of-type(3n):is(.menusec,.drinks){--panel:var(--azul);--acento-p:#FFD166;}
main > section:nth-of-type(3n+1):is(.menusec,.drinks){
  --panel:#FFFFFF;--tinta-p:var(--noche);--suave-p:#4A4642;--acento-p:var(--carmin);--linea-p:rgba(14,20,19,.16);--aro:transparent;
}
main > section:is(.menusec,.drinks) h2{color:var(--tinta-p);font-size:clamp(38px,5.4vw,68px);line-height:1;margin:0 0 6px;}
main > section:is(.menusec,.drinks) .intro{color:var(--suave-p);font-size:17px;margin:8px 0 22px;}
section:is(.menusec,.drinks) .dishes{gap:0;}
section:is(.menusec,.drinks) article.dish{
  background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--linea-p);padding:16px 0 15px;margin:0;
}
section:is(.menusec,.drinks) article.dish:last-child{border-bottom:0;}
section:is(.menusec,.drinks) article.dish h3, section:is(.menusec,.drinks) article.dish h4{color:var(--tinta-p);font-weight:400;font-size:clamp(20px,2.1vw,25px);}
section:is(.menusec,.drinks) article.dish .price{color:var(--acento-p);font-family:var(--serif);font-weight:400;font-size:clamp(19px,2vw,24px);}
section:is(.menusec,.drinks) article.dish .dots{border-bottom-color:var(--linea-p);}
section:is(.menusec,.drinks) article.dish p{color:var(--suave-p);font-size:15.5px;font-weight:300;}
section:is(.menusec,.drinks) article.dish .num{color:var(--acento-p);opacity:1;}
section:is(.menusec,.drinks) article.dish .flag{background:var(--tinta-p);color:var(--panel);}
section:is(.menusec,.drinks) article.dish .alg{box-shadow:0 0 0 1.5px var(--aro);}
section:is(.menusec,.drinks) article.dish .alg:focus-visible{outline-color:var(--tinta-p);}
section:is(.menusec,.drinks) .dgroup{margin-bottom:34px;}
section:is(.menusec,.drinks) .dgroup:last-child{margin-bottom:0;}
section:is(.menusec,.drinks) .dgroup h3{color:var(--acento-p);font-size:13px;letter-spacing:.22em;margin:0 0 4px;}
/* La nota y los botones del menú del día, sobre la noche, como el pie. */
main > section.bloque{border-top:0;padding:clamp(40px,6vw,64px) 0;}
main > section.bloque p{color:var(--crema-suave);}
@media (max-width:720px){
  main.envoltorio > .hero{min-height:min(70vh,620px);padding-top:calc(72px + 40px);}
  .hero h1{font-size:clamp(40px,12vw,64px);}
  .hero p{font-size:15.5px;}
}
@media (max-width:520px){
  main.envoltorio > .hero{padding-top:calc(118px + 28px);}
  section:is(.menusec,.drinks) article.dish h3{font-size:19px;}
}

/* ── Índice fijo de la carta (14/09/2026): se queda pegado bajo la cabecera al hacer scroll.
   Vive fuera del hero (sticky solo pega dentro de su contenedor). Una sola fila deslizable
   —en el móvil las 7 secciones no caben— y la sección activa en carmín (js/carta.js).
   `--cab` es el alto real de la cabecera (la pone carta.js): a 520 px el menú se parte y crece. */
main.envoltorio > .indice-fija{
  position:sticky;top:var(--cab,64px);z-index:15;margin:0 calc(50% - 50vw);
  padding:10px max(20px,calc(50vw - var(--ancho)/2 + 20px));
  background:rgba(20,16,14,.9);backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
main.envoltorio > .indice-fija::-webkit-scrollbar{display:none;}
.indice-fija a{flex:0 0 auto;background:#fff;color:var(--noche);border:0;font-weight:600;font-size:13px;padding:9px 15px;white-space:nowrap;transition:background .2s,color .2s;}
.indice-fija a:hover,.indice-fija a.activa{background:var(--carmin);color:#fff;}
/* las secciones aterrizan debajo de la cabecera Y del índice */
section.menusec, section.drinks{scroll-margin-top:calc(var(--cab,64px) + 66px);}

/* ── Quechua en la web (14/09/2026): palabras en quechua con su traducción al lado ──────
   Sin glosario aparte (se retiró el 11/09): la palabra va en el antetítulo de cada sección,
   en cada plato destacado y en el pie, siempre con la traducción a la vista. */
.sobre [lang="qu"]{font-weight:600;}
.sobre .qu-es{font-style:normal;text-transform:none;letter-spacing:.06em;font-weight:300;opacity:.8;}
.sobre .qu-es::before{content:"· ";}
.hero .sobre .qu-es{opacity:.9;}
.platos p.qu{margin:-4px 0 12px;font-family:var(--sans);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--acento-plato);}
.platos p.qu [lang="qu"]{font-weight:600;}
.platos p.qu i{font-style:normal;text-transform:none;letter-spacing:.04em;font-weight:300;opacity:.8;margin-left:8px;}
.platos p.qu i::before{content:"· ";}
footer.sitio .qu [lang="qu"]{color:var(--ambar);font-weight:500;}
footer.sitio .qu i{font-style:normal;text-transform:none;letter-spacing:.04em;opacity:.8;margin-left:6px;}
footer.sitio .qu i::before{content:"· ";}
