:root {
  color-scheme: dark;
  --ink: #121212;
  --surface: #181818;
  --surface-soft: #202020;
  --white: #F5F5F7;
  --muted: #aaa9a8;
  --muted-2: #777675;
  --amber: #E65100;
  --gold: #D4AF37;
  --line: rgba(245,245,247,.14);
  --serif: 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --gutter: clamp(1.2rem, 5vw, 5.5rem);
  --header-height: clamp(4.2rem, 6vw, 5.1rem);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1rem); background: var(--ink); }
body { margin: 0; overflow-x: clip; background: var(--ink); color: var(--white); font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--white); color: var(--ink); }

body::after { position: fixed; z-index: 95; inset: 0; background: #050505; opacity: 0; content: ''; pointer-events: none; }
body.theme-transition::after { animation: theme-crossfade .42s ease both; }
@keyframes theme-crossfade { 0% { opacity: 0; } 42% { opacity: .22; } 100% { opacity: 0; } }
.skip-link { position: fixed; z-index: 110; top: .5rem; left: .5rem; padding: .7rem 1rem; transform: translateY(-150%); border-radius: .35rem; background: var(--white); color: var(--ink); }
.skip-link:focus { transform: translateY(0); }
.content-wrap { width: min(100% - 2 * var(--gutter), 1440px); margin-inline: auto; }
.section-screen { position: relative; min-height: 100vh; min-height: 100svh; }
.eyebrow { margin: 0 0 1.35rem; color: var(--muted); font-size: .67rem; font-weight: 700; letter-spacing: .2em; line-height: 1.4; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; line-height: 1.04; }
h1 { max-width: 900px; margin-bottom: 1.35rem; font-size: clamp(3.35rem, 8.6vw, 8.5rem); }
h2 { margin-bottom: 1.25rem; font-size: clamp(2.65rem, 6vw, 6rem); }
h1 em, h2 em, .card-title, .menu-group h3 { color: var(--gold); font-weight: 500; }
.reveal-word { display: inline-block; }
.body-large { max-width: 42rem; color: #d0d0d2; font-size: clamp(1rem, 1.5vw, 1.28rem); line-height: 1.75; }
.body-copy { max-width: 38rem; color: #d0d0d2; font-size: 1rem; line-height: 1.8; }

.site-header { position: fixed; z-index: 30; top: 0; left: 0; display: flex; width: 100%; height: var(--header-height); align-items: center; justify-content: space-between; padding-inline: var(--gutter); border-bottom: 1px solid rgba(245,245,247,.1); background: rgba(18,18,18,.9); backdrop-filter: blur(12px); }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .75rem; }
.brand-mark { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; border: 1px solid rgba(245,245,247,.5); border-radius: 50%; color: var(--white); font-family: var(--serif); font-size: .78rem; }
.brand-name { display: flex; flex-direction: column; font-size: .72rem; font-weight: 700; letter-spacing: .12em; line-height: 1.2; }
.brand-name small { margin-top: .25rem; color: var(--muted); font-size: .53rem; font-weight: 500; letter-spacing: .26em; }
.site-nav { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 2rem); font-size: .75rem; }
.site-nav > a:not(.nav-cta) { position: relative; padding-block: .4rem; color: #dedee0; transition: color .25s ease; }
.site-nav > a:not(.nav-cta):hover, .event-nav-link[aria-current="location"] { color: var(--white); }
.event-nav-link[aria-current="location"]::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: var(--white); content: ''; }
.nav-cta { color: var(--white); font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.nav-cta span { padding-left: .4rem; }
.menu-toggle { display: none; }

.hero { display: flex; overflow: hidden; align-items: center; padding: calc(var(--header-height) + 2rem) var(--gutter) 8rem; isolation: isolate; background: var(--ink); }
.hero-backdrop, .closing-backdrop { position: absolute; z-index: -3; inset: 0; background: linear-gradient(90deg, rgba(8,8,8,.92) 0%, rgba(8,8,8,.67) 42%, rgba(8,8,8,.16) 100%), linear-gradient(0deg, rgba(8,8,8,.68), transparent 36%), url('../images/hero_parrilla.jpg') center 48%/cover no-repeat; }
.hero-content { position: relative; z-index: 3; padding-top: clamp(2rem, 5vh, 5rem); }
.hero-lede { max-width: 33rem; margin-bottom: 2.1rem; color: #dedee0; font-size: clamp(1rem, 1.5vw, 1.22rem); line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.button { display: inline-flex; min-height: 3.2rem; align-items: center; justify-content: center; gap: 1rem; padding: .86rem 1.25rem; border: 1px solid transparent; border-radius: .42rem; cursor: pointer; font-size: .73rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--amber); color: var(--white); box-shadow: 0 0 16px rgba(230,81,0,.16); animation: cta-glow 3s ease-in-out infinite; }
.button-primary:hover { background: var(--amber); box-shadow: 0 0 26px rgba(230,81,0,.34); }
@keyframes cta-glow { 0%,100% { box-shadow: 0 0 12px rgba(230,81,0,.12); } 50% { box-shadow: 0 0 23px rgba(230,81,0,.3); } }
.button-outline { border-color: rgba(245,245,247,.34); color: var(--white); }
.button-outline:hover { border-color: var(--white); background: rgba(245,245,247,.06); }
.text-link { display: inline-flex; align-items: center; gap: .7rem; color: var(--white); font-size: .78rem; font-weight: 600; }
.text-link span { color: var(--white); transition: transform .2s ease; }
.text-link:hover span { transform: translate(3px, -3px); }
.hero-steak { position: absolute; z-index: 1; top: 17%; right: 5%; width: min(50vw, 740px); max-height: 74vh; object-fit: contain; filter: drop-shadow(0 32px 48px rgba(0,0,0,.45)); }
.hero-embers { position: absolute; z-index: 0; top: 4%; right: 5%; width: min(64vw, 940px); height: 95%; object-fit: contain; opacity: .28; pointer-events: none; }
[data-parallax-speed].is-animating { will-change: transform; }
.hero-caption { position: absolute; right: var(--gutter); bottom: 2.1rem; left: var(--gutter); display: flex; justify-content: space-between; color: var(--muted); font-size: .58rem; letter-spacing: .19em; }
.scroll-cue { position: absolute; bottom: 1.9rem; left: 50%; display: flex; align-items: center; gap: .65rem; color: #dedee0; font-size: .54rem; letter-spacing: .17em; transform: translateX(-50%); }
.scroll-cue span { width: 1px; height: 1.4rem; background: var(--white); }
.parallax-layer.is-animating, [data-reveal].is-animating { will-change: transform, opacity; }

.intro-section { display: flex; overflow: hidden; flex-direction: column; justify-content: center; padding: clamp(6rem, 11vh, 9rem) var(--gutter) 6rem; background: var(--surface); }
.intro-copy { padding-bottom: clamp(2rem, 7vh, 5rem); }
.experience-rail { display: grid; width: min(100% - 2 * var(--gutter), 1440px); grid-template-columns: repeat(4, minmax(0,1fr)); margin: 0 auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experience-card { position: relative; display: flex; min-height: clamp(220px, 25vw, 345px); flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(1rem, 2.1vw, 2rem); border-right: 1px solid var(--line); transition: background-color .25s ease; }
.experience-card:first-child { border-left: 1px solid var(--line); }
.experience-card:hover { background: rgba(245,245,247,.035); }
.card-index, .card-note { color: var(--muted); font-size: .61rem; letter-spacing: .15em; }
.card-title { max-width: 14rem; font-family: var(--serif); font-size: clamp(1.45rem, 2.4vw, 2.45rem); line-height: 1.12; }
.card-note { max-width: 11rem; font-size: .53rem; letter-spacing: .1em; }
.card-arrow { position: absolute; right: 1.5rem; bottom: 1.45rem; color: var(--white); font-size: 1.25rem; transition: transform .2s ease; }
.experience-card:hover .card-arrow { transform: translate(3px, 3px); }
.duration-note { width: min(100% - 2 * var(--gutter), 1440px); margin: 1rem auto 0; color: var(--muted-2); font-size: .65rem; }

.kids-section { display: grid; min-height: 100vh; min-height: 100svh; grid-template-columns: minmax(290px, .85fr) minmax(0, 1.15fr); align-items: start; gap: clamp(2rem, 6vw, 7rem); padding: clamp(6rem, 10vh, 8rem) var(--gutter); background: var(--ink); color: var(--white); }
.kids-section .eyebrow { color: var(--muted); }
.kids-section h2 { font-size: clamp(2.55rem, 5.1vw, 5.4rem); }
.kids-section h2 em { color: var(--gold); }
.kids-section .body-copy { color: #d0d0d2; }
.kids-copy { position: sticky; top: calc(var(--header-height) + 1.5rem); grid-column: 1; grid-row: 1; align-self: start; }
.kids-photo-wrap { position: relative; grid-column: 2; grid-row: 1; width: 100%; min-height: min(72vh, 700px); align-self: stretch; overflow: visible; }
.kids-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.kids-photo-overlay { display: none; }
.kids-photo-wrap::after { position: absolute; inset: 0; border: 1px solid rgba(245,245,247,.14); border-radius: .25rem; content: ''; pointer-events: none; }
.photo-stamp { position: absolute; z-index: 3; top: 1.25rem; left: 1.25rem; padding: .6rem .75rem; border-radius: .25rem; background: rgba(18,18,18,.84); color: var(--gold); font-family: var(--serif); font-size: .78rem; line-height: 1.15; }
.kids-inclusions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.05rem 1.4rem; margin: 1.6rem 0; }
.kids-inclusions > div { display: flex; gap: .7rem; align-items: flex-start; }
.inclusion-number { color: var(--muted-2); font-size: .6rem; letter-spacing: .12em; }
.kids-inclusions p { margin: 0; color: #c8c8ca; font-size: .76rem; line-height: 1.55; }
.kids-inclusions strong { color: var(--white); font-size: .84rem; }
.kids-footer { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.78fr); gap: 1.3rem; align-items: end; padding-top: 1rem; border-top: 1px solid var(--line); }
.price-block, .optional-addon { display: flex; flex-direction: column; }
.price-label, .addon-label { color: var(--muted); font-size: .56rem; font-weight: 700; letter-spacing: .13em; }
.price-block > strong { margin: .25rem 0; color: var(--amber); font-family: var(--serif); font-size: clamp(2.1rem, 4vw, 3.25rem); font-weight: 600; line-height: 1; }
.price-detail, .optional-addon > span:last-child { color: #b9b9bb; font-size: .66rem; line-height: 1.55; }
.optional-addon { padding: 0 0 .1rem 1.05rem; border-left: 1px solid var(--line); }
.optional-addon strong { margin: .35rem 0; font-size: .86rem; }
.optional-addon b { color: var(--amber); }
.small-note { margin: .85rem 0 1rem; color: var(--muted); font-size: .64rem; line-height: 1.55; }

.menu-intro { display: flex; align-items: center; padding-block: 7rem; background: var(--surface); }
.menu-intro-inner { padding-block: clamp(3rem, 8vh, 6rem); }
.menu-nav { display: flex; max-width: 780px; margin-top: 2.5rem; border-top: 1px solid var(--line); }
.menu-nav a { display: flex; flex: 1; flex-direction: column; gap: .4rem; padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.08rem; color: var(--gold); }
.menu-nav a + a { padding-left: 1rem; border-left: 1px solid var(--line); }
.menu-nav span { color: var(--amber); font-family: var(--sans); font-size: .65rem; letter-spacing: .04em; }

.package-section { display: grid; grid-template-columns: minmax(290px, .8fr) minmax(0, 1.2fr); gap: clamp(2.5rem, 6vw, 7rem); align-items: start; padding: clamp(6rem, 10vh, 9rem) var(--gutter); background: var(--ink); scroll-margin-top: 0; }
.package-section:nth-of-type(even) { background: var(--surface); }
.package-aside { position: sticky; top: calc(var(--header-height) + 1.5rem); align-self: start; padding-top: 1rem; }
.package-aside h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
.package-intro { max-width: 28rem; color: #c8c8ca; font-size: .92rem; line-height: 1.75; }
.package-price { display: flex; align-items: baseline; gap: .7rem; margin-top: 1.7rem; }
.package-price strong { color: var(--amber); font-family: var(--serif); font-size: clamp(2.5rem, 4vw, 3.9rem); font-weight: 600; line-height: 1; }
.package-price span { color: var(--muted); font-size: .76rem; }
.child-price { margin: .5rem 0 1.15rem; color: #c8c8ca; font-size: .74rem; }
.duration-pill { display: flex; align-items: center; gap: .5rem; margin: 0 0 1.5rem; color: var(--muted); font-size: .71rem; }
.duration-pill span { color: var(--white); }
.package-menu { min-width: 0; }
.menu-photo { position: relative; height: clamp(260px, 38vw, 520px); margin: 0 0 2.2rem; overflow: hidden; border-radius: .25rem; background: var(--surface-soft); }
.menu-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.menu-photo:hover img { transform: scale(1.035); }
.menu-photo::after { position: absolute; inset: 45% 0 0; background: linear-gradient(0deg, rgba(0,0,0,.72), transparent); content: ''; }
.menu-photo figcaption { position: absolute; z-index: 1; right: 1.4rem; bottom: 1.2rem; left: 1.4rem; color: var(--white); font-family: var(--serif); font-size: 1.2rem; }
.menu-photo-secondary { margin-top: clamp(3rem, 7vw, 6rem); }
.menu-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.8rem clamp(1.2rem,3vw,3.2rem); }
.menu-group h3 { margin-bottom: .85rem; color: var(--gold); font-size: .68rem; letter-spacing: .17em; text-transform: uppercase; }
.menu-group ul { margin: 0; padding: 0; list-style: none; }
.menu-group li { margin-bottom: .65rem; color: #d0d0d2; font-size: .79rem; line-height: 1.55; }
.menu-group li strong { display: block; color: var(--white); font-size: .82rem; }
.menu-group li span { display: block; color: var(--muted); font-size: .7rem; }
.menu-group p { max-width: 29rem; margin-bottom: 0; color: #d0d0d2; font-size: .84rem; line-height: 1.7; }
.dessert-group { padding-top: .2rem; }
.package-reverse { background: var(--surface); }
.package-reverse .package-aside { order: 2; }
.package-reverse .package-menu { order: 1; }

.closing-section { display: flex; overflow: hidden; min-height: 80vh; min-height: 80svh; align-items: center; padding: 7rem var(--gutter); isolation: isolate; }
.closing-backdrop { background-image: linear-gradient(90deg, rgba(8,8,8,.92), rgba(8,8,8,.46)), url('../images/hero_parrilla.jpg'); background-position: center 70%; }
.closing-content { position: relative; z-index: 2; }
.contact-section { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: clamp(3rem, 9vw, 10rem); padding: clamp(5rem, 10vw, 9rem) var(--gutter); background: var(--surface); color: var(--white); }
.contact-section .eyebrow { color: var(--muted); }
.contact-section h2 em { color: var(--gold); }
.contact-intro > p:not(.eyebrow) { max-width: 28rem; color: #c8c8ca; font-size: .92rem; line-height: 1.75; }
.contact-footnote { padding-left: 1rem; border-left: 1px solid var(--line); font-size: .78rem !important; }
.contact-form { display: flex; flex-direction: column; gap: 1.1rem; }
.contact-form label { display: flex; flex-direction: column; gap: .45rem; color: #dedee0; font-size: .72rem; font-weight: 700; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 3rem; padding: .75rem .8rem; border: 0; border-bottom: 1px solid rgba(245,245,247,.26); border-radius: .3rem; outline: none; background: rgba(245,245,247,.035); color: var(--white); font-size: .82rem; }
.contact-form textarea { min-height: 6rem; resize: vertical; }
.contact-form select option { background: var(--surface); color: var(--white); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-bottom-color: var(--white); box-shadow: 0 1px 0 var(--white); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--muted-2); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form .button { align-self: flex-start; border: 0; }
.form-status { min-height: 1.3rem; margin: 0; color: #c8c8ca; font-size: .72rem; }
.site-footer { display: flex; min-height: 6rem; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.3rem var(--gutter); background: #0d0d0d; }
.site-footer p, .back-top { margin: 0; color: var(--muted); font-size: .65rem; }
.back-top:hover { color: var(--white); }

@media (max-width: 1120px) {
  :root { --header-height: 4.5rem; }
  .site-nav { gap: clamp(.55rem, 1.4vw, 1rem); font-size: .68rem; }
  .nav-cta { font-size: .66rem; }
  .experience-rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .experience-card { min-height: 230px; }
  .experience-card:nth-child(3) { border-left: 1px solid var(--line); }
  .kids-section { grid-template-columns: minmax(260px,.9fr) minmax(0,1.1fr); gap: 2.5rem; }
  .package-section { grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr); gap: 2.5rem; }
}

@media (max-width: 980px), (max-width: 1100px) and (orientation: portrait) {
  .kids-section { display: flex; flex-direction: column; align-items: stretch; gap: 2rem; padding-inline: clamp(24px, 5vw, 56px); }
  .kids-photo-wrap { position: relative; order: 0; width: 100%; min-height: clamp(280px, 58vw, 560px); aspect-ratio: 4 / 3; align-self: auto; overflow: hidden; border-radius: .35rem; }
  .kids-photo { z-index: 0; }
  .kids-photo-overlay { position: absolute; z-index: 1; inset: 0; display: block; background: linear-gradient(to bottom, rgba(18,18,18,.95), rgba(18,18,18,.8)); pointer-events: none; }
  .kids-photo-wrap::after { position: absolute; z-index: 3; inset: 0; border: 1px solid rgba(245,245,247,.14); border-radius: inherit; content: ''; pointer-events: none; }
  .kids-copy { position: static; order: 1; width: 100%; max-width: none; }
  .kids-section .eyebrow, .kids-section .body-copy, .kids-section .inclusion-number,
  .kids-section .kids-inclusions p, .kids-section .kids-inclusions strong,
  .kids-section .price-label, .kids-section .price-detail, .kids-section .addon-label,
  .kids-section .optional-addon, .kids-section .small-note { color: #F5F5F7; }
  .kids-section .price-block > strong, .kids-section .optional-addon b { color: var(--amber); }
  .kids-inclusions, .kids-footer { grid-template-columns: 1fr; }
  .kids-footer { gap: 1rem; }
  .optional-addon { padding: .8rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 720px) {
  :root { --gutter: 1.2rem; --header-height: 4.2rem; }
  html { scroll-padding-top: calc(var(--header-height) + .5rem); }
  .brand-mark { width: 2rem; height: 2rem; }
  .brand-name { font-size: .64rem; }
  .menu-toggle { display: flex; width: 2.7rem; height: 2.7rem; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; border: 1px solid rgba(245,245,247,.26); border-radius: .3rem; background: transparent; }
  .menu-toggle span { width: 1rem; height: 1px; background: var(--white); transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .site-nav { position: absolute; top: calc(var(--header-height) - 1px); right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: .5rem var(--gutter) 1rem; border-bottom: 1px solid var(--line); background: rgba(18,18,18,.98); }
  .site-nav.is-open { display: flex; }
  .site-nav > a:not(.nav-cta) { display: block; padding: .8rem 0; border-bottom: 1px solid rgba(245,245,247,.1); }
  .event-nav-link[aria-current="location"]::after { right: auto; bottom: .55rem; width: 2.2rem; }
  .nav-cta { margin-top: .7rem; text-align: left; }
  .hero { min-height: 100vh; min-height: 100svh; align-items: flex-end; padding: 8rem var(--gutter) 7.8rem; }
  .hero-backdrop { background-image: linear-gradient(0deg, rgba(8,8,8,.95) 0%, rgba(8,8,8,.72) 48%, rgba(8,8,8,.38) 100%), url('../images/hero_parrilla.jpg'); background-position: 58% center; background-size: cover; }
  .hero-steak { top: 18%; right: -16%; width: 90vw; max-height: 42vh; opacity: .7; }
  .hero-embers { top: 14%; right: -18%; width: 100vw; height: 54%; opacity: .24; }
  h1 { font-size: clamp(3rem, 14vw, 5.1rem); }
  .hero-lede { max-width: 27rem; font-size: .97rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.15rem; }
  .hero-caption { bottom: 1.3rem; font-size: .47rem; }
  .scroll-cue { display: none; }
  .section-screen { min-height: auto; }
  .intro-section { padding: 5.5rem 0 3rem; }
  .intro-copy { padding-bottom: 2.3rem; }
  .experience-rail { width: calc(100% - 2 * var(--gutter)); }
  .experience-card { min-height: 190px; padding: 1rem; }
  .card-title { font-size: 1.5rem; }
  .card-note { max-width: 8rem; font-size: .48rem; }
  .card-arrow { right: 1rem; bottom: 1rem; }
  .duration-note { width: calc(100% - 2 * var(--gutter)); }
  .kids-section { grid-template-columns: 1fr; gap: 2.5rem; padding-block: 5rem; }
  .kids-copy { position: static; grid-column: auto; grid-row: auto; }
  .kids-photo-wrap { position: relative; grid-column: auto; grid-row: auto; min-height: clamp(240px, 68vw, 440px); aspect-ratio: 4 / 3; }
  .kids-inclusions { gap: 1rem; }
  .kids-footer { grid-template-columns: 1fr; gap: 1rem; }
  .optional-addon { padding: .8rem 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .menu-intro { min-height: 85vh; min-height: 85svh; padding-block: 4rem; }
  .menu-nav { flex-direction: column; }
  .menu-nav a, .menu-nav a + a { flex-direction: row; align-items: baseline; justify-content: space-between; padding: .8rem 0; border-left: 0; }
  .package-section { grid-template-columns: 1fr; gap: 2rem; padding-block: 5rem; }
  .package-aside { position: static; }
  .package-reverse .package-aside, .package-reverse .package-menu { order: initial; }
  .package-aside h2 { font-size: clamp(3rem, 12vw, 4.6rem); }
  .menu-photo { height: 65vw; min-height: 230px; max-height: 390px; margin-bottom: 1.6rem; }
  .menu-columns { gap: 1.4rem 1rem; }
  .menu-group li { font-size: .74rem; }
  .menu-group li span { font-size: .66rem; }
  .closing-section { min-height: 72vh; min-height: 72svh; padding-block: 5rem; }
  .contact-section { grid-template-columns: 1fr; gap: 2rem; padding-block: 5rem; }
  .site-footer { align-items: flex-start; flex-direction: column; padding-block: 1.5rem; }
}

@media (max-width: 420px) {
  .kids-inclusions, .menu-columns { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .hero-caption span:first-child { letter-spacing: .1em; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .parallax-layer { transform: none !important; }
  body.theme-transition::after { animation: none; }
}
