/* Basalt & Kupfer, selected by the owner on 2026-09-13. */
:root {
  color-scheme: dark;
  --ink: var(--text);
  --yellow: var(--accent);
  --text: #f3f0ec;
  --paper: #1e1d1c;
  --surface: #2b2926;
  --hero-surface: #3a3733;
  --accent: #d1ad89;
  --muted: #c5beb5;
  --line: #544f49;
  --deep: #131211;
  --on-accent: #1e1d1c;
}
.header { border-bottom-color: var(--line); }
.brand img, .legal-header img { filter: invert(1); mix-blend-mode: screen; }
.hero { background: var(--hero-surface); }
.hero .outline { -webkit-text-stroke-color: var(--accent); }
.hero .eyebrow, .google-label { color: var(--accent); }
.hero-foot, .social-bottom { border-top-color: var(--line); }
.button { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.button:hover { background: var(--text); color: var(--on-accent); border-color: var(--text); }
.button.secondary { background: transparent; color: var(--text); border-color: var(--line); }
.button.secondary:hover { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.image-caption { background: var(--deep); color: var(--text); }
.location-strip, footer { background: var(--deep); color: var(--text); }
.locations { border-top-color: var(--line); border-bottom-color: var(--line); }
.location-number { color: var(--accent); }
.review-card { background: var(--surface); }
.review-rating > span:first-child { color: var(--accent); }
.review-avatar { color: var(--on-accent); }
.social-section { background: var(--hero-surface); }
.social-gallery a, .film video { background: var(--deep); }
.location-links a:hover, .google-locations a:hover, .skip { color: var(--on-accent); }
.footer-bottom { border-top-color: var(--line); }
.language select { color-scheme: dark; }
a:focus-visible, button:focus-visible, select:focus-visible, .film video:focus-visible { outline-color: var(--accent); }

.google-policy-links {font-size:12px;line-height:1.8;margin:18px 0;color:var(--muted)}
.google-policy-links a {text-decoration:underline;text-underline-offset:3px}

/* Responsive images retain the existing image geometry. */
.hero-image picture { display:block; width:100%; height:100%; }
.gallery picture, .social-gallery picture { display:block; }
/* Comfortable touch targets for contact, takeaway and directions. */
.location .phone, .location-links a { display:inline-flex; align-items:center; min-height:48px; }
.location-links { gap:8px 20px; }
.language select { min-height:48px; }

.mobile-actions { display:none; }
#booking-dialog { color:var(--text); background:var(--surface); border:1px solid var(--line); padding:28px; width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; }
#booking-dialog::backdrop { background:rgb(0 0 0 / .72); }
.booking-heading { display:flex; align-items:flex-start; gap:16px; margin-bottom:24px; }
.booking-heading h2 { font-family:Arial,Helvetica,sans-serif; font-size:1.55rem; line-height:1.25; letter-spacing:0; margin:0; flex:1; }
.booking-heading button { min-height:48px; padding:8px 10px; color:var(--text); background:transparent; border:1px solid var(--line); cursor:pointer; font-size:.875rem; }
.booking-options { display:grid; gap:12px; }
.booking-options a { display:flex; flex-direction:column; gap:7px; min-height:80px; padding:18px; border:1px solid var(--line); }
.booking-options a:hover { border-color:var(--accent); background:var(--hero-surface); }
.booking-options strong { font-size:1.125rem; }
.booking-options span { font-size:.875rem; color:var(--muted); }
@media(max-width:700px) {
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  .mobile-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; position:fixed; z-index:30; bottom:0; left:0; right:0; background:var(--paper); border-top:1px solid var(--line); padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); }
  .mobile-actions .button { min-height:48px; padding:12px 8px; font-size:.875rem; text-align:center; }
  #booking-dialog { padding:20px; }
  .booking-heading { flex-direction:column-reverse; gap:18px; }
  .booking-heading button { align-self:flex-end; }
}
.menu-hero { display:grid; grid-template-columns:1fr 1fr; background:var(--hero-surface); min-height:650px; }
.menu-hero>div { padding:70px 9%; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.menu-hero h1 { font-family:Impact,'Arial Narrow',Arial,sans-serif; font-size:clamp(3rem,6vw,6rem); line-height:1; margin:0 0 28px; }
.menu-hero p:not(.eyebrow) { font-size:1.125rem; line-height:1.7; max-width:580px; }
.menu-hero picture { display:block; min-height:100%; }
.menu-hero img { width:100%; height:100%; object-fit:cover; }
.menu-categories { padding:72px 5%; max-width:1400px; margin:auto; }
.menu-categories>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); }
.menu-categories article { min-height:130px; padding:24px 18px; border-bottom:1px solid var(--line); }
.menu-categories article span { color:var(--accent); font-weight:bold; }
.menu-categories h3 { font-size:1.15rem; line-height:1.4; margin:18px 0 0; }
.menu-locations { padding:0 5% 72px; max-width:1400px; margin:auto; }
.menu-locations>div { display:flex; flex-wrap:wrap; gap:14px; }
@media(max-width:700px) {
 .menu-hero { grid-template-columns:1fr; min-height:0; }
 .menu-hero>div { padding:40px 6%; }
 .menu-hero picture { height:360px; min-height:0; }
 .menu-categories { padding:50px 6%; }
 .menu-categories>div { grid-template-columns:1fr 1fr; }
 .menu-locations { padding:0 6% 52px; }
 .menu-locations .button { width:100%; }
 .menu-hero h1 { font-size:3.2rem; }
 .mobile-actions .button:only-child { grid-column:1/-1; }
}

.location-detail-link { display:flex; align-items:center; min-height:48px; margin-top:16px; color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.location-header { gap:20px; }
.location-header .all-restaurants { margin-left:auto; min-height:48px; display:flex; align-items:center; font-weight:bold; }
.location-hero { display:grid; grid-template-columns:1fr 1fr; background:var(--hero-surface); }
.location-hero>div { padding:64px 9%; }
.location-hero h1 { font-family:Impact,'Arial Narrow',Arial,sans-serif; font-size:clamp(2.5rem,4.6vw,4.8rem); line-height:1.08; margin:0 0 28px; }
.location-hero p:not(.eyebrow) { line-height:1.7; font-size:1.125rem; }
.location-hero picture { display:block; min-height:100%; }
.location-hero img { width:100%;height:100%;object-fit:cover; }
.location-page-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.location-information { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:70px 5%; max-width:1400px; margin:auto; }
.location-information h2,.other-restaurants h2 { font-family:Arial,Helvetica,sans-serif;font-size:1.6rem;line-height:1.3;letter-spacing:0; }
.location-information p,.location-information address { line-height:1.8; font-style:normal; }
.contact-action { display:inline-flex;min-height:48px;align-items:center;font-weight:bold; }
.other-restaurants { padding:0 5% 64px;max-width:1400px;margin:auto; }
.other-restaurants>div { display:flex;flex-wrap:wrap;gap:16px; }
@media(max-width:700px) {
 .location-header .button { display:none; }
 .location-hero { grid-template-columns:1fr; }
 .location-hero>div { padding:36px 6%; }
 .location-hero picture { height:280px;min-height:0; }
 .location-information { grid-template-columns:1fr;padding:44px 6%;gap:28px; }
 .location-hero h1 { font-size:2.7rem;overflow-wrap:break-word; }
 .location-header .all-restaurants { font-size:.875rem; }
}
