/* ---------- Splide 4.1.4 (splide-core.min.css, incorporado) ----------
   Venia de un CDN externo y bloqueaba el render contra otro origen. */
@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}

/* ==========================================================================
   HACIENDA DE PIEDRA — Asador Mexicano
   Ji Group · 2026
   Sistema tipográfico fluido calcado de amritpalace.com (body = 1vw, todo en em)
   Paleta y tipografías: Manual de Identidad HP (dic 2025)
   ========================================================================== */

/* ---------- Tipografías de marca (self-hosted, subset latino) ---------- */
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'LT Museum';src:url('../fonts/museum-light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'LT Museum';src:url('../fonts/museum-light-italic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}

/* ---------- Tokens ----------
   Los 4 colores del manual + el hueso que el manual usa pero no documenta.
   REGLA DURA: --piel sobre --carbon da 2.7:1 → prohibido para texto.
   Piel es color de fondo de botón, con --hueso encima (5.7:1).           */
:root{
  --alto-header:4.7em;   /* alto del header compacto: la nav del menú se pega debajo */
  --carbon:#1B1B1B;
  --piel:#825636;
  --vino:#34171B;
  --beige:#B69A81;
  --hueso:#F7F2ED;
  --piel-claro:#C79463;          /* Piel legible sobre fondo oscuro (6.4:1) */

  --gutter:28px;                  /* padding lateral, fijo — no escala */
  --ease:cubic-bezier(.25,.46,.45,.94);
}
@media (max-width:991px){ :root{ --gutter:20px; --alto-header:7.4em } }
@media (max-width:767px){ :root{ --gutter:16px; --alto-header:9.6em } }

/* ---------- Base ----------
   La clave del sistema: body en 1vw exacto. Todo lo demás en em, así que
   el diseño entero escala con el ancho de la ventana.                    */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-size:1vw;
  font-family:'LT Museum',Georgia,serif;
  font-weight:300;
  background:var(--carbon);
  color:var(--hueso);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--carbon);outline-offset:2px;box-shadow:0 0 0 4px var(--piel-claro);outline-offset:3px}

/* ---------- Tipografía (jerarquía exacta del manual) ----------
   Titulares: Satoshi Bold en MAYÚSCULAS
   Sublines:  Satoshi Medium, altas y bajas, alineado a la izquierda
   Copy:      LT Museum Light
   Anotación: LT Museum Light Italic                                      */
.h-display{
  font-family:'Satoshi',system-ui,sans-serif;font-weight:700;
  text-transform:uppercase;font-size:5.6em;line-height:.98;letter-spacing:-.03em;
  margin:0;color:var(--hueso);
}
.h-section{
  font-family:'Satoshi',system-ui,sans-serif;font-weight:700;
  text-transform:uppercase;font-size:2.6em;line-height:1.05;letter-spacing:-.02em;margin:0;
}
.subline{
  font-family:'Satoshi',system-ui,sans-serif;font-weight:500;
  font-size:1.7em;line-height:1.25;letter-spacing:-.015em;text-align:left;
  color:var(--piel-claro);margin:0 0 .6em;
}
.eyebrow{
  font-family:'Satoshi',system-ui,sans-serif;font-weight:500;
  font-size:.85em;text-transform:uppercase;letter-spacing:.34em;
  color:var(--beige);margin:0;
}
.copy{font-size:1.05em;line-height:1.6;color:var(--beige);margin:0 0 1em;max-width:46em}
.hero .copy{
  font-size:.9em;line-height:1.4;color:var(--hueso);max-width:30em;margin:0;
  text-shadow:0 1px 3px rgba(27,27,27,.9),0 2px 18px rgba(27,27,27,.75);
}
.anotacion{font-style:italic;font-size:1em;color:var(--piel-claro)}

@media (max-width:991px){
  .h-display{font-size:8em}   .h-section{font-size:3.4em}
  .subline{font-size:2.4em}   .eyebrow{font-size:1.2em}   .copy{font-size:1.5em}
}
@media (max-width:767px){
  .h-display{font-size:11em}  .h-section{font-size:4.6em}
  .subline{font-size:3.2em}   .eyebrow{font-size:1.7em}   .copy{font-size:2em}
}
@media (max-width:479px){
  .h-display{font-size:16em}  .h-section{font-size:6.4em}
  .subline{font-size:4.4em}   .eyebrow{font-size:2.4em}   .copy{font-size:2.9em}
}

/* una palabra del titular en la tipografía secundaria: el serif del manual
   contra el sans, para que el titular tenga un acento */
.h-section .alt,.h-sub .alt{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-style:normal;
  font-size:1.12em;letter-spacing:-.005em;
}
.h-display .alt{
  font-family:'LT Museum',Georgia,serif;font-weight:300;
  font-size:1.08em;letter-spacing:-.005em;
}

/* ---------- Header ---------- */
/* ---------- Header ----------
   Se compacta de forma continua: --compacto va de 0 a 1 en los primeros
   180 px de scroll y todas las medidas interpolan con esa variable. Antes
   era un salto seco al cruzar el hero y se notaba muchísimo.            */
.header{
  --compacto:0;
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(1.05em - (.43em * var(--compacto))) var(--gutter);
  border-bottom:1px solid rgba(182,154,129,calc(.15 * var(--compacto)));
}
/* El fondo y el desenfoque van en un pseudo-elemento, NO en el header.
   Un backdrop-filter (aunque sea blur(0px)) convierte al elemento en bloque
   contenedor de sus hijos position:fixed, y eso dejaba al menú móvil anclado
   al header en vez de a la ventana: no se abría. */
.header::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-color:rgba(27,27,27,calc(.72 * var(--compacto)));
  -webkit-backdrop-filter:blur(calc(7px * var(--compacto)));
          backdrop-filter:blur(calc(7px * var(--compacto)));
}
.header__logo img{width:4.3em}
.header__logo img{width:calc(6.4em - (1.3em * var(--compacto)));height:auto;display:block}
.nav{display:flex;gap:2.2em;align-items:center}
/* en escritorio el nav es una fila dentro del header: el sello y el bloque de
   redes pertenecen solo al overlay de teléfono */
.nav__sello,.nav__pie{display:none}
.nav__enlaces{display:contents}
.nav a{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1em;
  letter-spacing:.02em;color:var(--hueso);opacity:.85;transition:opacity .4s,color .4s;
}
.nav a:hover{opacity:1;color:var(--piel-claro)}
.header__acciones{display:flex;gap:.8em;align-items:center}

/* ---------- Botones ----------
   Un solo criterio en todo el sitio: contorno y texto, sin relleno, con la
   última palabra en la tipografía secundaria y en itálica. Sobre fondo
   oscuro van en hueso; sobre fondo claro, en carbón. Al pasar el cursor
   se rellenan y el texto invierte.                                      */
.btn{
  display:inline-block;border:1px solid var(--hueso);border-radius:3px;padding:2px;
  background:transparent;
  /* un botón no debe comportarse como texto: sin selección, sin retardo de
     300 ms al tocar, y con el cursor correcto */
  cursor:pointer;-webkit-user-select:none;user-select:none;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:border-color .45s var(--ease),background-color .45s var(--ease);
}
.btn__box{
  display:block;background:transparent;border-radius:2px;padding:.62em 2.3em;
  /* el span es solo la caja visual: el clic pertenece al enlace */
  pointer-events:none;-webkit-user-select:none;user-select:none;
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.9em;letter-spacing:.02em;
  color:var(--hueso);white-space:nowrap;
  transition:background-color .45s var(--ease),color .45s var(--ease);
}
.btn:hover{border-color:var(--hueso)}
.btn:hover .btn__box{background-color:var(--hueso);color:var(--carbon)}

/* la palabra final, en la secundaria e itálica */
.btn__alt{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-style:italic;
  font-size:1.1em;letter-spacing:0;
  /* la cursiva de LT Museum arranca muy pegada a la izquierda y el espacio
     anterior se comía: "Reservar mesa" se leía como una sola palabra */
  margin-left:.16em;
}

/* sobre fondo claro se invierte */
.seccion--claro .btn,.bebidas .btn,.eventos .btn,.testimonios .btn,.intro_ev .btn,.galeria_ev .btn,
.pagina-menu main .btn{border-color:var(--carbon)}
.seccion--claro .btn__box,.bebidas .btn__box,.eventos .btn__box,.testimonios .btn__box,.intro_ev .btn__box,.galeria_ev .btn__box,
.pagina-menu main .btn__box{color:var(--carbon)}
.seccion--claro .btn:hover,.bebidas .btn:hover,.eventos .btn:hover,.testimonios .btn:hover,.intro_ev .btn:hover,.galeria_ev .btn:hover,
.pagina-menu main .btn:hover{border-color:var(--carbon)}
.seccion--claro .btn:hover .btn__box,.bebidas .btn:hover .btn__box,.intro_ev .btn:hover .btn__box,.galeria_ev .btn:hover .btn__box,
.eventos .btn:hover .btn__box,.testimonios .btn:hover .btn__box,
.pagina-menu main .btn:hover .btn__box{background-color:var(--carbon);color:var(--hueso)}

/* dentro del bloque vino el fondo es oscuro: vuelven a hueso */
.bloque_color .btn{border-color:var(--hueso)}
.bloque_color .btn__box{color:var(--hueso)}
.bloque_color .btn:hover .btn__box{background-color:var(--hueso);color:var(--carbon)}

.hamburguesa{display:none;background:none;border:0;padding:.6em;cursor:pointer}
.hamburguesa span{display:block;width:2.4em;height:2px;background:var(--hueso);margin:.42em 0;transition:transform .4s,opacity .4s}

@media (max-width:991px){
  .nav{
    /* el header lleva backdrop-filter y eso lo vuelve bloque contenedor de sus
       hijos position:fixed: con inset:0 el overlay se medía contra el header
       (276px) y cortaba los últimos enlaces. Se fija a la ventana a mano. */
    position:fixed;top:0;left:0;right:auto;bottom:auto;
    width:100vw;height:100svh;
    background:var(--carbon);flex-direction:column;
    /* entra deslizándose desde la derecha, no cayendo desde arriba */
    justify-content:space-between;align-items:stretch;gap:2.4em;transform:translateX(100%);
    /* cerrado no debe ser alcanzable con teclado ni anunciarse */
    visibility:hidden;
    transition:transform .5s cubic-bezier(.4,0,.2,1),visibility 0s linear .5s;
  }
  .nav.abierto{transform:translateX(0);visibility:visible;
    transition:transform .55s cubic-bezier(.22,1,.36,1),visibility 0s}
  .nav__enlaces a{font-size:4.6em;letter-spacing:-.02em}

  /* --- overlay del menú: sello arriba, enlaces al centro, redes al pie.
     Los enlaces entran escalonados con su propio retraso (--d). --- */
  .nav__sello{
    width:9em;height:auto;display:block;margin:0;
    /* vuelve a mostrarse: en escritorio está oculto */
    opacity:0;transform:translateX(26px) scale(.96);
    transition:opacity .6s var(--ease) .05s,transform .6s var(--ease) .05s;
  }
  /* bloque compacto, como en la referencia: los enlaces se leen juntos */
  .nav__enlaces{display:flex !important;flex-direction:column;align-items:flex-start;gap:0}
  .nav__enlaces a{line-height:1.08;padding:.12em 0}
  .nav__pie{display:flex !important;flex-direction:column;align-items:stretch;gap:1.2em}
  /* el botón heredaba padding lateral y el resalte se quedaba corto */
  .nav__cta{margin-top:0;padding:2px}
  .nav__cta .btn__box{font-size:max(14px,1.6em);padding:.95em 1em;min-height:48px;
    display:flex;align-items:center;justify-content:center;gap:.32em;
    width:100%;white-space:normal}
  .nav__redes a{font-size:max(13px,1.5em)}
  .nav__redes{display:flex;align-items:center;justify-content:flex-start;gap:2.4em;margin-top:.6em}
  .nav__redes a{font-family:'Satoshi',sans-serif}
  .nav__redes a{letter-spacing:.06em;opacity:.85}
  .nav a{
    cursor:pointer;-webkit-user-select:none;user-select:none;
    touch-action:manipulation;-webkit-tap-highlight-color:transparent;
    opacity:0;transform:translateX(26px);
    transition:opacity .5s var(--ease) var(--d,0s),transform .5s var(--ease) var(--d,0s),
               background-color .3s var(--ease),color .3s var(--ease);
  }
  .nav.abierto .nav__sello{opacity:1;transform:none}
  .nav.abierto a{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){
    .nav__sello,.nav a{transition:none;opacity:1;transform:none}
  }
  .hamburguesa{display:block;z-index:101}
  /* 'Reservar mesa' aguanta hasta 767: en tablet todavía cabe */
  .header__logo img{width:13em}
}

/* Los dos botones del header van iguales: contorno y texto en blanco,
   con la última palabra en la tipografía secundaria, en itálica —el mismo
   contraste sans/serif del titular del hero. */
.header__acciones .btn{border-color:var(--hueso);background:transparent}
.header__acciones .btn__box{background:transparent;color:var(--hueso)}
.header__acciones .btn:hover{border-color:var(--hueso)}
.header__acciones .btn:hover .btn__box{background:var(--hueso);color:var(--carbon)}
/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;overflow:hidden}
.hero__fondo{position:absolute;inset:0;z-index:1;overflow:hidden}
.hero__fondo img,.hero__fondo video{width:100%;height:100%;object-fit:cover}

/* ---- Carrusel del hero: cuatro tomas del lugar con zoom lento ----
   4 slides x 7s visibles = 28s de ciclo. Cada uno entra con un fundido
   y sigue acercándose mientras se ve, para que respire como un video. */
.hero__slide{
  position:absolute;inset:0;opacity:0;
  animation:heroFundido 28s linear infinite;
  /* delay negativo: la primera entra ya opaca y no se pierde el LCP */
  animation-delay:calc(var(--i) * 7s - .84s);
  animation-delay:calc(var(--i) * 7s - .84s);
}
.hero__slide picture,.hero__slide img{display:block;width:100%;height:100%}
.hero__slide img{
  transform-origin:center 55%;
  animation:heroZoom 28s ease-out infinite;
  animation-delay:calc(var(--i) * 7s - .84s);
}
@keyframes heroFundido{
  0%      {opacity:0}
  3%, 25% {opacity:1}
  28%,100%{opacity:0}
}
@keyframes heroZoom{
  0%      {transform:scale(1.005)}
  28%     {transform:scale(1.085)}
  100%    {transform:scale(1.085)}
}
/* el primero ya está a la vista al cargar: nada de parpadeo inicial */
.hero__slide[style*="--i:0"]{opacity:1}
.hero__velo{
  position:absolute;inset:0;z-index:2;
  /* negro pleno arriba que se difumina a media altura y vuelve a cerrar abajo:
     protege el header, deja limpia la franja central de la foto y sostiene
     el párrafo del pie, que si no cae sobre el pasto y las mesas claras */
  background-image:linear-gradient(180deg,
    #1B1B1B 0%,
    rgba(27,27,27,.94) 9%,
    rgba(27,27,27,.72) 20%,
    rgba(27,27,27,.42) 34%,
    rgba(27,27,27,.16) 50%,
    rgba(27,27,27,0) 64%,
    rgba(27,27,27,.22) 78%,
    rgba(27,27,27,.58) 92%,
    rgba(27,27,27,.68) 100%);
}
.hero__contenido{
  position:relative;z-index:3;flex:1;display:flex;flex-direction:column;
  justify-content:space-between;padding:10em var(--gutter) 20px;
}
.hero__titular{display:flex;flex-direction:column;align-items:center;margin-top:auto;text-align:center}
.hero__titular .h-display{text-shadow:0 2px 26px rgba(27,27,27,.55)}
.hero__linea{display:flex;align-items:center;justify-content:center;gap:2.2em;width:100%}
.hero__linea .h-display{flex:0 1 auto;white-space:nowrap}
.hero__linea .eyebrow{
  flex:0 0 auto;max-width:12em;line-height:1.6;
  font-size:.98em;color:var(--hueso);letter-spacing:.28em;
  text-shadow:0 1px 10px rgba(27,27,27,.7);
}
.hero__linea .eyebrow:first-child{text-align:right}
.hero__linea .eyebrow:last-child{text-align:left}
.hero__titular .h-display{margin:0}
.hero__pie{display:flex;justify-content:space-between;align-items:flex-end;gap:2em;margin-top:auto;flex-wrap:wrap}

/* tarjeta de reseñas de Google */
.rating{background:var(--hueso);color:var(--carbon);padding:1.4em 1.8em;min-width:16em}

@media (max-width:767px){
  .hero__contenido{padding:14em var(--gutter) 4em}
  /* En teléfono las dos leyendas no caben a los lados, pero apiladas
     quedan DENTRO del titular y cortan la lectura. Se sacan del medio y
     se juntan debajo, en una sola línea, como firma.                   */
  .hero__linea{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5em 1.2em}
  .hero__linea .h-display{order:1;flex:0 0 100%;text-align:center;white-space:normal}
  .hero__linea .eyebrow{order:2;flex:0 0 auto;text-align:center;max-width:none}
  .hero__linea .eyebrow:first-child{text-align:center}
  .hero__linea .eyebrow:last-child{order:3;text-align:center;position:relative}
  .hero__linea .eyebrow:last-child::before{
    content:"·";position:absolute;left:-.75em;opacity:.6;letter-spacing:0;
  }
  .hero__pie{flex-direction:column;align-items:stretch}
  .rating{min-width:0}
}

/* ---------- Secciones ---------- */
.seccion{padding:3.4em var(--gutter) 2.4em}
.seccion--claro{background:var(--hueso);color:var(--carbon)}
.seccion--claro .copy{color:#6E5A48}
.seccion--claro .subline{color:var(--piel)}
.seccion--claro .eyebrow{color:var(--piel)}

/* split 45/55 con columna izquierda anclada — patrón de la referencia */
/* la sección que aloja un split NO pone padding lateral: lo aporta la columna,
   si no el título arranca 28px más adentro que los del resto de la página */
.seccion:has(.split){padding-left:0;padding-right:0}
.seccion--split{padding-left:0;padding-right:0}
.split{display:flex;align-items:flex-start}
.split__izq{flex:0 0 45%;padding:2.4em var(--gutter);
  /* el header es fixed: si el sticky se ancla en top:0 el titular queda
     pegado a la nav mientras se hace scroll. Se ancla debajo, con aire. */
  position:sticky;top:calc(var(--alto-header) + 1.2em)}
.split__der{flex:0 0 55%}

/* carta de platillos */
.platillo{display:flex;justify-content:space-between;gap:1.4em;padding:1.1em 0;border-bottom:1px solid rgba(27,27,27,.1)}
.platillo__nom{font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.05em}
.platillo__desc{font-size:.95em;line-height:1.45;color:#6E5A48;margin-top:.2em;max-width:34em}
.platillo__precio{font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.05em;white-space:nowrap;font-variant-numeric:tabular-nums}

@media (max-width:991px){
  .split{flex-direction:column}
  .split__izq,.split__der{flex:1 1 auto;width:100%;position:static}
  .seccion{padding:3em var(--gutter) 2em}
}

/* ---------- Sección a sangre (horno de piedra) ---------- */
.fullsize{position:relative;min-height:100svh;display:flex;align-items:flex-start;overflow:hidden}
.fullsize__fondo{position:absolute;inset:0;z-index:1}
.fullsize__fondo img{width:100%;height:100%;object-fit:cover;object-position:center 90%}
.fullsize__velo{position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(27,27,27,.9) 0%,rgba(27,27,27,.62) 34%,rgba(27,27,27,.15) 62%,rgba(27,27,27,.35) 100%)}
.fullsize__txt{position:relative;z-index:3;padding:2.9em var(--gutter) 3.4em;width:100%;max-width:56em}
.fullsize__txt .copy{color:var(--hueso);max-width:40em;text-shadow:0 1px 12px rgba(27,27,27,.5)}
.fullsize__txt .subline{text-shadow:0 1px 12px rgba(27,27,27,.5)}
/* el botón de línea hereda width:100%; dentro del fullsize (56em) quedaría
   desproporcionado, así que se ata al ancho del párrafo */
.fullsize__txt .btn--linea{max-width:23em}

/* Buffet: arriba horario, titular y precio; el botón cierra el bloque a todo
   su ancho y el texto largo pasa debajo. Renglones más separados. */
.fullsize__txt--buffet .eyebrow{margin-bottom:1.1em}
.fullsize__txt--buffet .h-section{margin-bottom:.42em}
.fullsize__txt--buffet .subline{margin-bottom:0;line-height:1.35}
.fullsize__txt--buffet .btn{margin-top:1.7em}
.fullsize__txt--buffet .copy{margin-top:1.4em;max-width:44em}

/* ---------- Columna derecha de la carta ----------
   Como en la referencia: primero un bloque de color con el texto y la
   llamada a la acción, y debajo la fotografía. */
.bloque_color{
  background:var(--vino);color:var(--hueso);padding:3.4em 2.9em;
  display:flex;align-items:center;justify-content:center;min-height:22em;
}
.bloque_color__sello{width:min(58%,15em);height:auto;opacity:.92}
.bloque_color .copy{color:var(--beige);max-width:34em}
.h-sub{
  font-family:'Satoshi',system-ui,sans-serif;font-weight:700;text-transform:uppercase;
  font-size:1.9em;line-height:1.02;letter-spacing:-.025em;margin:0 0 .5em;color:var(--hueso);
}
.bloque_foto img{width:100%;height:auto;display:block}

/* botón sobre fondo claro y sobre fondo vino */
/* botón de ancho completo: cierra el bloque de lista de lado a lado */
.btn--linea{margin-top:1.4em;display:block;width:100%}
.btn--linea .btn__box{text-align:left;padding-left:1.6em}
@media (max-width:991px){
  /* en teléfono estos botones cierran secciones enteras: no deben verse chicos */
  .btn--linea .btn__box{font-size:max(14px,1.6em);padding:.9em 1.4em;min-height:48px;
    display:flex;align-items:center;gap:.32em}
}

.lista_platillos{margin-bottom:.6em}

/* ---------- Banda a pantalla completa (.video_section de la referencia)
   wrapper flex-column con space-between: texto arriba, botón abajo.
   El texto va sticky, así se queda quieto mientras pasa la sección.   */
.banda{position:relative;height:100vh;width:100%;overflow:hidden;background:var(--hueso)}
.banda__fondo{
  position:absolute;inset:0;z-index:1;
  border-radius:10px;overflow:hidden;
  transform:scale(.93);
  transform-origin:center center;
  will-change:transform,border-radius;
}
.banda.abierta .banda__fondo{transform:scale(1);border-radius:0}
.banda__fondo img{width:100%;height:100%;object-fit:cover}
/* Fondo de video: los clips se encadenan encima de la fotografía, que queda
   de respaldo mientras cargan y para quien no tenga JS o pida menos
   movimiento. El velo va por encima (z-index 2) y el texto sobre todo. */
.banda__clips{position:absolute;inset:0;z-index:1}
.banda__clips video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .9s var(--ease);
}
/* el clip que sale se apaga de golpe, ya tapado por el que entra: si los dos
   se cruzaran a media opacidad se vería la foto por debajo */
.banda__clips video:not(.visible){transition:none}
.banda__clips video.visible{opacity:1}
.banda__velo{position:absolute;inset:0;z-index:2;border-radius:inherit;
  background-image:linear-gradient(180deg,rgba(27,27,27,.78) 0%,rgba(27,27,27,.32) 45%,rgba(27,27,27,.62) 100%)}
.banda__wrapper{
  position:relative;z-index:15;display:flex;flex-direction:column;
  justify-content:space-between;align-items:stretch;
  width:100%;height:100%;padding:var(--gutter);
}
.banda__contenido{
  display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;
  position:sticky;top:6.6em;
}
/* solo escritorio: fijarlo sin más congelaba el titular en 10.9px en teléfono */
@media (min-width:992px){ .banda .h-section{font-size:2.9em} }
.banda__contenido .copy{color:var(--hueso);max-width:36em;text-shadow:0 1px 12px rgba(27,27,27,.6)}
.banda__accion{display:flex;justify-content:flex-start}
@media (max-width:991px){ .banda__wrapper{padding:42px var(--gutter)} .banda__contenido{top:12em} }
@media (max-width:767px){ .banda{height:80vh} .banda__wrapper{padding:42px var(--gutter) 32px} }

/* la sección del espíritu no ocupa pantalla completa y va centrada */
.fullsize--medio{min-height:100svh;align-items:center;justify-content:center}
.fullsize__txt--centro{text-align:center;max-width:56em;margin:0 auto;padding:4.3em var(--gutter)}
.fullsize__txt--centro .subline{text-align:center}
/* el bloque va centrado: el botón se centra como una pieza, sin estirarse */
.fullsize__txt--centro .btn{margin-left:auto;margin-right:auto}
.fullsize__txt--centro .copy{margin-left:auto;margin-right:auto;max-width:34em}
/* el bloque va al centro, justo donde la foto es más clara: el velo sube en
   la franja media o el horario y el precio (beige y piel) se pierden */
.fullsize--medio .fullsize__velo{
  background-image:linear-gradient(180deg,
    rgba(27,27,27,.80) 0%,rgba(27,27,27,.70) 28%,
    rgba(27,27,27,.68) 50%,rgba(27,27,27,.70) 72%,rgba(27,27,27,.82) 100%);
}
/* y sobre foto, estos dos van en hueso: el beige y el piel no aguantan */
.fullsize__txt--centro .eyebrow{color:var(--hueso);opacity:.92;text-shadow:0 1px 10px rgba(27,27,27,.75)}
.fullsize__txt--centro .subline{color:var(--hueso);text-shadow:0 1px 12px rgba(27,27,27,.7)}

@media (max-width:991px){
  .bloque_color{padding:3em 2em}
  .h-sub{font-size:3.4em}
}
@media (max-width:767px){ .h-sub{font-size:4.6em} }

/* ---------- Bebidas (calcado de .drinks) ----------
   La columna izquierda se ancla mientras las fotos de la derecha corren.
   En la referencia: .drinks .left_side { position:sticky; top:0 } y la
   columna derecha en flex-column con gap de 6px.                        */
.bebidas{background:var(--hueso);color:var(--carbon)}
.bebidas__izq{
  display:flex;flex-direction:column;justify-content:space-between;
  /* con una sola foto a la derecha las dos columnas miden casi lo mismo:
     anclarla ya no aporta y dejaba el botón fuera de pantalla. */
  position:static;padding:3.4em var(--gutter) 2.4em;
}
.bebidas__intro .copy{color:#6E5A48;max-width:34em}
.bebidas__lista{margin-top:3.4em}
.bebidas .platillo{border-bottom-color:rgba(27,27,27,.14)}
/* al revés que antes: la foto se queda fija y lo que corre es la carta */
.bebidas__der{
  display:flex;flex-direction:column;padding:0;
  position:sticky;top:var(--alto-header);align-self:flex-start;
  height:calc(100svh - var(--alto-header));
}
.bebidas__der picture{display:block;flex:1;min-height:0;overflow:hidden}
/* el encuadre baja: arriba asomaba una bocina en la viga */
.bebidas__der img{width:100%;height:100%;object-fit:cover;object-position:center 64%;display:block}

@media (max-width:991px){
  .bebidas__izq{position:static;min-height:0;padding:5em var(--gutter) 2.2em}
  .bebidas__der{padding:0;position:static;height:auto}
  .bebidas__der img{height:auto;object-position:center 60%}
}

/* ---------- Eventos (calcado de .catering) ----------
   Fondo beige, titular en rejilla .75fr 1.7fr .75fr como la referencia
   (ojo: aquí usan grid, no flex como en el hero) y carrusel de 3.      */
.eventos{background:var(--beige);color:var(--carbon);width:100%;overflow:hidden;padding:52px 0 42px}
.eventos__cabeza{padding:0 var(--gutter) 2.9em;text-align:center}
.eventos__t1{text-align:center}
/* el titular de eventos toma la escala general de .h-section: fijarlo aquí
   valía lo mismo en escritorio, pero le impedía crecer en teléfono */
.eventos__rejilla{
  display:grid;grid-template-columns:.75fr 1.7fr .75fr;align-items:center;gap:1.2em;
}
.eventos__rejilla .eyebrow{color:var(--carbon);opacity:.85;font-size:.9em}
.eventos__rejilla .eyebrow:first-child{text-align:right}
.eventos__rejilla .eyebrow:last-child{text-align:left}
.eventos__rejilla .h-section{text-align:center}
.eventos__copy{
  width:46ch;max-width:100%;margin:1.6em auto 0;text-align:center;
  font-size:.9em;line-height:1.5;color:var(--carbon);
}
.eventos__slider{padding:0 var(--gutter)}
/* cierre de la sección: el botón cruza de lado a lado, como el del buffet */
.eventos__cierre{padding:2.6em var(--gutter) 0}
.eventos__cierre .btn--linea{max-width:34em;margin-left:auto;margin-right:auto}

.col_evento{display:flex;flex-direction:column;height:100%}
.col_evento__img{width:100%;height:35em;overflow:hidden;border-radius:3px}
.col_evento__img img{width:100%;height:100%;object-fit:cover;display:block}
.col_evento__txt{padding:1.4em .6em 0;text-align:center}
.col_evento__tit{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-size:1.5em;
  letter-spacing:-.035em;color:var(--carbon);margin:0 0 .35em;
}
.col_evento__desc{
  width:46ch;max-width:100%;margin:0 auto;text-align:center;
  font-size:.9em;line-height:1.3;color:var(--carbon);opacity:.85;
}
.splide__slide{height:auto}
/* respaldo local: estas tres reglas solo viven en el CSS del CDN y sin ellas
   el carrusel se derrama o deja los slides inalcanzables */
.splide__track{position:relative;z-index:0;overflow:hidden}
.splide__list{display:flex;margin:0;padding:0;list-style:none;backface-visibility:hidden}
.splide__slide{flex-shrink:0;box-sizing:border-box;position:relative}
.splide:not(.is-initialized) .splide__track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.splide:not(.is-initialized) .splide__slide{scroll-snap-align:start;width:78%}

@media (max-width:991px){
  .eventos{padding:72px 0 32px}
  .col_evento__img{height:44em}
  .col_evento__txt{padding:20px 12px 0}
  .col_evento__tit{margin:0 0 10px}
  .eventos__copy,.col_evento__desc{font-size:1.5em}
  .col_evento__tit{font-size:2.15em}
}
@media (max-width:767px){
  /* mismo criterio que el titular del hero: en teléfono las dos leyendas no
     caben a los lados y apiladas cortan la lectura del titular, así que se
     bajan juntas a una sola línea, como firma. */
  .eventos__rejilla{display:flex;flex-wrap:wrap;justify-content:center;gap:.5em 1.2em}
  .eventos__rejilla .h-section{order:1;flex:0 0 100%;text-align:center}
  .eventos__rejilla .eyebrow{order:2;flex:0 0 auto;text-align:center;max-width:none}
  .eventos__rejilla .eyebrow:first-child{text-align:center}
  .eventos__rejilla .eyebrow:last-child{order:3;text-align:center;position:relative}
  .eventos__rejilla .eyebrow:last-child::before{
    content:"\00b7";position:absolute;left:-.75em;opacity:.6;letter-spacing:0;
  }
  .eventos__cierre .btn--linea{max-width:none}
  .col_evento__img{height:72em}
  .eventos__copy,.col_evento__desc{font-size:2em}
  .col_evento__tit{font-size:3.15em}
}

/* ---------- Testimonios ----------
   Estructura calcada de la referencia: sección de fondo claro, tarjeta con
   estrellas + plataforma arriba, la cita en grande, autor al pie.
   La cita va en LT Museum a 1.8em: el texto largo es su terreno.        */
.testimonios{background:var(--hueso);color:var(--carbon);padding:3.4em 0 4.3em;overflow:hidden}
.testimonios__cabeza{
  display:flex;justify-content:space-between;align-items:flex-end;gap:2.4em;
  flex-wrap:wrap;padding:0 var(--gutter) 2.9em;
}
.testimonios__cabeza .eyebrow{color:var(--piel)}

@keyframes marquee{to{transform:translateX(-50%)}}
.marquee{display:flex;align-items:center;width:100%;position:relative;overflow:hidden}
.marquee__track{display:flex;flex:none;align-items:stretch;width:max-content;padding:.9em 0;animation:marquee 34s linear infinite}
/* se detiene al pasar el cursor o al entrar con teclado: movimiento automatico
   de mas de 5s necesita forma de pararlo */
.marquee:hover .marquee__track,
.marquee:focus-within .marquee__track{animation-play-state:paused}

@media (max-width:991px){ }
@media (max-width:767px){ }
@media (max-width:479px){ }

/* ---------- Footer ---------- */
.footer{background:var(--carbon);color:var(--hueso);padding:5.2em var(--gutter) 2.4em}

/* datos: cuatro columnas, todo en la tipografía de titulares y a una sola medida */
.footer__grid{
  /* cada columna mide lo que mide su renglón más largo (medido: horarios 236px,
     contacto 199, ubicación 175, legal 148, social 61 = 818px) y el sobrante se
     reparte entre los huecos. Repartir en fr le daba a horarios 214px y por eso
     brincaba de renglón en ventanas chicas. */
  display:grid;grid-template-columns:repeat(5,auto);justify-content:space-between;
  gap:24px;max-width:1500px;margin:0 auto;
}
.footer__col{display:flex;flex-direction:column;align-items:flex-start;gap:.35em}
.footer__col p{text-wrap:pretty}
.footer__tit{
  /* px fijos, no em: el pie son datos, no necesita escalar con la ventana,
     y en em el mismo texto medía distinto en cada pantalla */
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:12px;
  text-transform:uppercase;letter-spacing:.22em;color:var(--piel-claro);
  margin:0 0 .9em;
}
.footer__col p,.footer__col a{
  /* cada renglón de horario o dirección es una unidad y no se parte */
  white-space:nowrap;
  font-family:'Satoshi',sans-serif;font-weight:400;font-size:14px;line-height:1.75;
  color:var(--hueso);opacity:.82;margin:0;
}
.footer__col a{transition:opacity .3s var(--ease)}
.footer__col a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}

/* el logo completo cruza de lado a lado */
/* a ancho completo el logo mide 1097px de alto y deja el resto diminuto:
   se le pone tope y respira */
.footer__marca{max-width:76em;margin:4.3em auto 3.4em}
.footer__marca picture{display:block;width:100%}
.footer__marca img{width:100%;height:auto;display:block;opacity:.92}

/* pie legal en tres bloques */
.footer__legal{
  max-width:104em;margin:0 auto;padding-top:1.8em;
  border-top:1px solid rgba(182,154,129,.22);
  /* tres renglones: razón social, derechos y, al final, el crédito a la derecha */
  display:flex;flex-direction:column;gap:.55em;
}
.footer__legal p{
  font-family:'Satoshi',sans-serif;font-weight:400;font-size:13px;
  letter-spacing:.02em;line-height:1.5;
  color:var(--hueso);opacity:.72;margin:0;
}
.footer__credito{margin-top:1.2em !important;text-align:right}
.footer__corazon{color:#D64545;font-style:normal;font-size:14px;line-height:1}
/* los enlaces que viven DENTRO de un párrafo heredan su medida: si se les da
   un em propio, se multiplica sobre el del padre y salen más grandes */
.footer__legal p a,.footer__legal p span{font-size:inherit;letter-spacing:inherit}
.footer__legal a{transition:opacity .3s var(--ease)}
.footer__legal a:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}
/* el crédito va en negritas, sin subrayado */
.footer__credito a{opacity:1;font-weight:700;text-decoration:none}
.footer__credito a:hover{text-decoration:underline;text-underline-offset:3px}

@media (max-width:991px){
  .footer{padding:6em var(--gutter) 3em}
  .footer__grid{grid-template-columns:1fr 1fr;gap:2.6em 2.4em}
  .footer__col:last-child{grid-column:1 / -1}
  .footer__tit{font-size:12px;margin-bottom:.6em}
  /* el interlineado suelto y los 44px de cada enlace dejaban el pie muy aireado:
     el área táctil se conserva con padding, sin separar tanto los renglones */
  .footer__col{gap:0}
  /* 14px, no 15: a 15 el renglón de domingo mide 283px y la columna a 320px
     de pantalla da 288. Con font-display:swap el texto se pinta primero con
     la fuente del sistema, más ancha, brincaba de renglón y se reacomodaba
     al cargar Satoshi. Con nowrap el renglón no se parte nunca. */
  .footer__col p,.footer__col a{font-size:14px;line-height:1.6;white-space:nowrap}
  /* los 44px de área táctil por enlace dejaban teléfono, WhatsApp y correo
     muy separados entre sí. Se compactan al mismo ritmo que los renglones
     de horario y dirección; siguen siendo cómodos de tocar. */
  .footer__col a{min-height:0;padding:.35em 0;display:block}
  .footer__marca{margin:4em auto 2.6em}
  .footer__legal{flex-direction:column;align-items:flex-start;gap:.5em}
  .footer__legal p,.footer__links a{font-size:13px;line-height:1.45}
  .footer__legal p a,.footer__legal p span{font-size:inherit}
}
@media (max-width:767px){
  /* una sola columna: cada dato en su renglón */
  .footer__grid{grid-template-columns:1fr;gap:2.4em}
}

/* ---------- Entradas al scroll ----------
   El estado inicial vive en CSS para que no haya parpadeo, y la transición
   también: el JS solo añade .visto cuando el elemento entra en pantalla.
   Si el JS nunca corre, .js-anim no se aplica y todo se ve normal.     */
.js-anim .anim-titulo{
  opacity:0;filter:blur(14px);transform:translateY(14px);
  transition:opacity 1s var(--ease),filter 1s var(--ease),transform 1s var(--ease);
}
.js-anim .anim-texto{
  opacity:0;
  transition:opacity .9s var(--ease);
}
.js-anim .anim-titulo.visto{opacity:1;filter:blur(0);transform:none}
.js-anim .anim-texto.visto{opacity:1}

@media (prefers-reduced-motion:reduce){
  .js-anim .anim-titulo,.js-anim .anim-texto{
    opacity:1!important;filter:none!important;transform:none!important;transition:none!important;
  }
  .hero__slide{animation:none;opacity:0}
  .hero__slide[style*="--i:0"]{opacity:1}
  .hero__slide img{animation:none;transform:none}
  .marquee__track{animation:none}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

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

/* Paginación de los carruseles: se activa en teléfono para que las tarjetas
   que quedan fuera de vista sigan siendo alcanzables con teclado y lector de
   pantalla, pero no se dibuja —los puntitos ensuciaban el diseño y quedaban
   pegados al texto. Al enfocarla con Tab sí aparece. */
.slider_eventos .splide__pagination{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;margin:-1px;padding:0;
}
.slider_eventos .splide__pagination:focus-within{
  position:static;width:auto;height:auto;overflow:visible;clip:auto;
  margin:1.4em 0 0;padding:0;gap:.6em;
}
.slider_eventos .splide__pagination__page{
  width:8px;height:8px;border:0;border-radius:50%;padding:0;margin:0 4px;
  background:var(--piel);opacity:.35;cursor:pointer;
}
.slider_eventos .splide__pagination__page.is-active{opacity:1;transform:scale(1.25)}

/* ==========================================================================
   AJUSTES MÓVIL — calcados de amritpalace.com medido en 375 / 390 / 430
   --------------------------------------------------------------------------
   El sistema no cambia: body sigue en 1vw y todo sigue en em. Aquí sólo
   suben los multiplicadores y se reparan los selectores compuestos
   (.hero .copy, .btn__box, .footer__grid p, .platillo__nom…) que por
   especificidad se saltaban los breakpoints y quedaban en 3–4 px reales.
   Los pisos max(15px, …em) garantizan legibilidad en cualquier ancho sin
   romper la escala fluida: por encima del piso manda el em de siempre.
   Multiplicadores de referencia (Amrit, banda ≤479):
   h1 16em · h2 10em · h3 9em · card 5.25em · copy 3.6em · label 3.5em
   ========================================================================== */

@media (max-width:991px){

  /* --- sticky fuera: en pantalla corta atrapa el contenido --- */
  .split__izq,.split__der,
  .bebidas__izq,.bebidas__der,
  .banda__contenido{position:static;top:auto}

  /* --- titulares: que nunca desborden --- */
  .h-display,.h-section,.h-sub,.subline{text-wrap:balance;overflow-wrap:break-word}
  .hero__linea .h-display{white-space:normal}

  /* --- alturas: svh en vez de vh, la barra del navegador no recorta --- */
  .banda{height:100svh}
  /* el header móvil mide ~80 px: el titular de la banda tiene que librarlo */
  .banda__wrapper{padding-top:96px}

  /* --- hamburguesa: 44x44 reales --- */
  .hamburguesa{
    display:flex;flex-direction:column;justify-content:center;align-items:flex-end;
    min-width:44px;min-height:44px;padding:0;margin-left:12px;
    font-size:1em;      /* el <button> trae 13.3px propios: los em se disparaban */
  }
  .header__logo{flex:0 0 auto}
  .hamburguesa span{width:22px;height:1.5px;margin:3.5px 0}
  .hamburguesa span:nth-child(2){width:16px}

  /* --- overlay del menú: enlaces tocables y scrollable --- */
  .nav{overflow-y:auto;padding:calc(var(--alto-header) + 4vh) var(--gutter) 8vh}
  .nav a{
    display:flex;align-items:center;justify-content:center;
    min-height:44px;padding:.25em .6em;text-align:center;
  }

  /* --- reparación de los selectores compuestos ---
     .hero .copy, .btn__box, .footer__grid p… tienen más especificidad que
     las clases de los breakpoints, así que se saltaban la escala móvil y
     se quedaban en el valor de escritorio (3–4 px reales). Piso: 15 px. */
  .copy{font-size:max(15px,1.5em)}
  .eyebrow{font-size:max(15px,1.2em)}
  .hero .copy{font-size:max(15px,1.5em);line-height:1.45}
  .hero__linea .eyebrow{font-size:max(15px,1.2em);max-width:none;text-align:center}
  .hero__linea .eyebrow:first-child,
  .hero__linea .eyebrow:last-child{text-align:center}
  /* en tablet (768-991) esta era la unica regla que aplicaba y dejaba los
     botones en 12px y 32px de alto */
  .btn__box{font-size:max(15px,1.05em);padding:.62em 1.05em;letter-spacing:.04em;
    min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .btn{padding:2px;border-radius:2px}
  .btn__box{border-radius:2px}
  .header__acciones{gap:.4em}
  .header__logo img{width:17em;min-width:92px;max-width:110px}
  .platillo__nom,.platillo__precio{font-size:max(16px,1.6em)}
  .platillo__desc{font-size:max(15px,1.4em)}
  .eventos__rejilla .eyebrow{font-size:max(15px,1.2em)}
  .eventos__copy,.col_evento__desc{font-size:max(15px,1.5em)}
  .footer__tit{font-size:12px}
  .footer__grid p,.footer__grid a{font-size:14px;white-space:nowrap}
  .footer__legal *{font-size:inherit}
  .footer__legal p,.footer__legal a,.footer__legal span{font-size:13px}
}

@media (max-width:767px){
  .banda{height:80svh}

  /* mismos compuestos, con los multiplicadores de esta banda */
  .copy{font-size:max(15px,2em)}
  .eyebrow{font-size:max(15px,1.7em)}
  .hero .copy{font-size:max(15px,2em);line-height:1.45}
  .hero__linea .eyebrow{font-size:max(15px,1.7em)}
  .btn__box{font-size:max(15px,1.35em);padding:.62em 1.1em;min-height:44px;
    display:inline-flex;align-items:center;justify-content:center}
  .header__acciones .btn__box{font-size:max(13px,1.15em);padding:.5em .9em;min-height:44px}
  .platillo__nom,.platillo__precio{font-size:max(16px,2.2em)}
  .platillo__desc{font-size:max(15px,1.8em)}
  .eventos__rejilla .eyebrow{font-size:max(15px,1.7em)}
  .eventos__copy,.col_evento__desc{font-size:max(15px,2em)}
  .footer__tit{font-size:12px}
  .footer__grid p,.footer__grid a{font-size:14px;white-space:nowrap}
  .footer__legal p,.footer__legal a,.footer__legal span{font-size:13px}
}

@media (max-width:479px){

  /* ---------- Tipografía (multiplicadores de Amrit + piso de 15 px) ---------- */
  .eyebrow{font-size:max(15px,3.5em);letter-spacing:.22em}
  .copy{font-size:max(15px,3.6em);line-height:1.5}
  .h-sub{font-size:6.5em}

  .hero .copy{font-size:max(15px,3.6em);line-height:1.45;max-width:none}
  .hero__linea .eyebrow{font-size:max(15px,3.5em);letter-spacing:.2em;line-height:1.4}

  .nav{gap:3.2em}
  .nav__enlaces a{font-size:6.4em}
  .btn__box{font-size:max(15px,2.1em);padding:.62em 1.15em;min-height:44px;
    display:inline-flex;align-items:center;justify-content:center}
  .header__acciones .btn__box{font-size:max(13px,1.7em);padding:.5em .9em;min-height:44px}

  .platillo__nom,.platillo__precio{font-size:max(16px,4.4em)}
  .platillo__desc{font-size:max(15px,3.6em);line-height:1.45}

  .eventos__rejilla .eyebrow{font-size:max(15px,3.5em)}
  .eventos__copy,.col_evento__desc{font-size:max(15px,3.6em);line-height:1.45}
  .col_evento__tit{font-size:5.25em}

  .footer__tit{font-size:12px}
  .footer__grid p,.footer__grid a{font-size:14px;white-space:nowrap}
  .footer__legal p,.footer__legal a,.footer__legal span{font-size:13px}

  /* ---------- Ritmo vertical (Amrit: ~52 px arriba / ~32 px abajo) ---------- */
  .header{padding:2.4em var(--gutter)}
  .header__logo img{width:24em;min-width:88px;max-width:104px}
  .header__acciones{gap:1.6em}

  .hero__contenido{padding:20em var(--gutter) 8em}
  .hero__pie{gap:0}

  .banda__wrapper{padding:24em var(--gutter) 8em}

  .seccion{padding:12em var(--gutter) 8em}
  .split__izq{padding:8em var(--gutter) 6em}

  .platillo{padding:3.2em 0;gap:3.2em}
  .bloque_color{padding:8.5em 6.5em}

  .fullsize__txt{padding:22em var(--gutter) 8em;max-width:none}

  .eventos{padding:56px 0 32px}
  .eventos__cabeza{padding:0 var(--gutter) 6em}
  .col_evento__img{height:78em}
  /* en px: en em daba 14px bajo la foto y el titulo pegaba con su texto */
  .col_evento__txt{padding:22px 14px 0}
  .col_evento__tit{margin:0 0 12px}
  .col_evento__desc{line-height:1.45}

  .bebidas__izq{padding:12em var(--gutter) 6em}
  .bebidas__lista{margin-top:8em}
  .bebidas__der{padding:0 var(--gutter) 8em;gap:8px}

  .testimonios{padding:12em 0 8em}
  .testimonios__cabeza{padding:0 var(--gutter) 6em;gap:6em}
  .rating{padding:4em 4.8em}
  .marquee__track{padding:3em 0}

  .footer{padding:12em var(--gutter) 5em}
  .footer__grid{gap:6em;margin-bottom:8em}
  .footer__marca{padding-top:6em}
  .footer__marca img{max-width:74em}
  .footer__legal{gap:2.4em;margin-top:4em}
}

/* ==========================================================================
   PÁGINA DE MENÚ
   Estructura de la referencia: encabezado, nav pegajosa con saltos a cada
   sección, y listados de nombre · guía de puntos · precio.
   Pensada primero para el teléfono: una columna, precios siempre alineados
   y nada que obligue a hacer zoom.
   ========================================================================== */
.pagina-menu{background:var(--hueso);color:var(--carbon)}

/* En esta página no hay hero oscuro detrás, así que el header va siempre
   con fondo: si no, el logo y los enlaces (en hueso) caen sobre hueso. */
/* en la carta no hay hero oscuro detrás: el header arranca ya opaco */
.pagina-menu .header{background-color:rgba(27,27,27,calc(.82 + .12 * var(--compacto)))}
.pagina-menu .header__logo img{width:4.3em}

.menu_hero{
  position:relative;overflow:hidden;
  padding:9.4em var(--gutter) 3.4em;background:var(--carbon);color:var(--hueso);
  min-height:30em;display:flex;align-items:flex-end;
}
.menu_hero__fondo{position:absolute;inset:0;z-index:1}
.menu_hero__fondo img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.menu_hero__velo{
  position:absolute;inset:0;z-index:2;
  background-image:linear-gradient(180deg,rgba(27,27,27,.88) 0%,rgba(27,27,27,.52) 45%,rgba(27,27,27,.86) 100%);
}
.menu_hero__txt{position:relative;z-index:3;width:100%}
.menu_hero .eyebrow{color:var(--beige)}
.menu_hero .h-section{margin:.15em 0 .35em}
.menu_hero .copy{color:var(--hueso);max-width:40em;text-shadow:0 1px 10px rgba(27,27,27,.7)}

/* nav pegajosa con saltos */
.menu_nav{
  position:sticky;top:var(--alto-header);z-index:60;
  background:rgba(247,242,237,.94);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(27,27,27,.14);
}
.menu_nav__pista{
  display:flex;gap:.4em;overflow-x:auto;scrollbar-width:none;
  padding:.9em var(--gutter);scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.menu_nav__pista::-webkit-scrollbar{display:none}
.menu_nav a{
  flex:0 0 auto;scroll-snap-align:start;cursor:pointer;
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.95em;
  letter-spacing:.02em;color:var(--carbon);
  padding:.5em 1.4em;border:1px solid rgba(27,27,27,.22);border-radius:3px;
  background:transparent;
  transition:background-color .3s,border-color .3s,color .3s;
}
.menu_nav a:hover,.menu_nav a:focus-visible{border-color:var(--carbon)}
.menu_nav a.activo{background:var(--carbon);border-color:var(--carbon);color:var(--hueso)}

@media (max-width:767px){
}

/* secciones de la carta — con JS solo se ve la pestaña elegida.
   Sin JS quedan todas visibles, así el buscador las indexa igual. */
.carta{padding:2.9em var(--gutter) 1.4em;scroll-margin-top:9.4em}
.js-pestanas .carta{display:none}
.js-pestanas .carta.activa{display:block;animation:aparecePanel .35s var(--ease)}
@keyframes aparecePanel{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.carta__cab{margin-bottom:2.4em}
.carta__cab .h-section{color:var(--carbon)}
.carta__nota{font-size:.9em;color:#6E5A48;margin:.5em 0 0}

.grupo{margin-bottom:3em;max-width:64em}
.grupo__t{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.15em;
  text-transform:uppercase;letter-spacing:.2em;color:var(--piel);
  margin:0 0 1.2em;padding-bottom:.6em;border-bottom:1px solid rgba(130,86,54,.28);
}
.grupo__nota{
  font-family:'LT Museum',serif;font-style:italic;font-weight:300;
  text-transform:none;letter-spacing:0;opacity:.7;font-size:.85em;
}

.lista{list-style:none;margin:0;padding:0}
.mi{padding:.85em 0;border-bottom:1px solid rgba(27,27,27,.09)}
.mi:last-child{border-bottom:none}

/* nombre — guía — precio, con el precio siempre pegado a la derecha */
.mi__t{display:flex;align-items:baseline;gap:.5em;width:100%}
.mi__nom{font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.05em;color:var(--carbon)}
.mi__linea{flex:1 1 auto;min-width:1.4em;border-bottom:1px dotted rgba(27,27,27,.3);transform:translateY(-.22em)}
.mi__precio{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.05em;
  white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--carbon);
}
.mi__precio--vacio{opacity:.35}
.mi__desc{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-size:.95em;line-height:1.4;
  color:#6E5A48;margin:.35em 0 0;max-width:52em;
}

/* destilados: dos precios (copa y servicio) */
.lista__cab{
  display:grid;grid-template-columns:1fr 5.5em 6.5em;gap:.5em;
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.8em;
  text-transform:uppercase;letter-spacing:.14em;color:#6E5A48;
  padding-bottom:.6em;
}
.lista__cab span:not(:first-child){text-align:right}
.mi--dos{display:grid;grid-template-columns:auto 1fr 5.5em 6.5em;align-items:baseline;gap:.5em}
.mi--dos .mi__precio{text-align:right}
/* dentro del header el fondo es oscuro: el fantasma va en hueso */

/* ---------- Menú en tablet ---------- */
@media (max-width:991px){
  /* aqui vivia una copia de .btn__box que, por ir despues de los bloques de
     767 y 479, dejaba todos los botones del sitio en 32px de alto. */
  /* los dos botones caben en teléfono si se acortan un poco */
  .header{gap:12px}                 /* el logo no debe tocar al primer botón */
  .header__acciones{gap:8px;margin-left:auto}
  .header__acciones .btn__box{font-size:max(13px,1.15em);padding:.5em .7em;letter-spacing:.02em;
    min-height:44px;display:flex;align-items:center;justify-content:center;gap:.3em}
  /* en em se multiplicaba sobre el boton y caia a 12.6px */
  .header__acciones .btn__alt{font-size:inherit}
  .menu_hero{padding:14em var(--gutter) 3em;min-height:44em}
  .menu_nav a{font-size:max(14px,1.35em);padding:.5em 1.15em;min-height:44px;display:flex;align-items:center}
  .grupo__t{font-size:1.9em}
  .mi__nom,.mi__precio{font-size:1.6em}
  .mi__desc{font-size:max(14px,1.45em)}
  .lista__cab{font-size:1.3em;grid-template-columns:1fr 5em 6em}
  .mi--dos{grid-template-columns:auto 1fr 5em 6em}
  .carta__nota{font-size:1.4em}
}

/* ---------- Menú en teléfono ----------
   Una sola columna, tipos por encima de 15 px reales y el bloque de
   destilados deja de ser rejilla: el precio de copa y el de servicio
   se etiquetan para que no haya que recordar el encabezado.          */
@media (max-width:767px){
  .menu_hero{padding:16em var(--gutter) 3em;min-height:52em}
  .menu_nav__pista{padding:.9em var(--gutter);gap:.3em}
  .menu_nav a{font-size:max(14px,1.7em)}
  .carta{padding:3.4em var(--gutter) 1em;scroll-margin-top:6.4em}
  .carta__cab{margin-bottom:1.8em}
  /* 64em son 240px en teléfono: la carta quedaba en media columna */
  .grupo{margin-bottom:2.4em;max-width:none}
  /* la nota vive DENTRO del título: en em se multiplicaba sobre él (36px) */
  .grupo__nota{font-size:13px;opacity:1;color:#6E5A48}
  .grupo__t{font-size:max(15px,2.4em);letter-spacing:.16em}
  .menu_nav a{padding:.5em 1.05em;border-radius:2px;min-height:44px;display:flex;align-items:center}
  .mi{padding:1em 0}
  .mi__nom{font-size:max(16px,2.15em)}
  .mi__precio{font-size:max(16px,2.15em)}
  .mi__desc{font-size:max(15px,1.95em);margin-top:.3em}
  .carta__nota{font-size:max(15px,1.9em)}

  /* dos precios en pantalla angosta: se apilan y se etiquetan */
  .lista__cab{display:none}
  .mi--dos{grid-template-columns:1fr auto;gap:.3em .6em}
  .mi--dos .mi__linea{display:none}
  .mi--dos .mi__precio{grid-column:2;text-align:right}
  .mi--dos .mi__precio::before{
    /* etiqueta el precio: en em caia a 11.5px y es el dato que los distingue */
    content:"Copa ";font-size:13px;opacity:.7;letter-spacing:.06em;
  }
  .mi--dos .mi__precio:last-child::before{content:"Servicio "}
  .mi--dos .mi__nom{grid-column:1;grid-row:1 / span 2;align-self:center}

}
@media (max-width:479px){
  .menu_nav a{font-size:max(14px,2.4em)}
  .grupo__t{font-size:max(15px,3.4em)}
  .mi__nom,.mi__precio{font-size:max(16px,3.1em)}
  .mi__desc{font-size:max(15px,2.8em)}
  .carta__nota{font-size:max(15px,2.7em)}
}

/* ============================================================
   PÁGINA DE EVENTOS
   Calcada de la estructura de la referencia (/catering): frase grande,
   imagen alta con un bloque anclado al lado, tarjetas numeradas que
   corren sobre un fondo fijo, y el mismo carrusel del inicio.
   Los efectos son position:sticky, no hay librería de scroll de por medio.
   ============================================================ */

/* --- 1. Frase de entrada + imagen con bloque anclado --- */
.intro_ev{background:var(--hueso);color:var(--carbon);padding:5.2em 0 7.4em}
.intro_ev__frase{padding:0 var(--gutter);max-width:74em}
/* la frase se escribe palabra por palabra: cada una entra con su retraso */
.lg_txt.escribe .pal{opacity:0;transition:opacity .38s var(--ease);transition-delay:var(--d)}
.lg_txt.escribe.visto .pal{opacity:1}
@media (prefers-reduced-motion:reduce){ .lg_txt.escribe .pal{opacity:1;transition:none} }
.lg_txt{
  font-family:'LT Museum',Georgia,serif;font-weight:300;
  font-size:2.9em;line-height:1.16;letter-spacing:-.028em;color:var(--carbon);margin:0;
}
.intro_ev__notas{
  display:grid;grid-template-columns:1fr 1fr;gap:1.6em;
  padding:5.2em var(--gutter) 0;max-width:64em;
}
.intro_ev__notas .copy{color:#6E5A48;margin:0}

.intro_ev__medios{display:flex;align-items:flex-start;gap:0;margin-top:3.4em;padding:0 var(--gutter)}
.intro_ev__img{flex:0 0 50%;height:62em;overflow:hidden;border-radius:3px}
.intro_ev__img img{width:100%;height:100%;object-fit:cover;display:block}
.intro_ev__lado{flex:0 0 50%;align-self:stretch}
/* el bloque se queda quieto mientras la imagen larga desfila */
.intro_ev__anclado{
  position:sticky;top:calc(var(--alto-header) + 2.4em);
  padding:0 0 0 2.9em;
}
.intro_ev__anclado .copy{color:#6E5A48;max-width:32em;margin:.8em 0 1.6em}

/* --- 2. Tarjetas numeradas sobre fondo fijo --- */
.tarjetas{position:relative;width:100%;background:var(--carbon)}
.tarjetas__fondo{position:sticky;top:0;height:100svh;overflow:hidden;z-index:1}
.tarjetas__fondo img{width:100%;height:100%;object-fit:cover;display:block}
.tarjetas__velo{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(27,27,27,.82) 0%,rgba(27,27,27,.52) 38%,rgba(27,27,27,.62) 100%)}
/* el titular se queda quieto a la izquierda mientras las tarjetas suben por
   la derecha: es el efecto de la referencia. */
.tarjetas__cabeza{
  position:sticky;top:calc(var(--alto-header) + 3em);z-index:3;
  flex:1 1 42%;align-self:flex-start;
}
.tarjetas__cabeza .h-section{color:var(--hueso)}
.tarjetas__cabeza .eyebrow{margin-bottom:.6em}
.tarjetas__cabeza .btn{margin-top:1.6em}
.tarjetas__cabeza .btn{border-color:var(--hueso)}
.tarjetas__cabeza .btn__box{color:var(--hueso)}
.tarjetas__cabeza .btn:hover .btn__box{background-color:var(--hueso);color:var(--carbon)}
/* la pista se solapa sobre el fondo fijo: por eso el margen negativo */
.tarjetas__pista{
  position:relative;z-index:2;margin-top:-100svh;
  display:flex;align-items:flex-start;gap:2.4em;
  padding:0 var(--gutter) 8em;
}
/* el titular se ve desde que entra la sección y se queda; el desfase de una
   pantalla lo lleva solo la columna de tarjetas, para que la primera aparezca
   con el fondo ya colocado */
.tarjetas__cabeza{padding-top:calc(var(--alto-header) + 3em)}
.tarjetas__lista{
  list-style:none;margin:0 0 0 auto;padding:0 0 0 0;
  flex:0 0 46%;display:flex;flex-direction:column;align-items:flex-end;gap:2.4em;
  padding-top:100svh;
}
/* medida tomada de la referencia (30em de ancho, alto fijo): es lo que hace
   que el fondo quede sujeto durante un tramo largo de scroll en vez de
   soltarse a las dos tarjetas */
.tarjeta_ev{
  width:30em;max-width:100%;min-height:23em;
  display:flex;flex-direction:column;
  background:rgba(27,27,27,.58);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid rgba(182,154,129,.35);border-radius:3px;overflow:hidden;
}
.tarjeta_ev__cuerpo{display:flex;flex-direction:column;justify-content:flex-start;flex:1}
.tarjeta_ev__cab{border-bottom:1px solid rgba(182,154,129,.35);padding:.9em 1.4em}
.tarjeta_ev__num{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-size:1.25em;color:var(--beige);
}
.tarjeta_ev__cuerpo{padding:1.4em;flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:2.4em}
.tarjeta_ev__tit{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-size:2.1em;line-height:1.1;
  letter-spacing:-.032em;color:var(--hueso);margin:0;
}
.tarjeta_ev__desc{font-size:1em;line-height:1.5;color:var(--hueso);opacity:.92;margin:0;max-width:35em}

/* --- 3. Menús y desayunos --- */
.menus_ev__cab,.desayunos_ev__caja{max-width:52em}
.menus_ev__cab .copy,.desayunos_ev__caja .copy{color:#6E5A48;margin:.8em 0 1.4em}
.menus_ev__cab .h-section,.desayunos_ev__caja .h-section{color:var(--carbon)}

/* --- 4. Galería: el mismo carrusel del inicio, pero sobre fondo claro
       (en la referencia esta sección hereda el fondo de la página) --- */
.galeria_ev{background:var(--hueso);color:var(--carbon);width:100%;overflow:hidden;padding:4.3em 0}
.galeria_ev__cab{padding:0 var(--gutter) 2.4em}
.galeria_ev .h-section{color:var(--carbon)}
.galeria_ev .col_evento__tit,.galeria_ev .col_evento__desc{color:var(--carbon)}

/* --- 5. Cierre para cotizar --- */
.cotizar{
  background:var(--vino);color:var(--hueso);padding:6.4em var(--gutter) 5.2em;
  /* rótulo y titular arriba, texto y botones abajo, con la sección más alta */
  min-height:58svh;display:flex;flex-direction:column;justify-content:space-between;gap:4.3em;
}
.cotizar__arriba{max-width:44em}
.cotizar__caja{max-width:44em}
.cotizar .h-section{color:var(--hueso)}
.cotizar .copy{color:var(--beige);margin:.8em 0 0}
.cotizar .btn{border-color:var(--hueso)}
.cotizar .btn__box{color:var(--hueso)}
.cotizar .btn:hover{border-color:var(--hueso)}
.cotizar .btn:hover .btn__box{background-color:var(--hueso);color:var(--carbon)}
.cotizar .btn--linea{max-width:30em}

@media (max-width:991px){
  .lg_txt{font-size:3.6em}
  .intro_ev__img{height:70em}
  .intro_ev__anclado{padding-left:2em}
  .tarjeta_ev__tit{font-size:2.9em}
  .tarjeta_ev__num{font-size:1.9em}
  .tarjeta_ev__desc{font-size:max(14px,1.5em)}
}
@media (max-width:767px){
  .lg_txt{font-size:4.7em}
  .intro_ev__notas{grid-template-columns:1fr;gap:1.2em}
  /* en teléfono la imagen y el texto se apilan: el anclado pierde sentido */
  .intro_ev__medios{flex-direction:column}
  .intro_ev__img{flex:1 1 auto;width:100%;height:82em}
  .intro_ev__lado{flex:1 1 auto;width:100%}
  .intro_ev__anclado{position:static;padding:2.4em 0 0}

  /* En teléfono se mantienen las DOS columnas de la referencia: el titular
     anclado a la izquierda y las tarjetas subiendo por la derecha. Apilarlos
     no sirve: al quedarse fijo el titular, se encima sobre las tarjetas. */
  .tarjetas__pista{flex-direction:row;gap:1.6em;padding:0 var(--gutter) 6em}
  .tarjetas__cabeza{
    /* con 34% la columna quedaba en 98-117px y el titular se partia en
       renglones de seis caracteres */
    flex:0 0 44%;width:auto;
    padding-top:calc(var(--alto-header) + 2.4em);
  }
  .tarjetas__lista{flex:0 0 auto;width:auto;margin-left:auto;gap:4em;align-items:stretch;padding-top:34svh}
  .tarjetas__cabeza .h-section{font-size:max(17px,3.4em);line-height:1.1}
  .tarjetas__cabeza .eyebrow{font-size:max(15px,1.3em);letter-spacing:.18em}
  .tarjetas__cabeza .btn{margin-top:1.2em}
  .tarjetas__cabeza .btn__box{font-size:max(15px,1.3em);padding:.62em .9em;white-space:normal;min-height:44px}
  .tarjeta_ev{width:100%;max-width:100%;min-height:0}
  /* con el piso de 15px, 35em son 525px: la columna se estiraba fuera de la
     pantalla y media tarjeta quedaba recortada e inalcanzable */
  .tarjeta_ev__desc{max-width:none}
  .tarjetas__lista{flex:1 1 0;min-width:0;width:auto}
  .tarjeta_ev__tit{font-size:3.4em}
  .tarjeta_ev__cuerpo{padding:1.6em 1.4em;gap:1.6em}
  .tarjeta_ev__cab{padding:1.1em 1.4em}
  .tarjeta_ev__num{font-size:2.5em}
  /* caía a 11px: el resto del sitio tiene piso de 15 */
  .tarjeta_ev__desc{font-size:max(15px,2em)}

  /* los max-width en em encogen la caja en teléfono (44em = 165px a 375px):
     el texto quedaba en una columna angosta y los rótulos partidos en dos */
  .intro_ev__frase,.intro_ev__notas,.galeria_ev__cab,
  .desayunos_ev__caja,.menus_ev__cab,.cotizar__caja,.cotizar__arriba{max-width:none}
  /* más aire entre las secciones del final */
  .desayunos_ev{padding:20em var(--gutter) 16em}
  .galeria_ev{padding:16em 0}
  .cotizar{padding:18em var(--gutter) 16em;min-height:66svh;gap:12em}
  .cotizar .btn--linea{max-width:none}
}
@media (max-width:479px){
  /* a 375px el header pedía 397px: la hamburguesa quedaba pegada al borde y a
     320px salía por completo de la pantalla, dejando el menú inalcanzable.
     'Reservar mesa' se baja al overlay. */
  .header__acciones .btn--ghost{display:none}

  .lg_txt{font-size:6.1em}
  .tarjeta_ev__tit{font-size:6em}
  .tarjeta_ev__num{font-size:4em}
  .tarjeta_ev__desc{font-size:max(15px,2.9em)}
}

/* ---------- Opiniones de eventos ----------
   Calcado de "What our guests say" de la referencia: titular grande y
   tarjetas separadas por líneas finas, sin llamada a dejar reseña. */
.opiniones{background:var(--hueso);color:var(--carbon);padding:5.2em var(--gutter) 6.4em}
.opiniones__cab{margin-bottom:3.4em}
.opiniones .h-section{color:var(--carbon)}
/* cada opinión es un cuadro suelto, con su propio borde y separada de la
   siguiente — no una rejilla de celdas pegadas */
/* sin gap: con 16 tarjetas hay 15 huecos y la mitad exacta que usa la
   animación deja de coincidir con el punto de repetición (se abre un vacío).
   La separación va como margen de cada tarjeta, igual que en el del inicio. */
.marquee__track--op{padding:.6em 0}
.op_tarjeta{
  flex:none;width:30em;min-height:24em;margin:0 1.6em 0 0;
  padding:1.6em 1.6em 2em;
  border:1px solid rgba(27,27,27,.18);border-radius:3px;
  /* el cuadro no se despega del fondo: lo define la línea, no un relleno */
  background:transparent;
  display:flex;flex-direction:column;
}
.op_tarjeta__cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.4em}
.op_tarjeta__estrellas{letter-spacing:.5em;font-size:max(14px,1.4em);color:var(--piel)}
.op_tarjeta__fuente{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.8em;
  letter-spacing:.14em;text-transform:uppercase;color:#6E5A48;
}
.op_tarjeta__txt{
  margin:0;flex:1;
  font-family:'LT Museum',Georgia,serif;font-weight:300;
  font-size:1.5em;line-height:1.32;letter-spacing:-.02em;color:var(--carbon);
}
.op_tarjeta__pie{display:flex;flex-direction:column;gap:.15em;margin-top:2.4em}
.op_tarjeta__rol{font-size:.85em;color:#6E5A48}
.op_tarjeta__autor{font-family:'Satoshi',sans-serif;font-weight:500;font-size:.95em;color:var(--carbon)}

@media (max-width:991px){
  .op_tarjeta__txt{font-size:max(15px,2.15em)}
  .op_tarjeta__rol,.op_tarjeta__fuente{font-size:max(13px,1.2em)}
  .op_tarjeta__autor{font-size:max(14px,1.4em)}
}
@media (max-width:767px){
  .opiniones{padding:14em 0 14em}
  .opiniones__cab{padding:0 var(--gutter)}
  .op_tarjeta{width:74vw;min-height:0;margin-right:3.2vw;padding:2.4em 2em 2.8em}
  .op_tarjeta__txt{font-size:max(15px,3.1em)}
  .op_tarjeta__estrellas{font-size:max(15px,3.1em)}
  .op_tarjeta__cab{margin-bottom:2em}
  .op_tarjeta__pie{margin-top:2em}
}

/* ---------- Aviso de cookies ----------
   Tarjeta en la esquina inferior derecha, no una barra de lado a lado: así
   no tapa el contenido. En teléfono se ancla abajo con márgenes y su propio
   scroll, con tope de altura para no comerse la pantalla. */
.cookies{
  position:fixed;z-index:200;
  right:var(--gutter);bottom:var(--gutter);left:auto;
  width:min(30em,calc(100vw - 2 * var(--gutter)));
  max-height:min(78svh,700px);overflow-y:auto;overscroll-behavior:contain;
  background:var(--carbon);color:var(--hueso);
  border:1px solid rgba(182,154,129,.3);border-radius:4px;
  box-shadow:0 18px 50px rgba(0,0,0,.45);
  padding:1.6em;
  transform:translateY(calc(100% + 2 * var(--gutter)));
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.cookies.visible{transform:translateY(0)}
.cookies{display:flex;flex-direction:column;gap:1.2em}
/* sin esto, el display:flex de arriba vence a [hidden]{display:none} del
   navegador y el diálogo sigue siendo tabulable y anunciable estando oculto */
.cookies[hidden]{display:none}
/* los hijos de la caja pasan al flex de la tarjeta para poder ordenarlos:
   así las acciones quedan SIEMPRE al final y no se mueven al desplegar
   el panel de preferencias */
.cookies__caja{display:contents}
.cookies__txt{order:1}
.cookies__panel{order:2}
.cookies__acciones{
  order:3;
  /* solo la fila de fuera se ancla al fondo. Si el sticky alcanza también a la
     del panel, ambas terminan en la misma coordenada y el clic de "Guardar
     preferencias" lo recibe "Aceptar todas": el visitante acaba aceptando todo. */
  position:sticky;bottom:0;z-index:2;
  background:var(--carbon);padding-top:.9em;margin-top:-.3em;
}
.cookies__panel .cookies__acciones{
  position:static;z-index:auto;background:none;padding-top:0;margin-top:1.2em;
}
.cookies__txt{font-size:.95em;line-height:1.55;color:var(--beige);margin:0}
.cookies__txt a{color:var(--hueso);text-decoration:underline;text-underline-offset:3px}
.cookies__acciones{display:flex;gap:.7em;flex-wrap:wrap}
.cookies__btn{background:none;border:1px solid var(--hueso);cursor:pointer;font:inherit;padding:2px;flex:1 1 auto}
.cookies__btn .btn__box{font-size:.9em;padding:.6em 1em;color:var(--hueso);text-align:center;white-space:nowrap}
.cookies__btn:hover .btn__box{background:var(--hueso);color:var(--carbon)}
.cookies__btn--si{border-color:var(--piel-claro)}
.cookies__btn--si .btn__box{background:var(--piel);color:var(--hueso)}
.cookies__btn--si:hover .btn__box{background:var(--hueso);color:var(--carbon)}
.cookies__panel{margin-top:1.4em;padding-top:1.2em;border-top:1px solid rgba(182,154,129,.22)}
.cookies__t{font-family:'Satoshi',sans-serif;font-weight:700;font-size:1em;text-transform:uppercase;
  letter-spacing:.06em;margin:0 0 1em;color:var(--hueso)}
.cookies__op{display:flex;gap:.7em;align-items:flex-start;margin-bottom:.9em;font-size:.9em;
  line-height:1.45;color:var(--beige);cursor:pointer}
.cookies__op input{margin-top:.2em;accent-color:var(--piel);width:16px;height:16px;flex:none}
.cookies__op strong{color:var(--hueso);font-weight:500}
.cookies__panel .cookies__acciones{margin-top:1.2em}

@media (max-width:991px){
  .cookies{padding:2em;max-height:72svh}
  .cookies__txt{font-size:max(14px,1.5em)}
  .cookies__btn .btn__box{font-size:max(13px,1.4em);padding:.7em 1em;min-height:44px;
    display:flex;align-items:center;justify-content:center;gap:.32em;width:100%}
  .cookies__op{font-size:max(14px,1.5em)}
  .cookies__t{font-size:max(14px,1.7em)}
}
@media (max-width:767px){
  /* en teléfono ocupa el ancho disponible, pero sigue siendo tarjeta */
  .cookies{left:var(--gutter);right:var(--gutter);width:auto;max-height:68svh}
  .cookies__acciones{flex-direction:column}
  .cookies__btn{width:100%;flex:none}
  .cookies__btn .btn__box{white-space:normal}
}

/* ============================================================
   PÁGINAS LEGALES (aviso de privacidad, términos, 404)
   Fondo claro y una sola columna de lectura: son textos largos.
   ============================================================ */
.pagina-legal{background:var(--hueso)}
/* estas páginas abren sobre fondo claro y el header nace transparente con el
   texto en hueso: sin fondo propio la navegación es invisible hasta hacer
   scroll. El fondo va en el ::before, que es donde vive el del header. */
.pagina-legal .header::before{
  background-color:var(--carbon);
  -webkit-backdrop-filter:none;backdrop-filter:none;
}
.pagina-legal .header{border-bottom-color:rgba(182,154,129,.2)}
.legal{
  background:var(--hueso);color:var(--carbon);
  /* el header es fijo: sin este respiro el titular queda debajo */
  padding:calc(var(--alto-header) + 4.3em) var(--gutter) 6.4em;
}
.legal__caja{max-width:58em;margin:0 auto}
.legal .h-section{color:var(--carbon);margin-bottom:.3em}
.legal .eyebrow{color:#6E5A48;margin-bottom:.8em}
.legal__fecha{font-size:.9em;color:#6E5A48;margin:0 0 2.4em}

.legal__indice{display:flex;flex-wrap:wrap;gap:.8em;margin:0 0 3.4em}
.legal__indice a{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.9em;letter-spacing:.02em;
  border:1px solid rgba(27,27,27,.25);border-radius:3px;padding:.55em 1.3em;color:var(--carbon);
  transition:background-color .3s var(--ease),color .3s var(--ease);
}

.legal h2{
  font-family:'Satoshi',sans-serif;font-weight:700;text-transform:uppercase;
  font-size:1.5em;line-height:1.15;letter-spacing:-.015em;color:var(--carbon);
  margin:2.9em 0 .8em;padding-top:1.4em;border-top:1px solid rgba(27,27,27,.16);
  /* al saltar desde el indice el titulo quedaba completamente bajo el header */
  scroll-margin-top:calc(var(--alto-header) + 1.5em);
}
.legal h2:first-of-type{margin-top:1.6em}
.legal h3{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.1em;line-height:1.25;
  color:var(--carbon);margin:1.9em 0 .5em;
}
.legal p{font-size:1em;line-height:1.65;color:#413328;margin:0 0 1em;max-width:46em}
.legal ul{margin:0 0 1.2em;padding-left:1.4em;max-width:46em}
.legal li{font-size:1em;line-height:1.6;color:#413328;margin-bottom:.5em}
.legal strong{color:var(--carbon);font-weight:500}
.legal a{color:var(--piel);text-decoration:underline;text-underline-offset:3px}
.legal a:hover{color:var(--carbon)}
/* el índice va después a propósito: si no, .legal a:hover le pone el texto en
   carbón sobre el fondo carbón del hover y el botón se ve negro y vacío */
.legal__indice a{color:var(--carbon);text-decoration:none}
.legal__indice a:hover{background:var(--carbon);color:var(--hueso)}
.legal__nota{
  margin-top:2.9em;padding-top:1.4em;border-top:1px solid rgba(27,27,27,.16);
  font-size:.95em;color:#6E5A48;
}
/* 404 */
.legal--404{min-height:70svh;display:flex;align-items:center}
.legal__acciones{display:flex;flex-wrap:wrap;gap:.8em;margin:2em 0 0}
.legal--404 .legal__nota{border-top:0;margin-top:2.4em;padding-top:0}

@media (max-width:991px){
  /* 58em son 218px a 375: en teléfono la columna usa el ancho disponible */
  .legal__caja,.legal p,.legal ul{max-width:none}
  .legal{padding:calc(var(--alto-header) + 5em) var(--gutter) 7em}
  .legal__fecha{font-size:max(13px,1.4em)}
  .legal h2{font-size:max(19px,2.4em)}
  .legal h3{font-size:max(16px,1.9em)}
  .legal p,.legal li{font-size:max(15px,1.6em)}
  .legal__nota{font-size:max(14px,1.5em)}
  .legal__indice a{font-size:max(13px,1.4em);padding:.65em 1.2em;min-height:44px;display:flex;align-items:center;gap:.32em}
}
@media (max-width:767px){
  .legal p,.legal li{font-size:max(15px,2em)}
  .legal h2{font-size:max(19px,3.2em)}
  .legal h3{font-size:max(16px,2.4em)}
  .legal__acciones{flex-direction:column;align-items:stretch}
}

/* ---------- Cortina de transición entre páginas ----------
   Un solo gesto, siempre en la misma dirección: entra desde abajo para cubrir
   y sigue subiendo para descubrir la página nueva. Antes cubría subiendo pero
   se retiraba bajando, y se sentían dos animaciones distintas.
   El regreso al reposo se hace SIN transición (clase `sin-anim`), si no la
   cortina volvería cruzando la pantalla. */
.cortina{
  position:fixed;inset:0;z-index:300;
  background:var(--vino);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;visibility:hidden;
  transform:translateY(100%);
  transition:transform .9s cubic-bezier(.72,0,.24,1),visibility 0s linear .9s;
}
.cortina.sin-anim{transition:none}
.cortina__sello{
  width:11em;height:auto;display:block;
  /* sin animación propia: el sello es parte de la cortina y viaja con ella.
     Cualquier fundido suyo se suma al movimiento y se percibe como un latido. */
  opacity:1;
}
/* cubriendo: sube desde abajo */
.cortina.cubre{
  transform:translateY(0);visibility:visible;pointer-events:auto;
  transition:transform .9s cubic-bezier(.72,0,.24,1),visibility 0s;
}

/* descubriendo: sigue subiendo, mismo gesto */
.cortina.abre{
  transform:translateY(-100%);visibility:visible;
  transition:transform .9s cubic-bezier(.72,0,.24,1),visibility 0s linear .9s;
}

/* al entrar, la cortina ya viene puesta cubriendo */
.con-cortina .cortina{
  transform:translateY(0);visibility:visible;
  /* declarada, no heredada: así el punto de partida es idéntico al de .cubre */
  transition:transform .9s cubic-bezier(.72,0,.24,1),visibility 0s;
}

@media (max-width:767px){ .cortina__sello{width:18em} }
@media (prefers-reduced-motion:reduce){
  .cortina,.cortina__sello{transition:none !important}
  .cortina{display:none}
}

/* ---------- Preguntas frecuentes ----------
   El texto es el mismo del FAQPage: tiene que ser visible o Google lo trata
   como marcado invisible y los motores de respuesta no pueden citarlo. */
.faq{background:var(--hueso);color:var(--carbon);padding:5.2em var(--gutter) 6.4em}
.faq__cab{max-width:104em;margin:0 auto 3.4em}
.faq .h-section{color:var(--carbon)}
.faq .eyebrow{color:#6E5A48}
.faq__lista{max-width:74em;margin:0 auto;display:grid;gap:0}
.faq__lista dt{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.15em;line-height:1.3;
  color:var(--carbon);padding:1.4em 0 .5em;border-top:1px solid rgba(27,27,27,.16);
}
.faq__lista dt:first-child{border-top:0}
.faq__lista dd{
  margin:0 0 1.2em;font-size:1em;line-height:1.65;color:#413328;max-width:52em;
}
@media (max-width:991px){
  .faq{padding:7em var(--gutter) 8em}
  .faq__lista dt{font-size:max(16px,1.9em);padding-top:1.6em}
  .faq__lista dd{font-size:max(15px,1.6em)}
}
@media (max-width:767px){
  .faq__lista dt{font-size:max(16px,2.4em)}
  .faq__lista dd{font-size:max(15px,2em);max-width:none}
}

/* ---------- Qué incluye el evento ---------- */
.incluye{background:var(--hueso);color:var(--carbon);padding:5.2em var(--gutter) 6.4em}
.incluye__cab{max-width:104em;margin:0 auto 3.4em}
.incluye .h-section{color:var(--carbon)}
.incluye .eyebrow{color:#6E5A48}
.incluye__cab .copy{color:#413328;max-width:46em;margin-top:.8em}
.incluye__rejilla{
  max-width:104em;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.4em;
}
.incluye__t{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:.95em;
  text-transform:uppercase;letter-spacing:.18em;color:var(--piel);
  margin:0 0 .9em;padding-bottom:.7em;border-bottom:1px solid rgba(27,27,27,.18);
}
.incluye__col ul{list-style:none;margin:0;padding:0}
.incluye__col li{
  font-size:1em;line-height:1.5;color:#413328;padding:.42em 0 .42em 1.2em;position:relative;
}
.incluye__col li::before{content:"";position:absolute;left:0;top:.95em;width:5px;height:5px;
  border-radius:50%;background:var(--piel)}
.incluye__nota{
  max-width:104em;margin:2.9em auto 0;padding-top:1.4em;
  border-top:1px solid rgba(27,27,27,.16);
  font-size:.9em;line-height:1.6;color:#6E5A48;
}

/* ---------- Cómo funciona ---------- */
.pasos{background:var(--carbon);color:var(--hueso);padding:5.2em var(--gutter) 6.4em}
.pasos__cab{max-width:104em;margin:0 auto 3.4em}
.pasos .h-section{color:var(--hueso)}
.pasos__lista{
  list-style:none;max-width:104em;margin:0 auto;padding:0;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.6em;
}
.paso{border-top:1px solid rgba(182,154,129,.32);padding-top:1.2em}
.paso__n{
  font-family:'LT Museum',Georgia,serif;font-weight:300;font-size:1.6em;
  color:var(--piel-claro);display:block;margin-bottom:.5em;
}
.paso__t{
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:1.05em;line-height:1.25;
  color:var(--hueso);margin:0 0 .45em;
}
.paso__d{font-size:.92em;line-height:1.55;color:var(--beige);margin:0}

@media (max-width:991px){
  .incluye__rejilla{grid-template-columns:1fr 1fr;gap:3em 2.4em}
  .incluye__t{font-size:max(15px,1.3em)}
  .incluye__col li{font-size:max(15px,1.6em)}
  .incluye__cab .copy{font-size:max(15px,1.6em)}
  .incluye__nota{font-size:max(13px,1.4em)}
  .pasos__lista{grid-template-columns:1fr 1fr;gap:2.4em}
  .paso__n{font-size:max(20px,2.4em)}
  .paso__t{font-size:max(16px,1.9em)}
  .paso__d{font-size:max(14px,1.6em)}
}
@media (max-width:767px){
  .incluye{padding:7em var(--gutter) 7em}
  .pasos{padding:7em var(--gutter) 7em}
  .incluye__rejilla{grid-template-columns:1fr;gap:2.9em}
  .pasos__lista{grid-template-columns:1fr;gap:2em}
}


/* ---------- Selector de idioma ----------
   Vive en el header junto a los botones. Los enlaces llevan data-sin-cortina
   e hreflang, así que la cortina de transición NO se dispara al cambiar de
   idioma: es la misma página, no una navegación entre secciones. */
.idioma{
  display:flex;align-items:center;gap:.35em;margin-right:1.1em;
  font-family:'Satoshi',sans-serif;font-weight:500;font-size:12px;
  letter-spacing:.08em;text-transform:uppercase;
}
.idioma__op{color:var(--hueso);opacity:.55;text-decoration:none;padding:.35em .15em;
  transition:opacity .25s var(--ease)}
.idioma__op:hover{opacity:1}
.idioma__op--activo{opacity:1;font-weight:700}
.idioma__sep{opacity:.3}
/* glosa entre paréntesis para los platillos que conservan nombre en español */
.mi__glosa{opacity:.6;font-style:italic;white-space:nowrap}
.nota-moneda{
  font-family:'Satoshi',sans-serif;font-size:12px;letter-spacing:.04em;
  color:var(--carbon);opacity:.6;margin:.8em 0 0;
}
@media (max-width:991px){
  /* en teléfono el header ya va apretado: el selector se encoge */
  .idioma{margin-right:.6em;font-size:11px;gap:.25em}
  .idioma__op{padding:.5em .2em}
}
