/* styles.css — denk MAL (Dahn) — heritage/denkMal aesthetic */
:root{
  --paper:#f5f1e8;
  --ink:#2a2623;
  --ink-muted:#5a534d;
  --stroke:#d9d2c6;
  --accent:#7a5c2e;
  --accent-deep:#5b4322;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#12100e;
    --ink:#f3efe7;
    --ink-muted:#c9c3b9;
    --stroke:#2a2623;
    --accent:#c5a46d;
    --accent-deep:#ae8c52;
  }
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background: var(--paper);
  color: var(--ink);
  font-family: "Cormorant Garamond", "Georgia", "Times New Roman", serif;
  line-height:1.6;
  text-rendering: optimizeLegibility;
}
body::before{
  content:"";
  position:fixed; inset:0; pointer-events:none; z-index:-1;
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(0,0,0,0.04), transparent 60%),
    radial-gradient(1000px 500px at 110% 0%, rgba(0,0,0,0.04), transparent 60%);
  mix-blend-mode:multiply;
}
.container{ width:min(960px, 100%); margin:0 auto; padding:0 16px; }
.rule{ height:1px; background: linear-gradient(to right, transparent, var(--stroke), transparent); }
.rule.thick{ height:2px; background: linear-gradient(to right, transparent, var(--accent), transparent); }
.site-header{ padding:16px 0 12px; }
.brand{ display:flex; align-items:baseline; gap:10px; }
.brand-mark{
  font-variant: small-caps; font-weight:900; letter-spacing:0.06em; font-size:28px; line-height:1;
  padding:6px 10px; border:1px solid var(--stroke); border-radius:8px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4), transparent);
}
.brand-sub{ color:var(--ink-muted); font-size:14px; margin-left:4px; }
.h1{ font-size: clamp(28px, 5vw, 48px); font-weight: 800; letter-spacing: 0.02em; font-variant: small-caps; }
.h2{ font-size: clamp(20px, 3.2vw, 28px); font-weight: 700; letter-spacing: 0.02em; font-variant: small-caps; }
.lead{ color:var(--ink-muted) }
.card{ border:1px solid var(--stroke); border-radius: 12px; background: linear-gradient(180deg, rgba(255,255,255,0.5), transparent); padding:16px; }
.hours{ display:grid; gap:10px; grid-template-columns: 1fr; }
@media (min-width: 600px){ .hours{ grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px){ .hours{ grid-template-columns: 1fr 1fr 1fr; } }
.hours .row{ display:flex; align-items:center; justify-content:space-between; border:1px dashed var(--stroke); border-radius:10px; padding:10px 12px; background: rgba(0,0,0,0.02); }
.loc-grid{ display:grid; gap:16px; grid-template-columns: 1fr; }
@media (min-width: 860px){ .loc-grid{ grid-template-columns: 1fr 1fr; } }
.map-wrap{ border:1px solid var(--stroke); border-radius:12px; overflow:hidden; aspect-ratio:4/3; }
.map{ width:100%; height:100%; border:0; }
footer{ margin-top:28px; padding:16px 0; }
.footer-inner{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; color:var(--ink-muted); font-size:14px; }
.menu-grid{ display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width: 860px){ .menu-grid{ grid-template-columns: 1fr 1fr; } }
.menu-card{ border:1px solid var(--stroke); border-radius:14px; padding:14px; background:linear-gradient(180deg, rgba(255,255,255,0.5), transparent); }
.menu-card h3{ margin:0 0 6px; font-variant: small-caps; letter-spacing:0.03em; }
.menu-list{ list-style:none; margin:0; padding:0; }
.menu-list li{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px dotted var(--stroke); }
.menu-list li:first-child{ border-top:0; }
.small{ color:var(--ink-muted); font-size: 13px; }
.price{ font-weight:700; font-variant-numeric: tabular-nums; }
.top-actions{ display:flex; gap:10px; flex-wrap:wrap; margin:10px 0 16px; }
.btn{ border:1px solid var(--stroke); background:transparent; padding:8px 12px; border-radius:10px; font-family:inherit; font-size:14px; cursor:pointer; }
.btn.accent{ background: var(--accent); color: #fff; border-color: var(--accent-deep); }
@media print{ .no-print{ display:none !important; } .menu-card{ break-inside: avoid; } }
.tv-wrap{ min-height:100vh; display:flex; flex-direction:column; }
.tv-header{ padding:16px; display:flex; align-items:end; justify-content:space-between; gap:12px; }
.tv-title{ font-variant: small-caps; letter-spacing:0.04em; font-size: clamp(22px, 3.4vw, 36px); font-weight:800; }
.tv-page{ flex:1; display:grid; grid-template-columns: 1fr; gap:16px; padding: 0 16px 16px; }
@media (min-width: 1000px){ .tv-page{ grid-template-columns: 1fr 1fr; } }
.tv-card{ border:1px solid var(--stroke); border-radius:14px; padding:14px; }
.tv-card h3{ margin:0 0 8px; font-variant: small-caps; }
.tv-items{ list-style:none; margin:0; padding:0; }
.tv-items li{ display:flex; justify-content:space-between; align-items:baseline; padding:8px 0; border-top:1px dotted var(--stroke); }
.tv-items li:first-child{ border-top:0; }
.tv-footer{ padding:12px 16px; display:flex; align-items:center; justify-content:space-between; color:var(--ink-muted); font-size:14px; }