/*
 * Propuesta 2 · «Fiesta» — sistema visual.
 *
 * Fondo hueso, tinta y UN acento. La fiesta no la pone el color: la ponen
 * la tipografía, el movimiento, los bordes gruesos y la composición.
 * Tres colores, como pidió el cliente, y ni uno más.
 *
 * Los tokens viven en el BODY, no en :root, para que la variante de color
 * gane la cascada y los derivados se recalculen con sus canales.
 */


/* Correcciones globales al tema padre. Antes viajaban en style.css, que era
   una hoja aparte y por tanto una petición más bloqueando el primer pintado.
   Viven aquí para que la portada arranque con dos hojas en vez de cuatro. */
html{ -webkit-text-size-adjust:100%; }
/* overflow-x vive en html, nunca en body, y se declara hidden primero y
   clip despues: hidden crea contenedor de scroll y eso rompe position:sticky.
   Los navegadores que entienden clip se quedan con clip, que no lo crea. */
html{ overflow-x:hidden; overflow-x:clip; }
body{ margin:0; }
img{ max-width:100%; height:auto; }

:root{
  --pop:cubic-bezier(.34,1.56,.64,1);
  --ease:cubic-bezier(.19,1,.22,1);
  --wrap:1240px;
  --gutter:22px;
  --navh:104px;
}

body{
  /* Canales. --ink es el color del texto y del trazo; --ground, el fondo.
     La variante B los intercambia y el sistema entero se invierte. */
  --ink-rgb:17 17 17;
  --ground-rgb:253 251 247;
  --accent-rgb:255 215 0;

  /* Fijos en las dos variantes: los bloques que siempre son oscuros
     (marquesina, cierre, pie) y los velos sobre fotografía. */
  --dark-rgb:10 9 8;
  --light-rgb:253 251 247;

  --ink:rgb(var(--ink-rgb));
  --ground:rgb(var(--ground-rgb));
  --accent:rgb(var(--accent-rgb));

  /* Papeles del acento */
  --on-accent:#111111;          /* sobre el oro siempre va tinta */
  --on-accent-soft:rgb(17 17 17 / .78);
  --accent-ink:#8a6b00;         /* el oro como texto, bajado para que se lea */

  --paper:#ffffff;
  --rule:rgb(var(--ink-rgb) / .12);

  /* Grosor del trazo y sombra dura: la firma de esta propuesta */
  --bw:3px;
  --shadow:7px 7px 0 var(--ink);
  --shadow-sm:4px 4px 0 var(--ink);
  --shadow-lg:12px 12px 0 var(--ink);

  --logo-w:236px;
  --logo-w-sm:196px;
  --logo-foot:310px;
}

/* ---------- Base ---------- */

*,*::before,*::after{box-sizing:border-box}

body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:clamp(1rem,.96rem + .2vw,1.06rem);line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
.num{font-variant-numeric:tabular-nums}
.wrap{width:min(100% - var(--gutter) * 2,var(--wrap));margin-inline:auto}
/* Sin esto el navegador espera por si el toque era un doble toque, y en un
   carrusel se come el toque al menor roce. */
.btn,.mcard,.ptab,.thumb,.pagelink,.arrowlink,.opt,.lbox__x,.lbox__arrow,.rail__arrow{
  touch-action:manipulation}


.wrap--tight{width:min(100% - var(--gutter) * 2,860px);margin-inline:auto}
.act{position:relative;padding-block:clamp(72px,10vw,130px)}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--on-accent);padding:12px 18px;z-index:99}
.skip:focus{left:12px;top:12px}
:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}

/* ---------- Tipografía ---------- */

.display{
  margin:0;font-weight:900;text-transform:uppercase;
  letter-spacing:-.045em;line-height:.85;
  font-size:clamp(2.9rem,10vw,7.6rem);
}
.display--md{font-size:clamp(2.4rem,6.4vw,4.8rem);line-height:.9}
.display .line{display:block}
.display .outline{display:block;color:transparent;-webkit-text-stroke:2px var(--ink)}
@supports not (-webkit-text-stroke: 1px #111){.display .outline{color:rgb(var(--ink-rgb) / .3)}}
.display .hit{color:var(--accent-ink)}

/* La manuscrita es la voz: siempre inclinada, siempre en acento. */
.hand{
  font-family:"Kalam","Segoe Script","Bradley Hand",cursive;
  font-weight:700;color:var(--accent-ink);line-height:1.1;
  display:inline-block;transform:rotate(-3deg);
}
.hand--lg{font-size:clamp(1.5rem,3.4vw,2.6rem)}
.hand--md{font-size:clamp(1.15rem,2vw,1.6rem)}

.lede{font-size:clamp(1.06rem,1.4vw,1.28rem);font-weight:400;line-height:1.6;
  color:rgb(var(--ink-rgb) / .72);max-width:34em}
.label{display:block;font-size:.66rem;font-weight:700;letter-spacing:.28em;
  /* .45 daba 3,2:1 sobre el hueso y este texto mide 10,6 px: no llegaba al
     minimo legible. .62 da 5,3:1 y sigue leyendose como un susurro. */
  text-transform:uppercase;color:rgb(var(--ink-rgb) / .62);margin:0 0 14px}

/* ---------- Botones ---------- */

.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 30px;border:var(--bw) solid var(--ink);border-radius:999px;
  font:inherit;font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;background:var(--accent);color:var(--on-accent);
  box-shadow:var(--shadow);overflow:hidden;z-index:0;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);
  transform:translateX(-101%);transition:transform .38s cubic-bezier(.7,0,.3,1)}
.btn:hover{transform:translate(4px,4px);box-shadow:var(--shadow-sm);color:var(--ground)}
.btn:hover::before{transform:translateX(0)}
.btn--ghost{background:var(--paper);color:var(--ink)}
.btn--sm{padding:11px 20px;font-size:.7rem;box-shadow:var(--shadow-sm)}
.btn--lg{padding:20px 42px;font-size:clamp(.86rem,1.4vw,1.05rem);box-shadow:var(--shadow-lg)}
.btn--lg:hover{box-shadow:var(--shadow)}

.arrowlink{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-height:44px;
  font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.arrowlink .dot{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  border:2px solid var(--ink);background:var(--paper);
  transition:transform .4s var(--pop),background-color .3s}
.arrowlink:hover .dot{transform:translateX(6px) rotate(-12deg);background:var(--accent)}

/* La llamada dentro de una superficie de acento: el círculo se invierte
   para no perderse sobre el oro. */
.fcard .arrowlink{margin-top:18px}
.fcard--hit .arrowlink,.bcard--flat .arrowlink,.lvl--top .arrowlink{color:var(--on-accent)}
.bcard--flat .arrowlink{margin-top:16px}
.fcard--hit .arrowlink .dot,.bcard--flat .arrowlink .dot,.lvl--top .arrowlink .dot{
  background:rgb(var(--light-rgb));border-color:rgb(var(--dark-rgb));color:rgb(var(--dark-rgb))}
.fcard--hit:hover .arrowlink .dot,.bcard--flat:hover .arrowlink .dot,.lvl--top:hover .arrowlink .dot{
  background:rgb(var(--dark-rgb));color:rgb(var(--light-rgb));transform:translateX(6px) rotate(-12deg)}

/* ---------- Pegatinas ---------- */

.sticker{
  display:inline-block;padding:7px 16px;border:2px solid var(--ink);border-radius:999px;
  background:var(--accent);color:var(--on-accent);
  font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  box-shadow:var(--shadow-sm);white-space:nowrap;
}
.sticker--paper{background:var(--paper);color:var(--ink)}
.sticker--hand{font-family:"Kalam",cursive;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--ink)}

/* ---------- Cabecera ---------- */

body.admin-bar .nav{top:32px}
@media screen and (max-width:782px){body.admin-bar .nav{top:46px;position:static}}

/* La cabecera fija se come el destino al saltar a un ancla, así que cada
   sección reserva su propio alto. Afecta a los cinco enlaces del menú. */
.act[id],.closer[id]{scroll-margin-top:clamp(92px,12vw,116px)}

.nav{position:sticky;top:0;z-index:60;overflow-anchor:none;background:rgb(var(--ground-rgb) / .92);
  backdrop-filter:saturate(1.4) blur(12px);border-bottom:2px solid var(--ink);
  transition:background-color .4s var(--ease)}
.nav__in{display:flex;align-items:center;gap:20px;min-height:var(--navh);padding-block:14px}
.nav.is-small .nav__in{min-height:78px;padding-block:10px}
.nav__brand{flex:none;display:block;line-height:0}
.nav__logo{width:var(--logo-w);height:auto;transition:width .4s var(--ease)}
.nav.is-small .nav__logo{width:var(--logo-w-sm)}
.nav__links{display:none;gap:28px;margin-inline:auto}
.nav__links a{font-size:.68rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;position:relative;padding-block:4px}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1)}
@media(min-width:1100px){.nav__links{display:flex}}
.nav__cta{display:none}
@media(min-width:780px){.nav__cta{display:inline-flex}}

/* Pastilla comparadora: cada opción lleva siempre su color. */
.abtoggle{flex:none;display:inline-flex;align-items:center;gap:6px;margin-left:auto;
  padding:5px 6px 5px 12px;border:2px solid var(--ink);border-radius:999px;
  background:var(--paper);text-decoration:none;line-height:1}
.abtoggle__k{font-size:.54rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:rgb(var(--ink-rgb) / .5)}
.abtoggle__s{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;
  font-size:.64rem;font-weight:900;transition:background-color .35s,color .35s,box-shadow .35s}
/* Cada letra lleva el fondo que representa: A el hueso, B el negro.
   Literales a propósito: la pastilla enseña las dos versiones a la vez. */
.abtoggle__s--a{background:#fdfbf7;color:#111;box-shadow:inset 0 0 0 2px rgba(17,17,17,.25)}
.abtoggle__s--b{background:#0a0908;color:#fdfbf7;box-shadow:inset 0 0 0 2px rgba(17,17,17,.25)}
.abtoggle__s--a.is-on,.abtoggle__s--b.is-on{box-shadow:inset 0 0 0 2px #ffd700,0 0 0 2px rgba(255,215,0,.35)}
@media(max-width:779px){.abtoggle__k{display:none}.abtoggle{padding:5px 6px}}

/* ---------- 1 · Héroe ---------- */

.hero{position:relative;overflow:hidden;padding-block:clamp(56px,8vw,92px) clamp(64px,9vw,110px)}
.hero__dots{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgb(var(--ink-rgb) / .28) 1.2px,transparent 1.2px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,transparent 100%);
          mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,transparent 100%)}
.hero__in{position:relative;z-index:2;text-align:center;display:grid;justify-items:center;gap:20px}
.hero .display{max-width:16ch}
.hero__kicker{position:relative}
.hero__lede{max-width:34em;margin-inline:auto;text-align:center}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:center;justify-content:center}
.hero__seal{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}

/* Fotos del héroe.
   En móvil van EN EL FLUJO, bajo las pegatinas: de lo contrario la primera
   imagen de la página no aparecía hasta la sección de la cocina.
   A partir de 1024 px el contenedor desaparece (display:contents) y las
   dos flotan sobre el titular, que es donde tienen sitio. */
.hero__pics{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%;margin-top:12px}
.hero__pic{position:relative;z-index:1;border:var(--bw) solid var(--ink);border-radius:24px;
  overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:4/5}
.hero__pic img{width:100%;height:100%;object-fit:cover}
.hero__pic .sticker{position:absolute;z-index:3}
.hero__pic--l{rotate:-1.5deg}
.hero__pic--r{rotate:1.5deg}
.hero__pic--l .sticker{left:10px;bottom:10px;rotate:-4deg}
.hero__pic--r .sticker{right:10px;bottom:10px;rotate:4deg}
@media(min-width:1024px){
  .hero__pics{display:contents}
  .hero__pic{position:absolute;border-radius:28px;box-shadow:var(--shadow)}
  .hero__pic--l{left:min(2vw,26px);top:16%;width:clamp(150px,17vw,250px);aspect-ratio:3/4;rotate:-7deg}
  .hero__pic--r{right:min(2vw,26px);bottom:8%;width:clamp(160px,18vw,270px);aspect-ratio:4/3;rotate:6deg}
  .hero__pic--l .sticker{right:-14px;bottom:-12px;left:auto;rotate:9deg}
  .hero__pic--r .sticker{left:-16px;top:-14px;right:auto;bottom:auto;rotate:-10deg}
}
@media(min-width:1024px) and (prefers-reduced-motion:no-preference){
  .hero__pic--l{animation:bobA 7s ease-in-out infinite}
  .hero__pic--r{animation:bobB 8s ease-in-out infinite}
}
@keyframes bobA{50%{transform:translateY(-18px) rotate(2deg)}}
@keyframes bobB{50%{transform:translateY(16px) rotate(-2deg)}}

/* ---------- Marquesina ---------- */

.strip{position:relative;z-index:5;background:rgb(var(--dark-rgb));color:var(--accent);
  border-block:var(--bw) solid rgb(var(--dark-rgb));padding-block:16px;overflow:hidden;
  rotate:-1.6deg;scale:1.05;box-shadow:0 18px 40px rgb(var(--dark-rgb) / .3)}
.strip__track{display:flex;width:max-content;animation:slide 26s linear infinite}
.strip:hover .strip__track{animation-play-state:paused}
.strip__run{display:flex;align-items:center;gap:28px;padding-right:28px;
  font-size:clamp(1.05rem,2.6vw,1.9rem);font-weight:900;letter-spacing:-.02em;
  text-transform:uppercase;white-space:nowrap}
.strip__run b{width:9px;height:9px;border-radius:50%;background:rgb(var(--light-rgb));flex:none}
@keyframes slide{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.strip__track{animation:none}}

/* ---------- 2 · La fórmula ---------- */

.formula{display:grid;gap:18px;margin-top:clamp(36px,5vw,60px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,238px),1fr))}
.fcard{position:relative;isolation:isolate;overflow:hidden;
  border:var(--bw) solid var(--ink);border-radius:26px;background:var(--paper);
  padding:30px 26px 28px;box-shadow:var(--shadow-sm);
  will-change:transform;transform-style:preserve-3d;
  transition:transform .55s var(--ease),box-shadow .45s var(--ease)}
.fcard::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),
    rgb(var(--accent-rgb) / .22),transparent 62%);
  transition:opacity .4s var(--ease)}
.fcard:hover{box-shadow:var(--shadow-lg)}
.fcard:hover::before{opacity:1}
.fcard.is-live{transition:transform .1s linear,box-shadow .45s var(--ease)}
.fcard__n{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);color:var(--on-accent);
  font-size:1.25rem;font-weight:900;margin-bottom:20px;
  transition:transform .5s var(--pop)}
.fcard:hover .fcard__n{transform:translateZ(30px) rotate(-10deg) scale(1.08)}
.fcard h3{font-size:1.32rem;font-weight:900;letter-spacing:-.02em;margin-bottom:9px}
.fcard p{font-size:.88rem;line-height:1.58;color:rgb(var(--ink-rgb) / .68)}
.fcard--hit{background:var(--accent);color:var(--on-accent);border-color:rgb(var(--dark-rgb))}
.fcard--hit h3{color:var(--on-accent)}
.fcard--hit p{color:var(--on-accent-soft)}
.fcard--hit .fcard__n{background:rgb(var(--light-rgb));color:var(--on-accent);
  border-color:rgb(var(--dark-rgb))}

/* ---------- 3 · Cocina flotante ---------- */

.duo{display:grid;gap:clamp(34px,5vw,64px);align-items:center}
@media(min-width:900px){.duo{grid-template-columns:1.02fr 1fr}
  .duo--flip>*:first-child{order:2}}

.ring{position:relative;width:min(100%,560px);margin-inline:auto;aspect-ratio:1}
.ring__img{position:absolute;inset:7%;border-radius:50%;overflow:hidden;
  border:var(--bw) solid var(--ink);box-shadow:var(--shadow-lg)}
.ring__img img{width:100%;height:100%;object-fit:cover}
.ring__text{position:absolute;inset:0;animation:turn 30s linear infinite}
@keyframes turn{to{rotate:360deg}}
@media(prefers-reduced-motion:reduce){.ring__text{animation:none}}
.ring__text text{font-family:"Poppins",sans-serif;font-size:4.1px;font-weight:800;
  letter-spacing:.24em;text-transform:uppercase;fill:var(--accent-ink)}
.ring .sticker{position:absolute;z-index:3}
.ring .sticker--a{top:1%;left:-2%;rotate:-8deg}
.ring .sticker--b{bottom:6%;right:-2%;rotate:7deg}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.pair figure{margin:0;border:var(--bw) solid var(--ink);border-radius:20px;overflow:hidden;
  box-shadow:var(--shadow-sm);aspect-ratio:4/3}
.pair img{width:100%;height:100%;object-fit:cover}

/* ---------- Open bar · vive en la página de Food & Bar ---------- */

/* La cabecera de esta sección va centrada en los dos tamaños: es la misma
   decisión editorial que en la web hermana y deja el bloque de tres iguales. */
.bar__head{max-width:46rem;margin-inline:auto;text-align:center}
.bar__lede{margin:20px auto 0}

.bars{display:grid;gap:104px 18px;margin-top:clamp(104px,12vw,132px)}
@media(min-width:900px){.bars{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}

.lvl{position:relative;isolation:isolate;
  border:var(--bw) solid var(--ink);border-radius:26px;background:var(--paper);
  padding:0 24px 26px;display:flex;flex-direction:column;
  box-shadow:var(--shadow-sm);
  will-change:transform;transform-style:preserve-3d;
  transition:transform .55s var(--ease),box-shadow .45s var(--ease)}
/* El resplandor se recorta solo: el fondo respeta el radio del propio pseudo,
   así la tarjeta puede dejar el vaso asomar por arriba sin recortarlo. */
.lvl::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;border-radius:inherit;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),
    rgb(var(--accent-rgb) / .22),transparent 62%);
  transition:opacity .4s var(--ease)}
.lvl:hover{box-shadow:var(--shadow-lg)}
.lvl:hover::before{opacity:1}
.lvl.is-live{transition:transform .1s linear,box-shadow .45s var(--ease)}

/* Altura fija: los tres vasos son de proporciones distintas y, dejándolos
   crecer por ancho, los nombres de las tarjetas no caían en la misma línea. */
.lvl__glass{width:100%;height:clamp(152px,19vw,188px);margin:-86px 0 0;
  filter:drop-shadow(0 18px 22px rgb(var(--ink-rgb) / .3));
  transition:transform .5s var(--pop)}
.lvl__glass img{display:block;width:auto;max-width:100%;height:100%;
  margin-inline:auto;object-fit:contain}
.lvl:hover .lvl__glass{transform:translateZ(44px) rotate(-5deg) scale(1.06)}

.lvl__flag{position:absolute;top:-16px;right:18px;z-index:2}

.lvl__top{display:grid;gap:7px;padding-top:14px;text-align:center}
.lvl h3{margin:0;font-size:clamp(1.6rem,3vw,2rem);font-weight:900;text-transform:uppercase;
  letter-spacing:-.035em;line-height:1;transition:transform .5s var(--pop)}
.lvl:hover h3{transform:translateZ(26px)}
.lvl__price{font-size:clamp(1.45rem,3vw,1.85rem);font-weight:900;line-height:1;
  letter-spacing:-.02em;color:var(--accent-ink)}
.lvl__kick{font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:rgb(var(--ink-rgb) / .58);line-height:1.5}

.lvl__welcome{margin-top:20px;border:var(--bw) solid var(--ink);border-radius:18px;
  background:var(--paper);padding:14px 16px;text-align:center;box-shadow:var(--shadow-sm)}
.lvl__welcome b{display:block;font-size:.6rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:6px}
.lvl__welcome span{font-size:.88rem;font-weight:700;line-height:1.42;color:var(--ink)}

.lvl__block{margin-top:20px;padding-top:17px;border-top:2px solid rgb(var(--ink-rgb) / .14)}
.lvl__lbl{display:block;font-size:.6rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:11px}

.lvl__bottles{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.lvl__bottles li{position:relative;padding-left:18px;font-size:.9rem;font-weight:700;line-height:1.35}
.lvl__bottles li::before{content:"";position:absolute;left:0;top:.46em;width:8px;height:8px;
  border-radius:50%;background:var(--accent);border:2px solid var(--ink)}

.lvl__also{margin:0;font-size:.84rem;line-height:1.62;color:rgb(var(--ink-rgb) / .68)}

.lvl__count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;
  margin-left:7px;border-radius:999px;border:2px solid var(--ink);
  background:var(--accent);color:var(--on-accent);font-size:.6rem;vertical-align:-4px}
.lvl__mix{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.lvl__mix li{font-size:.61rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  border:2px solid var(--ink);border-radius:999px;padding:5px 11px;white-space:nowrap}

/* El enlace se pega abajo para que las tres tarjetas cierren a la misma altura. */
.lvl__cta{margin-top:auto;padding-top:24px}

/* El nivel alto va en oro, con los tres papeles del acento ya resueltos. */
.lvl--top{background:var(--accent);border-color:rgb(var(--dark-rgb))}
.lvl--top h3,.lvl--top .lvl__price{color:var(--on-accent)}
.lvl--top .lvl__kick,.lvl--top .lvl__also{color:var(--on-accent-soft)}
.lvl--top .lvl__lbl{color:var(--on-accent)}
.lvl--top .lvl__block{border-top-color:rgb(var(--dark-rgb) / .3)}
.lvl--top .lvl__bottles li{color:var(--on-accent)}
.lvl--top .lvl__bottles li::before{background:rgb(var(--light-rgb));border-color:rgb(var(--dark-rgb))}
.lvl--top .lvl__mix li{border-color:rgb(var(--dark-rgb) / .5);color:var(--on-accent)}
.lvl--top .lvl__count{background:rgb(var(--light-rgb));color:var(--on-accent);
  border-color:rgb(var(--dark-rgb))}
.lvl--top .lvl__welcome{background:rgb(var(--light-rgb));border-color:rgb(var(--dark-rgb))}
.lvl--top .lvl__welcome span{color:rgb(var(--dark-rgb))}

.bar__note{max-width:40rem;margin:clamp(34px,4vw,46px) auto 0;text-align:center;
  font-size:.84rem;line-height:1.65;color:rgb(var(--ink-rgb) / .62)}

/* Norma del estudio: el texto que se lee no baja de 15 px en móvil. */
@media(max-width:899px){
  .lvl__bottles li,.lvl__also,.bar__note{font-size:.95rem}
}

/* ---------- 4 · Bento de ocasiones ---------- */

.bento{display:grid;gap:16px;margin-top:clamp(34px,5vw,56px);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
@media(min-width:900px){
  .bento{grid-template-columns:repeat(3,1fr);grid-auto-rows:260px}
  .bento__big{grid-column:span 2;grid-row:span 2}
}
.bcard{position:relative;overflow:hidden;border:var(--bw) solid var(--ink);border-radius:26px;
  box-shadow:var(--shadow-sm);min-height:260px;display:flex;flex-direction:column;
  justify-content:flex-end;padding:24px;isolation:isolate;text-decoration:none;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.bcard:hover{transform:translate(-3px,-3px);box-shadow:var(--shadow-lg)}
.bcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform .9s var(--ease)}
.bcard:hover img{transform:scale(1.06)}
.bcard::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgb(var(--dark-rgb) / .1) 30%,rgb(var(--dark-rgb) / .84))}
.bcard h3{color:rgb(var(--light-rgb));font-size:clamp(1.5rem,3vw,2.3rem);font-weight:900;
  letter-spacing:-.03em;line-height:.96}
.bcard p{color:rgb(var(--light-rgb) / .84);font-size:.88rem;margin:8px 0 0;max-width:34em}
.bcard .sticker{position:absolute;top:18px;left:18px}
.bcard--flat{background:var(--accent);justify-content:space-between;
  border-color:rgb(var(--dark-rgb))}
.bcard--flat::after{display:none}
.bcard--flat h3{color:var(--on-accent)}
.bcard--flat p{color:var(--on-accent-soft)}

/* ---------- 5 · Tu precio ---------- */

.calc{display:grid;gap:20px;margin-top:clamp(38px,5vw,58px)}
@media(min-width:1000px){.calc{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}}

.calc__main{border:var(--bw) solid var(--ink);border-radius:30px;background:var(--paper);
  padding:clamp(24px,4vw,38px);box-shadow:var(--shadow)}
.calc__top{text-align:center;margin-bottom:26px}
.calc__top h3{margin:0;font-size:clamp(1.5rem,3.2vw,2.1rem);font-weight:900;
  text-transform:uppercase;letter-spacing:-.035em;line-height:1}
.calc__top p{margin:9px 0 0;font-size:.9rem;color:rgb(var(--ink-rgb) / .66)}

.step{display:flex;align-items:center;gap:12px;margin:0 0 16px;
  font-size:.62rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.step__n{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);color:var(--on-accent);
  font-size:.9rem;letter-spacing:0}

/* Las cuatro cartas del menú: foto cuadrada, y la elegida se va a oro. */
.menus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:30px}
@media(min-width:620px){.menus{grid-template-columns:repeat(4,minmax(0,1fr))}}
.mcard{appearance:none;cursor:pointer;font:inherit;color:var(--ink);text-align:center;
  display:grid;gap:10px;padding:10px 10px 14px;
  border:var(--bw) solid var(--ink);border-radius:22px;background:var(--paper);
  box-shadow:var(--shadow-sm);transition:transform .4s var(--pop),background-color .3s,box-shadow .3s}
.mcard:hover{transform:translateY(-4px)}
.mcard__img{display:block;overflow:hidden;border-radius:14px;border:2px solid var(--ink);
  aspect-ratio:1;background:rgb(var(--ink-rgb) / .06)}
.mcard__img img{display:block;width:100%;height:100%;object-fit:cover}
.mcard__n{font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.mcard.is-on{background:var(--accent);border-color:rgb(var(--dark-rgb));
  box-shadow:var(--shadow);transform:translateY(-4px)}
.mcard.is-on .mcard__n{color:var(--on-accent)}
.mcard.is-on .mcard__img{border-color:rgb(var(--dark-rgb))}

/* El deslizador: grueso, para el dedo. */
.slide{text-align:center;margin-bottom:28px}
.slide__n{display:inline-grid;place-items:center;min-width:90px;height:62px;padding:0 18px;
  border:var(--bw) solid var(--ink);border-radius:999px;background:var(--accent);
  color:var(--on-accent);font-size:1.8rem;font-weight:900;letter-spacing:-.03em;
  box-shadow:var(--shadow-sm);margin-bottom:18px}
/* El control mide 44 px de alto aunque la barra se vea fina: con el dedo,
   una barra de 16 px no se agarra. La barra se dibuja en la pista. */
.slide__in{appearance:none;width:100%;height:44px;margin:0;padding:0;
  background:transparent;border:0;cursor:pointer}
.slide__in::-webkit-slider-runnable-track{box-sizing:border-box;height:22px;border-radius:999px;
  border:var(--bw) solid var(--ink);background:rgb(var(--ink-rgb) / .08)}
.slide__in::-webkit-slider-thumb{appearance:none;width:38px;height:38px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);box-shadow:var(--shadow-sm);
  cursor:grab;margin-top:-8px}
.slide__in::-moz-range-track{box-sizing:border-box;height:22px;border-radius:999px;
  border:var(--bw) solid var(--ink);background:rgb(var(--ink-rgb) / .08)}
.slide__in::-moz-range-thumb{width:38px;height:38px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);box-shadow:var(--shadow-sm);cursor:grab}
.slide__in:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.slide__hint{margin:16px auto 0;max-width:34em;font-size:.84rem;line-height:1.6;
  color:rgb(var(--ink-rgb) / .66)}

/* El resultado es la cifra destacada de la sección: centrada en los dos tamaños. */
.result{display:grid;gap:14px;padding-top:24px;border-top:var(--bw) solid var(--ink)}
@media(min-width:560px){.result{grid-template-columns:1fr 1fr;gap:18px}}
.result__half{text-align:center;border:var(--bw) solid var(--ink);border-radius:22px;
  background:var(--accent);padding:20px 16px;box-shadow:var(--shadow-sm)}
.result__half--b{background:rgb(var(--dark-rgb))}
.result__k{display:block;font-size:.57rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--on-accent-soft);margin-bottom:8px}
.result__half--b .result__k{color:rgb(var(--light-rgb) / .62)}
.result__v{display:block;font-size:clamp(2rem,6vw,2.9rem);font-weight:900;line-height:1;
  letter-spacing:-.04em;color:var(--on-accent)}
.result__half--b .result__v{color:rgb(var(--light-rgb))}
.calc__cta{display:flex;width:100%;margin-top:22px}

.calc__side{display:grid;gap:20px}
.pside{border:var(--bw) solid var(--ink);border-radius:26px;background:var(--paper);
  padding:26px 24px;box-shadow:var(--shadow-sm)}
.pside .label{margin-bottom:18px;color:var(--accent-ink)}
.discs{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.discs li{display:flex;align-items:center;gap:14px}
.discs b{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);color:var(--on-accent);
  font-size:.92rem;font-weight:900}
.discs span{font-size:.88rem;line-height:1.45;font-weight:700}
.pside__note{margin:18px 0 0;font-size:.82rem;line-height:1.6;color:rgb(var(--ink-rgb) / .66)}
.goods{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.goods li{position:relative;padding-left:20px;font-size:.86rem;line-height:1.55;
  color:rgb(var(--ink-rgb) / .78)}
.goods li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;
  border-radius:50%;background:var(--accent);border:2px solid var(--ink)}

/* Norma del estudio: lo que se lee no baja de 15 px en móvil. */
@media(max-width:899px){
  .slide__hint,.goods li,.discs span,.pside__note{font-size:.95rem}
}

/* ---------- 6 · Group perks ---------- */

/* Titular largo: un punto menos de cuerpo lo deja en dos líneas limpias. */
.display--perks,.display--tight{font-size:clamp(2rem,5vw,3.5rem)}

.perks{margin-top:clamp(38px,5vw,54px)}
.perks__tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}
.ptab{appearance:none;cursor:pointer;font:inherit;color:var(--ink);text-align:center;
  display:grid;gap:5px;padding:16px 10px;
  border:var(--bw) solid var(--ink);border-radius:20px;background:var(--paper);
  box-shadow:var(--shadow-sm);transition:transform .4s var(--pop),background-color .3s}
.ptab:hover{transform:translateY(-3px)}
.ptab b{font-size:clamp(.92rem,2.4vw,1.2rem);font-weight:900;letter-spacing:-.02em;line-height:1}
.ptab span{font-size:.55rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:rgb(var(--ink-rgb) / .58);line-height:1.4}
.ptab.is-on{background:var(--accent);border-color:rgb(var(--dark-rgb));transform:translateY(-3px)}
.ptab.is-on b{color:var(--on-accent)}
.ptab.is-on span{color:var(--on-accent-soft)}

.ppanel{display:grid;gap:26px;align-items:center;
  border:var(--bw) solid var(--ink);border-radius:30px;background:var(--paper);
  padding:clamp(26px,4vw,40px);box-shadow:var(--shadow)}
.ppanel[hidden]{display:none}
@media(min-width:820px){.ppanel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}
.ppanel__l{text-align:center}
@media(min-width:820px){.ppanel__l{text-align:left;border-right:2px solid rgb(var(--ink-rgb) / .14);padding-right:30px}}
.ppanel__k{display:block;font-size:.57rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:10px}
.ppanel__big{display:block;font-size:clamp(2.2rem,7vw,3.4rem);font-weight:900;line-height:.95;
  letter-spacing:-.045em}
.ppanel__s{display:block;margin-top:10px;font-size:.57rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:rgb(var(--ink-rgb) / .55)}
.ppanel__kick{display:block;font-size:.57rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:16px;text-align:center}
@media(min-width:820px){.ppanel__kick{text-align:left}}
.plist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.plist li{display:flex;align-items:center;gap:13px;font-size:1rem;font-weight:700;line-height:1.35}
.plist__ic{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:50%;
  border:var(--bw) solid var(--ink);background:var(--accent);color:var(--on-accent);font-size:1rem}
.plist__or{justify-content:center;font-size:.57rem;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:rgb(var(--ink-rgb) / .45)}
@media(min-width:820px){.plist__or{justify-content:flex-start;padding-left:12px}}

/* El nivel alto va en oro, como todo lo que esta web quiere destacar. */
.ppanel--vip{background:var(--accent);border-color:rgb(var(--dark-rgb))}
.ppanel--vip .ppanel__k,.ppanel--vip .ppanel__kick{color:var(--on-accent)}
.ppanel--vip .ppanel__big,.ppanel--vip .plist li{color:var(--on-accent)}
.ppanel--vip .ppanel__s{color:var(--on-accent-soft)}
.ppanel--vip .plist__ic{background:rgb(var(--light-rgb));border-color:rgb(var(--dark-rgb));
  color:rgb(var(--dark-rgb))}
@media(min-width:820px){.ppanel--vip .ppanel__l{border-right-color:rgb(var(--dark-rgb) / .3)}}

/* ---------- 7 · Configurador ---------- */

.build{display:grid;gap:clamp(30px,4vw,56px)}
@media(min-width:960px){.build{grid-template-columns:1fr 1fr;align-items:center}}
.opts{display:grid;gap:12px;margin-top:26px}
.opt{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 18px;border:var(--bw) solid var(--ink);border-radius:18px;background:var(--paper);
  box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;font:inherit;width:100%;
  color:var(--ink);
  transition:transform .28s var(--pop),box-shadow .28s var(--ease),background-color .3s}
.opt:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.opt__l{display:flex;align-items:center;gap:14px;font-weight:800;font-size:1rem}
.opt__i{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;flex:none;
  border:2px solid var(--ink);background:var(--accent);color:var(--on-accent);
  transition:transform .4s var(--pop)}
.opt:hover .opt__i{transform:rotate(-12deg)}
.opt__i svg{width:20px;height:20px}
.opt__box{display:grid;place-items:center;width:30px;height:30px;flex:none;
  border:2px solid var(--ink);border-radius:9px;background:var(--ground);
  transition:background-color .25s}
.opt__box svg{width:17px;height:17px;opacity:0;transform:scale(.5);
  transition:opacity .25s,transform .35s var(--pop)}
.opt[aria-pressed="true"]{background:rgb(var(--accent-rgb) / .14)}
.opt[aria-pressed="true"] .opt__box{background:var(--accent)}
.opt[aria-pressed="true"] .opt__box svg{opacity:1;transform:scale(1)}
.build__note{margin-top:18px;font-size:.8rem;color:rgb(var(--ink-rgb) / .6)}

.stack2{position:relative;min-height:clamp(340px,42vw,470px)}
.stack2 figure{position:absolute;margin:0;border:var(--bw) solid var(--ink);border-radius:26px;
  overflow:hidden;box-shadow:var(--shadow)}
.stack2 img{width:100%;height:100%;object-fit:cover}
/* Las medidas van por ALTURA, no por anchura: así las dos fotos caben
   siempre dentro del bloque y no se suben encima de la lista de extras. */
.stack2 .s1{top:0;left:0;height:70%;aspect-ratio:4/3;rotate:-3deg}
.stack2 .s2{bottom:0;right:0;height:62%;aspect-ratio:1;rotate:4deg;z-index:2;
  transition:transform .5s var(--pop)}
.stack2 .s2:hover{transform:translateY(-8px) rotate(-1deg)}
.stack2 .sticker{position:absolute;top:8%;right:4%;z-index:3;rotate:11deg}

/* ---------- 8 · Flota ---------- */

.fleet{display:flex;gap:16px;overflow-x:auto;padding:14px 2px 22px;scroll-snap-type:x mandatory;
  margin-top:clamp(32px,4vw,52px)}
.fleet::-webkit-scrollbar{height:8px}
.fleet::-webkit-scrollbar-thumb{background:var(--ink);border-radius:99px}
@media(min-width:980px){
  .fleet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;overflow:visible}
  .boat{flex:none}
}
.boat{position:relative;isolation:isolate;overflow:hidden;scroll-snap-align:start;
  flex:0 0 clamp(250px,78vw,330px);border:var(--bw) solid var(--ink);border-radius:26px;
  background:var(--paper);padding:24px;display:flex;flex-direction:column;gap:11px;
  min-height:250px;box-shadow:var(--shadow-sm);
  will-change:transform;transform-style:preserve-3d;
  transition:transform .55s var(--ease),box-shadow .45s var(--ease)}
.boat::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),
    rgb(var(--accent-rgb) / .2),transparent 62%);transition:opacity .4s var(--ease)}
.boat:hover{box-shadow:var(--shadow-lg)}
.boat:hover::before{opacity:1}
.boat.is-live{transition:transform .1s linear,box-shadow .45s var(--ease)}
.boat--flag{background:var(--accent);border-color:rgb(var(--dark-rgb))}
.boat--flag h3{color:var(--on-accent)}
.boat__tag{font-size:.6rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-ink)}
.boat--flag .boat__tag{color:var(--on-accent-soft)}
.boat h3{font-size:clamp(1.5rem,3vw,2rem);font-weight:900;text-transform:uppercase;
  letter-spacing:-.04em;line-height:1;transition:transform .5s var(--pop)}
.boat:hover h3{transform:translateZ(28px)}
.boat p{flex:1;font-size:.86rem;line-height:1.58;color:rgb(var(--ink-rgb) / .68)}
.boat--flag p{color:var(--on-accent-soft)}
.boat__specs{list-style:none;margin:0;padding:14px 0 0;border-top:2px solid var(--ink);
  display:flex;flex-wrap:wrap;gap:7px}
.boat__specs li{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  border:2px solid var(--ink);border-radius:999px;padding:5px 10px;white-space:nowrap}
.boat--flag .boat__specs li{border-color:rgb(var(--dark-rgb) / .55);color:var(--on-accent)}
.boat--flag .boat__specs{border-top-color:rgb(var(--dark-rgb) / .35)}

/* ---------- 9 · Cierre ---------- */

.closer{background:rgb(var(--dark-rgb));color:rgb(var(--light-rgb));text-align:center;
  position:relative;overflow:hidden;border-top:var(--bw) solid rgb(var(--dark-rgb))}
.closer .display{color:rgb(var(--light-rgb))}
.closer .display .outline{-webkit-text-stroke-color:rgb(var(--light-rgb))}
.closer .display .hit,.closer .hand{color:var(--accent)}
.closer .lede{color:rgb(var(--light-rgb) / .72);margin-inline:auto;text-align:center}
.closer .sticker{border-color:rgb(var(--dark-rgb));box-shadow:4px 4px 0 rgb(var(--light-rgb) / .3)}
.closer .btn{border-color:rgb(var(--light-rgb));box-shadow:7px 7px 0 rgb(var(--light-rgb) / .35)}
.closer .btn:hover{box-shadow:4px 4px 0 rgb(var(--light-rgb) / .35);color:rgb(var(--dark-rgb))}
.closer .btn::before{background:rgb(var(--light-rgb))}
.bigword{position:absolute;left:50%;top:52%;translate:-50% -50%;pointer-events:none;
  font-size:22vw;font-weight:900;line-height:1;letter-spacing:-.06em;text-transform:uppercase;
  color:rgb(var(--light-rgb) / .05);white-space:nowrap}

.faq{margin-top:clamp(44px,6vw,72px);display:grid;gap:10px;text-align:left}
@media(min-width:820px){.faq{grid-template-columns:1fr 1fr}}
.faq details{border:2px solid rgb(var(--light-rgb) / .22);border-radius:16px;
  padding:4px 18px;background:rgb(var(--light-rgb) / .05)}
.faq summary{cursor:pointer;list-style:none;padding:15px 0;font-weight:800;font-size:.94rem;
  display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:1.3rem;font-weight:900;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq p{padding:0 0 16px;font-size:.88rem;color:rgb(var(--light-rgb) / .76)}

/* ---------- Enlace a otra página ----------
   Los demás enlaces del menú bajan dentro de la misma página; este abre otra.
   Por eso va en pastilla, con flecha diagonal, y separado por una línea. */

.pagelink{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;
  margin-left:4px;padding:9px 15px;border:2px solid var(--ink);border-radius:999px;
  background:var(--paper);color:var(--ink);text-decoration:none;white-space:nowrap;
  font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  box-shadow:var(--shadow-sm);transition:background-color .3s,color .3s,transform .4s var(--pop)}
.pagelink::before{content:"";position:absolute;left:-16px;top:50%;translate:0 -50%;
  width:2px;height:26px;background:rgb(var(--ink-rgb) / .2)}
.pagelink__a{width:13px;height:13px;flex:none;transition:transform .4s var(--pop)}
.pagelink:hover{background:var(--accent);color:var(--on-accent);transform:translateY(-2px)}
.pagelink:hover .pagelink__a{transform:translate(2px,-2px)}
.pagelink.is-here{background:var(--accent);color:var(--on-accent)}
/* Hasta 1100 px el menú de anclas no se muestra; la pastilla sí, porque es la
   única manera de llegar a la otra página desde el móvil. */
@media(max-width:1099px){.pagelink::before{display:none}}
@media(max-width:560px){
  .pagelink{margin-left:auto;padding:8px 12px;font-size:.6rem;letter-spacing:.1em}
  .nav__logo{width:var(--logo-w-sm)}
}
@media(max-width:400px){.nav__logo{width:160px}}

/* ---------- Food & Bar · portada ---------- */

.fbhero{position:relative;overflow:hidden;padding-block:clamp(26px,5vw,56px) clamp(60px,8vw,96px)}
.fbhero__in{position:relative;z-index:1;display:grid;gap:clamp(36px,5vw,60px);align-items:center}
@media(min-width:1000px){.fbhero__in{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.fbhero__copy{text-align:center}
@media(min-width:1000px){.fbhero__copy{text-align:left}}
.fbhero .display{font-size:clamp(2rem,4.5vw,3.6rem)}
.fbhero .lede{margin-inline:auto}
@media(min-width:1000px){.fbhero .lede{margin-inline:0}}
.hero__ctas{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:center;
  margin-top:clamp(26px,3vw,34px)}
@media(min-width:1000px){.hero__ctas{justify-content:flex-start}}

.fbstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
  margin-top:clamp(30px,4vw,42px);padding-top:26px;border-top:2px solid rgb(var(--ink-rgb) / .14)}
.fbstat{text-align:center}
@media(min-width:1000px){.fbstat{text-align:left}}
.fbstat strong{display:block;font-size:clamp(1.9rem,4.4vw,2.7rem);font-weight:900;line-height:1;
  letter-spacing:-.04em;color:var(--accent-ink)}
.fbstat span{display:block;margin-top:7px;font-size:.6rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:rgb(var(--ink-rgb) / .58);line-height:1.4}
.fbhero__fine{margin:22px 0 0;font-size:.84rem;line-height:1.6;color:rgb(var(--ink-rgb) / .62)}

.fbhero__pics{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fbpic{position:relative;margin:0;border:var(--bw) solid var(--ink);border-radius:24px;
  overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}
.fbpic img{display:block;width:100%;height:100%;object-fit:cover}
.fbpic--a{grid-column:span 2;aspect-ratio:16/10;rotate:-1.2deg}
.fbpic--b,.fbpic--c{aspect-ratio:1}
.fbpic--b{rotate:2deg}
.fbpic--c{rotate:-2deg}
.fbhero__tag{position:absolute;left:50%;bottom:-16px;translate:-50% 0;z-index:2;rotate:-3deg}
@media(min-width:1000px){.fbhero__tag{left:auto;right:-10px;bottom:-18px;translate:0 0}}

/* ---------- Food & Bar · la galería ----------
   Miniaturas pequeñas en una sola fila: la sección no se come la pantalla y
   la foto se mira de verdad en el visor, no en la rejilla. */

.rail{position:relative;margin-top:clamp(30px,4vw,44px)}
.rail__track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:10px 2px 14px;scrollbar-width:thin}
.rail__track::-webkit-scrollbar{height:7px}
.rail__track::-webkit-scrollbar-thumb{background:var(--ink);border-radius:99px}

.thumb{appearance:none;cursor:pointer;padding:0;position:relative;flex:none;
  width:clamp(118px,30vw,152px);aspect-ratio:3/4;scroll-snap-align:start;overflow:hidden;
  border:var(--bw) solid var(--ink);border-radius:16px;background:var(--paper);
  box-shadow:var(--shadow-sm);
  transition:transform .45s var(--pop),box-shadow .35s var(--ease)}
.thumb img{display:block;width:100%;height:100%;object-fit:cover;
  transition:transform .6s var(--ease)}
.thumb:hover,.thumb:focus-visible{transform:translateY(-5px) rotate(-1.2deg);box-shadow:var(--shadow)}
.thumb:hover img{transform:scale(1.08)}
.thumb__zoom{position:absolute;right:8px;bottom:8px;display:grid;place-items:center;
  width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);
  background:var(--accent);color:var(--on-accent);opacity:0;translate:0 6px;
  transition:opacity .3s,translate .3s var(--pop)}
.thumb__zoom svg{width:15px;height:15px}
.thumb:hover .thumb__zoom,.thumb:focus-visible .thumb__zoom{opacity:1;translate:0 0}

.rail__arrow{position:absolute;top:50%;translate:0 -50%;z-index:3;display:none;
  place-items:center;width:46px;height:46px;border-radius:50%;cursor:pointer;
  border:var(--bw) solid var(--ink);background:var(--paper);color:var(--ink);
  box-shadow:var(--shadow-sm);transition:background-color .3s,transform .4s var(--pop)}
.rail__arrow svg{width:20px;height:20px}
.rail__arrow:hover{background:var(--accent);color:var(--on-accent)}
.rail__arrow--prev{left:-10px}
.rail__arrow--next{right:-10px}
.rail__arrow[disabled]{opacity:.3;cursor:default}
.rail__arrow[disabled]:hover{background:var(--paper);color:var(--ink)}
@media(min-width:900px){.rail__arrow{display:grid}}

.tray__hint{margin:14px 0 0;text-align:center;font-size:.86rem;
  color:rgb(var(--ink-rgb) / .62)}
.tray__hint b{color:var(--accent-ink)}

/* ---------- El visor ---------- */

.lbox{position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  padding:clamp(16px,4vw,40px);background:rgb(var(--dark-rgb) / .93);
  backdrop-filter:blur(6px);animation:lboxin .25s var(--ease)}
.lbox[hidden]{display:none}
@keyframes lboxin{from{opacity:0}to{opacity:1}}
.lbox__fig{margin:0;max-width:min(100%,820px);display:grid;gap:14px;justify-items:center}
.lbox__fig img{display:block;max-width:100%;max-height:70vh;width:auto;height:auto;
  border:var(--bw) solid rgb(var(--light-rgb));border-radius:20px;background:rgb(var(--dark-rgb))}
.lbox__fig figcaption{text-align:center;font-size:.88rem;line-height:1.5;
  color:rgb(var(--light-rgb) / .8);max-width:40em}

.lbox__x,.lbox__arrow{position:absolute;z-index:2;display:grid;place-items:center;cursor:pointer;
  border:var(--bw) solid rgb(var(--light-rgb));border-radius:50%;
  background:rgb(var(--dark-rgb));color:rgb(var(--light-rgb));
  transition:background-color .3s,color .3s,transform .4s var(--pop)}
.lbox__x svg,.lbox__arrow svg{width:20px;height:20px}
.lbox__x:hover,.lbox__arrow:hover{background:var(--accent);color:var(--on-accent);
  border-color:rgb(var(--dark-rgb))}
.lbox__x{top:clamp(14px,3vw,26px);right:clamp(14px,3vw,26px);width:48px;height:48px}
.lbox__arrow{top:50%;translate:0 -50%;width:52px;height:52px}
.lbox__arrow--prev{left:clamp(8px,2vw,26px)}
.lbox__arrow--next{right:clamp(8px,2vw,26px)}
.lbox__n{position:absolute;left:50%;bottom:clamp(14px,3vw,26px);translate:-50% 0;
  font-size:.62rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:rgb(var(--light-rgb) / .55)}
/* En móvil las flechas estorban sobre la foto: bajan a la base, separadas. */
@media(max-width:700px){
  .lbox__fig img{max-height:60vh}
  .lbox__arrow{top:auto;bottom:clamp(14px,4vw,26px);translate:0 0;width:52px;height:52px}
  .lbox__arrow--prev{left:22px}
  .lbox__arrow--next{right:22px}
  .lbox__n{bottom:34px}
}
body.lbox-open{overflow:hidden}

/* ---------- WhatsApp en la cabecera ---------- */

.wa{display:inline-flex;align-items:center;gap:9px}
.wa__i{width:17px;height:17px;flex:none}
/* Por debajo de 780 px la pastilla de Food & Bar ya ocupa sitio, así que la
   llamada se queda en el círculo con el glifo, que se entiende solo. */
@media(max-width:779px){
  /* flex:none, o el círculo se deja estrujar por debajo de la medida mínima
     que hace falta para acertarle con el dedo. */
  .nav__cta{display:inline-grid;place-items:center;flex:none;
    width:46px;height:46px;padding:0;border-radius:50%}
  .nav__cta .wa__t{display:none}
  .wa__i{width:21px;height:21px}
  .pagelink{flex:none}
  .nav__in{gap:10px}
}
@media(max-width:400px){.nav__logo{width:128px}}
@media(max-width:380px){.nav__logo{width:112px}}

/* ---------- Food & Bar · los cuatro menús ---------- */

.plates{display:grid;gap:72px 18px;margin-top:clamp(34px,4vw,52px)}
@media(min-width:700px){.plates{grid-template-columns:repeat(2,minmax(0,1fr));gap:72px 18px}}
@media(min-width:1100px){.plates{gap:18px}}
@media(min-width:1100px){.plates{grid-template-columns:repeat(4,minmax(0,1fr))}}

.plate{position:relative;isolation:isolate;display:flex;flex-direction:column;
  border:var(--bw) solid var(--ink);border-radius:26px;background:var(--paper);
  padding:0 24px 26px;box-shadow:var(--shadow-sm);
  will-change:transform;transform-style:preserve-3d;
  transition:transform .55s var(--ease),box-shadow .45s var(--ease)}
.plate::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;border-radius:inherit;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),
    rgb(var(--accent-rgb) / .22),transparent 62%);transition:opacity .4s var(--ease)}
.plate:hover{box-shadow:var(--shadow-lg)}
.plate:hover::before{opacity:1}
.plate.is-live{transition:transform .1s linear,box-shadow .45s var(--ease)}

.plate__img{width:124px;height:124px;margin:-46px auto 0;border-radius:50%;overflow:hidden;
  border:var(--bw) solid var(--ink);box-shadow:var(--shadow-sm);background:var(--paper);
  transition:transform .5s var(--pop)}
.plate__img img{display:block;width:100%;height:100%;object-fit:cover}
.plate:hover .plate__img{transform:translateZ(40px) rotate(-5deg) scale(1.06)}
.plate__flag{position:absolute;top:-14px;right:16px;z-index:2}

.plate__tag{display:block;margin-top:16px;text-align:center;font-size:.55rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);line-height:1.5}
.plate h3{margin:8px 0 0;text-align:center;font-size:clamp(1.5rem,3vw,1.9rem);font-weight:900;
  text-transform:uppercase;letter-spacing:-.035em;line-height:1;transition:transform .5s var(--pop)}
.plate:hover h3{transform:translateZ(26px)}
.plate__price{margin:8px 0 0;text-align:center;font-size:clamp(1.35rem,2.8vw,1.7rem);
  font-weight:900;line-height:1;letter-spacing:-.02em;color:var(--accent-ink)}
.plate__cap{display:block;margin-top:7px;text-align:center;font-size:.55rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .55)}

.plate__block{margin-top:18px;padding-top:15px;border-top:2px solid rgb(var(--ink-rgb) / .14)}
.plate__lbl{display:block;font-size:.55rem;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent-ink);margin-bottom:9px}
.plate__block p{margin:0;font-size:.88rem;line-height:1.55;color:rgb(var(--ink-rgb) / .74)}
.plate__block p b{color:var(--ink)}
.plate__n{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;
  margin-left:6px;border-radius:999px;border:2px solid var(--ink);background:var(--accent);
  color:var(--on-accent);font-size:.6rem;vertical-align:-3px}

.plate__specs{list-style:none;margin:18px 0 0;padding:15px 0 0;
  border-top:2px solid rgb(var(--ink-rgb) / .14);display:flex;flex-wrap:wrap;gap:7px}
.plate__specs li{font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  border:2px solid var(--ink);border-radius:999px;padding:5px 10px}
.plate__cta{margin-top:auto;padding-top:22px}

.plate--top{background:var(--accent);border-color:rgb(var(--dark-rgb))}
.plate--top h3,.plate--top .plate__price{color:var(--on-accent)}
.plate--top .plate__tag,.plate--top .plate__lbl{color:var(--on-accent)}
.plate--top .plate__cap,.plate--top .plate__block p{color:var(--on-accent-soft)}
.plate--top .plate__block p b{color:var(--on-accent)}
.plate--top .plate__block,.plate--top .plate__specs{border-top-color:rgb(var(--dark-rgb) / .3)}
.plate--top .plate__specs li{border-color:rgb(var(--dark-rgb) / .5);color:var(--on-accent)}
.plate--top .plate__n{background:rgb(var(--light-rgb));color:var(--on-accent);
  border-color:rgb(var(--dark-rgb))}
.plate--top .plate__img{border-color:rgb(var(--dark-rgb))}
.plate--top .arrowlink{color:var(--on-accent)}
.plate--top .arrowlink .dot{background:rgb(var(--light-rgb));border-color:rgb(var(--dark-rgb));
  color:rgb(var(--dark-rgb))}
.plate--top:hover .arrowlink .dot{background:rgb(var(--dark-rgb));color:rgb(var(--light-rgb));
  transform:translateX(6px) rotate(-12deg)}

.goodbox{margin-top:clamp(32px,4vw,46px);border:var(--bw) solid var(--ink);border-radius:26px;
  background:var(--paper);padding:28px 26px;box-shadow:var(--shadow-sm);max-width:52rem;
  margin-inline:auto}
.goodbox .label{color:var(--accent-ink);margin-bottom:16px;text-align:center}

@media(max-width:899px){
  .plate__block p,.goodbox .goods li,.fbhero__fine{font-size:.95rem}
}

/* ---------- Pie ---------- */

.foot{background:rgb(var(--dark-rgb));color:rgb(var(--light-rgb));padding-block:56px 156px;
  border-top:2px solid rgb(var(--light-rgb) / .14)}
@media(min-width:820px){.foot{padding-bottom:60px}}
.foot__in{display:grid;gap:32px}
/* En una sola columna el pie se lee mucho mejor centrado. */
@media(max-width:859px){
  .foot__in{text-align:center;justify-items:center}
  .foot img{margin-inline:auto}
  .foot ul{justify-items:center}
}
@media(min-width:860px){.foot__in{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}}
.foot img{width:var(--logo-foot);max-width:62vw;height:auto}
.foot p{font-size:.8rem;color:rgb(var(--light-rgb) / .55);line-height:1.7}
.foot h3,.foot h4{margin:0 0 14px;font-size:.62rem;font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot ul a{font-size:.86rem;color:rgb(var(--light-rgb) / .82);text-decoration:none}
.foot ul a:hover{color:var(--accent)}

/* Fila inferior: legales del cliente a la izquierda, crédito del estudio a la
   derecha. Hereda color y tipografía del pie; no introduce colores nuevos. */
.foot__bar{margin-top:42px;padding-top:22px;border-top:1px solid rgb(var(--light-rgb) / .12);
  display:grid;gap:12px;justify-items:center;text-align:center;
  font-size:.76rem;color:rgb(var(--light-rgb) / .55);line-height:1.6}
@media(min-width:820px){
  .foot__bar{grid-template-columns:1fr auto;justify-items:start;align-items:center;text-align:left}
  .foot__bar .credito-postsicionate{justify-self:end}
}
.foot__legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.foot__legal a{color:inherit;text-decoration:none}
.foot__legal a:hover{color:var(--accent)}
.foot__sep{opacity:.45}
.credito-postsicionate{opacity:.75;transition:opacity .25s var(--ease)}
.credito-postsicionate:hover{opacity:1}
.credito-postsicionate a{color:inherit;font-weight:700;text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;
  text-decoration-color:rgb(var(--accent-rgb) / .5)}
.credito-postsicionate a:hover{text-decoration-color:var(--accent)}

/* Barra fija de móvil */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;align-items:center;
  justify-content:space-between;gap:14px;padding:11px 16px calc(11px + env(safe-area-inset-bottom));
  background:var(--ground);border-top:var(--bw) solid var(--ink)}
.dock span{font-size:.76rem;font-weight:700;line-height:1.35}
@media(min-width:820px){.dock{display:none}}

/* ---------- Movimiento ---------- */

.js-motion [data-in]{opacity:0;transform:translateY(38px) scale(.97);
  transition:opacity .75s var(--pop),transform .75s var(--pop);
  transition-delay:var(--d,0ms)}
.js-motion [data-in].on{opacity:1;transform:none}

/* El heroe es lo primero que el navegador mide. Si su texto entra con
   opacidad 0, el pintado no cuenta hasta que el script lo enciende, y en un
   movil lento con red lenta eso se va a varios segundos: la medicion de
   PageSpeed lo castiga aunque el visitante vea la pagina completa. Dentro del
   heroe la entrada es solo desplazamiento, sin desvanecido: el mismo gesto,
   pero el texto existe desde el primer fotograma. El desvanecido se conserva
   en las fotos, que no son lo que se mide, y en todo lo que viene despues. */
.js-motion .hero > .wrap [data-in]{opacity:1;transform:translateY(24px)}
.js-motion .hero > .wrap [data-in].on{transform:none}
@media(prefers-reduced-motion:reduce){
  .js-motion [data-in]{opacity:1;transform:none}
  .hero__pic{animation:none !important}
}
.needshot{display:grid;place-items:center;min-height:200px;border:var(--bw) dashed var(--ink);
  border-radius:24px;padding:24px;text-align:center;font-size:.72rem;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:rgb(var(--ink-rgb) / .45)}
