.restaurants-page { background: var(--ink-deep); }
.restaurants-page main { overflow: hidden; }

.dining-hero { min-height: min(910px, calc(100svh - 106px)); position: relative; isolation: isolate; display: flex; flex-direction: column; color: var(--white); background: var(--ink-deep); }
.dining-hero__image, .dining-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.dining-hero__image { z-index: -3; object-fit: cover; object-position: center 58%; }
.dining-hero__shade { z-index: -2; background: linear-gradient(90deg, rgba(4,45,47,.94) 0%, rgba(4,45,47,.68) 37%, rgba(4,45,47,.12) 70%), linear-gradient(0deg, rgba(4,45,47,.88) 0%, transparent 58%); }
.dining-hero::after { content: ""; position: absolute; z-index: -1; inset: auto 0 0; height: 12px; background: linear-gradient(90deg,var(--coral) 0 28%,var(--sun) 28% 51%,var(--aqua) 51% 76%,var(--pink) 76%); }
.dining-hero .detail-trail { width: var(--shell); padding-block: 1.2rem 0; color: rgba(255,255,255,.76); }
.dining-hero__content { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 4rem; padding-bottom: clamp(4rem, 8vw, 7rem); }
.dining-hero__kicker { width: fit-content; margin: 0 0 1.2rem; padding: .45rem .75rem; background: var(--sun); color: var(--ink); font-weight: 900; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; transform: rotate(-1.5deg); }
.dining-hero h1 { margin: 0; max-width: 850px; font-family: var(--display); font-size: clamp(4.8rem, 11vw, 9.3rem); line-height: .77; letter-spacing: -.08em; text-transform: uppercase; text-shadow: 0 5px 35px rgba(4,45,47,.28); }
.dining-hero h1 span, .dining-hero h1 em { display: block; }
.dining-hero h1 em { margin-left: .32em; margin-top: .18em; color: var(--sun); font-family: var(--serif); font-size: .77em; font-weight: 400; letter-spacing: -.04em; text-transform: none; }
.dining-hero__bottom { max-width: 920px; margin-top: 2.7rem; display: flex; align-items: end; gap: 2rem 4rem; }
.dining-hero__bottom p { max-width: 560px; margin: 0; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.65; color: #e7f5f0; }
.dining-hero__cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-width: 250px; padding: .85rem 0; border-bottom: 3px solid var(--sun); font-weight: 900; }
.dining-hero__cta b { font-size: 1.7rem; transition: transform .25s ease; }
.dining-hero__cta:hover b { transform: translateY(6px); }
.dining-hero__stamp { position: absolute; right: clamp(1rem, 5vw, 5rem); top: 11%; width: clamp(122px, 12vw, 168px); aspect-ratio: 1; display: grid; place-content: center; text-align: center; background: var(--coral); color: var(--ink-deep); border-radius: 50%; box-shadow: 9px 10px 0 var(--sun); transform: rotate(8deg); }
.dining-hero__stamp span { font-family: var(--display); font-size: clamp(2.8rem, 5vw, 4.8rem); line-height: .72; }
.dining-hero__stamp small { margin-top: .65rem; font-size: .68rem; line-height: 1.1; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

.dining-route { position: sticky; top: 72px; z-index: 80; background: var(--coral); color: var(--ink-deep); border-bottom: 2px solid var(--ink); }
.dining-route__track { width: var(--shell); margin: auto; display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.dining-route__track::-webkit-scrollbar { display: none; }
.dining-route a { min-width: max-content; min-height: 58px; display: flex; align-items: center; gap: .55rem; padding: .8rem clamp(1rem, 2vw, 1.7rem); border-right: 1px solid rgba(7,63,66,.32); font-size: .82rem; font-weight: 900; text-transform: uppercase; letter-spacing: .02em; transition: background .2s ease,color .2s ease; }
.dining-route a:first-child { border-left: 1px solid rgba(7,63,66,.32); }
.dining-route a span { font-family: var(--serif); font-size: 1.05rem; font-style: italic; }
.dining-route a b { font-weight: inherit; }
.dining-route a:hover { background: var(--sun); }

.dining-invitation { position: relative; padding: clamp(5rem, 9vw, 9rem) 0; background: var(--paper); color: var(--ink); }
.dining-invitation::after { content: "¡BUEN PROVECHO!"; position: absolute; right: -1.5vw; top: 12%; color: rgba(255,104,71,.1); font-family: var(--display); font-size: clamp(5rem, 13vw, 13rem); line-height: .8; writing-mode: vertical-rl; transform: rotate(180deg); pointer-events: none; }
.dining-invitation__inner { position: relative; z-index: 1; display: grid; grid-template-columns: .55fr 1.2fr .7fr; gap: clamp(2rem, 5vw, 6rem); align-items: end; }
.dining-invitation .eyebrow { color: var(--coral-deep); }
.dining-invitation h2 { margin: 0; font-family: var(--display); font-size: clamp(2.8rem, 5.2vw, 5.2rem); line-height: .88; letter-spacing: -.055em; text-transform: uppercase; overflow-wrap: normal; word-break: normal; hyphens: none; }
.dining-invitation__inner > p:last-child { margin: 0; padding-left: 1.25rem; border-left: 4px solid var(--sun); font-size: 1.05rem; line-height: 1.65; }

.dining-chapter { min-height: clamp(680px, 88svh, 900px); position: relative; isolation: isolate; display: grid; align-items: center; scroll-margin-top: 128px; color: var(--white); background: var(--ink-deep); border-bottom: 10px solid var(--chapter-accent,var(--sun)); }
.dining-chapter__backdrop, .dining-chapter__veil { position: absolute; inset: 0; width: 100%; height: 100%; }
.dining-chapter__backdrop { z-index: -3; object-fit: cover; transition: transform 1.1s cubic-bezier(.2,.8,.2,1); }
.dining-chapter:hover .dining-chapter__backdrop { transform: scale(1.018); }
.dining-chapter__veil { z-index: -2; }
.dining-chapter__layout { padding-block: clamp(4rem, 8vw, 7rem); display: flex; }
.dining-chapter__copy { width: min(590px, 54%); min-width: 0; position: relative; padding: clamp(2rem, 4vw, 4rem); box-shadow: 18px 18px 0 var(--chapter-shadow,var(--sun)); container-type: inline-size; }
.dining-chapter__index { display: flex; align-items: center; gap: 1rem; margin-bottom: clamp(2rem, 4vw, 4rem); }
.dining-chapter__index span { display: grid; place-items: center; width: 48px; aspect-ratio: 1; border: 2px solid currentColor; border-radius: 50%; font-family: var(--serif); font-size: 1.2rem; font-style: italic; }
.dining-chapter__index i { font-style: normal; font-size: .76rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.dining-chapter h2 { margin: 0 0 1.7rem; font-family: var(--display); font-size: clamp(3rem, 5.8vw, 5.6rem); line-height: .86; letter-spacing: -.055em; text-transform: uppercase; overflow-wrap: normal; word-break: normal; hyphens: none; }
.dining-chapter h2 em { color: var(--coral-deep); font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; text-transform: none; }
.dining-chapter__lead { max-width: 46ch; margin-bottom: 1.6rem; font-size: clamp(1rem, 1.45vw, 1.18rem); line-height: 1.7; }
.dining-chapter__crave { display: flex; flex-wrap: wrap; gap: .5rem 0; margin: 0 0 2rem; font-family: var(--serif); font-size: clamp(1.1rem, 1.8vw, 1.4rem); font-style: italic; }
.dining-chapter__crave span + span::before { content: "✦"; margin: 0 .75rem; color: var(--chapter-accent,var(--sun)); font-family: var(--body); font-size: .7em; font-style: normal; }
.dining-chapter__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.dining-chapter__actions small { max-width: 170px; font-weight: 800; line-height: 1.4; }

.dining-chapter--habanero { --chapter-accent: var(--coral); --chapter-shadow: var(--sun); }
.dining-chapter--habanero .dining-chapter__backdrop { object-position: 66% center; }
.dining-chapter--habanero .dining-chapter__veil { background: linear-gradient(90deg,rgba(4,45,47,.9) 0%,rgba(4,45,47,.48) 48%,rgba(4,45,47,.08) 77%); }
.dining-chapter--habanero .dining-chapter__copy { background: rgba(4,45,47,.91); backdrop-filter: blur(10px); }

.dining-chapter--munoz { --chapter-accent: var(--sun); --chapter-shadow: var(--coral); color: var(--ink-deep); }
.dining-chapter--munoz .dining-chapter__backdrop { object-position: 40% center; }
.dining-chapter--munoz .dining-chapter__veil { background: linear-gradient(270deg,rgba(7,63,66,.2) 0%,transparent 45%),linear-gradient(90deg,transparent 45%,rgba(255,211,79,.18) 100%); }
.dining-chapter--munoz .dining-chapter__layout { justify-content: flex-end; }
.dining-chapter--munoz .dining-chapter__copy { background: rgba(255,211,79,.94); backdrop-filter: blur(7px); }
.dining-chapter--munoz .dining-chapter__crave span + span::before { color: var(--coral-deep); }

.dining-chapter--pizza { --chapter-accent: var(--coral); --chapter-shadow: var(--ink-deep); }
.dining-chapter--pizza .dining-chapter__backdrop { object-position: center 75%; filter: saturate(1.12) contrast(1.04); }
.dining-chapter--pizza .dining-chapter__veil { background: linear-gradient(90deg,rgba(4,45,47,.83) 0%,rgba(4,45,47,.32) 52%,transparent 78%),linear-gradient(0deg,rgba(4,45,47,.3),transparent 55%); }
.dining-chapter--pizza .dining-chapter__copy { background: rgba(255,248,235,.94); color: var(--ink); }
.dining-chapter__pizza-word { position: absolute; right: -.035em; bottom: -.14em; z-index: -1; color: rgba(255,211,79,.25); font-family: var(--display); font-size: clamp(9rem, 28vw, 28rem); line-height: .8; letter-spacing: -.08em; }

.dining-chapter--cantine { --chapter-accent: var(--aqua); --chapter-shadow: var(--sun); }
.dining-chapter--cantine .dining-chapter__backdrop { object-position: center 72%; filter: saturate(1.12); }
.dining-chapter--cantine .dining-chapter__veil { background: linear-gradient(270deg,rgba(4,45,47,.86) 0%,rgba(4,45,47,.38) 48%,transparent 76%); }
.dining-chapter--cantine .dining-chapter__layout { justify-content: flex-end; }
.dining-chapter--cantine .dining-chapter__copy { background: rgba(255,104,71,.94); color: var(--ink-deep); }
.dining-chapter--cantine .dining-chapter__crave span + span::before { color: var(--sun); }

.dining-chapter--churritos { --chapter-accent: #ff72a1; --chapter-shadow: var(--sun); min-height: 940px; background: #0c0a0b; }
.dining-chapter--churritos::before { content: ""; position: absolute; inset: 0; z-index: -3; background: radial-gradient(circle at 75% 20%,rgba(245,91,136,.35),transparent 35%),linear-gradient(130deg,#150b11 0%,#060606 70%); }
.dining-chapter--churritos .dining-chapter__layout { justify-content: flex-end; }
.dining-chapter--churritos .dining-chapter__copy { width: min(570px,48%); background: rgba(20,9,14,.9); backdrop-filter: blur(10px); }
.dining-chapter--churritos h2 { color: #ff96b7; font-family: var(--serif); font-style: italic; font-weight: 400; text-transform: none; }
.dining-chapter__dessert-photo { position: absolute; inset: 6% 45% 5% 4%; z-index: -1; transform: rotate(-2.5deg); }
.dining-chapter__dessert-photo::after { content: ""; position: absolute; inset: 0; border: 8px solid #ff96b7; box-shadow: 18px 20px 0 var(--coral); pointer-events: none; }
.dining-chapter__dessert-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.dining-chapter__kiosk { position: absolute; z-index: -1; left: 36%; bottom: 4%; width: min(260px,20vw); aspect-ratio: 1; object-fit: cover; border: 7px solid var(--sun); border-radius: 50%; box-shadow: 8px 9px 0 #f55b88; transform: rotate(5deg); }

.dining-finale { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--sun); color: var(--ink); }
.dining-finale__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem 5rem; }
.dining-finale p { max-width: 690px; margin: 0; font-family: var(--serif); font-size: clamp(1.55rem,3vw,2.5rem); line-height: 1.15; }

.dining-dialog { width: min(1050px,calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; color: var(--ink); background: var(--paper); border: 2px solid var(--ink); }
.dining-dialog::backdrop { background: rgba(4,45,47,.9); backdrop-filter: blur(5px); }
.dining-dialog__bar { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; background: var(--sun); border-bottom: 2px solid var(--ink); }
.dining-dialog__bar h2 { margin: 0; font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; }
.dining-dialog__close { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 44px; padding: .5rem .8rem; background: var(--ink); color: var(--white); border: 0; cursor: pointer; font-size: .875rem; font-weight: 800; }
.dining-dialog__hint { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; padding: 1rem 1.2rem; margin: 0; font-size: .875rem; }
.dining-dialog__hint a { font-weight: 800; text-decoration: underline; text-underline-offset: .2em; }
.dining-dialog__image { width: 100%; height: auto; margin: 0 auto; }
.dining-dialog__error { margin: 0 1.2rem 1.2rem; }
body.dining-menu-open { overflow: hidden; }

@media (max-width: 1000px) {
  .dining-hero__stamp { top: 8%; }
  .dining-invitation__inner { grid-template-columns: 1fr 2fr; }
  .dining-invitation__inner > p:last-child { grid-column: 2; }
  .dining-chapter__copy { width: min(620px,64%); }
  .dining-chapter--churritos .dining-chapter__copy { width: 53%; }
  .dining-chapter__dessert-photo { right: 43%; }
}

@media (max-width: 720px) {
  .dining-hero { min-height: 0; display: block; }
  .dining-hero__image { position: relative; inset: auto; z-index: 0; height: clamp(260px,68vw,420px); object-position: 62% center; }
  .dining-hero__shade { inset: 0 0 auto; z-index: 1; height: clamp(260px,68vw,420px); background: linear-gradient(0deg,rgba(4,45,47,.55) 0%,rgba(4,45,47,.05) 75%); }
  .dining-hero .detail-trail, .dining-hero__content { position: relative; z-index: 2; }
  .dining-hero .detail-trail { padding-top: 1.2rem; }
  .dining-hero__content { padding-top: 2rem; padding-bottom: 3.7rem; }
  .dining-hero h1 { font-size: clamp(4.3rem,21vw,7rem); }
  .dining-hero h1 em { margin-left: .1em; }
  .dining-hero__bottom { margin-top: 2rem; display: block; }
  .dining-hero__bottom p { font-size: 1rem; }
  .dining-hero__cta { margin-top: 1.3rem; min-width: 0; width: 100%; }
  .dining-hero__stamp { z-index: 2; top: 1.2rem; right: 1rem; width: 94px; box-shadow: 5px 6px 0 var(--sun); }
  .dining-hero__stamp span { font-size: 2.6rem; }
  .dining-hero__stamp small { font-size: .5rem; }
  .dining-route { top: 66px; }
  .dining-route a { min-height: 52px; padding: .7rem 1rem; }
  .dining-invitation { padding-block: 4.5rem; }
  .dining-invitation__inner { display: block; }
  .dining-invitation h2 { margin: .8rem 0 1.5rem; font-size: clamp(2.8rem,13vw,4.5rem); line-height: .9; }
  .dining-invitation__inner > p:last-child { padding-left: 1rem; max-width: 32rem; }
  .dining-invitation::after { display: none; }

  .dining-chapter { --mobile-chapter-media: clamp(270px,68vw,470px); min-height: 0; display: block; padding-top: var(--mobile-chapter-media); scroll-margin-top: 118px; }
  .dining-chapter__backdrop { height: var(--mobile-chapter-media); min-height: 0; max-height: none; }
  .dining-chapter:hover .dining-chapter__backdrop { transform: none; }
  .dining-chapter__veil { height: var(--mobile-chapter-media); min-height: 0; max-height: none; background: linear-gradient(0deg,rgba(4,45,47,.45),transparent 60%) !important; }
  .dining-chapter__layout { width: 100%; padding: 0; }
  .dining-chapter__copy, .dining-chapter--churritos .dining-chapter__copy { z-index: 1; width: 100%; padding: 2.4rem max(20px,calc((100vw - var(--shell))/2)) 3rem; box-shadow: none; backdrop-filter: none; }
  .dining-chapter__index { margin-bottom: 2rem; }
  .dining-chapter h2 { font-size: clamp(3.15rem,15vw,5rem); line-height: .88; }
  .dining-chapter__lead { font-size: 1rem; }
  .dining-chapter__actions { align-items: flex-start; flex-direction: column; }
  .dining-chapter__actions .button { width: 100%; }
  .dining-chapter__actions small { max-width: none; }
  .dining-chapter--habanero .dining-chapter__copy { background: var(--ink-deep); }
  .dining-chapter--munoz .dining-chapter__copy { background: var(--sun); }
  .dining-chapter--pizza .dining-chapter__copy { background: var(--paper); }
  .dining-chapter--pizza .dining-chapter__backdrop { object-position: center 72%; }
  .dining-chapter__pizza-word { display: none; }
  .dining-chapter--cantine .dining-chapter__copy { background: var(--coral); }
  .dining-chapter--churritos { --mobile-chapter-media: clamp(360px,105vw,650px); min-height: 0; padding-top: var(--mobile-chapter-media); }
  .dining-chapter__dessert-photo { inset: 1rem 1rem auto; height: calc(var(--mobile-chapter-media) - 2rem); max-height: none; transform: rotate(-1deg); }
  .dining-chapter__dessert-photo::after { border-width: 5px; box-shadow: 9px 10px 0 var(--coral); }
  .dining-chapter__kiosk { left: auto; right: 1rem; top: calc(var(--mobile-chapter-media) - min(30vw,175px) - 1.25rem); bottom: auto; width: 30vw; max-width: 175px; border-width: 4px; box-shadow: 5px 5px 0 #f55b88; }
  .dining-chapter--churritos .dining-chapter__copy { background: #14090e; }
  .dining-finale__inner { align-items: flex-start; flex-direction: column; }
  .dining-finale .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .dining-chapter__backdrop, .dining-hero__cta b, .dining-route a { transition: none; }
}

@supports (font-size: 1cqi) {
  .dining-chapter h2 { font-size: clamp(2.9rem, 15cqi, 5.4rem); }
}
