/* ───────────────────────────────────────────────────────────────────────────
   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;}
header.sitio .logo{
  color:var(--crema);font-family:var(--serif);font-weight:400;font-size:21px;line-height:1;
}
header.sitio .logo img{width:40px;height:40px;}
header.sitio .logo em{font-style:italic;}
header.sitio nav{gap:clamp(6px,2vw,22px);align-items:center;}
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: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;filter:blur(1px);transform:scale(1.02);}
.hero-fondo .velo{
  position:absolute;inset:0;
  /* Denso bajo los textos (izquierda) y arriba/abajo; los rótulos quemados del vídeo
     quedan atenuados bajo la tipografía de la web. */
  background:linear-gradient(90deg,rgba(14,20,19,.78) 0%,rgba(14,20,19,.55) 45%,rgba(14,20,19,.25) 100%),
             linear-gradient(180deg,rgba(14,20,19,.55) 0%,rgba(14,20,19,.1) 45%,rgba(14,20,19,.82) 100%);
}
@media (max-width:720px){.hero-fondo .velo{background:linear-gradient(180deg,rgba(14,20,19,.55),rgba(14,20,19,.72) 55%,rgba(14,20,19,.9));}}
/* 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-sello{margin-right:clamp(0px,4vw,80px);}
.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{
  flex:0 1 auto;margin: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;}
.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. */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  html.js .casa-anclada{overflow:visible;}
  html.js .casa-anclada .pegajoso{position:relative;height:100svh;overflow:hidden;display:flex;align-items:center;}
  html.js .casa-anclada .pegajoso .envoltorio{padding-top:0;padding-bottom:0;width:100%;}
  html.js .casa-anclada .panel-foto{z-index:2;}
  html.js .casa-anclada .mural-lienzo{transform-origin:50% 50%;will-change:transform;max-height:62svh;}
  html.js .casa-anclada .panel-texto{will-change:opacity,transform;}
}

/* ── Destacados: platos de la casa (RF-M05, RF-M09, RF-M14) ─────────────── */
/* Base = apilado (móvil, sin JS, «reducir movimiento»). El recorrido horizontal
   se activa solo con html.js en escritorio con movimiento; ScrollTrigger fija el
   .pegajoso una pantalla y desplaza la .pista (js/miski.js). */
.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);}
.platos article.plato{display:grid;gap:22px;}
.platos article.plato:nth-of-type(odd){background:var(--noche);}
.platos article.plato:nth-of-type(even){background:var(--noche-3);}
.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 rgba(242,234,217,.18);pointer-events:none;user-select:none;z-index:0;
}
/* Sin z-index: crearía un contexto de apilamiento y aislaría el blend de la foto
   (rectángulo negro). El gigante queda detrás por orden del DOM (va primero). */
.platos .texto,.platos figure{position:relative;}
.platos .num{font-family:var(--serif);font-size:16px;letter-spacing:.2em;color:var(--terracota-claro);}
.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(--crema);
}
.platos p.voz{
  font-family:var(--serif);font-size:clamp(19px,2vw,26px);line-height:1.3;color:var(--crema);
  max-width:34ch;margin:22px 0 0;padding-left:18px;border-left:2px solid var(--terracota);
}
.platos p.desc{max-width:46ch;color:var(--crema-suave);font-size:clamp(14px,1.5vw,16px);line-height:1.6;margin:16px 0 0;}
.platos figure{margin:0;order:-1;}
/* Fotos sobre negro de estudio: `lighten` funde el negro con la sección (RF-M05). La
   transformación va en la IMG, nunca en la figure: aislaría el blend. */
.platos figure img{width:100%;aspect-ratio:3/2;object-fit:contain;display:block;mix-blend-mode:lighten;}
.platos figcaption{margin-top:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--piedra);}
.platos .pie-pista,.platos .barra{display:none;}
.platos .glosario{
  margin:0;padding:26px 0 34px;border-top:1px solid var(--linea);
  display:flex;flex-wrap:wrap;gap:10px 28px;font-size:14px;
}
.platos .glosario div{display:flex;gap:8px;align-items:baseline;}
.platos .glosario dt{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ambar);}
.platos .glosario dd{margin:0;color:var(--crema-suave);}
.platos .glosario dd::before{content:"= ";color:var(--piedra);}

/* Escritorio con JS y movimiento: recorrido horizontal a pantalla completa. Cada
   plato aprovecha el panel entero: número gigante de fondo, texto a la izquierda
   (38 %) y la foto ocupando el resto a 78 % de alto. */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  html.js .platos .pegajoso{position:relative;height:100svh;overflow:hidden;}
  html.js .platos .pista{display:flex;height:100%;width:max-content;will-change:transform;}
  html.js .platos article{width:100vw;height:100%;flex:none;padding:clamp(60px,8vh,110px) clamp(24px,6vw,90px);}
  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,38fr) minmax(0,62fr);align-items:center;gap:clamp(24px,4vw,56px);
  }
  html.js .platos .gigante{
    right:auto;left:clamp(8px,3vw,48px);top:4svh;font-size:clamp(200px,30vw,420px);
    -webkit-text-stroke:1px rgba(242,234,217,.16);will-change:transform;
  }
  html.js .platos h3{font-size:clamp(48px,6.4vw,104px);}
  html.js .platos figure{order:0;height:78svh;display:flex;flex-direction:column;justify-content:center;}
  html.js .platos figure img{height:100%;aspect-ratio:auto;object-fit:contain;will-change:transform,opacity;}
  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(--piedra);pointer-events:none;
  }
  html.js .platos .barra{display:block;position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(242,234,217,.1);}
  html.js .platos .barra div{height:100%;background:var(--carmin);transform:scaleX(0);transform-origin:0 50%;}
}

/* ── 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:12px;padding-bottom:12px;}
  header.sitio nav a:not(.reservar){display:none;}
  header.sitio nav{margin-left:auto;width:auto;}
  .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 que se cruzan (JS mueve translateX con el scroll). */
.redes-filas{position:relative;z-index:1;display:grid;gap:clamp(16px,2.2vw,28px);}
.redes-pista{display:flex;gap:clamp(16px,2.2vw,28px);width:max-content;padding:0 4vw;will-change:transform;}
.redes-pista[data-pista-redes="-1"]{margin-left:-14vw;}
.telefono{
  position:relative;display:block;width:clamp(150px,17vw,230px);aspect-ratio:9/16;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);
  text-decoration:none;color:var(--crema);transform:rotate(calc(var(--giro,0) * 1deg));
  transition:transform .6s cubic-bezier(.34,1.56,.64,1),box-shadow .6s;
}
.telefono::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;
}
.telefono::after{ /* la pegatina que salta al pasar por encima */
  content:var(--pegatina,'🔥');position:absolute;right:-6px;top:-8px;font-size:34px;z-index:4;
  transform:rotate(12deg) scale(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 6px 12px rgba(0,0,0,.5));
}
.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);box-shadow:0 40px 90px rgba(0,0,0,.65),0 0 0 2px var(--azul-claro);z-index:5;}
.telefono:hover::after{transform:rotate(-8deg) scale(1);}
.redes-nota{position:relative;z-index:1;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--piedra);margin:clamp(28px,4vw,48px) 0 0;}
/* 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){
  .redes-pista{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px;margin-left:0!important;-webkit-overflow-scrolling:touch;}
  .redes-pista::-webkit-scrollbar{display:none;}
  .telefono{flex:0 0 66vw;width:66vw;scroll-snap-align:center;transform:none;}
  .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){
  .redes-pista{width:auto;overflow-x:auto;margin-left:0!important;}
  .telefono,.resena,.red{transition:none;transform:none;}
  .telefono::after{transform:rotate(-8deg) scale(1);}
  .nota-gigante .estrellas .lleno{width:98%!important;}
}
