:root { --cream:#e9e1d1; --paper:#f5f0e6; --ink:#17271f; --wine:#6e2638; --gold:#c8a65a; --moss:#536743; --muted:#6f6a60; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; background-image:radial-gradient(circle at 15% 20%,rgba(83,103,67,.08),transparent 24%),radial-gradient(circle at 85% 70%,rgba(110,38,56,.06),transparent 20%); }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; height:100%; object-fit:cover; }
.topbar { height:90px; padding:0 clamp(22px,5vw,80px); display:flex; align-items:center; justify-content:space-between; background:rgba(23,39,31,.97); color:#f5f0e6; position:sticky; top:0; z-index:20; border-bottom:1px solid rgba(200,166,90,.32); }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brand-mark { width:46px; height:46px; border:1px solid var(--gold); border-radius:50% 50% 45% 55%; display:grid; place-items:center; color:var(--gold); font:700 22px Georgia,serif; box-shadow:0 0 22px rgba(200,166,90,.16); }
.brand strong { display:block; font:700 23px Georgia,serif; letter-spacing:.04em; }
.brand small { display:block; margin-top:3px; color:#c7bda9; font-size:8px; text-transform:uppercase; letter-spacing:.2em; }
nav { display:flex; gap:28px; font-size:13px; font-weight:700; }
nav a:hover { color:var(--gold); }
.nav-cta { background:var(--gold); color:var(--ink); padding:13px 18px; font-size:12px; font-weight:800; letter-spacing:.03em; }
.hero { min-height:calc(100vh - 90px); height:720px; position:relative; display:flex; align-items:center; color:white; background:#0c1812; overflow:hidden; }
.hero>img,.hero-shade { position:absolute; inset:0; }
.hero>img { object-fit:contain; object-position:center center; }
.hero-shade { background:linear-gradient(90deg,rgba(7,20,14,.9) 0%,rgba(20,37,27,.66) 46%,rgba(30,17,22,.16) 100%),linear-gradient(0deg,rgba(7,20,14,.35),transparent 55%); }
.hero-content { position:relative; z-index:2; max-width:690px; margin-left:clamp(24px,9vw,145px); padding-right:25px; }
.eyebrow { color:var(--gold); text-transform:uppercase; letter-spacing:.22em; font-size:11px; font-weight:800; }
.eyebrow.dark { color:var(--wine); }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; }
h1 { font-size:clamp(56px,7vw,98px); line-height:.92; margin:24px 0; letter-spacing:-.045em; }
h1 em { color:var(--gold); font-weight:400; text-shadow:0 0 28px rgba(200,166,90,.25); }
.hero-content>p:not(.eyebrow) { max-width:550px; font-size:18px; line-height:1.75; color:#f2ece2; }
.hero-actions { display:flex; gap:12px; margin-top:34px; }
.button { padding:16px 24px; font-size:13px; font-weight:800; }
.button.primary { background:var(--gold); color:var(--ink); }
.button.ghost { border:1px solid rgba(255,255,255,.65); }
.section { padding:100px clamp(24px,8vw,130px); }
.intro { display:grid; grid-template-columns:1fr 1.35fr; gap:90px; align-items:start; }
h2 { font-size:clamp(42px,5vw,68px); line-height:1; margin:14px 0; letter-spacing:-.035em; }
.intro>div:last-child>p { font:22px/1.75 Georgia,serif; margin:0; color:#42534c; }
.features { display:flex; flex-wrap:wrap; gap:20px 34px; margin-top:36px; color:var(--wine); text-transform:uppercase; letter-spacing:.08em; font-size:11px; font-weight:800; }
.menu-section { background:#102018; color:white; position:relative; }
.menu-section:before { content:"✦"; position:absolute; top:45px; left:50%; transform:translateX(-50%); color:rgba(200,166,90,.18); font-size:90px; }
.section-heading { text-align:center; max-width:650px; margin:0 auto 55px; }.section-heading.left{text-align:left;margin-left:0;}.section-heading h2{margin:12px 0 18px;}.section-heading>p:last-child{color:#b8c1bc;line-height:1.7;}
.menu-pages { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:start; max-width:1180px; margin:0 auto; }
.menu-page { position:relative; display:block; overflow:hidden; background:white; border:1px solid rgba(200,166,90,.35); box-shadow:0 20px 55px rgba(0,0,0,.28); transition:transform .25s ease,box-shadow .25s ease; }
.menu-page:hover { transform:translateY(-6px); box-shadow:0 28px 65px rgba(0,0,0,.38); }
.menu-page img { width:100%; height:auto; object-fit:contain; aspect-ratio:786/1020; background:white; }
.menu-page span { position:absolute; left:0; right:0; bottom:0; padding:14px 18px; background:linear-gradient(0deg,rgba(12,24,18,.96),rgba(12,24,18,.78)); color:var(--gold); font:700 17px Georgia,serif; letter-spacing:.02em; }
.allergen-note { text-align:center; color:#98a79f; margin:30px 0 0; font-size:11px; }
.gallery { background:var(--cream); background-image:linear-gradient(135deg,rgba(83,103,67,.06) 25%,transparent 25%); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; grid-auto-flow:dense; gap:16px; }
.gallery-grid figure { margin:0; position:relative; overflow:hidden; background:#d7cdbb; }
.gallery-grid figure img { transition:transform .5s ease; }
.gallery-grid figure:hover img { transform:scale(1.035); }
.gallery-main { grid-column:span 2; grid-row:span 2; }
.gallery-wide { grid-column:span 2; }
.gallery-tall { grid-row:span 2; }
.gallery-grid figcaption { position:absolute; left:14px; bottom:14px; background:rgba(251,248,241,.92); padding:9px 13px; font:italic 13px Georgia,serif; box-shadow:0 4px 18px rgba(0,0,0,.1); }
.gallery-grid .quote { grid-column:span 2; }
.quote { background:var(--wine); color:white; padding:28px 35px; display:flex; align-items:center; gap:22px; }.quote span{color:var(--gold);font:64px/1 Georgia,serif;}.quote p{font:italic 20px/1.5 Georgia,serif;margin:0;}
.contact { background:#4d2432; color:white; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; border-top:1px solid rgba(200,166,90,.35); }.contact-copy>p:last-child{max-width:450px;line-height:1.7;color:#ead8d8;}.contact-card{background:var(--paper);color:var(--ink);padding:38px;display:grid;grid-template-columns:1fr 1fr;gap:30px;border:1px solid var(--gold);box-shadow:12px 12px 0 rgba(23,39,31,.25);}.contact-card small,.contact-card strong,.contact-card a{display:block;}.contact-card small{text-transform:uppercase;letter-spacing:.16em;color:var(--wine);font-size:9px;font-weight:800;margin-bottom:9px;}.contact-card strong,.contact-card a{font:700 15px/1.6 Georgia,serif;}
.opening-hours { grid-column:1/3; border-top:1px solid rgba(23,39,31,.14); padding-top:24px; }
.opening-hours dl { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.opening-hours dl div { display:flex; justify-content:space-between; gap:18px; padding:7px 0; border-bottom:1px dotted rgba(23,39,31,.2); font:700 14px/1.4 Georgia,serif; }
.opening-hours dt,.opening-hours dd { margin:0; }
.opening-hours dd { color:var(--wine); text-align:right; }
.imprint { display:grid; grid-template-columns:.7fr 1.5fr; gap:70px; }.imprint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;font-size:13px;line-height:1.7;color:#5c625e;}.imprint-grid strong{color:var(--ink);}.imprint-grid small{color:var(--wine);}
.privacy { background:#17271f; color:#f5f0e6; display:grid; grid-template-columns:.65fr 1.55fr; gap:80px; align-items:start; }
.privacy-heading { position:sticky; top:130px; }
.privacy-heading>p:last-child { color:#9eaa9f; font-size:12px; }
.privacy-content { display:grid; grid-template-columns:1fr 1fr; gap:0 45px; }
.privacy-content article { border-top:1px solid rgba(200,166,90,.25); padding:26px 0; }
.privacy-content h3 { color:var(--gold); font-size:19px; margin:0 0 12px; }
.privacy-content p { color:#c9d0cb; font-size:13px; line-height:1.75; margin:0; }
.privacy-content a { color:#f0cf82; text-decoration:underline; text-underline-offset:3px; }
footer { background:#0c1812;color:white;padding:38px clamp(24px,8vw,130px);display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid rgba(200,166,90,.28);}footer p{font-size:11px;color:#a7b1ac;}footer>div{display:flex;gap:22px;font-size:11px;}footer .brand small{color:#a7b1ac;}
@media(max-width:950px){nav{display:none}.menu-pages{grid-template-columns:1fr 1fr}.intro,.contact,.imprint,.privacy{grid-template-columns:1fr;gap:35px}.privacy-heading{position:static}.imprint-grid{grid-template-columns:1fr 1fr}.hero{height:650px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:240px}.gallery-wide{grid-column:span 2}}
@media(max-width:650px){.topbar{height:76px;padding:0 18px}.nav-cta{display:none}.brand strong{font-size:17px}.hero{min-height:670px;height:calc(100vh - 76px);align-items:flex-start;padding-top:90px}.hero-content{margin-left:24px}.hero-shade{background:linear-gradient(90deg,rgba(12,25,21,.9),rgba(12,25,21,.4))}h1{font-size:54px}.hero-content>p:not(.eyebrow){font-size:15px}.hero-actions{flex-direction:column;align-items:flex-start}.section{padding:72px 22px}.menu-pages{grid-template-columns:1fr;gap:18px}.gallery-grid{display:block}.gallery-grid>*{height:280px;margin-bottom:14px!important}.gallery-grid .quote{height:auto}.contact-card,.imprint-grid,.privacy-content{grid-template-columns:1fr}.opening-hours{grid-column:auto}.opening-hours dl{grid-template-columns:1fr}.contact{gap:30px}footer{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
