/* Dining Page Styles - keeps to base scale and palette, minimal overrides */
.dining-hero { position: relative; color: var(--text-on-dark, #fff); background: #0b0b0d; }
.dining-hero-media { position: absolute; inset: 0; background-size: cover; background-position: center; filter: brightness(0.55); }
.dining-hero-inner { position: relative; z-index: 1; max-width: var(--container, 1200px); margin: 0 auto; padding: clamp(4rem, 8vw, 8rem) 1.25rem; text-align: center; }
.dining-hero .lead { margin-top: 0.75rem; opacity: .9; }
.dining-cta-group { margin-top: 1.25rem; display: inline-flex; gap: .75rem; flex-wrap: wrap; }

.dining-breadcrumbs { max-width: var(--container, 1200px); margin: 0 auto; padding: .75rem 1.25rem; font-size: .875rem; }
.dining-breadcrumbs ol { list-style: none; display: flex; gap: .5rem; padding: 0; margin: 0; }
.dining-breadcrumbs li+li::before { content: "/"; margin: 0 .5rem; opacity: .6; }

.dining-section { padding: clamp(2.5rem, 6vw, 4rem) 1.25rem; }
.dining-section.alt { background: var(--surface-alt, #0f0f12); }
.dining-section .container { max-width: var(--container, 1200px); margin: 0 auto; }
.dining-section h2 { margin-bottom: .75rem; }

.layout-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1rem, 3vw, 2rem); align-items: center; }
@media (max-width: 900px) { .layout-split { grid-template-columns: 1fr; } }
.media { margin: 0; border-radius: .75rem; overflow: hidden; background: #000; }
.media img { display: block; width: 100%; height: auto; }
.media figcaption { font-size: .875rem; opacity: .8; padding: .5rem .75rem; }

.dining-tabs { display: flex; gap: .5rem; margin: 1rem 0; flex-wrap: wrap; }
.dining-tab { appearance: none; border: 1px solid rgba(255,255,255,.15); background: transparent; color: inherit; padding: .5rem .9rem; border-radius: 999px; cursor: pointer; transition: background .2s ease, border-color .2s ease; }
.dining-tab[aria-selected="true"] { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.35); }
.dining-tab:focus-visible { outline: 2px solid var(--focus, #c9a227); outline-offset: 2px; }

.dining-tabpanes { margin-top: .5rem; }
.menu-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.menu-list li { border: 1px solid rgba(255,255,255,.08); border-radius: .75rem; padding: 1rem; background: rgba(255,255,255,.02); }
.menu-list h3 { margin: 0 0 .25rem; font-size: 1.05rem; }
.menu-list p { margin: 0 0 .5rem; opacity: .9; }
.menu-list .price { font-weight: 600; color: var(--accent, #d0a85c); }
@media (max-width: 900px) { .menu-list { grid-template-columns: 1fr; } }

.checklist { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .35rem; }
.checklist li::before { content: "• "; color: var(--accent, #d0a85c); margin-right: .25rem; }

.pill-list { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.pill { border: 1px solid rgba(255,255,255,.14); padding: .35rem .6rem; border-radius: 999px; font-size: .9rem; background: rgba(255,255,255,.03); }

.reservation-form { margin-top: .75rem; display: grid; gap: 1rem; }
.form-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
@media (max-width: 900px) { .form-row { grid-template-columns: 1fr; } }
.form-field label { display: block; font-size: .95rem; margin-bottom: .35rem; }
.form-field input, .form-field select, .form-field textarea { width: 100%; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.15); color: inherit; border-radius: .5rem; padding: .6rem .75rem; }
.form-actions { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.form-help { font-size: .9rem; opacity: .85; }
.form-message { margin-top: .5rem; font-weight: 600; }
.form-message.success { color: #22c55e; }
.form-message.error { color: #ef4444; }

.profile-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (max-width: 900px) { .profile-grid { grid-template-columns: 1fr; } }
.profile { border: 1px solid rgba(255,255,255,.08); border-radius: .75rem; padding: 1rem; background: rgba(255,255,255,.02); }
.profile h3 { margin-top: 0; }

.inline-form { display: flex; gap: .5rem; flex-wrap: wrap; }
.inline-form input[type="email"] { flex: 1 1 260px; min-width: 220px; }

/* Utility aligning with base palette */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; text-decoration: none; }
.btn-ghost { border: 1px solid rgba(255,255,255,.18); }
.dining-note { margin-top: .75rem; font-size: .9rem; opacity: .85; }
