@font-face{
  font-family:"Gloock";
  font-style:normal;
  font-weight:400;
  font-display:optional;
  src:url("assets/fonts/gloock-latin.woff2") format("woff2");
}
@font-face{
  font-family:"Newsreader";
  font-style:normal;
  font-weight:300 800;
  font-display:swap;
  src:url("assets/fonts/newsreader-latin-variable.woff2") format("woff2");
}
:root{
  --ink:#15110c;
  --charcoal:#12100d;
  --charcoal-2:#1d1711;
  --charcoal-3:#2a2118;
  --cream:#f3e7d0;
  --paper:#e5d2b3;
  --paper-2:#cdb891;
  --muted:#a88f68;
  --brass:#c3913f;
  --ember:#c76530;
  --walnut:#3a2416;
  --wood-deep:#100b08;
  --wood-charcoal:#17110d;
  --wood-charcoal-2:#21170f;
  --wood-walnut:#2d1a0f;
  --wood-toast:#6e4324;
  --wood-amber:#b47733;
  --wood-paper:#ead8b8;
  --wood-shadow:rgba(41,21,9,.42);
  --wood-line:rgba(236,184,112,.14);
  --wood-glow:rgba(195,119,49,.18);
  --wood-dark-image:url("assets/food/dark-wood-texture.webp");
  --wood-black-image:url("assets/food/dark-wood-texture.webp");
  --wood-light-image:url("assets/food/dark-wood-texture.webp");
  --wood-fiber:
    repeating-linear-gradient(7deg,rgba(255,232,188,.035) 0 1px,transparent 1px 11px,rgba(62,31,14,.045) 11px 13px,transparent 13px 29px),
    repeating-linear-gradient(96deg,rgba(255,244,214,.022) 0 1px,transparent 1px 44px);
  --wood-knot:
    radial-gradient(ellipse at 18% 30%,rgba(190,116,48,.1) 0 7%,rgba(48,23,10,.1) 8%,transparent 23%),
    radial-gradient(ellipse at 82% 72%,rgba(190,116,48,.08) 0 6%,rgba(48,23,10,.08) 7%,transparent 20%);
  --soft-object:34px;
  --line:rgba(243,231,208,.18);
  --cream-line:rgba(21,17,12,.18);
  --toc:304px;
  --chapter-x:clamp(28px,5vw,78px);
  --chapter-y:clamp(88px,9vw,136px);
  --chapter-max:1220px;
  --title-xl:clamp(3.45rem,7.7vw,7.8rem);
  --title-lg:clamp(2.65rem,5.75vw,5.8rem);
  --title-md:clamp(2rem,3.5vw,3.65rem);
  --display:"Gloock",Georgia,serif;
  --body:"Newsreader",Georgia,serif;
  --nav:"Newsreader",Georgia,serif;
}

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  /* clip (no hidden): bloquea el paneo lateral en móvil sin crear un
     contenedor de scroll; evita que el dock y el hero se arrastren.
     hidden queda como fallback para navegadores sin soporte de clip. */
  overflow-x:hidden;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
body{
  margin:0;
  color:var(--cream);
  background:var(--wood-charcoal);
  font-family:var(--body);
  overflow-x:hidden;
  overflow-x:clip;
  overscroll-behavior-x:none;
  -webkit-font-smoothing:antialiased;
}
/* Fondo de madera en una capa fija propia: se pinta una vez y se compone en GPU,
   en lugar de background-attachment:fixed animado sobre el body (repintado continuo). */
.site-backdrop{
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  isolation:isolate;
  transform:translateZ(0);
  background:
    linear-gradient(118deg,rgba(9,6,4,.52),rgba(27,15,9,.48) 48%,rgba(8,5,4,.66)),
    radial-gradient(980px 560px at 78% 8%,rgba(195,145,63,.12),transparent 64%),
    var(--wood-black-image),
    var(--wood-dark-image),
    linear-gradient(118deg,var(--wood-deep) 0%,var(--wood-charcoal) 38%,var(--wood-walnut) 68%,#0f0b08 100%);
  background-size:cover,cover,115vw auto,115vw auto,auto;
  background-position:center,center,center,center;
}
/* Grano y viñeta dentro del backdrop aislado: se mezclan una sola vez contra la madera,
   en vez de re-mezclarse contra todo el contenido en cada frame de scroll. */
.site-backdrop::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.12;
  mix-blend-mode:soft-light;
  background:
    linear-gradient(105deg,transparent 0 22%,rgba(255,218,152,.16) 34%,transparent 48%),
    linear-gradient(18deg,rgba(255,235,190,.05),transparent 38%,rgba(120,69,34,.12) 64%,transparent),
    repeating-linear-gradient(5deg,rgba(255,236,198,.08) 0 1px,transparent 1px 18px,rgba(63,31,13,.08) 18px 20px,transparent 20px 42px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.015 .16' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.34 0 0 0 0 0.18 0 0 0 .72 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.82'/%3E%3C/svg%3E");
}
.site-backdrop::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.18;
  mix-blend-mode:multiply;
  background:
    radial-gradient(ellipse at 28% 34%,transparent 0 14%,rgba(25,12,6,.08) 15%,transparent 31%),
    radial-gradient(ellipse at 78% 72%,transparent 0 12%,rgba(25,12,6,.07) 13%,transparent 28%),
    repeating-linear-gradient(8deg,rgba(47,23,10,.055) 0 1px,transparent 1px 22px);
}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
figure{margin:0}

.story{
  margin-left:var(--toc);
  position:relative;
}
.chapter{
  min-height:100vh;
  position:relative;
  isolation:isolate;
  padding:var(--chapter-y) var(--chapter-x);
  overflow:hidden;
  /* No renderizar secciones fuera de pantalla. */
  content-visibility:auto;
  contain-intrinsic-size:auto 100vh;
}
.chapter + .chapter{border-top:0}
.chapter::after{
  content:none;
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(195,145,63,.45),transparent);
  opacity:.65;
  pointer-events:none;
}
.kicker{
  margin:0 0 1.15rem;
  color:var(--brass);
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:.68rem;
  font-weight:800;
}
h1,h2,h3{
  margin:0;
  font-family:var(--display);
  font-weight:400;
  letter-spacing:0;
  line-height:.93;
}
h1{
  max-width:12ch;
  font-size:var(--title-xl);
}
h2{
  max-width:13ch;
  font-size:var(--title-lg);
}
h3{font-size:var(--title-md)}
p{
  font-size:clamp(1rem,1.22vw,1.15rem);
  line-height:1.72;
  color:var(--paper);
}
[data-parallax]{
  transform:translate3d(0,var(--parallax-y,0px),0);
  will-change:transform;
}
.perf-lite [data-parallax]{
  transform:none;
  will-change:auto;
}
.perf-lite .site-backdrop::before,
.perf-lite .site-backdrop::after{display:none}
.chapter-frame,
.origin-head,
.origin-comparison,
.origin-story-copy,
.place-lede,
.place-composition,
.chapter-heading,
.signature-wall,
.carta-intro,
.menu-tabs,
.carta-board,
.invitation{
  max-width:var(--chapter-max);
  margin-left:auto;
  margin-right:auto;
}

/* Printed menu navigation */
.story-toc{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--toc);
  height:100vh;
  z-index:20;
  /* Oculto sobre el hero; entra al hacer scroll (clase en el body desde JS).
     visibility evita que quede enfocable con teclado mientras no se ve. */
  opacity:0;
  visibility:hidden;
  transform:translateX(-16px);
  transition:
    opacity .5s cubic-bezier(.2,.7,.2,1),
    transform .55s cubic-bezier(.2,.7,.2,1),
    visibility 0s linear .55s;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto 1fr auto;
  gap:clamp(1.5rem,2.8vh,2.15rem);
  padding:clamp(30px,4.6vh,52px) 34px clamp(30px,4.6vh,48px);
  color:#2b2117;
  background:
    linear-gradient(112deg,rgba(255,255,255,.34),transparent 28%),
    linear-gradient(260deg,rgba(91,54,24,.14),transparent 42%),
    radial-gradient(520px 760px at 18% 12%,rgba(255,246,219,.28),transparent 62%),
    repeating-linear-gradient(0deg,rgba(80,53,30,.058) 0 1px,transparent 1px 8px),
    #e6d1ac;
  border:1px solid rgba(49,32,18,.28);
  border-top:0;
  border-bottom:0;
  border-left:0;
  border-radius:0 14px 14px 0;
  box-shadow:
    24px 0 72px rgba(0,0,0,.38),
    7px 0 18px rgba(55,35,18,.16),
    inset -10px 0 24px rgba(78,48,22,.1),
    inset 1px 0 0 rgba(255,255,255,.32),
    inset 0 0 0 1px rgba(255,255,255,.22);
}
body.toc-visible .story-toc{
  opacity:1;
  visibility:visible;
  transform:none;
  transition:
    opacity .5s cubic-bezier(.2,.7,.2,1),
    transform .55s cubic-bezier(.2,.7,.2,1),
    visibility 0s;
}
.story-toc::before{
  content:"";
  position:absolute;
  inset:14px 13px 14px 14px;
  border:1px solid rgba(49,32,18,.2);
  border-radius:0 10px 10px 0;
  pointer-events:none;
}
.story-toc::after{
  content:"";
  position:absolute;
  left:auto;
  right:0;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg,transparent,rgba(43,33,23,.34),rgba(255,255,255,.2),rgba(43,33,23,.28),transparent);
}
.toc-brand{
  justify-self:center;
  width:132px;
  height:132px;
  position:relative;
  z-index:2;
}
.toc-brand img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  filter:saturate(.85) contrast(1.04);
  box-shadow:
    0 16px 32px rgba(43,25,11,.28),
    0 2px 0 rgba(255,255,255,.34) inset;
}
.toc-label{
  margin:0;
  color:#74502a;
  font-family:var(--display);
  font-size:1.95rem;
  line-height:1;
  text-align:center;
}
.toc-list{
  grid-row:3;
  display:grid;
  align-self:center;
  align-content:center;
  gap:.2rem;
  list-style:none;
  margin:0;
  padding:.6rem 0 1.5rem;
  text-align:center;
}
.toc-list li + li{border-top:1px solid rgba(43,33,23,.12)}
.toc-list a{
  display:grid;
  grid-template-columns:1fr;
  align-items:baseline;
  padding:.92rem 0;
  opacity:.62;
  color:#332619;
  transition:opacity .28s ease,color .28s ease,transform .28s ease;
}
.toc-list a strong{
  font-family:var(--nav);
  font-size:1.28rem;
  line-height:1.08;
  font-weight:650;
}
.toc-list a.is-past{opacity:.36}
.toc-list a.is-active{
  opacity:1;
  color:#11100d;
  transform:none;
}
.toc-footer{
  grid-column:1 / -1;
  grid-row:4;
  position:relative;
  z-index:2;
  display:flex;
  flex-wrap:wrap;
  gap:.55rem 1rem;
  align-self:end;
  padding-top:1.25rem;
  border-top:1px solid rgba(43,33,23,.14);
  color:rgba(43,33,23,.68);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.6rem;
  font-weight:800;
}
.toc-footer > span{
  flex:0 0 100%;
  color:rgba(43,33,23,.52);
}
.toc-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
  width:100%;
}
.toc-footer .toc-action{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.28rem;
  min-width:0;
  min-height:76px;
  padding:.72rem .62rem;
  border-radius:5px;
  letter-spacing:normal;
  text-transform:none;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.toc-footer .nav-reserve{
  color:#f1dfbd;
  background:#20150d;
  border:1px solid #20150d;
  box-shadow:0 12px 24px rgba(43,25,11,.2);
}
.toc-footer .nav-review{
  color:#2f2115;
  background:rgba(255,246,226,.28);
  border:1px solid rgba(43,33,23,.42);
}
.toc-footer .toc-action:hover{
  transform:translateY(-2px);
  box-shadow:0 15px 30px rgba(43,25,11,.22);
}
.toc-footer .nav-reserve:hover{
  color:#fff0d2;
  background:#382313;
}
.toc-footer .nav-review:hover{background:rgba(255,247,231,.6)}
.toc-footer .toc-action span{
  color:#cda85e;
  font-size:.49rem;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.toc-footer .nav-review span{color:#73502e}
.toc-footer .toc-action strong{
  font-family:var(--display);
  font-size:1.08rem;
  font-weight:500;
  line-height:1;
}
@media (min-width:981px) and (max-height:800px){
  .story-toc{
    gap:.65rem;
    padding:18px 28px;
  }
  .toc-brand{width:76px;height:76px}
  .toc-label{font-size:1.55rem}
  .toc-list{gap:0;padding:.15rem 0 .35rem}
  .toc-list a{padding:.42rem 0}
  .toc-list a strong{font-size:1.05rem}
  .toc-footer{padding-top:.55rem}
  .toc-footer .toc-action{min-height:62px;padding:.55rem .48rem}
  .toc-footer .toc-action strong{font-size:.96rem}
}
.mobile-chapter{display:none}
.mobile-menu-toggle,
.mobile-menu{display:none}

.chapter-hero,
.origin,
.place,
.signatures,
.carta,
.invitation,
.site-footer{
  background-color:transparent;
  background-position:center center;
}

/* Chapter 01 */
.chapter-hero{
  content-visibility:visible;
  contain-intrinsic-size:none;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  /* Ocupa también la franja del nav: mientras el índice está oculto no debe
     quedar un vacío a la izquierda. En móvil --toc es 0, así que no afecta. */
  margin-left:calc(var(--toc) * -1);
  padding-top:clamp(76px,8vh,112px);
  padding-bottom:clamp(54px,7vh,88px);
  padding-left:clamp(18px,2.6vw,64px);
  background:
    linear-gradient(135deg,rgba(8,5,4,.68),rgba(23,13,8,.42) 48%,rgba(7,5,4,.72)),
    radial-gradient(800px 520px at 78% 28%,rgba(195,145,63,.12),transparent 68%);
  background-size:cover,cover;
  background-position:center;
}
.hero-film{
  position:absolute;
  inset:-2vh -1vw -2vh;
  z-index:-3;
  overflow:hidden;
}
.hero-film img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% 50%;
  filter:saturate(1.02) contrast(1.04) brightness(.82);
  transform:scale(1.015);
}
.hero-film::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at 64% 60%,rgba(198,67,28,.2),transparent 32%),
    linear-gradient(90deg,rgba(8,8,8,.9),rgba(8,8,8,.5) 30%,rgba(8,8,8,.08) 58%,rgba(8,8,8,.32)),
    linear-gradient(180deg,rgba(8,8,8,.16),rgba(8,8,8,.72));
}
.hero-film::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  opacity:.26;
  background:
    repeating-linear-gradient(8deg,rgba(143,86,45,.12) 0 1px,transparent 1px 28px),
    linear-gradient(120deg,transparent 0 40%,rgba(243,231,208,.16) 49%,transparent 58%);
}
.chapter-frame{width:100%}
.hero-frame{
  position:relative;
  padding-bottom:0;
}
.hero-frame::before{
  content:"Ohana Food & Drinks";
  position:absolute;
  left:0;
  top:-3.65rem;
  color:rgba(243,231,208,.5);
  font-family:var(--display);
  font-size:clamp(1.22rem,1.8vw,1.82rem);
  line-height:1;
  font-style:italic;
}
.hero-frame .kicker{
  margin-bottom:1.35rem;
  color:rgba(234,215,184,.76);
  letter-spacing:.28em;
}
.hero-frame h1{
  max-width:15.6ch;
  font-size:clamp(2.75rem,5.25vw,5.2rem);
  line-height:1.12;
}
.hero-title-mobile{display:none}
.hero-copy{
  max-width:28rem;
  margin:1.85rem 0 0;
  color:#ead7b8;
  font-size:clamp(1.02rem,1.25vw,1.16rem);
  line-height:1.84;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.65rem;
}
.hero-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:.78rem 1.12rem;
  color:var(--cream);
  border:1px solid rgba(243,231,208,.38);
  border-radius:999px;
  font-family:var(--nav);
  font-size:1rem;
  line-height:1;
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}
.hero-action.primary{
  color:#160f09;
  background:var(--paper);
  border-color:var(--paper);
}
.hero-action:hover{
  transform:translateY(-2px);
  border-color:var(--brass);
}
.hero-proof{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem 1.2rem;
  margin:1.15rem 0 0;
  padding:0;
  list-style:none;
  color:rgba(234,215,184,.78);
  font-size:.68rem;
  font-weight:760;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hero-proof li:not(:last-child)::after{
  content:"\00b7";
  margin-left:1.2rem;
  color:var(--brass);
}

/* En escritorio conservamos la entrada editorial. En móvil el hero aparece de
   inmediato para que la primera vista no espere ninguna animación. */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  .js .hero-frame::before,
  .js .hero-frame .kicker,
  .js .hero-frame h1,
  .js .hero-copy,
  .js .hero-actions,
  .js .hero-proof{
    opacity:0;
  }
  .js .hero-frame::before{transform:translateY(8px)}
  .js .hero-frame .kicker,
  .js .hero-frame h1,
  .js .hero-copy,
  .js .hero-actions,
  .js .hero-proof{transform:translateY(13px)}
  .js body.is-ready .hero-frame::before{animation:heroStageIn .46s .06s both}
  .js body.is-ready .hero-frame .kicker{animation:heroStageIn .46s .14s both}
  .js body.is-ready .hero-frame h1{animation:heroStageIn .52s .23s both}
  .js body.is-ready .hero-copy{animation:heroStageIn .46s .34s both}
  .js body.is-ready .hero-actions{animation:heroStageIn .44s .44s both}
  .js body.is-ready .hero-proof{animation:heroStageIn .4s .54s both}
  .js body.is-ready .hero-film img{animation:heroImageSettle 1.25s cubic-bezier(.2,.72,.2,1) both}
}
.scroll-cue{
  position:absolute;
  right:clamp(24px,5vw,70px);
  bottom:42px;
  color:var(--brass);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.68rem;
  writing-mode:vertical-rl;
}
.scroll-cue::after{
  content:"";
  display:block;
  width:1px;
  height:52px;
  margin:14px auto 0;
  background:linear-gradient(var(--brass),transparent);
}

/* Chapter 02 */
.origin{
  background:
    linear-gradient(150deg,rgba(12,8,5,.72),rgba(45,26,15,.58) 46%,rgba(10,7,5,.76)),
    radial-gradient(780px 560px at 72% 22%,rgba(195,145,63,.1),transparent 68%);
  background-size:cover,cover;
  background-position:center;
}
.origin::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.28;
  background:
    radial-gradient(ellipse at 22% 38%,rgba(231,211,174,.13),transparent 35%),
    repeating-linear-gradient(10deg,rgba(255,226,173,.026) 0 1px,transparent 1px 24px),
    linear-gradient(100deg,transparent 12%,rgba(255,245,214,.08) 38%,transparent 58%);
  animation:lightPass 12s ease-in-out infinite alternate;
}
.perf-lite .origin::before{animation:none}
.perf-lite .carta-fries{display:none}
.origin-head{
  display:grid;
  grid-template-columns:minmax(120px,.34fr) minmax(0,.98fr) minmax(220px,.54fr);
  gap:clamp(18px,2.8vw,42px);
  align-items:start;
  width:min(100%,1120px);
  margin:0 auto clamp(22px,3vw,34px);
}
.origin-head .kicker{
  margin:0;
  align-self:start;
  padding-top:clamp(1.1rem,2.8vw,2.4rem);
}
.origin-head h2{
  max-width:8.6ch;
  font-size:clamp(2.35rem,4.55vw,4.75rem);
  line-height:.94;
}
.origin-head > p:last-child{
  margin:0;
  max-width:16rem;
  align-self:center;
  color:#d6bf99;
  font-family:var(--display);
  font-size:clamp(1.35rem,2vw,2rem);
  line-height:1.15;
  font-style:italic;
}
.editorial-quote{
  grid-column:1 / -1;
  max-width:28ch;
  justify-self:center;
  font-family:var(--display);
  font-style:italic;
  color:var(--cream);
  font-size:clamp(1.8rem,3.6vw,4.5rem);
  line-height:1.02;
  text-align:center;
}
.origin-comparison{
  display:grid;
  grid-template-columns:repeat(2,minmax(260px,1fr));
  gap:0;
  align-items:stretch;
  width:100%;
  max-width:min(100%,940px);
  padding:clamp(14px,1.7vw,22px);
  background:
    linear-gradient(120deg,rgba(255,255,255,.045),transparent 38%),
    rgba(42,30,21,.52);
  border:1px solid rgba(243,231,208,.16);
  box-shadow:0 24px 68px rgba(0,0,0,.28);
}
.origin-carousel-controls{display:none}
.origin-card{
  display:grid;
  grid-template-rows:auto auto;
  gap:clamp(14px,1.9vw,22px);
  align-items:start;
  min-height:0;
  height:100%;
  padding:clamp(10px,1.35vw,18px);
  background:transparent;
  border:0;
  box-shadow:none;
}
.origin-card + .origin-card{
  border-left:1px solid rgba(243,231,208,.14);
}
.origin-card.is-today{margin-top:0}
.origin-video{
  position:relative;
  overflow:hidden;
  aspect-ratio:9/16;
  width:min(100%,310px);
  height:auto;
  justify-self:center;
  min-height:0;
  background:#070604;
  box-shadow:0 20px 52px rgba(0,0,0,.38);
}
.origin-video video{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:saturate(.9) contrast(1.04);
}
.origin-video::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(17,16,14,.02),rgba(17,16,14,.16) 58%,rgba(17,16,14,.56)),
    inset 0 0 0 1px rgba(243,231,208,.14);
}
.origin-card-copy{
  margin:0;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:auto;
  max-width:23rem;
  width:100%;
  justify-self:center;
  padding:0 clamp(4px,1.2vw,14px) clamp(8px,1vw,14px);
}
.origin-card-copy::before{
  content:"";
  position:absolute;
  left:0;
  top:-.95rem;
  width:52px;
  height:1px;
  background:var(--brass);
}
.origin-card-copy span{
  color:#17110a;
  background:#d7b56f;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:clamp(.64rem,.7vw,.72rem);
  font-weight:800;
  padding:.36rem .56rem;
  align-self:flex-start;
}
.origin-card-copy h3{
  margin:.72rem 0 .5rem;
  font-size:clamp(1.75rem,2.45vw,2.85rem);
}
.origin-card-copy p{
  margin:0;
  max-width:21rem;
  color:var(--paper);
  font-size:clamp(.98rem,1.08vw,1.1rem);
  line-height:1.5;
}
.origin-story-copy{
  display:grid;
  margin:clamp(38px,5vw,74px) auto 0;
  border-top:1px solid var(--line);
  padding-top:clamp(30px,4vw,58px);
}

.mute-toggle{
  position:absolute;
  right:.85rem;
  bottom:.85rem;
  z-index:3;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(243,231,208,.24);
  border-radius:50%;
  background:rgba(18,16,13,.82);
  color:var(--cream);
  font-size:0;
  cursor:pointer;
  opacity:.72;
  transition:opacity .25s ease,background .25s ease,transform .25s ease;
}
.mute-toggle::before{
  content:"";
  width:18px;
  height:18px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 9v6h4l5 4V5L8 9H4zm10.8-.7-1.4 1.4 2.3 2.3-2.3 2.3 1.4 1.4 2.3-2.3 2.3 2.3 1.4-1.4-2.3-2.3 2.3-2.3-1.4-1.4-2.3 2.3-2.3-2.3z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 9v6h4l5 4V5L8 9H4zm10.8-.7-1.4 1.4 2.3 2.3-2.3 2.3 1.4 1.4 2.3-2.3 2.3 2.3 1.4-1.4-2.3-2.3 2.3-2.3-1.4-1.4-2.3 2.3-2.3-2.3z'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .25s ease,opacity .25s ease;
}
.mute-toggle[aria-pressed="true"]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 9v6h4l5 4V5L8 9H4zm11.6-.5a1 1 0 0 0-1.2 1.6 3 3 0 0 1 0 3.8 1 1 0 1 0 1.2 1.6 5 5 0 0 0 0-8zm3.2-3.2a1 1 0 1 0-1.3 1.5 7 7 0 0 1 0 8.4 1 1 0 1 0 1.3 1.5 9 9 0 0 0 0-12.4z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='black' d='M4 9v6h4l5 4V5L8 9H4zm11.6-.5a1 1 0 0 0-1.2 1.6 3 3 0 0 1 0 3.8 1 1 0 1 0 1.2 1.6 5 5 0 0 0 0-8zm3.2-3.2a1 1 0 1 0-1.3 1.5 7 7 0 0 1 0 8.4 1 1 0 1 0 1.3 1.5 9 9 0 0 0 0-12.4z'/%3E%3C/svg%3E");
}
.mute-toggle:hover{
  opacity:1;
  background:rgba(18,16,13,.86);
  transform:scale(1.06);
}
.mute-toggle:hover::before{transform:scale(.94)}
.mute-toggle:focus-visible{
  outline:1px solid rgba(243,231,208,.72);
  outline-offset:4px;
}

/* Chapter 03 */
.place{
  background:
    linear-gradient(180deg,rgba(21,17,13,.74) 0%,rgba(92,57,28,.22) 42%,rgba(21,17,13,.72) 100%),
    radial-gradient(780px 520px at 82% 18%,rgba(255,244,214,.1),transparent 70%);
  background-size:cover,cover;
  background-position:center;
  color:var(--cream);
}
.place::before{
  content:"";
  position:absolute;
  inset:8% 0 auto;
  height:58%;
  z-index:-1;
  opacity:.18;
  background:
    repeating-linear-gradient(8deg,rgba(92,55,28,.2) 0 1px,transparent 1px 28px),
    radial-gradient(580px 320px at 74% 34%,rgba(255,255,255,.28),transparent 70%);
}
.place .kicker{color:var(--brass)}
.place p{color:var(--paper)}
.place-lede{
  display:grid;
  grid-template-columns:.42fr minmax(0, .95fr);
  gap:clamp(28px,5vw,78px);
  align-items:center;
  margin-bottom:clamp(34px,4.5vw,58px);
  padding-top:clamp(20px,4vw,64px);
}
.place-lede h2{
  max-width:13.5ch;
  font-size:clamp(2.6rem,4.45vw,4.8rem);
  line-height:.92;
  color:var(--cream);
}
.place-composition{
  display:grid;
  grid-template-columns:.88fr .76fr .7fr;
  gap:clamp(22px,3vw,42px);
  align-items:center;
}
.place-main{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:0 26px 70px rgba(68,43,22,.24);
}
.place-main img,.place-main video{
  width:100%;
  height:100%;
  object-fit:cover;
}
.place-main::after,.place-small::after,.carta-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(17,12,8,.78));
}
figcaption{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:2;
  color:var(--paper);
  font-family:var(--display);
  font-style:italic;
  font-size:clamp(1rem,1.4vw,1.35rem);
}
.place-notes{
  align-self:center;
  display:grid;
  gap:clamp(.7rem,1vw,1rem);
  padding:clamp(16px,2.2vw,30px) clamp(12px,2vw,26px);
  border-left:1px solid rgba(61,40,22,.26);
  max-width:26rem;
}
.place-notes p{
  margin:0;
  font-family:var(--display);
  font-size:clamp(1.45rem,2.35vw,2.45rem);
  line-height:1.04;
  color:var(--cream);
}
.place-small{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  box-shadow:0 18px 46px rgba(68,43,22,.18);
}
.place-small img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Preguntas frecuentes: bloque de cierre, discreto. No es un capítulo
   (no ocupa pantalla completa ni entra en el índice). */
.faq{
  max-width:var(--chapter-max);
  margin:0 auto;
  padding:clamp(48px,6vw,86px) var(--chapter-x) clamp(30px,4vw,52px);
}
.faq h2{
  margin:0 0 clamp(24px,3vw,40px);
  font-size:clamp(1.7rem,2.6vw,2.5rem);
  color:var(--cream);
}
.faq-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(20px,2.6vw,38px) clamp(28px,4vw,64px);
  margin:0;
}
.faq-list > div{
  border-top:1px solid rgba(236,184,112,.18);
  padding-top:clamp(.85rem,1.4vw,1.15rem);
}
.faq-list dt{
  margin:0 0 .45rem;
  color:var(--cream);
  font-family:var(--display);
  font-size:clamp(1.02rem,1.3vw,1.22rem);
  line-height:1.2;
}
.faq-list dd{
  margin:0;
  max-width:46ch;
  color:var(--paper);
  font-size:clamp(.95rem,1.05vw,1.04rem);
  line-height:1.6;
}

/* Catering */
.catering{
  display:grid;
  align-content:center;
  gap:clamp(28px,4vw,52px);
  background:
    linear-gradient(145deg,rgba(9,6,4,.78),rgba(29,18,11,.62) 50%,rgba(8,6,4,.78)),
    radial-gradient(760px 520px at 30% 22%,rgba(195,145,63,.12),transparent 65%);
  background-size:cover,cover;
  background-position:center;
}
.catering-body{
  width:100%;
  max-width:var(--chapter-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(28px,4.5vw,64px);
  align-items:center;
}
.catering-photo{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  box-shadow:0 26px 70px rgba(38,20,9,.4);
}
.catering-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.94) contrast(1.03);
}
.catering-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(17,12,8,.82));
}
.catering-info > p{
  margin:0;
  max-width:32rem;
  font-size:clamp(1.08rem,1.4vw,1.32rem);
}
.catering-points{
  list-style:none;
  margin:clamp(1.3rem,2vw,2rem) 0 0;
  padding:0;
  display:grid;
  gap:.9rem;
}
.catering-points li{
  position:relative;
  padding-left:1.6rem;
  color:var(--cream);
  font-family:var(--display);
  font-size:clamp(1.2rem,1.7vw,1.7rem);
  line-height:1.15;
}
.catering-points li::before{
  content:"—";
  position:absolute;
  left:0;
  color:var(--brass, #c3913f);
}
.catering-cta{
  display:grid;
  gap:1rem;
  justify-items:start;
  margin-top:clamp(1.6rem,2.8vw,2.4rem);
}
.catering-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:.95rem 1.7rem;
  color:#171009;
  background:#d4b36d;
  border-radius:6px;
  font-family:var(--nav);
  font-size:1.12rem;
  font-weight:760;
  line-height:1;
  box-shadow:0 16px 44px rgba(0,0,0,.3);
  transition:transform .22s ease,background .22s ease;
}
.catering-button:hover{transform:translateY(-2px);background:#e0c184}
.catering-note{
  margin:0;
  max-width:24rem;
  color:rgba(234,215,184,.72);
  font-size:.98rem;
}
@media (max-width:980px){
  .catering-body{grid-template-columns:1fr}
  .catering-cta{justify-items:stretch}
  .catering-button{width:100%}
}

/* Chapter 04 */
.signatures{
  background:
    linear-gradient(145deg,rgba(9,6,4,.78),rgba(29,18,11,.62) 50%,rgba(8,6,4,.78)),
    radial-gradient(760px 520px at 70% 18%,rgba(195,145,63,.1),transparent 65%);
  background-size:cover,cover;
  background-position:center;
}
.chapter-heading{
  display:grid;
  grid-template-columns:minmax(140px,.65fr) 1.55fr;
  gap:clamp(20px,4vw,70px);
  align-items:end;
  margin-bottom:clamp(42px,6vw,76px);
}
.chapter-heading h2{max-width:14ch}
.signature-wall{
  display:grid;
  grid-template-columns:1.05fr .92fr .92fr;
  gap:clamp(18px,2.2vw,30px);
  align-items:start;
}
.signature-item{
  position:relative;
  min-height:380px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background:var(--ink);
  border:1px solid rgba(243,231,208,.1);
  box-shadow:0 22px 64px rgba(0,0,0,.28);
}
.signature-item:nth-child(2){margin-top:clamp(42px,8vw,88px)}
.signature-item:nth-child(3){margin-top:clamp(18px,4vw,42px)}
.signature-item:nth-child(4){
  grid-column:1 / span 2;
  min-height:420px;
}
.signature-item:nth-child(5){margin-top:clamp(18px,4vw,46px)}
.signature-item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.04);
  transform:scale(1.015);
}
.signature-item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(17,16,14,.04),rgba(17,16,14,.88) 72%,#0f0d0a);
}
.signature-copy{
  position:relative;
  z-index:2;
  padding:1.3rem;
}
.signature-copy span{
  display:inline-block;
  color:#24190f;
  background:#dec58f;
  border:1px dashed rgba(36,25,15,.45);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.61rem;
  font-weight:800;
  padding:.32rem .48rem;
  transform:rotate(-2deg);
}
.signature-copy h3{
  margin:.55rem 0 .42rem;
  font-size:clamp(2rem,4vw,4rem);
}
.signature-copy p{
  margin:0;
  max-width:32rem;
  color:var(--paper);
}

/* Chapter 05 */
.carta{
  overflow:clip;
  background:
    linear-gradient(180deg,rgba(15,10,7,.72),rgba(33,23,15,.66) 54%,rgba(13,9,6,.76)),
    radial-gradient(760px 460px at 82% 6%,rgba(195,145,63,.1),transparent 68%);
  background-size:cover,cover;
  background-position:center;
}
.carta-fries{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}
.carta-fry{
  position:absolute;
  top:0;
  left:0;
  width:var(--fry-size,72px);
  opacity:0;
  transform:
    translate3d(var(--fry-x,0vw),-16vh,0)
    rotate(var(--fry-rotate-start,-10deg))
    scale(var(--fry-scale,.9));
  transform-origin:center;
  will-change:transform,opacity;
  animation:friesFall var(--fry-duration,3800ms) cubic-bezier(.2,.72,.28,1) forwards;
  animation-delay:var(--fry-delay,0ms);
}
.carta::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.34;
  background:
    repeating-linear-gradient(8deg,rgba(101,61,32,.18) 0 1px,transparent 1px 24px),
    linear-gradient(90deg,rgba(255,255,255,.03),transparent 42%,rgba(0,0,0,.24));
}
.carta-intro{
  display:grid;
  grid-template-columns:.58fr 1.04fr .82fr;
  gap:clamp(22px,4vw,64px);
  align-items:end;
  margin-bottom:clamp(28px,4.5vw,54px);
  position:relative;
  z-index:2;
}
.carta-intro h2{max-width:10ch}
.carta-intro p{margin:0;max-width:29rem}
.mobile-pdf-menu{
  display:none;
  gap:1rem;
  width:min(100%,720px);
  margin:0 auto;
  position:relative;
  z-index:2;
}
.mobile-pdf-menu__paper{
  position:relative;
  min-height:clamp(250px,48vh,350px);
  display:grid;
  align-content:end;
  padding:clamp(24px,7vw,34px);
  color:#1b120b;
  border:1px solid rgba(42,25,12,.24);
  border-radius:14px;
  overflow:hidden;
  background:
    linear-gradient(142deg,rgba(255,255,255,.34),transparent 34%),
    radial-gradient(260px 240px at 18% 12%,rgba(255,247,224,.36),transparent 72%),
    repeating-linear-gradient(0deg,rgba(92,61,31,.055) 0 1px,transparent 1px 8px),
    #e3cda6;
  box-shadow:
    0 26px 62px rgba(0,0,0,.34),
    inset 0 0 0 1px rgba(255,255,255,.22),
    inset -14px 0 26px rgba(83,50,21,.08);
}
.mobile-pdf-menu__paper::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(42,25,12,.16);
  border-radius:10px;
  pointer-events:none;
}
.mobile-pdf-menu__paper::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 0 64%,rgba(125,81,37,.12)),
    repeating-linear-gradient(90deg,transparent 0 34px,rgba(42,25,12,.035) 34px 35px);
}
.mobile-pdf-menu__eyebrow{
  position:relative;
  z-index:1;
  margin:0 0 .72rem;
  color:#79532b;
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.28em;
  line-height:1;
  text-transform:uppercase;
}
.mobile-pdf-menu__paper h3{
  position:relative;
  z-index:1;
  max-width:7ch;
  color:#19110a;
  font-size:clamp(2.8rem,14vw,4.2rem);
  line-height:.86;
}
.mobile-pdf-menu__paper p{
  position:relative;
  z-index:1;
  max-width:19rem;
  margin:1rem 0 0;
  color:#4f3823;
  font-size:1.05rem;
  line-height:1.42;
}
.mobile-pdf-menu__seal{
  position:absolute;
  right:clamp(22px,7vw,34px);
  top:clamp(22px,7vw,34px);
  z-index:1;
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  color:#6e4520;
  border:1px solid rgba(110,69,32,.42);
  border-radius:50%;
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.18em;
  transform:rotate(8deg);
}
.mobile-pdf-menu__button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  color:#ead8b8;
  background:#1c140d;
  border:1px solid rgba(234,216,184,.18);
  border-radius:999px;
  font-family:var(--nav);
  font-size:1.1rem;
  box-shadow:0 18px 34px rgba(0,0,0,.28);
}
.carta-shell{
  --menu-count:7;
  --menu-index:0;
  --menu-direction:1;
  display:grid;
  grid-template-columns:minmax(170px,.22fr) minmax(0,1fr) minmax(238px,.32fr);
  gap:0;
  width:min(100%,1240px);
  margin:0 auto;
  position:relative;
  background:
    linear-gradient(112deg,rgba(255,255,255,.34),transparent 28%),
    radial-gradient(720px 560px at 18% 12%,rgba(255,246,219,.34),transparent 62%),
    repeating-linear-gradient(0deg,rgba(92,61,31,.055) 0 1px,transparent 1px 8px),
    #e3cda6;
  color:#24190f;
  border:1px solid rgba(42,25,12,.28);
  border-radius:7px;
  box-shadow:
    0 34px 100px rgba(0,0,0,.42),
    0 8px 20px rgba(58,34,16,.18),
    inset 0 0 0 1px rgba(255,255,255,.24),
    inset -16px 0 28px rgba(83,50,21,.08);
  overflow:clip;
  z-index:2;
}
.carta-shell::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(42,25,12,.14);
  border-radius:4px;
  pointer-events:none;
}
.carta-shell::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:clamp(170px,15.5%,198px);
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(42,25,12,.22),rgba(255,255,255,.2),rgba(42,25,12,.18),transparent);
  pointer-events:none;
}
.carta-shell.is-turning{
  box-shadow:
    0 38px 108px rgba(0,0,0,.46),
    0 10px 22px rgba(58,34,16,.2),
    inset 0 0 0 1px rgba(255,255,255,.25),
    inset -22px 0 34px rgba(83,50,21,.1);
}
.menu-tabs{
  position:relative;
  z-index:1;
  display:grid;
  align-content:start;
  gap:0;
  padding:clamp(22px,2.6vw,34px) clamp(18px,2.3vw,28px);
  min-height:100%;
  background:
    linear-gradient(90deg,rgba(60,37,18,.08),transparent 34%),
    rgba(213,188,145,.34);
  border-right:1px solid rgba(42,25,12,.2);
}
.menu-tabs::before{
  content:"CATEGORIAS";
  display:block;
  margin:0 0 clamp(14px,1.8vw,22px);
  color:#74502a;
  font-family:var(--body);
  font-size:.64rem;
  line-height:1;
  font-weight:850;
  letter-spacing:.24em;
}
.menu-tabs::after{
  content:"";
  position:absolute;
  left:clamp(22px,3vw,34px);
  top:calc(clamp(72px,7vw,96px) + (var(--menu-index) * 3.35rem));
  width:34px;
  height:1px;
  background:#7d5125;
  box-shadow:0 0 16px rgba(125,81,37,.22);
  transition:top .42s cubic-bezier(.2,.7,.2,1);
}
.menu-tabs button{
  appearance:none;
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid rgba(42,25,12,.14);
  padding:.72rem 0 .72rem 2.45rem;
  background:transparent;
  color:rgba(42,25,12,.58);
  cursor:pointer;
  font-family:var(--display);
  font-size:clamp(1.08rem,1.55vw,1.55rem);
  line-height:1;
  text-align:left;
  transition:color .22s ease,letter-spacing .22s ease,background .22s ease,transform .22s ease;
}
.menu-tabs button:last-child{border-bottom:0}
.menu-tabs button::after{
  content:"";
  position:absolute;
  left:2.45rem;
  right:0;
  bottom:.72rem;
  height:1px;
  background:rgba(125,81,37,.34);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .24s ease;
}
.menu-tabs button:hover::after,
.menu-tabs button:focus-visible::after{transform:scaleX(1)}
.menu-tabs button[aria-selected="true"]{
  color:#1a120b;
  letter-spacing:.01em;
  background:linear-gradient(90deg,rgba(125,81,37,.1),transparent 82%);
  transform:translateX(3px);
}
.menu-selection-stamp{
  position:absolute;
  right:clamp(20px,2.6vw,34px);
  top:clamp(18px,2.2vw,28px);
  z-index:5;
  max-width:9rem;
  padding:.34rem .52rem .28rem;
  color:rgba(95,58,24,.78);
  border:1px solid rgba(95,58,24,.42);
  border-radius:2px;
  font-family:var(--body);
  font-size:.54rem;
  font-weight:850;
  letter-spacing:.13em;
  line-height:1;
  text-align:center;
  transform:rotate(2deg);
  opacity:.74;
  pointer-events:none;
}
.menu-selection-stamp.is-stamping{animation:stampIn .42s cubic-bezier(.18,.78,.25,1) both}
.carta-board{
  position:relative;
  z-index:1;
  min-width:0;
  padding:clamp(22px,3vw,38px);
}
.carta-board::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background:linear-gradient(120deg,transparent 8%,rgba(255,255,255,.36) 42%,transparent 64%);
  transition:transform .42s ease,opacity .42s ease;
}
.carta-board::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  transform:translateX(-18%) skewX(-4deg);
  background:
    linear-gradient(90deg,transparent 0 18%,rgba(89,57,28,.16) 37%,rgba(255,244,219,.48) 48%,rgba(89,57,28,.1) 58%,transparent 80%);
  transition:opacity .34s ease,transform .42s cubic-bezier(.2,.7,.2,1);
}
.carta-board.is-changing::before{
  opacity:.28;
  transform:translateX(18px);
}
.carta-board.is-changing::after{
  opacity:.75;
  transform:translateX(22%) skewX(-4deg);
}
.carta-page{
  display:grid;
  /* El tablero es angosto: en columna la foto quedaba como tira. Va de banner
     a todo el ancho, que es donde gana tamaño real. */
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:
    "photo"
    "head"
    "list";
  align-content:start;
  gap:clamp(14px,1.8vw,22px);
  min-width:0;
  opacity:1;
  transform:translateY(0);
  transition:opacity .38s ease,transform .42s cubic-bezier(.2,.7,.2,1);
}
.carta-board.is-changing .carta-page{
  opacity:.2;
  transform:translateX(calc(var(--menu-direction) * 15px)) translateY(5px);
}
.carta-side{
  grid-area:head;
  align-self:end;
}
.carta-note{
  margin:0 0 .55rem;
  color:#8b602c;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.68rem;
  font-weight:850;
}
.carta-side h3{
  color:#1e150d;
  font-size:clamp(2.25rem,4.15vw,4.6rem);
  line-height:.92;
}
.carta-side p{
  max-width:28rem;
  margin:.78rem 0 0;
  color:#56402a;
  font-size:clamp(.98rem,1.08vw,1.08rem);
  line-height:1.38;
}
.carta-photo{
  grid-area:photo;
  position:relative;
  width:100%;
  height:clamp(210px,23vw,310px);
  overflow:hidden;
  background:#27180c;
  border:1px solid rgba(42,25,12,.22);
  box-shadow:0 18px 44px rgba(55,34,18,.22);
}
.carta-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(238,216,170,.68),transparent);
  transition:opacity .34s ease,transform .48s cubic-bezier(.2,.7,.2,1);
}
.carta-photo.is-changing::before{
  opacity:.8;
  transform:translateX(100%);
}
.carta-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.94) contrast(1.04);
  opacity:1;
  transition:opacity .28s ease,transform .46s cubic-bezier(.2,.72,.2,1),filter .34s ease;
}
.carta-photo img.is-changing{
  opacity:.18;
  filter:saturate(.74) blur(4px);
  transform:translateX(calc(var(--menu-direction) * 8px)) scale(1.045);
}
.carta-photo::after{
  background:linear-gradient(180deg,transparent 44%,rgba(20,12,6,.64));
}
.carta-list{
  grid-area:list;
  display:grid;
  grid-template-columns:1fr;
  column-gap:clamp(24px,3.4vw,48px);
  border-top:1px solid rgba(42,25,12,.2);
  padding-top:clamp(14px,2vw,22px);
}
.menu-line{
  appearance:none;
  display:block;
  padding:.68rem 0 .72rem;
  border-bottom:1px solid rgba(42,25,12,.16);
  opacity:0;
  transform:translateY(10px);
  animation:ticketIn .46s ease forwards;
  animation-delay:var(--delay,0ms);
  cursor:pointer;
}
.menu-line__toggle{
  appearance:none;
  display:grid;
  grid-template-columns:3ch 1fr;
  gap:.72rem;
  width:100%;
  margin:0;
  padding:0;
  color:inherit;
  background:transparent;
  border:0;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.menu-line__content{display:block}
.menu-line__toggle:focus-visible{
  outline:1px solid rgba(125,81,37,.55);
  outline-offset:4px;
}
.menu-line:hover{border-bottom-color:rgba(125,81,37,.42)}
.menu-line .num{
  color:#8b602c;
  font-family:var(--display);
  font-size:.82rem;
  opacity:.58;
}
.menu-line h4{
  margin:0;
  font-family:var(--display);
  font-weight:620;
  color:#1d140c;
  font-size:clamp(1.08rem,1.42vw,1.46rem);
  line-height:1.08;
}
.menu-line__heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  gap:.65rem;
}
.menu-line__price{
  color:#7a4e22;
  font-family:var(--body);
  font-size:.78rem;
  font-weight:850;
  line-height:1;
  letter-spacing:.04em;
  white-space:nowrap;
}
.menu-line p{
  margin:.26rem 0 0;
  color:#604833;
  font-size:clamp(.86rem,.94vw,.96rem);
  line-height:1.34;
}
.menu-line em{
  display:inline-block;
  position:relative;
  margin-top:.46rem;
  color:#24190f;
  background:#edd69e;
  border:1px dashed rgba(36,25,15,.46);
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:.57rem;
  font-weight:800;
  padding:.24rem .44rem .22rem;
  transform:rotate(-1.2deg);
  box-shadow:0 4px 10px rgba(55,34,18,.1);
}
.menu-line em::before,
.menu-line em::after{
  content:"";
  position:absolute;
  top:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#e3cda6;
  transform:translateY(-50%);
}
.menu-line em::before{left:-3px}
.menu-line em::after{right:-3px}
.menu-line:hover em{transform:rotate(-.6deg)}
.menu-line em span{position:relative;z-index:1}
.menu-line .ticket-prefix{font-family:var(--body)}
.menu-line .ticket-dot{padding:0 .28rem;color:#6b4721}
.menu-line .ticket-text{font-family:var(--body)}
.menu-line__order{
  display:inline-flex;
  align-items:center;
  gap:.28rem;
  min-height:32px;
  margin-top:.6rem;
  padding:.38rem .62rem;
  color:#4f3017;
  border:1px solid rgba(95,58,24,.3);
  border-radius:999px;
  font-family:var(--nav);
  font-size:.82rem;
  font-weight:760;
  line-height:1;
  margin-left:calc(3ch + .72rem);
  text-decoration:none;
  transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.menu-line__order:hover,
.menu-line__order:focus-visible{
  color:#f3e7d0;
  background:#2b1b10;
  border-color:#2b1b10;
  box-shadow:0 8px 18px rgba(55,34,18,.18);
  transform:translateY(-1px);
}
.menu-line__add{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  min-height:34px;
  margin:.62rem 0 0 calc(3ch + .72rem);
  padding:.42rem .7rem;
  color:#4f3017;
  background:rgba(255,248,231,.28);
  border:1px solid rgba(95,58,24,.34);
  border-radius:999px;
  font-family:var(--nav);
  font-size:.8rem;
  font-weight:760;
  line-height:1;
  cursor:pointer;
  transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.menu-line__add span{
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  color:#f3e7d0;
  background:#5f3a18;
  border-radius:50%;
  font-size:.9rem;
  line-height:1;
}
.menu-line__add:hover,
.menu-line__add:focus-visible{
  color:#f3e7d0;
  background:#2b1b10;
  border-color:#2b1b10;
  box-shadow:0 8px 18px rgba(55,34,18,.18);
  transform:translateY(-1px);
}
.menu-line__add:hover span,
.menu-line__add:focus-visible span{
  color:#2b1b10;
  background:#d4b36d;
}
.carta-board .carta-photo figcaption{
  font-size:clamp(.9rem,1.15vw,1.12rem);
  color:#f0dfbd;
}
.menu-service-note{
  margin:1rem 0 0;
  color:rgba(86,64,42,.72);
  font-size:.68rem;
  font-weight:760;
  letter-spacing:.12em;
  text-align:right;
  text-transform:uppercase;
}

.order-ticket{
  position:sticky;
  top:20px;
  align-self:start;
  z-index:2;
  display:flex;
  flex-direction:column;
  min-width:0;
  height:min(700px,calc(100vh - 40px));
  min-height:560px;
  padding:clamp(22px,2.4vw,32px) clamp(18px,2vw,26px);
  background:
    linear-gradient(90deg,rgba(80,48,23,.07),transparent 16%),
    repeating-linear-gradient(0deg,rgba(92,61,31,.045) 0 1px,transparent 1px 8px),
    rgba(236,215,174,.68);
  border-left:1px dashed rgba(59,37,19,.3);
}
.order-ticket::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(62,39,20,.12);
  pointer-events:none;
}
.order-ticket__header,
.order-ticket__items,
.order-ticket__footer{position:relative;z-index:1}
.order-ticket__header{
  padding-bottom:1rem;
  border-bottom:1px dashed rgba(59,37,19,.32);
}
.order-ticket__header > p{
  margin:0 0 .7rem;
  color:#80552a;
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.order-ticket__header > div{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:.8rem;
}
.order-ticket__header h3{
  color:#1f150d;
  font-size:clamp(1.7rem,2.4vw,2.25rem);
  line-height:.94;
}
.order-ticket__header span{
  color:#765331;
  font-size:.68rem;
  font-weight:760;
  white-space:nowrap;
}
.order-ticket__items{
  display:grid;
  align-content:start;
  gap:.12rem;
  flex:1;
  min-height:230px;
  max-height:none;
  overflow:auto;
  padding:.7rem .15rem .9rem 0;
  scrollbar-width:thin;
  scrollbar-color:rgba(95,58,24,.36) transparent;
}
.order-ticket__empty{
  align-self:center;
  margin:auto 0;
  color:#765c42;
  font-size:.9rem;
  line-height:1.45;
  text-align:center;
}
.order-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.65rem;
  padding:.72rem 0;
  border-bottom:1px dashed rgba(59,37,19,.22);
}
.order-row__copy span{
  display:block;
  margin-bottom:.18rem;
  color:#916331;
  font-size:.5rem;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.order-row__copy h4{
  margin:0;
  color:#25170e;
  font-family:var(--display);
  font-size:1rem;
  font-weight:620;
  line-height:1.05;
}
.order-row__copy p{
  margin:.22rem 0 0;
  color:#76502b;
  font-size:.68rem;
  font-weight:800;
}
.order-row__quantity{
  display:grid;
  grid-template-columns:28px 20px 28px;
  align-items:center;
  gap:.15rem;
}
.order-row__quantity button{
  appearance:none;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  color:#342014;
  background:rgba(255,248,231,.34);
  border:1px solid rgba(59,37,19,.28);
  border-radius:50%;
  font-size:1rem;
  cursor:pointer;
}
.order-row__quantity strong{
  color:#23170f;
  font-size:.8rem;
  text-align:center;
}
.order-ticket__footer{
  padding-top:1rem;
  border-top:1px dashed rgba(59,37,19,.34);
}
.order-ticket__total{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.8rem;
}
.order-ticket__total span{
  color:#745333;
  font-size:.64rem;
  font-weight:780;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.order-ticket__total strong{
  color:#1d130c;
  font-family:var(--display);
  font-size:1.25rem;
  line-height:1;
  text-align:right;
}
.order-ticket__send{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:.72rem .85rem;
  color:#f4e8d2;
  background:#24170e;
  border:1px solid #24170e;
  border-radius:5px;
  font-family:var(--nav);
  font-size:.9rem;
  font-weight:760;
  line-height:1;
  text-align:center;
  transition:transform .2s ease,background .2s ease,opacity .2s ease;
}
.order-ticket__send:hover{background:#4b2e18;transform:translateY(-1px)}
.order-ticket__send.is-disabled{
  opacity:.42;
  pointer-events:none;
}
.order-ticket__clear{
  appearance:none;
  display:block;
  width:100%;
  margin-top:.65rem;
  padding:.4rem;
  color:#785535;
  background:transparent;
  border:0;
  font-family:var(--nav);
  font-size:.72rem;
  cursor:pointer;
}
.order-ticket__clear:disabled{opacity:.38;cursor:not-allowed}
.order-ticket.is-updated{animation:orderTicketPulse .38s ease both}

@keyframes friesFall{
  0%{
    opacity:0;
    transform:
      translate3d(var(--fry-x,0vw),-16vh,0)
      rotate(var(--fry-rotate-start,-10deg))
      scale(var(--fry-scale,.9));
  }
  12%{
    opacity:var(--fry-opacity,.92);
  }
  72%{
    opacity:var(--fry-opacity,.92);
  }
  100%{
    opacity:0;
    transform:
      translate3d(calc(var(--fry-x,0vw) + var(--fry-drift,0vw)),var(--fry-end-y,115vh),0)
      rotate(var(--fry-rotate-end,18deg))
      scale(var(--fry-scale,.9));
  }
}

/* Birthday campaign */
.birthday-banner{
  width:100%;
  max-width:var(--chapter-max);
  margin:0 auto;
  padding:clamp(68px,8vw,108px) clamp(30px,4vw,52px);
}
.birthday-banner__card{
  position:relative;
  display:flex;
  min-height:clamp(540px,68vh,660px);
  align-items:center;
  overflow:hidden;
  border:1px solid rgba(229,210,179,.2);
  border-radius:var(--soft-object);
  background:#0b0806;
  box-shadow:0 34px 90px rgba(0,0,0,.38);
}
.birthday-banner__image{
  position:absolute;
  inset:0;
  margin:0;
}
.birthday-banner__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.9) contrast(1.03);
}
.birthday-banner__card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(8,6,5,.97) 0%,rgba(8,6,5,.87) 32%,rgba(8,6,5,.28) 62%,rgba(8,6,5,.08) 100%);
  pointer-events:none;
}
.birthday-banner__copy{
  position:relative;
  z-index:2;
  width:min(49%,540px);
  padding:clamp(32px,5vw,64px);
  color:#f3e7d0;
}
.birthday-banner__copy .kicker{color:#ddb85f}
.birthday-banner__copy h2{
  margin:.8rem 0 1rem;
  color:#f8edd9;
  font-size:clamp(3rem,5.8vw,5.6rem);
  line-height:.86;
  letter-spacing:-.05em;
}
.birthday-banner__copy > p:not(.kicker){
  max-width:36rem;
  margin:0;
  color:rgba(243,231,208,.78);
  font-size:clamp(1rem,1.35vw,1.18rem);
  line-height:1.5;
}
.birthday-banner__copy ul{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  list-style:none;
  margin:1.35rem 0 1.6rem;
  padding:0;
}
.birthday-banner__copy li{
  padding:.42rem .65rem;
  color:#e6c575;
  border:1px solid rgba(222,187,107,.3);
  border-radius:999px;
  font-family:var(--nav);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.birthday-banner__copy > a{
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  padding:.8rem 1.15rem;
  color:#1c130c;
  background:#dfbd6a;
  border:1px solid #dfbd6a;
  border-radius:5px;
  font-family:var(--nav);
  font-size:1rem;
  font-weight:800;
  transition:transform .2s ease,background .2s ease;
}
.birthday-banner__copy > a:hover{background:#f0d184;transform:translateY(-2px)}

@media (max-width:760px){
  .birthday-banner{padding:58px 16px}
  .birthday-banner__card{display:block;min-height:0}
  .birthday-banner__image{position:relative;height:330px}
  .birthday-banner__image img{object-position:64% center}
  .birthday-banner__card::after{
    height:330px;
    bottom:auto;
    background:linear-gradient(180deg,transparent 44%,#0b0806 100%);
  }
  .birthday-banner__copy{
    width:100%;
    margin-top:-1px;
    padding:26px 22px 28px;
    background:#0b0806;
  }
  .birthday-banner__copy h2{font-size:clamp(2.7rem,13vw,3.75rem)}
  .birthday-banner__copy ul{gap:.42rem;margin:1.1rem 0 1.35rem}
  .birthday-banner__copy li{font-size:.55rem}
  .birthday-banner__copy > a{width:100%;font-size:.94rem}
}

/* Chapter 06 */
.invitation{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(360px,.95fr);
  gap:clamp(28px,3vw,44px);
  align-items:center;
  padding-left:clamp(30px,4vw,52px);
  padding-right:clamp(30px,4vw,52px);
  background:transparent;
  color:var(--ink);
}
.invitation .kicker{color:#5f401d}
.invitation p{color:#3f2e1f}
.invitation-map{
  position:relative;
  display:grid;
  gap:clamp(16px,2vw,22px);
  padding:clamp(10px,1.3vw,16px);
  border:1px solid rgba(70,42,22,.3);
  border-radius:var(--soft-object);
  background:
    linear-gradient(145deg,rgba(248,238,214,.94),rgba(226,205,156,.72)),
    rgba(242,230,198,.84);
  box-shadow:0 32px 92px rgba(26,15,10,.34), inset 0 1px 0 rgba(255,248,230,.66);
  overflow:hidden;
}
.map-placeholder,
.invitation-map iframe{
  width:100%;
  min-height:clamp(500px,64vh,660px);
  grid-column:1;
  grid-row:1;
}
.map-load{
  grid-column:1;
  grid-row:1;
  place-self:center;
  z-index:3;
  appearance:none;
  cursor:pointer;
  min-height:52px;
  padding:.85rem 1.8rem;
  color:var(--cream);
  background:rgba(23,16,9,.92);
  border:1px solid rgba(229,210,179,.32);
  border-radius:6px;
  font-family:var(--nav);
  font-size:1.12rem;
  line-height:1;
  box-shadow:0 16px 44px rgba(0,0,0,.35);
  transition:background .22s ease,transform .22s ease;
}
.map-load:hover{background:rgba(43,29,15,.95);transform:translateY(-1px)}
.invitation-map.is-loaded .map-load{display:none}
.map-placeholder{
  display:grid;
  align-content:end;
  gap:.42rem;
  padding:clamp(22px,3vw,34px);
  color:#1b120b;
  border-radius:calc(var(--soft-object) - 8px);
  background:
    linear-gradient(145deg,rgba(246,232,198,.88),rgba(212,181,120,.56)),
    repeating-linear-gradient(0deg,rgba(92,61,31,.06) 0 1px,transparent 1px 8px),
    #dcc394;
  box-shadow:0 20px 52px rgba(26,15,10,.16);
}
.map-placeholder span{
  color:#74502a;
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.map-placeholder strong{
  max-width:10ch;
  font-family:var(--display);
  font-size:clamp(2.3rem,5vw,4.2rem);
  font-weight:400;
  line-height:.92;
}
.invitation-map iframe{
  opacity:0;
  border:0;
  border-radius:calc(var(--soft-object) - 8px);
  box-shadow:0 20px 52px rgba(26,15,10,.22);
  filter:saturate(.8) contrast(1.02);
  overflow:hidden;
  clip-path:inset(0 round calc(var(--soft-object) - 8px));
  transition:opacity .42s ease;
}
.invitation-map.is-loaded iframe{
  opacity:1;
}
.invitation-map.is-loaded .map-placeholder{
  opacity:0;
  display:none;
  pointer-events:none;
  transition:opacity .3s ease;
}
.invitation-copy{
  padding:clamp(24px,3vw,38px);
  border:1px solid rgba(70,42,22,.26);
  border-radius:var(--soft-object);
  background:
    linear-gradient(152deg,rgba(248,239,218,.92),rgba(226,204,161,.66)),
    rgba(243,231,204,.8);
  box-shadow:0 28px 78px rgba(26,15,10,.26), inset 0 1px 0 rgba(255,248,230,.58);
}
.invitation-copy h2{
  max-width:12ch;
  color:#120d0a;
  font-size:clamp(3rem,4.15vw,3.95rem);
  line-height:.98;
}
.visit-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.35rem,2.4vw,2.2rem) clamp(1.6rem,3vw,3rem);
  margin:clamp(36px,5vw,72px) 0;
}
.visit-list div{
  border-top:1px solid rgba(21,17,12,.28);
  padding-top:.95rem;
}
.visit-list dt{
  color:#5f401d;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.68rem;
  font-weight:800;
  margin-bottom:.42rem;
}
.visit-list dd{
  margin:0;
  color:#130f0c;
  font-family:var(--body);
  font-size:clamp(1.05rem,1.28vw,1.28rem);
  font-weight:430;
  line-height:1.28;
}
.visit-list dd a{white-space:nowrap}
.ending-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.ending-links > a,
.map-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.72rem 1.05rem;
  color:#120d0a;
  border:1px solid rgba(21,17,12,.34);
  border-radius:4px;
  font-family:var(--nav);
  font-size:1.05rem;
  line-height:1;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.ending-links > a.primary{
  background:#1c140d;
  color:#ead8b8;
  border-color:#1c140d;
}
.ending-links > a{
  min-height:68px;
  flex-direction:column;
  align-items:flex-start;
  gap:.28rem;
  padding:.78rem .9rem;
  text-align:left;
}
.ending-links > a span,
.social-pair > span{
  color:#6c5238;
  font-family:var(--nav);
  font-size:.6rem;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1.15;
  text-transform:uppercase;
}
.ending-links > a strong{
  font-family:var(--display);
  font-size:1.05rem;
  font-weight:500;
  line-height:1.05;
}
.ending-links > a.primary span{color:rgba(234,216,184,.66)}
.ending-links > a.review{
  color:#24160d;
  border-color:#b78a38;
  background:rgba(211,176,99,.24);
}
.social-pair{
  display:flex;
  min-height:68px;
  flex-direction:column;
  justify-content:center;
  gap:.35rem;
  padding:.78rem .9rem;
  color:#120d0a;
  border:1px solid rgba(21,17,12,.34);
  border-radius:4px;
}
.social-pair > div{display:flex;flex-wrap:wrap;gap:.25rem .8rem}
.ending-links .social-pair a{
  display:inline;
  min-height:0;
  padding:0;
  color:#24160d;
  border:0;
  border-bottom:1px solid rgba(36,22,13,.3);
  border-radius:0;
  font-family:var(--display);
  font-size:1rem;
  line-height:1.05;
}
@media (min-width:621px) and (max-width:980px){
  .ending-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.ending-links > a:hover,
.ending-links .social-pair a:hover,
.map-link:hover{
  border-color:rgba(21,17,12,.48);
  transform:translateY(-1px);
}
.map-link{
  justify-self:start;
  min-height:auto;
  padding:0;
  border:0;
  border-bottom:1px solid rgba(21,17,12,.44);
  border-radius:0;
  color:#2f2014;
  font-size:1rem;
}

.site-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:clamp(28px,4vw,46px) var(--chapter-x);
  color:var(--paper);
  background:
    linear-gradient(180deg,rgba(11,7,5,.62),rgba(8,5,4,.9)),
    radial-gradient(760px 260px at 70% 0%,rgba(195,145,63,.08),transparent 66%);
  background-size:cover,cover;
  border-top:0;
}
.site-footer p{
  margin:0;
  color:rgba(229,210,179,.72);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-weight:800;
}
.site-footer nav{
  display:flex;
  align-items:center;
  gap:clamp(1rem,3vw,2.2rem);
}

/* Reservations */
.reservations{
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(540px,1.28fr);
  gap:clamp(3rem,4.5vw,5.5rem);
  align-items:center;
  padding:clamp(4.5rem,6vw,6.5rem) clamp(2.5rem,5vw,6rem);
  background:
    radial-gradient(circle at 84% 18%,rgba(224,193,132,.14),transparent 26rem),
    #17100b;
  color:#f7ecd8;
}
.reservations-intro{max-width:34rem;padding-top:.5rem}
.reservations-intro h2{
  max-width:12ch;
  margin:.7rem 0 1.3rem;
  font-family:"Gloock",Georgia,serif;
  font-size:clamp(3.4rem,4.35vw,5.2rem);
  font-weight:400;
  line-height:.94;
  letter-spacing:-.045em;
}
.reservations-intro>p:not(.kicker){max-width:31rem;color:#d5c3a6;font-size:1.08rem;line-height:1.65}
.reservations-proof{display:grid;gap:.8rem;margin:2rem 0 0;padding:0;list-style:none;color:#ead8bb}
.reservations-proof li{display:flex;align-items:center;gap:.7rem}
.reservations-proof li::before{content:"";width:1.25rem;height:1px;background:#d7b16e}
.reservation-card{
  position:relative;
  width:100%;
  max-width:48rem;
  min-height:0;
  justify-self:end;
  padding:clamp(1.35rem,3.5vw,3.4rem);
  overflow:hidden;
  border:1px solid rgba(102,69,35,.26);
  border-radius:2rem;
  background:linear-gradient(145deg,#fff9ec,#ead9b9);
  box-shadow:0 2.5rem 7rem rgba(0,0,0,.38);
  color:#281a10;
}
.reservation-card::after{
  content:"OHANA";
  position:absolute;
  right:-.05em;
  bottom:-.18em;
  z-index:0;
  color:rgba(81,52,28,.045);
  font:400 clamp(5rem,11vw,10rem)/1 "Gloock",Georgia,serif;
  pointer-events:none;
}
.reservation-card form,.reservation-success{position:relative;z-index:1}
.reservation-step[hidden],.reservation-success[hidden],#reservationForm[hidden]{display:none!important}
.reservation-step__head{margin-bottom:1.6rem}
.reservation-step__head>span{font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#795732}
.reservation-step__head h3,.reservation-success h3{margin:.45rem 0 0;font:400 clamp(2.15rem,3vw,3.55rem)/1 "Gloock",Georgia,serif;letter-spacing:-.035em}
.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.reservation-grid--availability{grid-template-columns:.75fr 1.25fr 1.25fr}
.reservation-grid label{display:grid;min-width:0;gap:.45rem}
.reservation-grid label>span{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#684725}
.reservation-grid small{font-weight:500;letter-spacing:0;text-transform:none}
.reservation-grid input,.reservation-grid select{
  display:block;width:100%;min-width:0;max-width:100%;min-height:3.35rem;padding:.75rem .9rem;border:1px solid rgba(75,48,25,.28);border-radius:.7rem;
  background:rgba(255,252,244,.66);color:#281a10;font:1.05rem "Newsreader",Georgia,serif;outline:none;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.reservation-grid input:focus,.reservation-grid select:focus{border-color:#79512a;background:#fffaf0;box-shadow:0 0 0 3px rgba(121,81,42,.12)}
.reservation-field--wide{grid-column:1/-1}
.reservation-primary,.reservation-secondary{
  min-height:3.55rem;margin-top:1.35rem;padding:.8rem 1.3rem;border:0;border-radius:.7rem;
  background:#2c1b10;color:#fff7e8;font:700 1rem "Newsreader",Georgia,serif;cursor:pointer;
  transition:transform .2s ease,background .2s ease,opacity .2s ease;
}
.reservation-primary{width:100%}
.reservation-primary:hover,.reservation-secondary:hover{transform:translateY(-2px);background:#51351f}
.reservation-primary:disabled{cursor:wait;opacity:.65;transform:none}
.reservation-back{margin:-.2rem 0 1.2rem;padding:0;border:0;background:none;color:#6e4b28;font:700 .9rem "Newsreader",Georgia,serif;cursor:pointer}
.reservation-slots{margin-top:1.5rem}
.reservation-slots__label{margin:0 0 .75rem;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#684725}
.reservation-slots__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.reservation-slots__grid button{min-height:2.9rem;border:1px solid rgba(75,48,25,.32);border-radius:99px;background:rgba(255,252,244,.5);color:#2b1b10;font:700 .95rem "Newsreader",Georgia,serif;cursor:pointer;transition:.2s ease}
.reservation-slots__grid button:hover,.reservation-slots__grid button:focus-visible{border-color:#2c1b10;background:#2c1b10;color:#fff7e8;transform:translateY(-1px)}
.reservation-slots__message{margin:1.3rem 0 0;padding:1rem;border-radius:.7rem;background:rgba(93,63,33,.08);color:#604424;line-height:1.5}
.reservation-slots__message.is-error,.reservation-status.is-error{color:#902d24;background:rgba(144,45,36,.08)}
.reservation-selection{display:flex;justify-content:space-between;gap:1rem;margin:0 0 1.4rem;padding:1rem 1.1rem;border:1px solid rgba(75,48,25,.2);border-radius:.75rem;background:rgba(255,252,244,.46)}
.reservation-selection span{color:#765433}
.reservation-consent{display:flex;align-items:flex-start;gap:.7rem;margin:1.1rem 0 0;color:#644729;font-size:.88rem;line-height:1.45}
.reservation-consent input{width:1.05rem;height:1.05rem;margin-top:.12rem;accent-color:#2c1b10}
.reservation-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.reservation-status{min-height:1.3rem;margin:.85rem 0 -.45rem;padding:.25rem .5rem;border-radius:.4rem;color:#604424}
.reservation-success{display:flex;min-height:24rem;flex-direction:column;align-items:flex-start;justify-content:center}
.reservation-success h3{font-size:clamp(3rem,4.8vw,5rem)}
.reservation-success>p:not(.kicker){max-width:32rem;font-size:1.1rem;line-height:1.55}
.reservation-success>strong{display:inline-block;margin:.5rem 0 1rem;padding:.65rem 1rem;border:1px solid rgba(75,48,25,.28);border-radius:.55rem;font-size:1.25rem;letter-spacing:.16em}
.reservation-success__stamp{position:absolute;right:0;top:0;padding:.7rem 1rem;border:2px solid #744f2c;border-radius:50%;color:#744f2c;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;transform:rotate(7deg)}

@media (max-width:1280px){
  .reservations{grid-template-columns:1fr;gap:2.5rem;padding:5rem clamp(1.2rem,5vw,3rem)}
  .reservations-intro{max-width:46rem}
  .reservations-intro h2{max-width:12ch;font-size:clamp(3.4rem,10vw,5.8rem)}
  .reservation-card{max-width:none;justify-self:stretch}
}
@media (max-width:620px){
  .reservations{padding:4.7rem 1rem 5.5rem}
  .reservations-intro{padding:0 .35rem}
  .reservations-intro h2{font-size:clamp(3.1rem,14vw,4.7rem)}
  .reservations-proof{font-size:.92rem}
  .reservation-card{min-height:0;padding:1.4rem 1rem 1.6rem;border-radius:1.35rem}
  .reservation-card form,.reservation-step{min-width:0;width:100%}
  .reservation-grid,.reservation-grid--availability{grid-template-columns:1fr}
  .reservation-grid input[type="date"]{-webkit-appearance:none;appearance:none;padding-right:.7rem}
  .reservation-field--wide{grid-column:auto}
  .reservation-slots__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .reservation-selection{flex-direction:column;gap:.25rem}
  .reservation-success{min-height:25rem}
  .reservation-success__stamp{position:static;margin:0 0 1.5rem}
}

.reservation-management-page{min-height:100vh;background:#17100b;color:#f7ecd8}
.reservation-management{width:min(760px,calc(100% - 2rem));margin:auto;padding:clamp(2rem,7vh,5rem) 0}
.reservation-management__brand{display:block;width:5rem;height:5rem;margin:0 auto 1.5rem}
.reservation-management__brand img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.reservation-management__card{padding:clamp(1.5rem,5vw,3.5rem);border-radius:2rem;background:linear-gradient(145deg,#fff9ec,#ead9b9);box-shadow:0 2rem 7rem rgba(0,0,0,.4);color:#281a10}
.reservation-management__card h1{margin:.5rem 0 1.5rem;font:400 clamp(2.7rem,8vw,5rem)/.96 "Gloock",Georgia,serif;letter-spacing:-.04em}
.reservation-management__summary{display:grid;gap:.35rem;padding:1.2rem;border:1px solid rgba(75,48,25,.22);border-radius:1rem;background:rgba(255,252,244,.48)}
.reservation-management__summary strong{font-size:1.18rem}.reservation-management__summary span{color:#6a4a2b}
.reservation-management__customer{display:grid;grid-template-columns:1fr auto auto;gap:1rem;margin:1rem 0;padding:1rem 0;border-bottom:1px solid rgba(75,48,25,.18)}
.reservation-management__customer a{color:#53371e}.reservation-management__notes{padding:.9rem;border-radius:.6rem;background:rgba(75,48,25,.07)}
.reservation-management__actions{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(75,48,25,.2)}
.reservation-management__actions h2{font:400 1.8rem "Gloock",Georgia,serif}
.reservation-management__actions .reservation-secondary{width:100%;margin:0;align-self:end}
.reservation-management__cancel{margin-top:2rem;padding:.65rem 0;border:0;border-bottom:1px solid #8b2d25;background:none;color:#8b2d25;font-weight:700;cursor:pointer}
@media (max-width:620px){.reservation-management__card{border-radius:1.35rem}.reservation-management__customer{grid-template-columns:1fr}.reservation-management__actions .reservation-grid{grid-template-columns:1fr}}
.site-footer a{
  color:var(--cream);
  font-family:var(--display);
  font-size:clamp(1.35rem,2.6vw,2.25rem);
  line-height:1;
  transition:color .2s ease,opacity .2s ease;
}
.site-footer a:hover{
  color:var(--brass);
}

/* Dock de pedidos: solo en móvil. En escritorio queda oculto
   (los accesos ya están en la carta y en el capítulo de visita). */
.order-dock{display:none}
.order-dock a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.6rem .95rem;
  border-radius:10px;
  font-family:var(--nav);
  font-size:.92rem;
  line-height:1;
}
.order-dock__menu{
  color:var(--paper);
  border:1px solid rgba(229,210,179,.2);
}
.order-dock__whatsapp{
  color:#171009;
  background:#d4b36d;
  font-weight:760;
}

.hero-action[href*="wa.me"],
.menu-line__order,
.menu-line__add,
.ending-links a[href*="wa.me"],
.order-dock__whatsapp{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.hero-action[href*="wa.me"]:active,
.menu-line__order:active,
.menu-line__add:active,
.ending-links a[href*="wa.me"]:active,
.order-dock__whatsapp:active{
  filter:brightness(.96);
  transform:translateY(1px) scale(.965);
}

@keyframes lightPass{
  from{transform:translateX(-4%);opacity:.18}
  to{transform:translateX(4%);opacity:.32}
}
@keyframes ticketIn{
  to{opacity:1;transform:translateY(0)}
}
@keyframes heroStageIn{
  to{opacity:1;transform:translateY(0)}
}
@keyframes heroImageSettle{
  from{opacity:.72;transform:scale(1.035)}
  to{opacity:1;transform:scale(1)}
}
@keyframes stampIn{
  0%{opacity:0;transform:scale(1.24) rotate(5deg)}
  58%{opacity:.9;transform:scale(.96) rotate(1deg)}
  100%{opacity:.74;transform:scale(1) rotate(2deg)}
}
@keyframes orderTicketPulse{
  0%{filter:brightness(1);transform:translateX(0)}
  45%{filter:brightness(1.04);transform:translateX(-3px)}
  100%{filter:brightness(1);transform:translateX(0)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-parallax]{transform:none!important}
}

@media (max-width:1120px){
  .story-toc{
    width:var(--toc);
    padding-left:22px;
    padding-right:22px;
  }
  :root{--toc:240px}
}

@media (max-width:980px){
  /* Móvil: el parallax sigue activo salvo en la foto grande del hero
     (1600px + filtro re-rasterizándose en cada frame era el origen del lag). */
  .hero-film{transform:none}
  .hero-film img{filter:none}
  :root{
    --toc:0px;
    --chapter-x:20px;
    --chapter-y:86px;
    --title-xl:clamp(3.25rem,15vw,5.3rem);
    --title-lg:clamp(2.55rem,11vw,4.35rem);
    --title-md:clamp(2rem,8vw,3.4rem);
  }
  .story{margin-left:0}
  .story-toc{display:none}
  .mobile-chapter{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:30;
    display:flex;
    align-items:center;
    justify-content:center;
    height:88px;
    padding:0 18px;
    color:var(--cream);
    background:rgba(18,15,12,.94);
    border-bottom:1px solid rgba(243,231,208,.1);
  }
  .mobile-chapter img{
    width:64px;
    height:64px;
    border-radius:50%;
    object-fit:cover;
  }
  .mobile-chapter span{display:none}
  .mobile-menu-toggle{
    appearance:none;
    position:absolute;
    left:18px;
    top:50%;
    transform:translateY(-50%);
    display:grid;
    gap:5px;
    width:42px;
    height:42px;
    place-content:center;
    padding:0;
    border:1px solid rgba(243,231,208,.14);
    border-radius:50%;
    background:rgba(0,0,0,.1);
    cursor:pointer;
  }
  .mobile-menu-toggle span{
    display:block;
    width:16px;
    height:1px;
    background:rgba(243,231,208,.86);
    transition:transform .2s ease,opacity .2s ease;
  }
  .mobile-chapter.is-open .mobile-menu-toggle span:nth-child(1){
    transform:translateY(6px) rotate(42deg);
  }
  .mobile-chapter.is-open .mobile-menu-toggle span:nth-child(2){
    opacity:0;
  }
  .mobile-chapter.is-open .mobile-menu-toggle span:nth-child(3){
    transform:translateY(-6px) rotate(-42deg);
  }
  .mobile-menu{
    position:absolute;
    left:14px;
    right:14px;
    top:calc(100% + 10px);
    z-index:31;
    display:grid;
    gap:0;
    padding:12px 16px;
    background:
      linear-gradient(112deg,rgba(255,255,255,.26),transparent 32%),
      repeating-linear-gradient(0deg,rgba(92,61,31,.055) 0 1px,transparent 1px 8px),
      #e3cda6;
    border:1px solid rgba(49,32,18,.26);
    border-radius:7px;
    box-shadow:0 20px 52px rgba(0,0,0,.34);
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .2s ease,transform .2s ease;
  }
  .mobile-chapter.is-open .mobile-menu{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
  }
  .mobile-menu a{
    padding:.72rem 0;
    color:#24190f;
    border-bottom:1px solid rgba(42,25,12,.14);
    font-family:var(--display);
    font-size:1.25rem;
    line-height:1.05;
  }
  .mobile-menu > a:last-of-type{border-bottom:0}
  .mobile-menu-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    margin:.7rem 0 .15rem;
  }
  .mobile-menu-actions a{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:.25rem;
    min-height:72px;
    padding:.75rem .72rem;
    border-radius:5px;
  }
  .mobile-menu-actions .nav-reserve{
    color:#f2dfb8;
    background:#21160e;
    border:1px solid #21160e;
    box-shadow:0 10px 22px rgba(43,25,11,.2);
  }
  .mobile-menu-actions .nav-review{
    color:#2b1d12;
    background:rgba(255,246,226,.34);
    border:1px solid rgba(43,33,23,.42);
  }
  .mobile-menu-actions span{
    display:block;
    color:#cda85e;
    font-family:var(--nav);
    font-size:.54rem;
    font-weight:850;
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  .mobile-menu-actions .nav-review span{color:#73502e}
  .mobile-menu-actions strong{
    font-family:var(--display);
    font-size:1.14rem;
    font-weight:500;
    line-height:1.05;
  }
  .chapter{
    min-height:100svh;
  }
  .chapter-hero{min-height:100svh}
  .hero-film{inset:-2vh -12vw -2vh -8vw}
  .origin-head,
  .origin-comparison,
  .origin-card,
  .origin-story-copy,
  .place-lede,
  .place-composition,
  .chapter-heading,
  .carta-intro,
  .carta-board,
  .invitation{
    grid-template-columns:1fr;
  }
  .origin-card.is-today{margin-top:0}
  .origin-card-copy{padding-bottom:0}
  .origin-card + .origin-card{
    border-left:0;
    border-top:1px solid rgba(243,231,208,.14);
    padding-top:clamp(22px,5vw,34px);
  }
  .origin-video{width:min(100%,340px)}
  .origin-card{
    align-items:start;
    width:min(100%,720px);
    justify-self:center;
  }
  .place{display:none!important}
  .mobile-menu a[href="#lugar"]{display:none}
  .signature-wall{grid-template-columns:1fr}
  .signature-item,
  .signature-item:nth-child(2),
  .signature-item:nth-child(3),
  .signature-item:nth-child(4),
  .signature-item:nth-child(5){
    grid-column:auto;
    margin-top:0;
    min-height:420px;
  }
  .carta-shell{
    grid-template-columns:1fr;
  }
  .order-ticket{
    position:relative;
    top:auto;
    height:auto;
    min-height:460px;
    border-left:0;
    border-top:1px dashed rgba(59,37,19,.3);
  }
  .carta-shell::after{display:none}
  .menu-tabs{
    display:flex;
    align-items:flex-end;
    gap:0;
    min-height:auto;
    overflow-x:auto;
    scrollbar-width:none;
    padding:1.05rem 1.2rem 0;
    border-right:0;
    border-bottom:1px solid rgba(42,25,12,.18);
  }
  .menu-tabs::-webkit-scrollbar{display:none}
  .menu-tabs::before,
  .menu-tabs::after{display:none}
  .menu-tabs button{
    flex:0 0 auto;
    min-width:max-content;
    padding:.78rem 1.1rem .95rem 0;
    margin-right:1rem;
    border-bottom:0;
    font-size:1.28rem;
  }
  .menu-tabs button::after{
    left:0;
    bottom:.62rem;
  }
  .menu-tabs button[aria-selected="true"]::after{transform:scaleX(1)}
  .carta-board{padding:clamp(22px,5vw,34px)}
  .carta-page{
    grid-template-columns:1fr minmax(150px,220px);
    gap:clamp(20px,4vw,30px);
  }
  .carta-list{grid-template-columns:1fr}
  .carta-side,.carta-photo{position:relative}
  .carta-photo{max-width:220px}
  .invitation-map{
    gap:.72rem;
  }
  .map-placeholder,
  .invitation-map iframe{
    min-height:420px;
    height:420px;
  }
  .place-composition,.invitation{align-items:start}
  .place-notes{
    max-width:none;
    border-left:0;
    border-top:1px solid rgba(61,40,22,.22);
  }
  .place-notes p{font-size:clamp(1.45rem,6vw,2.35rem)}
}

/* Carta a dos columnas en todo escritorio: sin descripciones la lista queda corta. */
@media (min-width:981px){
  .carta-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Sin el índice a la izquierda el hero ocupa toda la pantalla: se equilibran
     los costados y se acota el bloque de texto para que quede centrado. */
  .chapter-hero{
    padding-left:var(--chapter-x);
    padding-right:var(--chapter-x);
  }
  .hero-frame{
    max-width:min(100%,clamp(46rem,55vw,56rem));
    margin-left:44px;
    margin-right:auto;
    bottom:clamp(84px,13vh,112px);
  }
}

/* Rango intermedio (escritorio angosto / laptop con TOC visible): las tres columnas
   de la carta no caben, así que la comanda baja a una fila completa. */
@media (max-width:1340px) and (min-width:981px){
  .carta-shell{
    grid-template-columns:minmax(150px,.26fr) minmax(0,1fr);
  }
  .order-ticket{
    grid-column:1 / -1;
    position:relative;
    top:auto;
    height:auto;
    min-height:0;
    max-height:none;
    border-left:0;
    border-top:1px dashed rgba(59,37,19,.3);
  }
  .signature-copy h3{
    font-size:clamp(1.6rem,2.8vw,2.7rem);
    overflow-wrap:anywhere;
  }
  /* Intro de la carta apilada y con título contenido: a 59px en columna
     angosta quedaba una palabra por línea invadiendo el tablero. */
  .carta-intro{
    grid-template-columns:1fr;
    gap:.6rem;
  }
  .carta-intro h2{
    max-width:none;
    font-size:clamp(2.5rem,4.6vw,3.8rem);
    line-height:1;
  }
  /* Carta más compacta para laptops (1024x824 y similares). */
  .menu-tabs{padding:18px 14px}
  .menu-tabs button{font-size:clamp(.98rem,1.2vw,1.2rem);padding:.58rem 0 .58rem 1.9rem}
  .menu-tabs::after{left:18px;top:calc(64px + (var(--menu-index) * 2.75rem))}
  .menu-line{padding:.5rem 0 .54rem}
  .menu-line h4{font-size:clamp(.98rem,1.15vw,1.2rem)}
  .menu-line__toggle{gap:.55rem}
  .carta-page{gap:14px}
  .carta-photo{height:clamp(180px,19vw,230px)}
  /* Sección "El lugar": tres columnas no caben; pasa a 2x2
     (imagen principal + notas arriba, fotos pequeñas abajo). */
  .place-composition{
    grid-template-columns:1.05fr .95fr;
    align-items:stretch;
  }
  .place-notes{
    max-width:none;
    align-self:center;
  }
  .place-notes p{font-size:clamp(1.2rem,1.75vw,1.6rem)}
  .place-small{aspect-ratio:5/4}
}

@media (max-width:620px){
  :root{
    --chapter-x:16px;
    --chapter-y:54px;
    --title-xl:clamp(3rem,14.5vw,4.4rem);
    --title-lg:clamp(2.45rem,10.8vw,3.8rem);
    --title-md:clamp(1.9rem,8.8vw,3rem);
  }
  .chapter{
    display:grid;
    align-content:center;
    padding:calc(88px + 18px) var(--chapter-x) 26px;
  }
  .chapter-hero{
    align-content:end;
    padding-top:88px;
    padding-bottom:102px;
  }
  .hero-frame{transform:translateY(-82px)}
  .hero-title-desktop{display:none}
  .hero-title-mobile{display:inline}
  .hero-copy{
    display:none;
  }
  .chapter-hero{padding-left:var(--chapter-x)}
  .hero-frame h1{
    max-width:16.5ch;
    font-size:clamp(2.15rem,9.4vw,2.55rem);
    line-height:1.12;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
    margin-top:1.2rem;
  }
  .hero-action{
    min-height:44px;
    padding:.65rem .7rem;
    font-size:.9rem;
  }
  .hero-proof{
    display:block;
    margin-top:1rem;
    font-size:.61rem;
    line-height:1.25;
  }
  .hero-proof li:first-child,
  .hero-proof li:last-child{display:none}
  .hero-proof li:not(:last-child)::after{display:none}
  .scroll-cue{display:none}
  .hero-frame::before{top:-2.2rem}
  .origin-card{padding:12px}
  .origin-video{width:100%}
  .origin-story-copy{gap:1.4rem}
  .origin-story-copy{display:none}
  .origin-comparison{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    overflow:hidden;
    width:100%;
    max-width:380px;
    margin-inline:auto;
    padding:12px;
  }
  .origin-card{
    grid-column:1;
    grid-row:1;
    width:100%;
    opacity:0;
    pointer-events:none;
    transform:translateX(24px) scale(.985);
    transition:opacity .34s ease,transform .34s ease;
  }
  .origin-card.is-active{
    opacity:1;
    pointer-events:auto;
    transform:translateX(0) scale(1);
  }
  .origin-card + .origin-card{
    border-top:0;
    padding-top:12px;
  }
  .origin-video{
    width:min(100%,240px);
    margin-inline:auto;
  }
  .origin-carousel-controls{
    grid-column:1;
    grid-row:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin-top:14px;
    padding:.72rem .85rem;
    border-top:1px solid rgba(243,231,208,.12);
  }
  .origin-carousel-btn{
    appearance:none;
    width:42px;
    height:42px;
    border:1px solid rgba(243,231,208,.18);
    border-radius:50%;
    background:rgba(10,7,5,.38);
    color:var(--cream);
    font-family:var(--display);
    font-size:1.45rem;
    line-height:1;
  }
  .origin-carousel-count{
    color:var(--brass);
    font-size:.62rem;
    font-weight:850;
    letter-spacing:.2em;
    text-transform:uppercase;
  }
  .origin-head h2{
    max-width:10.5ch;
    font-size:clamp(2.8rem,13.4vw,3.75rem);
    line-height:1;
  }
  .origin-head > p:last-child,
  .origin-card-copy p,
  .editorial-quote,
  .carta-intro > p:last-child,
  .signature-copy p,
  .carta-side p,
  .menu-line p,
  .carta-board .carta-photo figcaption{
    display:none;
  }
  .origin-card-copy{
    padding-top:.85rem;
  }
  .origin-card-copy h3{
    font-size:clamp(1.55rem,8vw,2.15rem);
  }
  .place-lede,.chapter-heading,.carta-intro{gap:1rem}
  .place-small{display:none}
  .place-notes p:not(:first-child){display:none}
  .place-notes{
    padding-top:.95rem;
  }
  .signature-wall{
    grid-template-columns:repeat(6,1fr);
    gap:.72rem;
  }
  .signature-item,
  .signature-item:nth-child(2),
  .signature-item:nth-child(3),
  .signature-item:nth-child(4),
  .signature-item:nth-child(5){
    min-height:clamp(205px,52vw,260px);
  }
  .signature-item:nth-child(1),
  .signature-item:nth-child(2),
  .signature-item:nth-child(3){
    grid-column:span 2;
  }
  .signature-item:nth-child(4),
  .signature-item:nth-child(5){
    grid-column:span 3;
  }
  .signature-copy{
    padding:.78rem;
  }
  .signature-copy span{
    font-size:.48rem;
    letter-spacing:.12em;
    padding:.22rem .34rem;
  }
  .signature-copy h3{
    margin:.34rem 0 .18rem;
    font-size:clamp(1.05rem,5.6vw,1.7rem);
    line-height:.98;
    overflow-wrap:anywhere;
  }
  .signature-copy p{
    font-size:.82rem;
    line-height:1.25;
  }
  .carta{
    align-content:start;
    padding:108px 10px 34px;
  }
  .carta-fries{
    inset:-18vh -8vw 0;
    z-index:0;
    opacity:.52;
  }
  .carta-intro{
    grid-template-columns:1fr;
    margin-bottom:.9rem;
  }
  .carta-intro h2{
    max-width:10.5ch;
    font-size:clamp(2.35rem,11vw,3.35rem);
    line-height:.94;
  }
  .carta-shell{
    display:block;
    margin-top:1.1rem;
  }
  .menu-selection-stamp{display:none}
  .carta-shell{
    border-radius:10px;
    position:relative;
    background:
      linear-gradient(112deg,rgba(255,255,255,.32),transparent 32%),
      radial-gradient(280px 300px at 12% 4%,rgba(255,247,224,.28),transparent 70%),
      repeating-linear-gradient(0deg,rgba(92,61,31,.052) 0 1px,transparent 1px 8px),
      #e2cba2;
    box-shadow:
      0 24px 58px rgba(0,0,0,.36),
      inset 0 0 0 1px rgba(255,255,255,.2);
  }
  .carta-shell::before{
    inset:8px;
    border-color:rgba(42,25,12,.12);
  }
  .carta-board{
    padding:1rem 1rem 1.1rem;
    border-top:1px solid rgba(42,25,12,.16);
  }
  .carta-page{
    grid-template-columns:minmax(0,1fr) minmax(112px,38%);
    grid-template-areas:
      "head photo"
      "list list";
    gap:.9rem .9rem;
  }
  .carta-side{
    align-self:center;
  }
  .carta-side h3{
    font-size:clamp(2.55rem,13.2vw,3.7rem);
    line-height:.88;
  }
  .carta-note{
    margin-bottom:.32rem;
    font-size:.58rem;
  }
  .carta-photo{
    justify-self:center;
    align-self:center;
    width:100%;
    max-width:none;
    height:clamp(124px,34vw,158px);
    aspect-ratio:auto;
    margin:0;
    border-radius:4px;
    box-shadow:0 14px 30px rgba(55,34,18,.18);
  }
  .carta-photo img{
    transform-origin:center;
  }
  .carta-photo img.is-changing{
    opacity:.18;
    transform:scale(1.06);
  }
  .carta-photo::after{
    background:linear-gradient(180deg,transparent 34%,rgba(20,12,6,.56));
  }
  .menu-tabs{
    position:relative;
    top:auto;
    z-index:8;
    counter-reset:comanda;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    margin:0;
    padding:.88rem 1rem .82rem;
    overflow:visible;
    background:transparent;
    box-shadow:
      inset 0 -1px 0 rgba(42,25,12,.12);
  }
  .menu-tabs::before{
    content:"CATEGORIAS";
    grid-column:1/-1;
    display:inline-block;
    width:max-content;
    margin:0 0 .5rem;
    color:#79532b;
    background:#e3cda6;
    font-family:var(--body);
    font-size:.62rem;
    line-height:1;
    font-weight:850;
    letter-spacing:.28em;
    text-align:left;
    padding:0 .34rem 0 0;
  }
  .menu-tabs button{
    min-width:0;
    margin:0;
    min-height:1.82rem;
    padding:.32rem 4.9rem .34rem 2.08rem;
    border:0;
    border-radius:0;
    border-top:1px dashed rgba(64,41,22,.22);
    color:rgba(52,34,19,.72);
    background:transparent;
    font-family:var(--display);
    font-size:clamp(1rem,4.7vw,1.24rem);
    font-weight:400;
    line-height:1;
    text-align:left;
    white-space:normal;
    box-shadow:none;
    counter-increment:comanda;
  }
  .menu-tabs button::before{
    content:counter(comanda, decimal-leading-zero);
    position:absolute;
    left:.1rem;
    top:50%;
    transform:translateY(-50%);
    color:rgba(121,83,43,.62);
    font-family:var(--body);
    font-size:.64rem;
    font-weight:800;
    letter-spacing:.08em;
  }
  .menu-tabs button::after{display:none}
  .menu-tabs button:last-child{border-bottom:1px dashed rgba(64,41,22,.22)}
  .menu-tabs button[aria-selected="true"]{
    color:#1a120b;
    background:
      linear-gradient(90deg,rgba(125,81,37,.14),rgba(236,211,161,.36) 52%,transparent 100%);
    letter-spacing:.01em;
  }
  .menu-tabs button[aria-selected="true"]::before{
    color:#7d5125;
  }
  .menu-tabs button[aria-selected="true"]::after{
    content:"EN MESA";
    display:block;
    position:absolute;
    left:auto;
    right:.42rem;
    top:50%;
    bottom:auto;
    transform:translateY(-50%) rotate(-2deg);
    height:auto;
    width:auto;
    background:transparent;
    color:#7d5125;
    border:1px solid rgba(125,81,37,.5);
    padding:.1rem .18rem;
    font-family:var(--body);
    font-size:.4rem;
    font-weight:850;
    line-height:1;
    letter-spacing:.12em;
  }
  .carta-list{
    grid-template-columns:1fr;
    padding-top:.72rem;
  }
  .menu-line{
    padding:.54rem 0 .56rem;
    position:relative;
    transition:background .24s ease,padding .24s ease,border-color .24s ease;
  }
  .menu-line__toggle{
    grid-template-columns:2.45ch 1fr;
    gap:.7rem;
  }
  .menu-line::after{
    content:"+";
    position:absolute;
    right:.16rem;
    top:.6rem;
    color:rgba(121,83,43,.64);
    font-family:var(--body);
    font-size:.8rem;
    font-weight:800;
    transition:transform .22s ease,color .22s ease;
  }
  .menu-line.is-expanded{
    padding:.68rem .62rem .72rem 0;
    background:
      linear-gradient(90deg,rgba(125,81,37,.1),rgba(238,214,164,.18) 58%,transparent 100%);
    border-bottom-color:rgba(125,81,37,.34);
  }
  .menu-line.is-expanded::after{
    content:"";
    width:1.1rem;
    height:.54rem;
    border:1px solid rgba(125,81,37,.54);
    transform:rotate(-2deg);
    background:rgba(237,214,158,.56);
  }
  .menu-line h4{
    font-size:clamp(1.08rem,5.5vw,1.45rem);
    line-height:1;
    padding-right:0;
  }
  .menu-line__heading{
    grid-template-columns:1fr;
    gap:.22rem;
    padding-right:1.3rem;
  }
  .menu-line__price{
    font-size:.7rem;
    letter-spacing:.07em;
  }
  .menu-line .num{
    font-size:.68rem;
  }
  .menu-line em{
    margin-top:.24rem;
    padding:.16rem .32rem .14rem;
    font-size:.48rem;
  }
  .menu-line__order{
    display:none;
    align-items:center;
    justify-content:center;
    min-height:34px;
    margin-top:.58rem;
    margin-left:calc(2.45ch + .7rem);
    padding:.42rem .62rem;
    color:#f3e7d0;
    background:#23170e;
    border-radius:999px;
    font-family:var(--nav);
    font-size:.78rem;
    line-height:1;
    text-decoration:none;
  }
  .menu-line.is-expanded .menu-line__order{display:inline-flex}
  .menu-line p{
    display:block;
    max-height:0;
    margin:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-4px);
    transition:max-height .32s ease,opacity .24s ease,margin .24s ease,transform .24s ease;
  }
  .menu-line.is-expanded p{
    max-height:8rem;
    margin:.28rem 0 0;
    opacity:1;
    transform:translateY(0);
  }
  .place-notes{padding-left:0}
  .place-notes p{font-size:1.55rem}
  .visit-list{grid-template-columns:1fr}
  .invitation-map{
    padding:10px;
  }
  .map-placeholder,
  .invitation-map iframe{
    min-height:0;
    height:min(58vh,430px);
  }
  .ending-links a,.map-link{font-size:1.05rem}
  .site-footer{
    align-items:flex-start;
    flex-direction:column;
    padding:28px 16px 34px;
  }
  .site-footer nav{
    align-items:flex-start;
    flex-direction:column;
    gap:.85rem;
  }
  .site-footer a{
    font-size:1.7rem;
  }
  body{padding-bottom:68px}
  .order-dock{
    position:fixed;
    left:10px;
    right:10px;
    bottom:max(10px,env(safe-area-inset-bottom));
    z-index:100;
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:6px;
    padding:6px;
    color:var(--cream);
    background:rgba(17,12,8,.92);
    border:1px solid rgba(229,210,179,.2);
    border-radius:16px;
    box-shadow:0 14px 42px rgba(0,0,0,.48);
  }
  .order-dock a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:.65rem .72rem;
    border-radius:11px;
    font-family:var(--nav);
    font-size:.9rem;
    line-height:1;
    text-align:center;
  }
  .order-dock__menu{
    color:var(--paper);
    border:1px solid rgba(229,210,179,.2);
  }
  .order-dock__whatsapp{
    color:#171009;
    background:#d4b36d;
    font-weight:760;
  }
}

@media (prefers-reduced-motion:reduce){
  .carta-fries{display:none}
}

@media (max-width:980px){
  .mobile-pdf-menu{display:grid}
  .carta-shell{display:none!important}
}

/* Curved campaign gallery */
.promo-reel{
  position:relative;
  padding:clamp(54px,8vw,110px) var(--chapter-pad);
  background:
    linear-gradient(180deg,rgba(13,9,6,.78),rgba(25,16,10,.7)),
    radial-gradient(700px 420px at 70% 50%,rgba(185,128,57,.12),transparent 70%);
}
@media (max-width:760px){
  .promo-reel{padding:52px 10px}
}

/* Slider 09 - curved campaign gallery */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.promo-orbit{scroll-snap-align:start}
.promo-orbit__head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:2rem;
  width:min(100%,var(--chapter-max));
  margin:0 auto clamp(26px,4vw,48px);
}
.promo-orbit__head p{margin:0}
.promo-orbit__head > p:last-child{
  max-width:31rem;
  color:rgba(243,231,208,.62);
  text-align:right;
}
.promo-orbit__viewport{
  position:relative;
  width:min(100%,var(--chapter-max));
  height:clamp(580px,72vh,760px);
  margin:0 auto;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%,rgba(102,65,31,.18),transparent 38%),
    #080605;
  border:1px solid rgba(232,213,181,.18);
  box-shadow:0 34px 110px rgba(0,0,0,.45);
  isolation:isolate;
}
.promo-orbit__viewport::before{
  content:"";
  position:absolute;
  inset:14px;
  z-index:6;
  border:1px solid rgba(238,220,190,.2);
  pointer-events:none;
}
.promo-orbit__canvas{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
}
.promo-orbit__fallback{
  position:absolute;
  inset:9% 0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:clamp(18px,2.4vw,34px);
  width:max-content;
  animation:promo-orbit-fallback 34s linear infinite;
}
.promo-orbit__fallback img{
  width:auto;
  height:82%;
  object-fit:cover;
  border:1px solid rgba(245,231,207,.2);
  box-shadow:0 20px 54px rgba(0,0,0,.38);
}
.promo-orbit__viewport.is-webgl .promo-orbit__fallback{display:none}
@keyframes promo-orbit-fallback{
  from{transform:translateX(4%)}
  to{transform:translateX(-62%)}
}
.promo-orbit__vignette{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,#080605 0%,transparent 17%,transparent 83%,#080605 100%),
    linear-gradient(180deg,rgba(8,6,5,.42),transparent 32%,transparent 68%,rgba(8,6,5,.55));
}
.promo-orbit__label{
  position:absolute;
  top:auto;
  bottom:clamp(26px,3.6vw,52px);
  left:50%;
  z-index:4;
  width:auto;
  max-width:min(88%,720px);
  padding:.85rem 1.5rem .9rem;
  color:#f5e8d1;
  text-align:center;
  border-bottom:2px solid #d7b35f;
  background:linear-gradient(90deg,transparent,rgba(8,6,5,.72) 18%,rgba(8,6,5,.88) 50%,rgba(8,6,5,.72) 82%,transparent);
  pointer-events:none;
  transform:translateX(-50%);
  text-shadow:0 5px 24px rgba(0,0,0,.7);
}
.promo-orbit__label p{
  margin:0 0 .34rem;
  color:#e5c36f;
  font-size:clamp(.56rem,.72vw,.68rem);
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.promo-orbit__label h2{
  margin:0;
  color:#f6ebd8;
  font-size:clamp(2.15rem,3.8vw,3.8rem);
  line-height:.9;
  letter-spacing:-.045em;
  text-wrap:balance;
  white-space:nowrap;
}
.promo-orbit__label.is-changing p,
.promo-orbit__label.is-changing h2{animation:promo-orbit-title .7s cubic-bezier(.2,.8,.2,1) both}
.promo-orbit__label.is-changing h2{animation-delay:.06s}
@keyframes promo-orbit-title{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:translateY(0)}
}
.promo-orbit__counter{
  position:absolute;
  right:clamp(32px,4vw,62px);
  top:clamp(28px,3.5vw,50px);
  bottom:auto;
  z-index:5;
  margin:0;
  color:rgba(243,231,208,.5);
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.18em;
}
.promo-orbit__counter span{color:#e5c36f}

@media (max-width:760px){
  .promo-orbit__head{display:block;margin-bottom:24px}
  .promo-orbit__head > p:last-child{margin-top:.8rem;text-align:left;font-size:.92rem}
  .promo-orbit__viewport{height:clamp(520px,73vh,650px)}
  .promo-orbit__label{
    top:auto;
    bottom:28px;
    left:50%;
    width:auto;
    max-width:calc(100% - 32px);
    padding:.72rem 1rem .76rem;
    transform:translateX(-50%);
  }
  .promo-orbit__label p{max-width:19rem;margin:0 auto .3rem;padding:0;line-height:1.3}
  .promo-orbit__label h2{font-size:clamp(1.9rem,8.7vw,2.65rem)}
  .promo-orbit__counter{top:24px;right:24px;bottom:auto}
  .promo-orbit__vignette{
    background:
      linear-gradient(90deg,#080605 0%,transparent 10%,transparent 90%,#080605 100%),
      linear-gradient(180deg,rgba(8,6,5,.36),transparent 28%,transparent 68%,rgba(8,6,5,.62));
  }
  .promo-orbit__fallback{inset:11% 0;gap:16px}
  .promo-orbit__fallback img{height:74%}
}

@media (max-width:720px){
  .promo-orbit__fallback{animation:none;transform:translateX(0)}
}

@media (prefers-reduced-motion:reduce){
  .promo-orbit__fallback{animation:none;transform:translateX(2%)}
  .promo-orbit__label.is-changing p,
  .promo-orbit__label.is-changing h2{animation:none}
}

/* Compact mobile visit card */
@media (max-width:620px){
  .invitation{
    min-height:auto;
    padding-top:72px;
    padding-bottom:34px;
  }
  .invitation-copy{
    padding:24px 22px 22px;
    border-radius:28px;
  }
  .invitation-copy .kicker{margin-bottom:.7rem}
  .invitation-copy h2{
    max-width:9ch;
    font-size:clamp(2.7rem,13.5vw,3.35rem);
    line-height:.88;
  }
  .visit-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 22px;
    margin:28px 0 24px;
  }
  .visit-list div{padding-top:.68rem}
  .visit-list dt{
    margin-bottom:.3rem;
    font-size:.61rem;
  }
  .visit-list dd{
    font-size:.98rem;
    line-height:1.22;
  }
  .ending-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem;
  }
  .ending-links > a,
  .social-pair{
    width:100%;
    min-height:66px;
    padding:.72rem .7rem;
    font-size:.88rem;
    text-align:left;
  }
  .ending-links > a span,
  .social-pair > span{font-size:.52rem;letter-spacing:.09em}
  .ending-links > a strong{font-size:.94rem}
  .ending-links .social-pair a{width:auto;padding:0;font-size:.9rem}
}
