.restaurant-menu-list{display:flex;flex-direction:column;gap:clamp(2.5rem,6vw,4rem)}.restaurant-menu-category{display:flex;flex-direction:column;gap:1rem}.restaurant-menu-category__title{font-family:var(--font-display-stack);font-size:clamp(1.75rem,3.5vw,2.5rem);line-height:1.1;letter-spacing:-.01em;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.restaurant-menu-category__items{display:flex;flex-direction:column;list-style:none;padding:0}.restaurant-menu-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"media name  price" "media desc  desc" "media meta  meta";align-items:baseline;gap:.375rem 1rem;padding:1rem 0;border-bottom:1px dotted var(--border)}.restaurant-menu-item:not(:has(.restaurant-menu-item__media)){grid-template-columns:1fr auto;grid-template-areas:"name price" "desc desc" "meta meta"}.restaurant-menu-item__media{grid-area:media;align-self:start;width:6rem;height:6rem;object-fit:cover;border-radius:var(--radius);display:block}.restaurant-menu-item__name{grid-area:name;font-family:var(--font-display-stack);font-size:1.125rem;line-height:1.35}.restaurant-menu-item__price{grid-area:price;font-family:var(--font-display-stack);font-size:1.125rem;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--brand)}.restaurant-menu-item__desc{grid-area:desc;max-width:56ch;font-size:.9375rem;line-height:1.6;color:var(--muted-foreground)}.restaurant-menu-item__meta{grid-area:meta;display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.75rem;color:var(--muted-foreground)}.restaurant-allergen{display:inline-flex;align-items:center;padding:.125rem .5rem;border:1px solid var(--border);border-radius:999px;background:var(--muted);color:var(--muted-foreground);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.restaurant-menu-teaser{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem;list-style:none;padding:0}.restaurant-menu-teaser__item{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.restaurant-menu-teaser__item img{aspect-ratio:3/2;width:100%;object-fit:cover;border-radius:var(--radius);display:block}.restaurant-menu-teaser__name{font-family:var(--font-display-stack);font-size:1.0625rem}.restaurant-reservation-form{position:relative;display:grid;gap:1rem;max-width:34rem;padding:clamp(1.25rem,3vw,2rem);background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.restaurant-reservation-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width:560px){.restaurant-reservation-form__row{grid-template-columns:1fr}}.restaurant-reservation-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.restaurant-hours-table{display:grid;gap:0;font-variant-numeric:tabular-nums}.restaurant-hours-table__row{display:flex;justify-content:space-between;gap:1.5rem;padding:.75rem .25rem;border-bottom:1px solid var(--border)}.restaurant-hours-table__row dt{color:var(--foreground)}.restaurant-hours-table__row dd{color:var(--muted-foreground);text-align:right}.restaurant-hours-table__row[data-closed=true] dd{color:var(--destructive)}.restaurant-status-card{display:grid;gap:.75rem;padding:clamp(1.25rem,3vw,2rem);background:var(--card);color:var(--card-foreground);border:1px solid var(--border);border-left:4px solid var(--muted-foreground);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.restaurant-status-card[data-status=pending]{border-left-color:var(--brand)}.restaurant-status-card[data-status=confirmed]{border-left-color:var(--primary)}.restaurant-status-card[data-status=cancelled],.restaurant-status-card[data-status=refused]{border-left-color:var(--destructive)}.restaurant-status-card__title{font-family:var(--font-display-stack);font-size:clamp(1.375rem,3vw,1.75rem);line-height:1.2}.restaurant-status-card__status{font-size:.9375rem;font-weight:600;color:var(--foreground)}.restaurant-status-card__meta{display:grid;grid-template-columns:auto 1fr;gap:.375rem 1rem;font-size:.9375rem;color:var(--muted-foreground)}.restaurant-status-card__meta dt{letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;padding-top:.125rem}.restaurant-status-card__meta dd{color:var(--foreground)}