.menu-scene { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(42px, 8vw, 140px); align-items: start; }
.menu-categories { display: grid; gap: 38px; }
.menu-category { padding-top: 20px; border-top: 1px solid currentColor; }
.menu-category h3 { margin: 0; font-family: var(--font-heading); font-size: clamp(1.7rem, 3vw, 2.8rem); font-weight: 600; letter-spacing: -.035em; }
.menu-category > p { margin: 8px 0 18px; opacity: .7; font-size: .9rem; }
.menu-category ul { list-style: none; padding: 0; margin: 0; }
.menu-category li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; padding: 14px 0; border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.menu-category li strong,.menu-category li b { display: block; font-size: 1rem; }
.menu-category li span,.menu-category li em { display: block; margin-top: 3px; font-size: .85rem; font-style: normal; opacity: .72; line-height: 1.45; }
.menu-category li em { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.menu-item-content { display:flex; gap:14px; align-items:flex-start; min-width:0; }
.menu-item-image { width:64px; height:64px; flex:0 0 64px; border-radius:12px; object-fit:cover; }
.hours-scene { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr); gap: clamp(42px, 10vw, 160px); align-items: end; }
.hours-list { margin: 0; border-top: 1px solid currentColor; }
.hours-list div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid color-mix(in srgb, currentColor 30%, transparent); }
.hours-list dt { font-weight: 700; }.hours-list dd { margin: 0; text-align: right; }
@media (max-width:760px) { .menu-scene,.hours-scene { grid-template-columns: 1fr; gap: 42px; }.menu-category li { gap: 12px; } }

/* Reservation request component */
.reservation-scene { display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);gap:clamp(38px,8vw,120px);align-items:start; }
.reservation-intro { position:sticky;top:120px; }
.reservation-promises { display:grid;gap:0;margin-top:48px;border-top:1px solid color-mix(in srgb,currentColor 35%,transparent); }
.reservation-promises span { display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em; }
.reservation-promises b { display:grid;width:30px;height:30px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.65rem; }
.reservation-card { padding:clamp(24px,4vw,52px);border:1px solid color-mix(in srgb,currentColor 45%,transparent);background:color-mix(in srgb,var(--site-surface) 94%,transparent);color:var(--site-text);box-shadow:18px 18px 0 color-mix(in srgb,var(--site-primary) 35%,transparent);text-align:left; }
.theme-dark .reservation-card { background:var(--site-light);color:var(--site-dark); }
.theme-primary .reservation-card { background:var(--site-light);color:var(--site-dark);box-shadow:18px 18px 0 color-mix(in srgb,var(--site-dark) 35%,transparent); }
.reservation-form { display:grid;gap:28px; }
.reservation-when { display:grid;grid-template-columns:.65fr 1.15fr 1fr;gap:12px;padding-bottom:28px;border-bottom:1px solid color-mix(in srgb,currentColor 18%,transparent); }
.reservation-details { display:grid;grid-template-columns:1fr 1fr;gap:18px 14px; }
.reservation-wide { grid-column:1/-1; }
.reservation-form label>span:first-child,.reservation-when label>span:first-child { display:block;margin-bottom:8px;font:700 .68rem "Space Grotesk",sans-serif;text-transform:uppercase;letter-spacing:.13em;opacity:.65; }
.reservation-input { display:block;width:100%;min-height:50px;padding:13px 14px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:0;background:transparent;color:inherit;font:500 1rem var(--font-heading);outline:none; }
.reservation-input:focus { border-color:var(--site-primary);box-shadow:0 0 0 2px var(--site-primary); }
.reservation-input::placeholder { color:currentColor;opacity:.38; }
.reservation-input[type=date],.reservation-input[type=time] { color-scheme:light; }
.reservation-input textarea { resize:vertical; }
.reservation-form label em,.reservation-form-errors { display:block;margin-top:7px;color:#b42318;font-size:.76rem;font-style:normal;font-weight:700;line-height:1.35; }
.reservation-form-errors ul { margin:0;padding-left:18px; }
.reservation-consent { display:grid!important;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-size:.84rem;line-height:1.4;cursor:pointer; }
.reservation-consent>span { margin:0!important;text-transform:none!important;letter-spacing:0!important;font-size:.84rem!important;opacity:.78!important; }
.reservation-checkbox { width:20px;height:20px;margin:0;accent-color:var(--site-primary); }
.reservation-submit { display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:4px; }
.reservation-submit p { max-width:260px;margin:0;font-size:.75rem;line-height:1.5;opacity:.62; }
.reservation-submit button { display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:210px;padding:16px 18px;border:1px solid var(--site-dark);background:var(--site-dark);color:var(--site-light);font:700 .72rem "Space Grotesk",sans-serif;text-transform:uppercase;letter-spacing:.1em;cursor:pointer; }
.reservation-submit button:hover { background:var(--site-primary);color:var(--site-dark); }
.reservation-success { display:grid;grid-template-columns:minmax(0,1fr);min-width:0;min-height:480px;align-content:center;text-align:center; }
.reservation-success>* { min-width:0;max-width:100%; }
.reservation-success>span { display:grid;width:72px;height:72px;margin:0 auto 30px;place-items:center;border-radius:50%;background:var(--site-primary);color:var(--site-dark);font-size:2rem; }
.reservation-success h3 { margin:0;font-family:var(--font-heading);font-size:clamp(2.4rem,5vw,4.2rem);line-height:.95;letter-spacing:-.04em; }
.reservation-success p:last-child { max-width:420px;margin:22px auto 0;line-height:1.6;opacity:.7; }
.type-reservation.variant-cards .reservation-scene { grid-template-columns:1fr; }
.type-reservation.variant-cards .reservation-intro { position:static;text-align:center;margin-inline:auto; }
.type-reservation.variant-cards .reservation-intro .section-body { margin-inline:auto; }
.type-reservation.variant-cards .reservation-promises { grid-template-columns:repeat(3,1fr);max-width:820px;margin-inline:auto; }
.type-reservation.variant-cards .reservation-promises span { justify-content:center;border-right:1px solid color-mix(in srgb,currentColor 22%,transparent); }
.type-reservation.variant-cards .reservation-card { max-width:900px;width:100%;margin-inline:auto; }
.type-reservation.variant-minimal .reservation-scene { display:block;max-width:800px; }
.type-reservation.variant-minimal .reservation-intro { position:static;text-align:center;margin:0 auto 42px; }
.type-reservation.variant-minimal .reservation-intro .section-body { margin-inline:auto; }
.type-reservation.variant-minimal .reservation-promises { display:none; }
.type-reservation.variant-minimal .reservation-card { box-shadow:none;border:0;padding-inline:0;background:transparent;color:inherit; }
.type-reservation.variant-editorial .reservation-card { transform:rotate(.6deg); }
@media(max-width:860px){.reservation-scene{grid-template-columns:1fr}.reservation-intro{position:static}.reservation-promises{grid-template-columns:repeat(3,1fr)}.reservation-promises span{display:grid;align-content:start}.type-reservation.variant-editorial .reservation-card{transform:none}}
@media(max-width:580px){.reservation-card{padding:22px 18px;box-shadow:8px 8px 0 color-mix(in srgb,var(--site-primary) 35%,transparent)}.reservation-when,.reservation-details{grid-template-columns:1fr}.reservation-wide{grid-column:auto}.reservation-promises,.type-reservation.variant-cards .reservation-promises{grid-template-columns:1fr}.reservation-promises span{display:flex;justify-content:flex-start!important;border-right:0!important}.reservation-submit{align-items:stretch;flex-direction:column}.reservation-submit button{width:100%}}
