@scope (#menu-gran-via-widget) {

:scope {
  --lavender: var(--menu-background, #9ea1d0);
  --cream: #fdd495;
  --ink: #3b3b3a;
  --white: #fffdf8;
  --menu-copy: var(--white);
  --display: "Roc Grotesk", "Arial Black", "Arial Bold", sans-serif;
  --body: "Roc Grotesk", "Century Gothic", "Aptos", Arial, sans-serif;
  --script: "Behind The Nineties", Georgia, "Times New Roman", serif;
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  isolation: isolate;
  container: bpm-menu / inline-size;
  background: var(--lavender);
  color: var(--ink);
  font-family: var(--body);
}

:scope.menu-text-secondary { --menu-copy: var(--ink); }

*, *::before, *::after { box-sizing: border-box; }
a, p, h1, h2, h3, h4, b, em, small, span, text, textPath { user-select: text; }
img { display: block; max-width: none; }
a[href], button, [role="link"] { cursor: pointer; touch-action: manipulation; }

.skip-link {
  position: fixed; z-index: 999; top: 10px; left: 10px; padding: 12px 18px;
  color: var(--ink); background: var(--cream); transform: translateY(-160%);
}
.skip-link:focus { transform: none; }

.menu-stage { position: relative; width: 1728px; height: 8632px; margin: 0 auto; overflow: visible; }
.menu-canvas {
  position: absolute; top: 0; left: 0; width: 1728px; height: 8632px;
  overflow: hidden; transform-origin: top left; background: var(--lavender);
}

.hero { position: absolute; inset: 0 0 auto; height: 1054px; background: var(--lavender); }
.menu-restaurant-title {
  position: relative;
  z-index: 12;
  width: 100%;
  margin: 0;
  padding: 5rem 2rem 0;
  color: var(--menu-copy);
  font-size: 4rem;
  font-weight: 900;
  line-height: 4rem;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0;
  /* Elementor asigna una familia propia a todos los h1. La anulamos solo
   * dentro de la carta para que el título use la tipografía base del menú. */
  font-family: inherit !important;
}

.hero-intro {
  position: relative; z-index: 12; width: 1002px; max-width: calc(100% - 4rem); margin: 1.5rem auto 0;
  color: var(--menu-copy); font-size: 32px; line-height: 1.13; text-align: center; letter-spacing: .15px;
  text-wrap: balance;
}

.hero-object {
  position: absolute;
  z-index: 10;
  display: block;
  color: transparent;
  text-decoration: none;
  cursor: pointer;
}
.hero-photo, .hero-sticker, .hero-sticker img { position: absolute; }
.hero-photo, .hero-sticker {
  translate: var(--hero-float-x, 0px) var(--hero-float-y, 0px);
  will-change: translate;
}
.hero-sticker {
  overflow: hidden;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--cream);
  box-shadow: 0 4px 0 rgba(59, 59, 58, .12);
}
.hero-sticker > img { opacity: 0; }
.hero-sticker b {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
  padding: 0;
  color: var(--ink);
  background: transparent;
  font: 900 36px/.9 var(--display);
  letter-spacing: -1.7px;
  white-space: nowrap;
}
.hero-object--antipasti { left: 81px; top: 398px; width: 505px; height: 430px; }
.hero-object--antipasti .hero-photo { left: 15px; top: -4px; width: 419px; height: 315px; object-fit: contain; transform: rotate(17.62deg); }
.hero-object--antipasti .hero-sticker { left: 195px; top: 254px; width: 309px; height: 101px; transform: rotate(-13.33deg); }
.hero-object--antipasti .hero-sticker img { left: 0; top: 0; width: 309px; height: 101px; object-fit: fill; }
.hero-object--antipasti .hero-sticker b { top: 50%; }

.hero-object--pasta { left: 721px; top: 352px; width: 515px; height: 483px; }
.hero-object--pasta .hero-photo { left: 0; top: 0; width: 434px; height: 434px; object-fit: contain; transform: rotate(-6.74deg); }
.hero-object--pasta .hero-sticker { left: 173px; top: 290px; width: 309px; height: 132px; transform: rotate(2deg); }
.hero-object--pasta .hero-sticker img { left: 0; top: 0; width: 309px; height: 132px; object-fit: fill; }
.hero-object--pasta .hero-sticker b { top: 50%; }

.hero-object--dolci { left: 444px; top: 647px; width: 520px; height: 418px; }
.hero-object--dolci .hero-photo { left: 0; top: 0; width: 456px; height: 363px; object-fit: contain; transform: rotate(8.41deg); }
.hero-object--dolci .hero-sticker { left: 203px; top: 248px; width: 316px; height: 104px; transform: rotate(-5.8deg); }
.hero-object--dolci .hero-sticker img { left: 0; top: 0; width: 316px; height: 104px; object-fit: fill; }
.hero-object--dolci .hero-sticker b { top: 50%; }

.hero-object--drinks { left: 1092px; top: 594px; width: 414px; height: 426px; }
.hero-object--drinks .hero-photo { left: 0; top: 0; width: 377px; height: 344px; object-fit: contain; transform: rotate(5.98deg); }
.hero-object--drinks .hero-sticker { left: 128px; top: 287px; width: 248px; height: 107px; transform: rotate(-6.36deg); }
.hero-object--drinks .hero-sticker img { inset: 0; width: 248px; height: 107px; object-fit: contain; }
.hero-object--drinks .hero-sticker b { top: 50%; }

.hero-object--pizza { left: 1320px; top: 376px; width: 280px; height: 150px; }
.hero-pizza-disc {
  position: absolute; inset: 18px 0 auto; display: grid; place-items: center; width: 260px; height: 112px;
  border: 2px solid var(--ink); border-radius: 50%; background: var(--cream); color: var(--ink);
  font: 900 40px/1 var(--display); letter-spacing: -1.8px; transform: rotate(7deg);
  box-shadow: 0 4px 0 rgba(59, 59, 58, .12);
  translate: var(--hero-float-x, 0px) var(--hero-float-y, 0px);
  will-change: translate, transform;
}

.menu-section, .drinks-section { position: absolute; inset: 0; pointer-events: none; }
.menu-section > .section-bar,
.menu-section > .dish-card,
.menu-section > .featured-dish,
.drinks-section > .section-bar,
.drinks-section > .drink-group { pointer-events: auto; }
.section-bar {
  position: absolute; left: -151px; width: 2038px; height: 120px; z-index: 5;
  overflow: visible; border: 1.4px solid var(--ink); border-radius: 20px; background: var(--cream);
}
.section-bar > h2 { position: absolute; z-index: 3; margin: 0; color: transparent; font: 900 88px/1 var(--display); }
.section-bar > img { position: absolute; z-index: 2; }
.section-bar--antipasti { top: 1054px; }
.section-bar--antipasti > img { left: 537px; top: -246px; width: 175px; height: 626px; transform: rotate(90deg); }
.section-bar--antipasti > h2 { left: 310px; top: 10px; width: 628px; }
.section-bar--pasta { top: 2760px; }
.section-bar--pasta > img { left: 306px; top: -16px; width: 353px; height: 178px; }
.section-bar--pasta > h2 { left: 306px; top: 8px; width: 353px; }
.section-bar--pasta > p { position: absolute; left: 708px; top: 24px; margin: 0; font-size: 24px; line-height: 1.12; letter-spacing: -.25px; }
.section-bar--dolci { top: 4890px; }
.section-bar--dolci > img { left: 304px; top: -18px; width: 360px; height: 175px; }
.section-bar--dolci > h2 { left: 304px; top: 8px; width: 360px; }
.section-bar--pizza { top: 4890px; }
.section-bar--pizza > h2 {
  left: 304px; top: 6px; width: 380px; color: var(--ink); font-size: 92px; line-height: 1;
  letter-spacing: -4px; transform: rotate(-2deg);
}
.has-pizza .section-bar--dolci { top: 6100px; }
.section-bar--drinks { top: 6100px; }
.has-pizza .section-bar--drinks { top: 7310px; }
.section-bar--drinks > img { left: 308px; top: -78px; width: 418px; height: 240px; transform: rotate(6deg); }
.section-bar--drinks > h2 { left: 308px; top: 8px; width: 418px; transform: rotate(6deg); }

.dish-card {
  position: absolute; z-index: 2; left: var(--x); top: var(--y); width: 353px; height: var(--card-height, 400px);
  min-height: 400px;
  overflow: visible; border: 1.5px solid var(--ink); border-radius: 63px; background: var(--cream);
}
.dish-card > h3 {
  position: absolute; width: 100%; margin: 0; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.dish-title { position: absolute; z-index: 4; left: 0; top: 0; width: 100%; height: 160px; overflow: visible; pointer-events: none; }
.dish-title path { fill: none; stroke: none; }
.dish-title text { fill: var(--ink); font-family: var(--display); font-size: 25px; font-weight: 900; text-anchor: middle; letter-spacing: .2px; }
.dish-title.title-long text { font-size: 23px; }
.dish-title.title-flat text { font-size: 26px; }
.dish-photo { position: absolute; z-index: 2; object-fit: contain; }
.dish-card > p {
  position: absolute; z-index: 3; left: 12px; top: var(--description-top, 262px); width: calc(100% - 24px); margin: 0; padding-top: 10px;
  color: #1d1d1b; font-size: 19px; line-height: 1.12; text-align: center; letter-spacing: .08px;
}
.dish-allergens {
  position: absolute; z-index: 4; left: 18px; width: calc(100% - 36px);
  display: flex; flex-wrap: wrap; justify-content: center; gap: 4px;
}
.dish-allergens span {
  padding: 3px 7px; border: 1px solid color-mix(in srgb, var(--allergen) 75%, var(--ink)); border-radius: 999px;
  background: color-mix(in srgb, var(--allergen) 28%, var(--cream)); color: var(--ink); font-size: 11px; line-height: 1;
}
.price-badge { position: absolute; z-index: 7; right: -12px; bottom: -30px; width: 132px; height: 165px; }
.price-badge > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; }
.price-badge > b {
  position: absolute; inset: 0; display: grid; place-items: center; padding: 0 5px; text-align: center;
  color: var(--ink); font: 900 29px/1 var(--display); letter-spacing: -1.1px; transform: translateY(-6px) rotate(-12.13deg);
}

.photo-mortadella { left: 29px; top: 25px; width: 296px; height: 237px; }
.photo-stracciatella { left: 16px; top: 25px; width: 328px; height: 246px; }
.photo-croquetas { left: -1px; top: 13px; width: 356px; height: 267px; }
.photo-burrata { left: 25px; top: 31px; width: 304px; height: 228px; }
.photo-nduja { left: 20px; top: 29px; width: 314px; height: 236px; }
.photo-salmon { left: 21px; top: 23px; width: 311px; height: 233px; }
.photo-cesar { left: 24px; top: 34px; width: 305px; height: 202px; }
.dish-card--cesar > p { top: var(--description-top, 262px); }

.photo-pacchero { left: 8px; top: 23px; width: 337px; height: 225px; }
.photo-plin { left: 26px; top: 33px; width: 302px; height: 226px; }
.photo-candy { left: 4px; top: 28px; width: 345px; height: 238px; }
.photo-pulp { left: 30px; top: 33px; width: 294px; height: 221px; }
.photo-pistacho { left: 30px; top: 34px; width: 294px; height: 221px; }
.photo-carbonara { left: 31px; top: 35px; width: 291px; height: 219px; }
.photo-mama { left: 31px; top: 34px; width: 291px; height: 218px; }
.photo-bolognese { left: 30px; top: 34px; width: 294px; height: 221px; }
.photo-trufada { left: 27px; top: 34px; width: 299px; height: 224px; }
.chef-sticker { position: absolute; z-index: 6; right: 21px; top: 47px; width: 73px; height: 44px; transform: rotate(7deg); }
.chef-sticker img { position: absolute; inset: 0; width: 73px; height: 44px; object-fit: contain; }
.chef-sticker b { position: absolute; inset: 0; overflow: hidden; color: transparent; font: 900 10px/1 var(--display); text-align: center; }

.featured-dish {
  position: absolute; z-index: 2; left: var(--x); top: var(--y); width: 1223px; height: 253px;
  overflow: visible; border: 1.5px solid var(--ink); border-radius: 63px; background: var(--cream);
}
.featured-dish > h3 { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.featured-title { position: absolute; z-index: 5; left: 100px; top: -2px; width: 520px; height: 100px; overflow: visible; }
.featured-title path { fill: none; stroke: none; }
.featured-title text { fill: var(--ink); font-family: var(--display); font-size: 31px; font-weight: 900; text-anchor: middle; letter-spacing: .2px; }
.featured-photo { position: absolute; z-index: 3; left: 90px; top: -78px; width: 505px; height: 505px; object-fit: contain; transform: rotate(-4deg); transform-origin: center; }
.featured-dish p { position: absolute; left: 579px; top: 67px; margin: 0; font-size: 22px; line-height: 1.12; letter-spacing: .08px; }
.price-badge--feature { right: 8px; bottom: -40px; width: 150px; height: 188px; }
.price-badge--feature > img { width: 100%; height: 100%; }
.price-badge--feature > b { inset: 0; padding: 0 5px; font-size: 31px; }

.photo-gelato { left: 35px; top: 36px; width: 277px; height: 224px; }
.photo-cannolo { left: 20px; top: 31px; width: 313px; height: 235px; }
.photo-amalfi { left: 20px; top: 29px; width: 314px; height: 236px; }
.photo-queso { left: 9px; top: 32px; width: 336px; height: 252px; }
.photo-tiramisu { left: 9px; top: 31px; width: 336px; height: 252px; }

/* Slot visual estable: cualquier imagen dinámica ocupa exactamente la misma caja. */
.dish-card .dish-photo {
  left: 12px;
  top: 52px;
  width: 329px;
  height: 210px;
  object-fit: contain;
  object-position: center;
  transform-origin: 50% 52%;
}

.dish-photo-placeholder,
.featured-photo-placeholder {
  position: absolute; z-index: 2; display: grid; place-items: center;
  border: 2px dashed color-mix(in srgb, var(--ink) 35%, transparent); background: rgba(255, 253, 248, .4);
  color: color-mix(in srgb, var(--ink) 58%, transparent); font: 900 16px/1.05 var(--display);
  text-align: center; letter-spacing: .6px;
}
.dish-photo-placeholder { left: 50%; top: 52px; width: 210px; height: 210px; border-radius: 50%; translate: -50% 0; }
.dish-photo-placeholder i,
.featured-photo-placeholder i { font-style: normal; }
.featured-photo-placeholder { left: 150px; top: 42px; width: 330px; height: 210px; border-radius: 50%; }

.floating {
  position: absolute;
  z-index: 1 !important;
  pointer-events: none !important;
  translate: var(--float-x, 0px) var(--float-y, 0px);
  will-change: translate;
}
.floating--antipasti-wave {
  z-index: 1; left: 835px; top: 1880px; width: 700px; height: 875px;
  object-fit: contain; image-rendering: auto;
  transform: translate(var(--partial-row-x, 0px), var(--partial-row-y, 0px)) rotate(93.82deg) scale(var(--partial-row-scale, 1));
}
.floating--pasta-hand { z-index: 4; left: -67px; top: 3040px; width: 418px; height: 522px; object-fit: contain; }
.floating--pasta-fork { z-index: 4; left: 1300px; top: 3466px; width: 407px; height: 509px; object-fit: contain; transform: rotate(-139.59deg); }
.floating--pasta-loop { z-index: 3; left: -22px; top: 3915px; width: 320px; height: 400px; object-fit: contain; }
.floating--say-cheese { z-index: 6 !important; left: 1236px; top: 4296px; width: 245px; height: 115px; overflow: hidden; }
.floating--say-cheese img { position: absolute; left: -42px; top: -140px; width: 323px; height: 403px; object-fit: contain; }
.floating--say-cheese b { position: absolute; inset: 20px 0 auto; color: transparent; font: 900 38px/1 var(--display); transform: rotate(-8deg); }
.floating--dolci-cupid { z-index: 6 !important; left: 55px; top: 5403px; width: 380px; height: 475px; object-fit: contain; transform: rotate(9.09deg); }
.floating--dolci-ring { z-index: 3; left: 1325px; top: 5460px; width: 240px; height: 300px; object-fit: contain; image-rendering: auto; transform: rotate(22.61deg); }
.floating--drink-hand { z-index: 1; right: -6px; left: auto; top: 27%; width: 220px; height: 275px; object-fit: contain; }
.floating--drink-cherub { z-index: 1 !important; right: auto; bottom: auto; left: 50%; top: 52%; width: 300px; height: 375px; margin-left: -150px; object-fit: contain; }

.drinks-section {
  position: absolute;
  z-index: 7;
  inset: auto 0 auto 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 24px 54px;
  min-height: 0;
  padding: 190px 150px 82px;
  overflow: hidden;
  background: var(--lavender);
}
.drinks-section > .section-bar { top: 0; }
.drinks-section .floating { z-index: 0 !important; opacity: 1; }

.drink-group {
  position: relative; z-index: 3; left: auto; top: auto; width: auto; min-width: 0;
  color: var(--menu-copy);
}
.drink-group h3 { margin: 0; font: 900 30px/1.05 var(--display); letter-spacing: .35px; white-space: normal; }
.drink-toggle {
  display: flex; align-items: center; gap: 13px; width: 100%; min-height: 62px; margin: 0;
  padding: 8px 9px 8px 19px; border: 2px solid currentColor !important; border-radius: 999px;
  color: inherit !important; background: color-mix(in srgb, var(--menu-copy) 7%, transparent) !important;
  box-shadow: 0 5px 0 color-mix(in srgb, var(--ink) 23%, transparent);
  font: inherit; letter-spacing: inherit; text-align: left; cursor: pointer;
  appearance: none;
}
.drink-toggle > span { min-width: 0; margin: 0 !important; font: inherit !important; letter-spacing: inherit; }
.drink-toggle > i {
  display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; margin-left: auto;
  border: 2px solid currentColor; border-radius: 50%; background: var(--cream);
  color: var(--ink); font-size: 0; line-height: 0; font-style: normal;
  transition: transform 300ms cubic-bezier(.2,.75,.25,1), background-color 220ms ease, color 220ms ease;
}
.drink-toggle > i::before {
  content: ""; width: 11px; height: 11px; margin: 0;
  border-right: 3px solid currentColor; border-bottom: 3px solid currentColor;
  translate: 0 3px;
  transform: rotate(45deg);
}
.drink-toggle:hover,
.drink-toggle:focus-visible,
.drink-group.is-open .drink-toggle {
  border-color: var(--ink) !important;
  background: var(--cream) !important;
  color: var(--ink) !important;
  box-shadow: 0 7px 0 rgba(59,59,58,.26);
  transform: translateY(-2px);
}
.drink-group.is-open .drink-toggle > i { transform: rotate(180deg); background: var(--ink); color: var(--cream); }
.drink-panel[hidden] { display: none; }
.drink-panel { margin-top: 20px; animation: bpm-drink-panel 340ms cubic-bezier(.2,.75,.25,1) both; transform-origin: top; }
@keyframes bpm-drink-panel { from { opacity: 0; transform: translateY(-12px) scaleY(.96); } to { opacity: 1; transform: none; } }
.drink-group h4 { font-family: var(--script); font-style: italic; font-weight: 400; }
.drink-item { margin: 0 0 15px; }
.drink-item p, .drink-group .row { margin: 0; color: var(--menu-copy); }
.drink-item p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 13px; line-height: 1.12; white-space: normal; overflow-wrap: anywhere; }
.drink-item b, .drink-group .row b { font: 900 25px/1.12 var(--display); letter-spacing: .3px; }
.drink-item em, .drink-group .row em { margin-left: 13px; font-size: 22px; font-style: normal; font-weight: 400; }
.drink-item p > em { margin-left: 0; }
.drink-item small { display: block; max-width: 100%; margin-top: 5px; font-size: 19px; line-height: 1.2; letter-spacing: .12px; overflow-wrap: anywhere; }
.drink-group h4 { margin: 26px 0 16px; font-size: 31px; line-height: 1; }
.drink-group .row { position: relative; margin-bottom: 14px; line-height: 1.14; white-space: normal; }
.drink-group .row span { margin-left: 48px; font-size: 25px; }
.water-note { margin: 0 0 22px; font-size: 20px; line-height: 1.16; letter-spacing: .12px; }

.cocktails { grid-column: 1; grid-row: 1; }
.wines { grid-column: 2 / 4; grid-row: 1; }
.beer { grid-column: 1; grid-row: 2; }
.soft { grid-column: 2; grid-row: 2; }
.water { grid-column: 3; grid-row: 2; }
.digestivos { grid-column: 1; grid-row: 3; }
.coffee { grid-column: 2; grid-row: 3; }
.infusions { grid-column: 3; grid-row: 3; }

.dish-card,
.featured-dish,
.dish-photo,
.price-badge,
.hero-photo,
.hero-sticker,
.hero-pizza-disc,
.drink-group,
.section-bar {
  transition-duration: 320ms;
  transition-property: transform, scale, translate, filter, box-shadow, opacity, letter-spacing, color;
  transition-timing-function: cubic-bezier(.2, .75, .25, 1);
}

:scope.motion-ready .reveal-item:not(.is-visible) .dish-photo,
:scope.motion-ready .reveal-item:not(.is-visible) .featured-photo,
:scope.motion-ready .reveal-item:not(.is-visible) .dish-photo-placeholder,
:scope.motion-ready .reveal-item:not(.is-visible) .featured-photo-placeholder { opacity: 0; scale: .8; }
:scope.motion-ready .reveal-item:not(.is-visible) .dish-title,
:scope.motion-ready .reveal-item:not(.is-visible) .featured-title { opacity: 0; translate: -50px 0; }
:scope.motion-ready .reveal-item:not(.is-visible) > .price-badge { opacity: 0; translate: -50% 0; }
:scope.motion-ready .reveal-item:not(.is-visible) > p,
:scope.motion-ready .reveal-item:not(.is-visible) > .dish-allergens { opacity: 0; translate: 0 30px; }
:scope.motion-ready .reveal-item:not(.is-visible).drink-group { opacity: 0; translate: 0 30px; }
:scope.motion-ready .reveal-item .dish-photo,
:scope.motion-ready .reveal-item .featured-photo,
:scope.motion-ready .reveal-item .dish-photo-placeholder,
:scope.motion-ready .reveal-item .featured-photo-placeholder {
  transition-delay: var(--reveal-delay, 0ms); transition-duration: 420ms;
  transition-timing-function: cubic-bezier(.18, 1.32, .34, 1);
}
:scope.motion-ready .reveal-item .dish-title,
:scope.motion-ready .reveal-item .featured-title,
:scope.motion-ready .reveal-item > .price-badge {
  transition-delay: calc(var(--reveal-delay, 0ms) + 90ms); transition-duration: 330ms;
}
:scope.motion-ready .reveal-item > p,
:scope.motion-ready .reveal-item > .dish-allergens {
  transition-delay: calc(var(--reveal-delay, 0ms) + 180ms); transition-duration: 300ms;
}
:scope.motion-ready .section-bar { opacity: 0; transform: translateY(38px); }
:scope.motion-ready .section-bar.is-visible { opacity: 1; transform: none; }

@media (hover: hover) {
  .dish-card:hover,
  .featured-dish:hover {
    z-index: 5;
    transform: translateY(-8px) rotate(.18deg);
    box-shadow: 0 16px 0 rgba(59, 59, 58, .14);
  }
  .dish-card:hover .dish-photo,
  .dish-card:hover .dish-photo-placeholder,
  .featured-dish:hover .featured-photo,
  .featured-dish:hover .featured-photo-placeholder { scale: 1.035; }
  .dish-card:hover .price-badge,
  .featured-dish:hover .price-badge { scale: 1.08; transform: rotate(3deg); filter: drop-shadow(0 8px 7px rgba(59,59,58,.18)); }
  .dish-card:hover .dish-title text { letter-spacing: .45px; }
  .hero-object:hover .hero-photo { scale: 1.04; filter: drop-shadow(0 17px 12px rgba(59,59,58,.2)); }
  .hero-object:hover .hero-sticker {
    translate: var(--hero-float-x, 0px) calc(var(--hero-float-y, 0px) - 7px);
    scale: 1.035;
  }
  .hero-object:hover .hero-sticker,
  .hero-object:hover .hero-pizza-disc,
  .hero-object:focus-visible .hero-sticker,
  .hero-object:focus-visible .hero-pizza-disc {
    animation: bpm-section-wobble 1s linear infinite;
    filter: drop-shadow(.1rem .1rem 1.2rem rgba(253, 212, 149, .9));
  }
  .hero-object:hover .hero-sticker b,
  .hero-object:hover .hero-pizza-disc { color: var(--white); }
  .drink-group:hover { transform: translateX(5px); }
}

@keyframes bpm-section-wobble {
  0%, 50%, 100% { rotate: -5deg; }
  25%, 75% { rotate: 5deg; }
}

a:focus-visible,
.dish-card:focus-within,
.featured-dish:focus-within {
  outline: 4px solid var(--white);
  outline-offset: 7px;
}

/*
 * Responsive real: por debajo de 1200 px el lienzo deja de ser una miniatura
 * escalada. Las secciones pasan a flujo y las tarjetas conservan su geometría.
 */
@container bpm-menu (max-width: 1199px) {
  :scope { background: var(--lavender); }
  .menu-stage {
    width: 100% !important;
    height: auto !important;
    margin: 0;
    overflow: hidden;
  }
  .menu-canvas {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 100vh;
    transform: none !important;
    overflow: hidden;
  }

  .hero {
    position: relative;
    inset: auto;
    width: 100%;
    height: 850px;
  }
  .menu-restaurant-title { max-width: 100%; }
  .hero-intro {
    width: min(86cqw, 850px);
    font-size: clamp(22px, 3cqw, 28px);
  }
  .hero-object { transform: scale(.65); transform-origin: 0 0; }
  .hero-object--antipasti { left: max(18px, calc(50% - 460px)); top: 315px; }
  .hero-object--pasta { left: calc(50% + 40px); top: 281px; }
  .hero-object--dolci { left: max(86px, calc(50% - 370px)); top: 555px; }
  .hero-object--drinks { left: calc(50% + 110px); top: 525px; }
  .hero-object--pizza { left: calc(50% + 220px); top: 690px; transform: scale(.7); }
  .has-pizza .hero { height: 980px; }

  .menu-section,
  .drinks-section {
    position: relative;
    inset: auto;
    width: 100%;
    scroll-margin-top: 14px;
  }
  #antipasti,
  #pasta,
  #pizza,
  #dolci {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 353px));
    justify-content: center;
    align-items: start;
    gap: 100px 18px;
    padding: 0 12px 110px;
  }
  .section-bar,
  .section-bar.section-bar--antipasti,
  .section-bar.section-bar--pasta,
  .section-bar.section-bar--pizza,
  .section-bar.section-bar--dolci,
  .section-bar.section-bar--drinks {
    position: relative;
    left: auto;
    top: auto;
    grid-column: 1 / -1;
    width: 100%;
    height: 140px;
    margin: 0 0 28px;
    border-radius: 16px;
  }
  .section-bar--antipasti > img {
    left: calc(50% - 75px);
    top: -192px;
    width: 150px;
    height: 540px;
  }
  .section-bar--antipasti > h2,
  .section-bar--pasta > h2,
  .section-bar--pizza > h2,
  .section-bar--dolci > h2,
  .section-bar--drinks > h2 { left: 0; top: 0; width: 100%; }
  #antipasti > .section-bar,
  #pasta > .section-bar,
  #pizza > .section-bar,
  #dolci > .section-bar { margin-bottom: -50px; }
  .section-bar--pasta,
  .section-bar--pasta.section-bar { height: 164px; }
  .section-bar--pasta > img {
    left: 50%;
    top: -9px;
    width: 300px;
    height: 151px;
    translate: -50% 0;
  }
  .section-bar--pasta > p {
    left: 0;
    top: 112px;
    width: 100%;
    font-size: 19px;
    text-align: center;
  }
  .section-bar--pasta > p br { display: none; }
  .section-bar--dolci > img {
    left: 50%;
    top: -7px;
    width: 300px;
    height: 146px;
    translate: -50% 0;
  }
  .section-bar--pizza > h2 { top: 20px; color: var(--ink); font-size: 76px; text-align: center; transform: rotate(-2deg); }
  .section-bar--drinks > img {
    left: 50%;
    top: -47px;
    width: 350px;
    height: 201px;
    translate: -50% 0;
  }

  .dish-card {
    position: relative;
    left: auto;
    top: auto;
    justify-self: center;
    width: 353px;
    height: var(--card-height, 400px);
  }
  .featured-dish {
    position: relative;
    left: auto;
    top: auto;
    grid-column: 1 / -1;
    justify-self: center;
    width: min(724px, 100%);
    height: 330px;
  }
  .featured-photo-placeholder { left: 34px; top: 68px; width: min(320px, 45%); height: 240px; }
  .featured-title { left: 0; top: 7px; width: 52%; }
  .featured-dish p {
    left: 51%;
    top: 104px;
    width: 43%;
    font-size: 20px;
  }
  .price-badge--feature { right: -4px; bottom: -12px; }

  .floating--antipasti-wave {
    left: 49%;
    top: 35%;
    width: min(500px, 64cqw);
    height: auto;
    opacity: .72;
  }
  .floating--pasta-hand { left: -115px; top: 330px; width: 285px; height: auto; }
  .floating--pasta-fork { right: -115px; left: auto; top: 1260px; width: 285px; height: auto; }
  .floating--pasta-loop { left: -95px; top: 2040px; width: 245px; height: auto; }
  .floating--say-cheese { right: 8px; left: auto; top: 1770px; width: 178px; height: 84px; }
  .floating--say-cheese img { left: -31px; top: -102px; width: 235px; height: 294px; }
  .floating--say-cheese b { inset: 14px 0 auto; }
  .floating--dolci-cupid { left: -75px; top: 510px; width: 265px; height: auto; }
  .floating--dolci-ring { right: -45px; left: auto; top: 790px; width: 170px; height: auto; }

  #drinks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 540px));
    justify-content: center;
    gap: 20px 24px;
    padding: 0 42px 64px;
  }
  #drinks .section-bar { grid-row: auto; margin-bottom: 12px; }
  .cocktails, .wines, .beer, .soft, .water, .digestivos, .coffee, .infusions { grid-column: auto; grid-row: auto; }
  .drink-group {
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    min-width: 0;
  }
  .drink-group h3,
  .drink-item p,
  .drink-group .row { white-space: normal; }
  .drink-item small { max-width: 100%; }
  .floating--drink-hand { right: -48px; left: auto; top: 28%; width: 155px; height: auto; }
  .floating--drink-cherub { right: auto; left: 50%; top: 56%; bottom: auto; width: 225px; height: auto; margin-left: -112px; }

}

@container bpm-menu (max-width: 759px) {
  .hero { height: 805px; }
  .menu-restaurant-title {
    padding-top: 5rem;
    font-size: clamp(2.35rem, 11cqw, 3.2rem);
    line-height: 1;
  }
  .hero-intro {
    width: calc(100% - 36px);
    margin-top: 1rem;
    font-size: clamp(18px, 5.25cqw, 20px);
    line-height: 1.16;
  }
  .hero-object { transform: none; }
  .hero-object--antipasti,
  .hero-object--pasta,
  .hero-object--pizza,
  .hero-object--dolci,
  .hero-object--drinks {
    width: calc(50% - 10px);
    height: 230px;
  }
  .hero-object--antipasti { left: 6px; top: 310px; }
  .hero-object--pasta { left: calc(50% - 2px); top: 303px; }
  .hero-object--dolci { left: 6px; top: 542px; }
  .hero-object--drinks { left: calc(50% - 2px); top: 533px; }
  .hero-object--pizza { left: 25%; top: 760px; width: 50%; height: 150px; }
  .hero-pizza-disc { left: 50%; top: 64px; width: min(220px, 58cqw); height: 94px; font-size: 32px; translate: calc(-50% + var(--hero-float-x, 0px)) var(--hero-float-y, 0px); }
  .has-pizza .hero { height: 930px; }

  .hero-object--antipasti .hero-photo { left: -3px; top: 0; width: min(184px, 50cqw); height: min(146px, 40cqw); }
  .hero-object--antipasti .hero-sticker { left: 8px; top: 132px; width: min(164px, 45cqw); height: 58px; }
  .hero-object--pasta .hero-photo { left: -2px; top: 0; width: min(186px, 50cqw); height: min(186px, 50cqw); }
  .hero-object--pasta .hero-sticker { left: 8px; top: 137px; width: min(164px, 45cqw); height: 68px; }
  .hero-object--dolci .hero-photo { left: -2px; top: 0; width: min(190px, 50cqw); height: min(151px, 40cqw); }
  .hero-object--dolci .hero-sticker { left: 8px; top: 130px; width: min(168px, 45cqw); height: 59px; }
  .hero-object--drinks .hero-photo { left: 3px; top: 0; width: min(160px, 45cqw); height: min(165px, 46cqw); }
  .hero-object--drinks .hero-sticker { left: 8px; top: 136px; width: min(165px, 45cqw); height: 62px; }
  .hero-object .hero-sticker img { width: 100%; height: 100%; }
  .hero-sticker b { font-size: clamp(20px, 6.3cqw, 23px); letter-spacing: .1px; }

  #antipasti,
  #pasta,
  #pizza,
  #dolci {
    grid-template-columns: minmax(0, 353px);
    gap: 110px;
    padding: 0 12px 96px;
  }
  .section-bar,
  .section-bar.section-bar--antipasti,
  .section-bar.section-bar--pasta,
  .section-bar.section-bar--pizza,
  .section-bar.section-bar--dolci,
  .section-bar.section-bar--drinks {
    height: 112px;
    margin-bottom: 22px;
    border-radius: 12px;
  }
  .section-bar--antipasti > img {
    left: calc(50% - 43px);
    top: -111px;
    width: 86px;
    height: 310px;
  }
  .section-bar--pasta,
  .section-bar--pasta.section-bar { height: 154px; }
  .section-bar--pasta > img { top: 6px; width: 212px; height: 106px; }
  .section-bar--pasta > p { top: 104px; padding: 0 14px; font-size: 16px; }
  .section-bar--pizza > h2 { top: 17px; font-size: 64px; }
  .section-bar--dolci > img { top: 5px; width: 216px; height: 105px; }
  .section-bar--drinks > img { top: -20px; width: 246px; height: 141px; }
  #antipasti > .section-bar,
  #pasta > .section-bar,
  #pizza > .section-bar,
  #dolci > .section-bar { margin-bottom: -60px; }

  .dish-card { width: min(353px, calc(100cqw - 24px)); }
  .featured-dish {
    width: min(353px, calc(100cqw - 24px));
    height: 520px;
  }
  .featured-photo-placeholder { left: 20px; top: 92px; width: calc(100% - 40px); height: 228px; }
  .featured-title { left: 0; top: 12px; width: 100%; height: 92px; }
  .featured-dish p {
    left: 20px;
    top: 344px;
    width: calc(100% - 40px);
    font-size: 19px;
    line-height: 1.08;
    text-align: center;
  }
  .price-badge--feature { right: -5px; bottom: -9px; }

  .floating--antipasti-wave { left: 27%; top: 41%; width: 90cqw; opacity: .72; }
  .floating--pasta-hand { left: -104px; top: 430px; width: 232px; }
  .floating--pasta-fork { right: -112px; top: 1770px; width: 250px; }
  .floating--pasta-loop { left: -96px; top: 3010px; width: 216px; }
  .floating--say-cheese { right: 8px; top: 3590px; width: 164px; height: 77px; }
  .floating--say-cheese img { left: -28px; top: -94px; width: 216px; height: 270px; }
  .floating--say-cheese b { inset: 13px 0 auto; }
  .floating--dolci-cupid { left: -76px; top: 790px; width: 224px; }
  .floating--dolci-ring { right: -53px; top: 1310px; width: 155px; }

  #drinks {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 0 18px 48px;
  }
  #drinks .section-bar { width: calc(100% + 36px); margin-left: -18px; }
  .drink-group h3 { font-size: 24px; letter-spacing: .35px; }
  .drink-toggle { min-height: 58px; padding-left: 16px; }
  .drink-toggle > i { flex-basis: 38px; width: 38px; height: 38px; font-size: 21px; }
  .drink-item b,
  .drink-group .row b { font-size: 25px; }
  .drink-item em,
  .drink-group .row em { font-size: 20px; }
  .drink-item small,
  .water-note { font-size: 18px; }
  .floating--drink-hand { right: -60px; top: 24%; width: 151px; }
  .floating--drink-cherub { right: auto; left: 50%; top: 61%; bottom: auto; width: 205px; margin-left: -102px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  :scope.motion-ready .reveal-item { opacity: 1; translate: 0 0; }
}

}

html.bpm-menu-page,
body.bpm-menu-page {
  background-color: var(--bpm-menu-page-background, #9ea1d0) !important;
}
