/* ============ Luca: tokens ============ */
:root {
  --rojo: #C3261B;
  --rojo-hondo: #8E1A12;
  --naranja: #EB5A1D;
  --sol: #F7C31B;
  --sol-claro: #FFE48A;
  --carbon: #221915;
  --carbon-2: #2F2420;
  --tinta: #2A211D;
  --gris: #6F625B;
  --linea: #EADFD3;
  --blanco: #FFFFFF;
  --papel: #FFFBF4;
  --wa: #1FA855;

  --f-display: "Bricolage Grotesque", system-ui, sans-serif;
  --f-hand: "Caveat Brush", "Segoe Print", cursive;

  --step--1: clamp(0.84rem, 0.82rem + 0.1vw, 0.9rem);
  --step-0: clamp(1rem, 0.97rem + 0.15vw, 1.08rem);
  --step-1: clamp(1.2rem, 1.12rem + 0.4vw, 1.45rem);
  --step-2: clamp(1.5rem, 1.3rem + 0.9vw, 2.1rem);
  --step-3: clamp(2.1rem, 1.6rem + 2.4vw, 3.6rem);
  --step-4: clamp(2.6rem, 1.7rem + 4.4vw, 5.4rem);

  --wrap: 1180px;
  --gutter: clamp(16px, 4vw, 40px);
  --radius-s: 10px;
  --radius-l: 22px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--f-display);
  font-size: var(--step-0);
  line-height: 1.55;
  color: var(--tinta);
  background: var(--papel);
  font-optical-sizing: auto;
}
img { max-width: 100%; display: block; height: auto; }
a { color: inherit; }
h1, h2, h3 { margin: 0; line-height: 1.02; }
p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button, input, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--sol); outline-offset: 3px; border-radius: 6px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--sol); color: var(--carbon); padding: 10px 14px; border-radius: 8px; font-weight: 700; }
.skip:focus { top: 12px; }

.h2 {
  font-size: var(--step-3);
  font-weight: 800;
  font-variation-settings: "wdth" 80;
  letter-spacing: -0.02em;
}

/* ============ Logo (mask from the real artwork) ============ */
.logo {
  display: block;
  width: 86px;
  aspect-ratio: 550 / 335;
  background: var(--blanco);
  -webkit-mask: url("assets/logo.png") center / contain no-repeat;
          mask: url("assets/logo.png") center / contain no-repeat;
}

/* ============ Buttons ============ */
.btn {
  --bg: var(--carbon); --fg: var(--blanco);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  border-radius: 999px; border: 2px solid transparent;
  background: var(--bg); color: var(--fg);
  font-weight: 700; font-size: var(--step-0); text-decoration: none; line-height: 1.1;
  cursor: pointer;
  transition: transform .15s ease, background-color .15s ease;
}
.btn:active { transform: scale(.97); }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn--sun { --bg: var(--sol); --fg: var(--carbon); }
.btn--sun:hover { --bg: var(--sol-claro); }
.btn--red { --bg: var(--rojo); }
.btn--red:hover { --bg: var(--rojo-hondo); }
.btn--wa { --bg: var(--wa); }
.btn--wa:hover { --bg: #178a45; }
.btn--ghost { --bg: transparent; --fg: var(--blanco); border-color: rgba(255,255,255,.7); }
.btn--ghost:hover { --bg: rgba(255,255,255,.12); }
.btn--sm { min-height: 42px; padding: 8px 16px; }
.btn--block { width: 100%; }

/* ============ Header ============ */
.top {
  position: sticky; top: 0; z-index: 30;
  background: var(--rojo);
  color: var(--blanco);
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}
.top__in {
  max-width: var(--wrap); margin: 0 auto; padding: 10px var(--gutter);
  display: flex; align-items: center; gap: 24px;
}
.brand { display: block; padding: 4px 0; }
.nav { display: flex; gap: 4px; margin-left: auto; }
.nav a {
  text-decoration: none; font-weight: 600; padding: 8px 12px; border-radius: 999px;
}
.nav a:hover { background: rgba(255,255,255,.14); }
@media (max-width: 760px) {
  .nav { display: none; }
  .top .btn { margin-left: auto; }
  .logo { width: 72px; }
}

/* ============ Hero ============ */
.hero {
  position: relative;
  color: var(--blanco);
  background:
    radial-gradient(120% 90% at 85% 15%, #F3A43A 0%, transparent 55%),
    radial-gradient(90% 80% at 10% 100%, #F07B25 0%, transparent 60%),
    linear-gradient(160deg, var(--rojo) 0%, #D6401C 55%, var(--naranja) 100%);
  overflow: hidden;
}
.hero::after { /* grain, like the printed menu */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .22; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero__in {
  position: relative; z-index: 1;
  max-width: var(--wrap); margin: 0 auto;
  padding: clamp(40px, 7vw, 96px) var(--gutter) clamp(56px, 8vw, 110px);
  display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(24px, 5vw, 64px);
}
.status {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 14px 6px 10px; border-radius: 999px;
  background: rgba(34,25,21,.28); font-weight: 600; font-size: var(--step--1);
  margin-bottom: 22px;
}
.status__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--sol); }
.status.is-open .status__dot { background: #7CF29A; box-shadow: 0 0 0 4px rgba(124,242,154,.25); }
.hero__title {
  font-size: var(--step-4);
  font-weight: 800;
  font-variation-settings: "wdth" 76;
  letter-spacing: -0.025em;
  line-height: .95;
  max-width: 13ch;
  text-wrap: balance;
}
.hero__hand {
  font-family: var(--f-hand);
  font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.6rem);
  color: var(--sol);
  margin-top: 14px;
  transform: rotate(-2deg);
  transform-origin: left;
}
.hero__lead { max-width: 44ch; margin-top: 18px; font-size: var(--step-1); line-height: 1.45; color: #FFF1E6; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.hero__face { margin: 0; position: relative; justify-self: center; width: min(100%, 460px); }
.hero__plate {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  clip-path: circle(46.5% at 50% 50%);
  filter: drop-shadow(0 30px 40px rgba(80, 10, 0, .35));
}
.hero__smile {
  display: block; width: 70%; height: auto; margin: -6% auto 0;
  overflow: visible;
}
.hero__smile path {
  fill: none; stroke: var(--blanco); stroke-width: 15; stroke-linecap: round;
  stroke-dasharray: 260; stroke-dashoffset: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .hero__smile path { animation: smile 1.1s .35s cubic-bezier(.6,.05,.25,1) both; }
  .hero__plate { animation: plate .9s cubic-bezier(.2,.8,.2,1) both; }
  @keyframes smile { from { stroke-dashoffset: 260; } }
  @keyframes plate { from { opacity: 0; transform: rotate(-25deg) scale(.92); } }
}
@media (max-width: 860px) {
  .hero__in { grid-template-columns: 1fr; }
  .hero__in { padding-top: 28px; }
  .hero__face { width: min(58%, 280px); order: -1; }
  .status { margin-bottom: 16px; }
}

/* ============ Facts ============ */
.facts { background: var(--sol); color: var(--carbon); }
.facts__list {
  max-width: var(--wrap); margin: 0 auto; padding: 16px var(--gutter);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px 28px;
  font-size: var(--step--1); line-height: 1.35;
}
.facts strong { display: block; font-size: var(--step-0); }
@media (max-width: 760px) { .facts__list { grid-template-columns: 1fr 1fr; } }

/* ============ Sauces (signature) ============ */
.sauces { background: var(--carbon); color: var(--blanco); }
.sauces__in {
  max-width: var(--wrap); margin: 0 auto; padding: clamp(64px, 9vw, 120px) var(--gutter);
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 80px); align-items: center;
}
.sauces .h2 { color: var(--sol); }
.sauces__lead { margin-top: 14px; max-width: 40ch; color: #E8DCD3; font-size: var(--step-1); line-height: 1.45; }
.sauce-card {
  margin-top: 32px; padding: 20px 22px;
  border-left: 6px solid var(--sauce, var(--sol));
  background: var(--carbon-2); border-radius: 0 var(--radius-s) var(--radius-s) 0;
  min-height: 136px;
}
.sauce-card__name { font-size: var(--step-2); font-weight: 800; font-variation-settings: "wdth" 85; }
.sauce-card__desc { margin-top: 6px; color: #E8DCD3; }
.sauce-card__heat { margin-top: 10px; font-size: var(--step--1); color: #CDBFB5; display: flex; align-items: center; gap: 8px; }
.heat { display: inline-flex; gap: 3px; }
.heat i { width: 12px; height: 12px; border-radius: 50%; background: #4A3A33; }
.heat i.on { background: #F2552C; }

.sauces__all { margin-top: 14px; font-size: var(--step--1); color: #CDBFB5; max-width: 52ch; }
.wing-prices { margin-top: 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.wing-prices h3 { font-size: var(--step-1); font-weight: 800; color: var(--sol); margin-bottom: 8px; }
.wp li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #3D302A; }
.wp li span:first-child { flex: 1; }
.wp b { font-variant-numeric: tabular-nums; }

.wheel {
  --size: min(100%, 560px);
  position: relative; width: var(--size); aspect-ratio: 1; justify-self: center;
}
.wheel__plate {
  position: absolute; inset: 21%; width: 58%; height: 58%; object-fit: cover; border-radius: 50%;
  box-shadow: 0 20px 50px rgba(0,0,0,.45);
}
.sauce {
  --a: 0deg;
  position: absolute; left: 50%; top: 50%;
  width: 15.5%; aspect-ratio: 1; margin: -7.75% 0 0 -7.75%;
  transform: rotate(var(--a)) translateY(-205%) rotate(calc(-1 * var(--a)));
  border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: radial-gradient(circle at 50% 50%, var(--c) 0 56%, #F5EEE4 59% 74%, #CFC3B6 78% 100%);
  box-shadow: 0 6px 14px rgba(0,0,0,.45);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .2s;
}
.sauce::after { /* glossy highlight */
  content: ""; position: absolute; inset: 24% 34% 50% 24%; border-radius: 50%;
  background: rgba(255,255,255,.28); filter: blur(1px);
}
.sauce:hover { box-shadow: 0 0 0 3px rgba(247,195,27,.5), 0 6px 14px rgba(0,0,0,.45); }
.sauce[aria-checked="true"] {
  transform: rotate(var(--a)) translateY(-205%) rotate(calc(-1 * var(--a))) scale(1.22);
  box-shadow: 0 0 0 4px var(--sol), 0 10px 20px rgba(0,0,0,.5);
  z-index: 2;
}
.sauce__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (max-width: 860px) {
  .sauces__in { grid-template-columns: 1fr; }
  .wheel { order: -1; width: min(100%, 440px); }
}

/* ============ Picadas ============ */
.share {
  background: linear-gradient(135deg, var(--sol) 0%, #F49A1F 60%, var(--naranja) 100%);
  color: var(--carbon);
}
.share__in { max-width: var(--wrap); margin: 0 auto; padding: clamp(64px, 9vw, 110px) var(--gutter); }
.share__lead { margin-top: 12px; max-width: 52ch; font-size: var(--step-1); line-height: 1.45; }
.trays { margin-top: 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 3vw, 32px); }
.tray { display: flex; flex-direction: column; }
.tray img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-s);
  transform: rotate(var(--tilt, 0deg));
  box-shadow: 0 18px 30px rgba(120, 40, 0, .28);
}
.tray:nth-child(1) { --tilt: -2deg; }
.tray:nth-child(2) { --tilt: 1.5deg; }
.tray:nth-child(3) { --tilt: -1deg; }
.tray h3 { margin-top: 22px; font-size: var(--step-2); font-weight: 800; font-variation-settings: "wdth" 82; }
.tray p { margin-top: 6px; flex: 1; }
.tray__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; }
.tray__price { font-size: var(--step-2); font-weight: 800; }
@media (max-width: 860px) { .trays { grid-template-columns: 1fr; max-width: 520px; } }

/* ============ Menu ============ */
.menu { background: var(--papel); }
.menu__head { max-width: var(--wrap); margin: 0 auto; padding: clamp(64px, 9vw, 110px) var(--gutter) 20px; }
.menu .h2 { color: var(--rojo); }
.menu__note { margin-top: 12px; max-width: 56ch; color: var(--gris); }
.plus-ico {
  display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
  background: var(--rojo); color: var(--blanco); font-weight: 800; line-height: 1; vertical-align: -3px;
}
.search {
  margin-top: 24px; display: flex; align-items: center; gap: 10px;
  max-width: 520px; padding: 0 16px; min-height: 52px;
  background: var(--blanco); border: 2px solid var(--linea); border-radius: 999px;
}
.search:focus-within { border-color: var(--naranja); }
.search svg { width: 20px; height: 20px; fill: none; stroke: var(--gris); stroke-width: 2.2; stroke-linecap: round; flex: none; }
.search input { border: 0; outline: 0; background: transparent; flex: 1; min-width: 0; padding: 12px 0; }

.cats {
  position: sticky; top: 62px; z-index: 20;
  background: color-mix(in srgb, var(--papel) 92%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--linea);
}
.cats__in {
  max-width: var(--wrap); margin: 0 auto; padding: 10px var(--gutter);
  display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none;
}
.cats__in::-webkit-scrollbar { display: none; }
.cat {
  flex: none; padding: 8px 14px; border-radius: 999px; text-decoration: none;
  font-weight: 600; font-size: var(--step--1); white-space: nowrap;
  border: 1.5px solid var(--linea); background: var(--blanco);
}
.cat:hover { border-color: var(--naranja); }
.cat.is-active { background: var(--carbon); color: var(--blanco); border-color: var(--carbon); }

.menu__body { max-width: var(--wrap); margin: 0 auto; padding: 8px var(--gutter) 80px; }
.mcat { padding-top: 48px; scroll-margin-top: 130px; }
.mcat__head { display: grid; grid-template-columns: 1fr auto; gap: 6px 24px; align-items: end; margin-bottom: 18px; }
.mcat__title {
  font-size: var(--step-3); font-weight: 800; color: var(--naranja);
  font-variation-settings: "wdth" 78; letter-spacing: -0.02em;
}
.mcat__hand { font-family: var(--f-hand); font-size: 0.6em; color: var(--tinta); font-weight: 400; margin-left: .2em; letter-spacing: 0; }
.mcat__note { grid-column: 1; color: var(--gris); max-width: 60ch; }
.mcat__img {
  grid-row: 1 / span 2; grid-column: 2; width: clamp(80px, 12vw, 132px); aspect-ratio: 1; object-fit: cover;
  border-radius: 50%; box-shadow: 0 10px 22px rgba(60,20,0,.18);
}
.mcat__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(28px, 5vw, 64px); }
@media (max-width: 760px) { .mcat__grid { grid-template-columns: 1fr; } }
.mcat__sub { grid-column: 1 / -1; margin: 18px 0 2px; font-size: var(--step-1); font-weight: 800; color: var(--rojo); }

.item { padding: 14px 0; border-bottom: 1px dashed #DCCDBE; }
.item__row { display: flex; align-items: baseline; gap: 10px; }
.item__name { font-weight: 700; font-size: var(--step-0); }
.item__new {
  display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px;
  background: #4CB04F; color: var(--blanco); font-size: .72rem; font-weight: 700; vertical-align: 2px;
}
.item__lead { flex: 1; border-bottom: 2px dotted #CDBBA9; transform: translateY(-4px); min-width: 16px; }
.item__price { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.item__desc { margin-top: 4px; color: var(--gris); font-size: var(--step--1); line-height: 1.45; max-width: 52ch; }
.item__opts { margin-top: 4px; font-size: var(--step--1); color: var(--tinta); }
.item__opts::before { content: "Sabores: "; color: var(--gris); }
.item__opts[data-label]::before { content: attr(data-label) ": "; }
.add {
  flex: none; width: 34px; height: 34px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--rojo); color: var(--blanco); font-size: 1.3rem; font-weight: 700; line-height: 1;
  display: grid; place-items: center; align-self: center;
  transition: transform .12s ease, background-color .15s;
}
.add:hover { background: var(--rojo-hondo); }
.add:active { transform: scale(.9); }
.add.is-added { background: var(--wa); }
.vars { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.var {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 6px 6px 12px; border-radius: 999px; border: 1.5px solid var(--linea); background: var(--blanco);
  font-size: var(--step--1); cursor: pointer;
}
.var:hover { border-color: var(--rojo); }
.var b { font-variant-numeric: tabular-nums; }
.var .add { width: 26px; height: 26px; font-size: 1rem; }
.menu__empty { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter) 80px; color: var(--gris); font-size: var(--step-1); }

/* ============ Cafetería ============ */
.cafe { background: #3A2419; color: var(--blanco); }
.cafe__in { max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; align-items: stretch; }
.cafe__img { width: 100%; height: 100%; max-height: 720px; object-fit: cover; object-position: right center; }
.cafe__copy { padding: clamp(48px, 8vw, 110px) var(--gutter); align-self: center; }
.cafe__hand { font-family: var(--f-hand); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.2rem); color: var(--sol); transform: rotate(-2deg); transform-origin: left; }
.cafe .h2 { margin-top: 6px; }
.cafe__hours { margin-top: 12px; font-size: var(--step-1); font-weight: 700; }
.cafe__list { margin-top: 24px; display: grid; gap: 10px; }
.cafe__list li { padding-left: 26px; position: relative; }
.cafe__list li::before {
  content: ""; position: absolute; left: 0; top: .55em; width: 12px; height: 8px;
  border: 3px solid var(--sol); border-top: 0; border-radius: 0 0 12px 12px;
}
.cafe__perks { margin: 28px 0; padding: 18px 20px; background: rgba(255,255,255,.07); border-radius: var(--radius-s); display: grid; gap: 6px; }
.cafe__perks strong { color: var(--sol); }
@media (max-width: 860px) {
  .cafe__in { grid-template-columns: 1fr; }
  .cafe__img { max-height: 300px; object-position: center 40%; }
}

/* ============ Story ============ */
.story { background: var(--blanco); }
.story__in { max-width: var(--wrap); margin: 0 auto; padding: clamp(64px, 9vw, 110px) var(--gutter); }
.story .h2 { color: var(--rojo); }
.story__lead { margin-top: 14px; max-width: 60ch; font-size: var(--step-1); line-height: 1.5; }
.story__pics { margin-top: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(12px, 3vw, 28px); }
.story__pics figure { margin: 0; position: relative; }
.story__pics img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-l); }
.story__pics figcaption {
  position: absolute; left: 16px; bottom: 6px;
  font-size: clamp(2.4rem, 1.5rem + 4vw, 4.6rem); font-weight: 800; font-variation-settings: "wdth" 75;
  color: var(--blanco); line-height: 1; text-shadow: 0 4px 18px rgba(0,0,0,.45);
}
@media (max-width: 600px) { .story__pics { grid-template-columns: 1fr; } }

/* ============ Visit ============ */
.visit { background: var(--papel); border-top: 1px solid var(--linea); }
.visit__in {
  max-width: var(--wrap); margin: 0 auto; padding: clamp(64px, 9vw, 110px) var(--gutter);
  display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px, 5vw, 64px); align-items: start;
}
.visit .h2 { color: var(--rojo); }
.visit__dl { margin: 24px 0 0; display: grid; gap: 18px; }
.visit__dl dt { font-weight: 800; color: var(--naranja); }
.visit__dl dd { margin: 2px 0 0; }
.visit__dl a { font-weight: 700; }
.visit__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.visit__map { border-radius: var(--radius-l); overflow: hidden; min-height: 420px; background: var(--linea); box-shadow: 0 0 0 6px var(--sol); }
.visit__map iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; }
@media (max-width: 860px) { .visit__in { grid-template-columns: 1fr; } .visit__map, .visit__map iframe { min-height: 320px; } }

/* ============ Footer ============ */
.foot { background: var(--rojo); color: var(--blanco); }
.foot__in {
  max-width: var(--wrap); margin: 0 auto; padding: 48px var(--gutter) 120px;
  display: grid; grid-template-columns: auto 1fr auto; gap: 12px 28px; align-items: center;
}
.logo--foot { width: 110px; }
.foot__hand { font-family: var(--f-hand); font-size: 1.8rem; color: var(--sol); }
.foot__social { display: flex; gap: 18px; flex-wrap: wrap; }
.foot__social a { font-weight: 700; }
.foot__fine { grid-column: 1 / -1; font-size: var(--step--1); color: #FFD9CF; }
@media (max-width: 760px) { .foot__in { grid-template-columns: 1fr; } }

/* ============ Order bar & drawer ============ */
.orderbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
  display: flex; justify-content: center; pointer-events: none;
}
.orderbar[hidden] { display: none; }
.orderbar__btn {
  pointer-events: auto;
  display: flex; align-items: center; gap: 14px; width: min(100%, 520px);
  padding: 10px 12px 10px 10px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--carbon); color: var(--blanco); font-weight: 700;
  box-shadow: 0 14px 30px rgba(34,25,21,.35);
}
.orderbar__count {
  display: grid; place-items: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 999px;
  background: var(--sol); color: var(--carbon); font-weight: 800;
}
.orderbar__total { margin-left: auto; padding-right: 10px; font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: no-preference) {
  .orderbar.bump .orderbar__count { animation: bump .35s ease; }
  @keyframes bump { 50% { transform: scale(1.25); } }
}

.order {
  width: min(100% - 24px, 520px); max-height: min(92vh, 860px);
  padding: 0; border: 0; border-radius: var(--radius-l);
  background: var(--blanco); color: var(--tinta);
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
}
.order::backdrop { background: rgba(34,25,21,.55); }
.order__form { padding: 22px 22px 24px; display: grid; gap: 16px; }
.order__head { display: flex; align-items: center; justify-content: space-between; }
.order__head h2 { font-size: var(--step-2); font-weight: 800; color: var(--rojo); }
.order__x { width: 40px; height: 40px; border-radius: 50%; border: 0; background: #F4ECE4; cursor: pointer; display: grid; place-items: center; }
.order__x svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; fill: none; }
.order__items { display: grid; gap: 2px; }
.oi { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.oi__name { font-weight: 700; line-height: 1.25; }
.oi__var { display: block; font-weight: 400; font-size: var(--step--1); color: var(--gris); }
.oi__qty { display: flex; align-items: center; gap: 4px; }
.oi__qty button { width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--linea); background: var(--blanco); cursor: pointer; font-weight: 800; }
.oi__qty span { min-width: 22px; text-align: center; font-weight: 700; }
.oi__sub { font-weight: 800; min-width: 62px; text-align: right; font-variant-numeric: tabular-nums; }
.order__sum { display: flex; justify-content: space-between; font-size: var(--step-1); }
.order__mode { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.order__mode legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.order__mode label { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1.5px solid var(--linea); border-radius: 999px; cursor: pointer; }
.order__mode label:has(input:checked) { border-color: var(--rojo); background: #FFF0EC; }
.order__mode input { accent-color: var(--rojo); }
.field { display: grid; gap: 6px; }
.field span { font-weight: 700; font-size: var(--step--1); }
.field input, .field textarea {
  width: 100%; padding: 12px 14px; border: 1.5px solid var(--linea); border-radius: var(--radius-s); background: var(--papel);
}
.field input:focus, .field textarea:focus { outline: 0; border-color: var(--naranja); }
.order__actions { display: grid; gap: 8px; justify-items: center; }
.linkbtn { border: 0; background: none; color: var(--gris); text-decoration: underline; cursor: pointer; padding: 8px; }

/* ============ Pulido visual ============ */
html, body { overflow-x: clip; }

/* Header: se compacta al bajar */
.top { transition: box-shadow .3s ease; }
.top__in { transition: padding .3s ease; }
.top.is-scrolled { box-shadow: 0 8px 24px rgba(90, 12, 4, .28); }
.top.is-scrolled .top__in { padding-block: 6px; }

/* Botones: se levantan un poco */
.btn { transition: transform .15s ease, translate .2s ease, background-color .15s ease, box-shadow .2s ease; }
.btn:hover { translate: 0 -2px; box-shadow: 0 8px 18px rgba(60, 15, 0, .22); }

/* Sonrisa de la marca bajo cada título de sección */
.h2::after {
  content: ""; display: block; width: 1.5em; height: .36em; margin-top: .14em;
  background: var(--naranja);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30'%3E%3Cpath d='M6 6 C 30 32, 70 32, 94 6' fill='none' stroke='black' stroke-width='10' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 30'%3E%3Cpath d='M6 6 C 30 32, 70 32, 94 6' fill='none' stroke='black' stroke-width='10' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.sauces .h2::after, .cafe .h2::after { background: var(--naranja); }
.share .h2::after { background: var(--rojo); }
.menu .h2::after, .story .h2::after, .visit .h2::after { background: var(--naranja); }

/* Cinta de platos */
.ribbon {
  position: relative; z-index: 2;
  width: 112%; margin: -30px -6% 0;
  background: var(--carbon); color: var(--sol);
  rotate: -1.6deg;
  box-shadow: 0 10px 30px rgba(60, 12, 0, .3);
  overflow: hidden;
}
.ribbon__track { display: flex; width: max-content; }
.ribbon__group { display: flex; align-items: center; gap: 22px; padding: 12px 11px; }
.ribbon__group span {
  font-size: clamp(1.3rem, 1rem + 1.4vw, 2.2rem); font-weight: 800;
  font-variation-settings: "wdth" 78; letter-spacing: -0.01em; white-space: nowrap;
}
.smile-ico { width: 34px; height: 14px; flex: none; }
.smile-ico path { fill: none; stroke: var(--naranja); stroke-width: 5; stroke-linecap: round; }
.facts { position: relative; z-index: 1; margin-top: -14px; padding-top: 14px; }

/* Insignia "De los más pedidos" */
.mcat__badge {
  grid-column: 1; justify-self: start;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px 4px 8px; border-radius: 999px;
  background: var(--sol); color: var(--carbon); font-weight: 700; font-size: var(--step--1);
}
.mcat__badge svg { width: 18px; height: 18px; fill: var(--carbon); }

/* Platos del menú: realce al pasar */
.item { padding: 14px 10px; margin-inline: -10px; border-radius: 8px; transition: background-color .2s ease; }
.item:hover { background: #FFF1E2; }
.add.is-added { animation: pop .35s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes pop { 0% { scale: .6; } 100% { scale: 1; } }
.fly {
  position: fixed; z-index: 60; width: 18px; height: 18px; border-radius: 50%; pointer-events: none;
  background: var(--naranja); box-shadow: 0 0 0 3px var(--blanco), 0 6px 14px rgba(0,0,0,.25);
}

/* Tarjeta de salsa */
.sauce-card { transition: border-color .35s ease; }
.sauce-card.swap .sauce-card__name, .sauce-card.swap .sauce-card__desc { animation: swap .45s cubic-bezier(.2, .8, .2, 1) both; }
.sauce-card.swap .sauce-card__desc { animation-delay: .05s; }
@keyframes swap { from { opacity: 0; translate: 0 8px; } }

/* Bandejas */
.tray img { transition: transform .5s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease; }
.tray:hover img { transform: rotate(0deg) scale(1.03); box-shadow: 0 26px 40px rgba(120, 40, 0, .34); }

/* Café: vapor */
.cafe__media { position: relative; overflow: hidden; }
.cafe__media .cafe__img { height: 100%; }
.steam { position: absolute; left: 8%; top: 8%; width: 42%; height: auto; pointer-events: none; filter: blur(4px); opacity: .75; }
.steam path { fill: none; stroke: #FFF6EA; stroke-width: 10; stroke-linecap: round; stroke-dasharray: 90 260; stroke-dashoffset: 350; }

@media (prefers-reduced-motion: no-preference) {
  /* Entrada de la portada */
  .js .hero__copy > * { animation: rise .8s cubic-bezier(.2, .8, .2, 1) both; }
  .js .hero__copy > :nth-child(2) { animation-delay: .08s; }
  .js .hero__copy > :nth-child(3) { animation: write 1.1s .55s cubic-bezier(.6, .05, .25, 1) both; }
  .js .hero__copy > :nth-child(4) { animation-delay: .32s; }
  .js .hero__copy > :nth-child(5) { animation-delay: .44s; }
  @keyframes rise { from { opacity: 0; translate: 0 26px; } }
  @keyframes write { from { clip-path: inset(-10% 100% -10% 0); } to { clip-path: inset(-10% 0 -10% 0); } }

  /* El plato gira despacito, como en una mesa giratoria */
  .hero__plate { animation: plate .9s cubic-bezier(.2, .8, .2, 1) both, spin 120s 1s linear infinite; }
  .wheel__plate { animation: spin 140s linear infinite; }
  @keyframes spin { to { rotate: 360deg; } }
  .status__dot { animation: blink 2.4s ease-in-out infinite; }
  @keyframes blink { 50% { opacity: .45; } }

  /* Logo: guiño al pasar */
  .brand:hover .logo { animation: wiggle .6s ease; }
  @keyframes wiggle { 25% { rotate: -6deg; } 60% { rotate: 4deg; } }

  /* Cinta en movimiento */
  .ribbon__track { animation: marquee 38s linear infinite; }
  .ribbon:hover .ribbon__track { animation-play-state: paused; }
  @keyframes marquee { to { transform: translateX(-50%); } }

  /* Títulos: suben y la sonrisa se dibuja */
  .js .h2 { opacity: 0; translate: 0 22px; transition: opacity .7s ease, translate .8s cubic-bezier(.2, .8, .2, 1); }
  .js .h2::after { clip-path: inset(0 100% 0 0); transition: clip-path .9s .25s cubic-bezier(.6, .05, .25, 1); }
  .js .h2.is-in { opacity: 1; translate: 0 0; }
  .js .h2.is-in::after { clip-path: inset(0 0 0 0); }

  /* Rueda: las salsas aparecen una a una */
  .js .wheel .sauce { scale: 0; }
  .js .wheel.is-in .sauce { animation: cup .6s cubic-bezier(.3, 1.6, .5, 1) both; animation-delay: calc(var(--i) * 70ms + .25s); }
  @keyframes cup { from { scale: 0; } to { scale: 1; } }
  .js .wheel .wheel__plate { opacity: 0; scale: .85; transition: opacity .7s ease, scale .9s cubic-bezier(.2, .8, .2, 1); }
  .js .wheel.is-in .wheel__plate { opacity: 1; scale: 1; }

  /* Bandejas: caen sobre la mesa con su inclinación */
  .js .trays .tray { opacity: 0; translate: 0 50px; transition: opacity .6s ease, translate .9s cubic-bezier(.2, .9, .3, 1.15); }
  .js .trays .tray img { transform: rotate(0deg); }
  .js .trays.is-in .tray { opacity: 1; translate: 0 0; }
  .js .trays.is-in .tray img { transform: rotate(var(--tilt, 0deg)); transition-delay: .25s; }
  .js .trays.is-in .tray:nth-child(2) { transition-delay: .12s; }
  .js .trays.is-in .tray:nth-child(3) { transition-delay: .24s; }
  .js .trays.is-in .tray:hover img { transform: rotate(0deg) scale(1.03); transition-delay: 0s; }

  /* Categorías del menú: la foto entra girando */
  .js .mcat .mcat__img { opacity: 0; scale: .6; rotate: -60deg; transition: opacity .6s ease, scale .8s cubic-bezier(.3, 1.4, .5, 1), rotate .9s cubic-bezier(.2, .8, .2, 1); }
  .js .mcat.is-in .mcat__img { opacity: 1; scale: 1; rotate: 0deg; }
  .js .mcat .mcat__title { opacity: 0; translate: -18px 0; transition: opacity .6s ease, translate .7s cubic-bezier(.2, .8, .2, 1); }
  .js .mcat.is-in .mcat__title { opacity: 1; translate: 0 0; }

  /* Café: zoom suave y vapor */
  .js .cafe__media .cafe__img { scale: 1.1; transition: scale 1.8s cubic-bezier(.2, .8, .2, 1); }
  .js .cafe__media.is-in .cafe__img { scale: 1; }
  .steam path { animation: steam 5s linear infinite; }
  .steam path:nth-child(2) { animation-delay: -1.7s; }
  .steam path:nth-child(3) { animation-delay: -3.4s; }
  @keyframes steam { 0% { stroke-dashoffset: 350; opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }

  /* Historia: 2024 se revela a color */
  .js .story__pics figure:last-child img { filter: grayscale(1) brightness(.9); transition: filter 1.8s ease .6s; }
  .js .story__pics.is-in figure:last-child img { filter: none; }
  .js .story__pics figcaption { opacity: 0; translate: 0 20px; transition: opacity .6s ease .3s, translate .7s cubic-bezier(.2, .8, .2, 1) .3s; }
  .js .story__pics.is-in figcaption { opacity: 1; translate: 0 0; }
  .js .story__pics.is-in figure:last-child figcaption { transition-delay: .9s; }

  /* Mapa: aparece el marco amarillo */
  .js .visit__map { box-shadow: 0 0 0 0 var(--sol); transition: box-shadow .8s cubic-bezier(.2, .8, .2, 1) .2s; }
  .js .visit__map.is-in { box-shadow: 0 0 0 6px var(--sol); }

  /* Barra de pedido */
  .orderbar:not([hidden]) .orderbar__btn { animation: barIn .5s cubic-bezier(.2, 1.4, .4, 1); }
  @keyframes barIn { from { translate: 0 120%; } }
}

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