/* ============================================================
   der Ringsmuth — Restaurant & Catering
   Editorial fine-dining · Wiener Klassik mit Steirereck-Seele
   Palette: forest green (brand) · warm cream · gold · bordeaux
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Karla:wght@300;400;500;600;700&display=swap');

:root{
  --paper:#FBF7EF;       /* warm cream ground */
  --paper-2:#F3EADA;     /* deeper sand panel */
  --card:#FFFDF8;        /* card surface */
  --ink:#221F18;         /* espresso text */
  --ink-2:#5B5141;       /* muted brown text */
  --ink-3:#857a66;       /* faint */
  --forest:#2B3A28;      /* deep forest (brand from logo) */
  --forest-2:#22301F;    /* darker forest */
  --forest-soft:#3a4d35;
  --leaf:#6FA03A;        /* fresh leaf accent (logo) */
  --bordeaux:#74182A;    /* wine accent */
  --bordeaux-2:#8c2235;
  --gold:#A67C2E;        /* antique gold */
  --gold-2:#C29A4F;
  --gold-soft:#D9BC84;   /* marquee glow / soft borders */
  --line:#E6D9C1;        /* warm hairline */
  --line-2:#EFE6D4;
  --shadow-sm:0 2px 10px rgba(43,32,15,.06);
  --shadow:0 16px 40px -18px rgba(43,32,15,.30);
  --shadow-lg:0 36px 80px -30px rgba(43,32,15,.45);
  --r:14px; --r-lg:22px;
  --container:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'Karla',system-ui,Segoe UI,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif; font-weight:600; line-height:1.12; margin:0; letter-spacing:.1px}
p{margin:0 0 1em}
:focus-visible{outline:2.5px solid var(--leaf); outline-offset:3px; border-radius:4px}
.container{width:min(92%,var(--container)); margin-inline:auto}
.tabnum{font-variant-numeric:tabular-nums}

/* ---------- eyebrow / section heads ---------- */
.eyebrow{
  font-family:'Karla',sans-serif; font-weight:700; font-size:.74rem;
  letter-spacing:.26em; text-transform:uppercase; color:var(--gold);
  display:inline-flex; align-items:center; gap:.6rem; margin:0 0 .9rem;
}
.eyebrow::before{content:""; width:30px; height:1px; background:var(--gold); opacity:.7}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:""; width:30px; height:1px; background:var(--gold); opacity:.7}
.section{padding:96px 0}
.section-head{max-width:680px; margin:0 0 52px}
.section-head.center{margin-inline:auto; text-align:center}
.section-title{font-size:clamp(2rem,4.4vw,3.1rem)}
.section-sub{color:var(--ink-2); font-size:1.08rem; margin-top:.8rem}
.lead{font-size:1.16rem; color:var(--ink-2)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem; cursor:pointer;
  font-family:'Karla',sans-serif; font-weight:700; font-size:.97rem; letter-spacing:.02em;
  padding:.92em 1.7em; border-radius:999px; border:1.5px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, color .25s, border-color .25s;
}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--forest); color:#FBF7EF; box-shadow:0 12px 26px -12px rgba(43,58,40,.7)}
.btn-primary:hover{background:var(--forest-2); transform:translateY(-3px); box-shadow:0 20px 36px -14px rgba(43,58,40,.85)}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:#241a06; box-shadow:0 12px 26px -12px rgba(166,124,46,.75)}
.btn-gold:hover{transform:translateY(-3px); box-shadow:0 20px 38px -14px rgba(166,124,46,.9)}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line); }
.btn-ghost:hover{border-color:var(--forest); color:var(--forest); transform:translateY(-3px)}
.btn-light{background:rgba(255,253,248,.96); color:var(--forest); }
.btn-light:hover{background:#fff; transform:translateY(-3px); box-shadow:var(--shadow)}
.btn-outline-light{background:transparent; color:#FBF7EF; border-color:rgba(251,247,239,.5)}
.btn-outline-light:hover{border-color:#FBF7EF; background:rgba(251,247,239,.1); transform:translateY(-3px)}

/* ---------- navbar (frosted) ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100; padding:14px 0;
  transition:padding .3s var(--ease), background .3s, box-shadow .3s, border-color .3s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(251,247,239,.82); backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border-bottom-color:var(--line); box-shadow:0 6px 24px -18px rgba(43,32,15,.5); padding:9px 0;
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem}
.brand{display:flex; align-items:center; gap:.6rem}
.brand img{height:34px; width:auto; transition:height .3s var(--ease)}
.nav.scrolled .brand img{height:30px}
.nav-links{display:flex; align-items:center; gap:.35rem}
.nav-links a:not(.btn){
  font-weight:600; font-size:.96rem; color:var(--ink); padding:.5rem .8rem; border-radius:8px;
  position:relative; transition:color .2s;
}
.nav-links a:not(.btn)::after{
  content:""; position:absolute; left:.8rem; right:.8rem; bottom:.34rem; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .28s var(--ease);
}
.nav-links a:not(.btn):hover{color:var(--forest)}
.nav-links a:not(.btn):hover::after, .nav-links a.active:not(.btn)::after{transform:scaleX(1)}
.nav-links a.active:not(.btn){color:var(--forest)}
.nav .btn{padding:.62em 1.25em}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:8px; color:var(--ink)}
.nav-toggle svg{width:26px;height:26px}

/* transparent nav over dark hero/phead -> light treatment */
.nav:not(.scrolled) .brand img{filter:brightness(0) invert(1); opacity:.96}
.nav:not(.scrolled) .nav-toggle{color:#FBF7EF}
@media (min-width:941px){
  .nav:not(.scrolled) .nav-links a:not(.btn){color:#FBF7EF}
  .nav:not(.scrolled) .nav-links a:not(.btn):hover{color:#fff}
  .nav:not(.scrolled) .nav-links a:not(.btn)::after,
  .nav:not(.scrolled) .nav-links a.active:not(.btn)::after{background:var(--gold-soft)}
}

@media (max-width:940px){
  .nav-toggle{display:block}
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(82vw,330px); flex-direction:column;
    align-items:stretch; gap:.2rem; padding:96px 26px 30px; background:var(--paper);
    box-shadow:-20px 0 60px -20px rgba(43,32,15,.4); transform:translateX(105%);
    transition:transform .4s var(--ease); border-left:1px solid var(--line);
  }
  .nav-links.open{transform:none}
  .nav-links a:not(.btn){padding:.85rem .4rem; font-size:1.05rem; border-bottom:1px solid var(--line-2)}
  .nav-links a:not(.btn)::after{display:none}
  .nav-links .btn{margin-top:1rem; justify-content:center}
  .nav-backdrop{position:fixed; inset:0; background:rgba(34,31,24,.45); opacity:0; visibility:hidden; transition:.3s; z-index:99}
  .nav-backdrop.show{opacity:1; visibility:visible}
}

/* ---------- HERO ---------- */
.hero{position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden}
.hero-bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform}
.hero-bg img{width:100%; height:100%; object-fit:cover}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(102deg, rgba(28,38,25,.92) 0%, rgba(34,42,28,.74) 36%, rgba(30,40,26,.30) 66%, rgba(30,40,26,.12) 100%),
    linear-gradient(0deg, rgba(24,32,20,.55), rgba(24,32,20,0) 38%);
}
.hero-inner{position:relative; z-index:2; padding:128px 0 88px; color:#FBF7EF; max-width:720px}
.hero .eyebrow{color:var(--gold-soft)}
.hero .eyebrow::before{background:var(--gold-soft)}
.hero h1{font-size:clamp(2.7rem,6.4vw,4.7rem); font-weight:600; letter-spacing:-.4px}
.hero h1 em{font-style:italic; color:var(--gold-soft)}
.hero-tag{font-size:1.2rem; color:rgba(251,247,239,.92); margin:1.4rem 0 2.1rem; max-width:540px}
.hero-cta{display:flex; flex-wrap:wrap; gap:.9rem}
.hero-meta{display:flex; flex-wrap:wrap; gap:1.6rem 2.2rem; margin-top:2.8rem; padding-top:1.8rem; border-top:1px solid rgba(251,247,239,.22)}
.hero-meta div{line-height:1.3}
.hero-meta .k{font-family:'Playfair Display',serif; font-size:1.5rem; color:#fff; display:flex; align-items:center; gap:.4rem}
.hero-meta .l{font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(251,247,239,.72)}
.hero-scroll{position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; color:rgba(251,247,239,.7); font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:.5rem}
.hero-scroll span{width:1px; height:36px; background:linear-gradient(rgba(251,247,239,.7),transparent); animation:scrolldot 2.2s var(--ease) infinite}
@keyframes scrolldot{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.09s}.reveal.d2{transition-delay:.18s}.reveal.d3{transition-delay:.27s}.reveal.d4{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none}}

/* ---------- welcome / facts strip ---------- */
.welcome{background:var(--paper); position:relative}
.welcome-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center}
.welcome-quote{font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(1.5rem,2.6vw,2.05rem); line-height:1.4; color:var(--forest)}
.welcome-quote span{color:var(--gold)}
.facts{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.fact{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px 20px; box-shadow:var(--shadow-sm)}
.fact .n{font-family:'Playfair Display',serif; font-size:2rem; color:var(--forest); display:flex; align-items:center; gap:.35rem}
.fact .n svg{width:20px;height:20px;color:var(--gold)}
.fact .t{font-size:.92rem; color:var(--ink-2)}

/* ---------- chef story (dark) ---------- */
.chef{background:var(--forest); color:#F3EEDF; position:relative; overflow:hidden}
.chef::before{content:""; position:absolute; inset:0; background:radial-gradient(900px 500px at 88% -10%, rgba(111,160,58,.16), transparent 60%); pointer-events:none}
.chef-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center; position:relative}
.chef-media{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/5}
.chef-media img{width:100%;height:100%;object-fit:cover}
.chef-monogram{position:absolute; right:-14px; bottom:-14px; width:118px; height:118px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-2)); color:var(--forest-2); display:grid; place-items:center;
  font-family:'Playfair Display',serif; font-size:3rem; box-shadow:var(--shadow); border:4px solid var(--forest)}
.chef .eyebrow{color:var(--gold-soft)}
.chef .eyebrow::before{background:var(--gold-soft)}
.chef h2{color:#fff; font-size:clamp(2rem,4vw,2.9rem)}
.chef p{color:rgba(243,238,223,.86)}
.chef-quote{font-family:'Playfair Display',serif; font-style:italic; font-size:1.4rem; line-height:1.5; color:#fff; border-left:3px solid var(--gold); padding-left:1.2rem; margin:1.6rem 0}
.chef-sign{font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--gold-soft)}
.chef-badges{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.6rem}
.chef-badge{font-size:.82rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#F3EEDF; border:1px solid rgba(243,238,223,.32); border-radius:999px; padding:.5em 1.1em}

/* ---------- signature dishes ---------- */
.dishes-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px}
.dish{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  transform-style:preserve-3d; will-change:transform;
}
.dish:hover{box-shadow:var(--shadow-lg)}
.dish-img{aspect-ratio:5/4; overflow:hidden; position:relative}
.dish-img img{width:100%;height:100%;object-fit:cover; transition:transform .7s var(--ease)}
.dish:hover .dish-img img{transform:scale(1.07)}
.dish-tag{position:absolute; top:12px; left:12px; background:rgba(43,58,40,.92); color:#F3EEDF; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:.4em .8em; border-radius:999px}
.dish-body{padding:20px 20px 22px}
.dish-body h3{font-size:1.28rem; display:flex; justify-content:space-between; align-items:baseline; gap:.6rem}
.dish-body h3 .price{font-family:'Karla',sans-serif; font-weight:700; font-size:1rem; color:var(--gold); white-space:nowrap}
.dish-body p{font-size:.92rem; color:var(--ink-2); margin:.5rem 0 0}

/* ---------- split feature (garden) ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center}
.split.rev .split-media{order:2}
.split-media{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3}
.split-media img{width:100%;height:100%;object-fit:cover; transition:transform .8s var(--ease)}
.split-media:hover img{transform:scale(1.05)}
.feature-list{list-style:none; padding:0; margin:1.4rem 0 0; display:grid; gap:.7rem}
.feature-list li{display:flex; gap:.7rem; align-items:flex-start; color:var(--ink-2)}
.feature-list svg{width:20px;height:20px;color:var(--leaf);flex:none;margin-top:3px}

/* ---------- gallery / lightbox ---------- */
.gallery{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:14px}
.gallery figure{margin:0; overflow:hidden; border-radius:var(--r); cursor:zoom-in; position:relative; box-shadow:var(--shadow-sm)}
.gallery img{width:100%;height:100%;object-fit:cover; transition:transform .7s var(--ease)}
.gallery figure::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(34,31,24,.35),transparent 50%); opacity:0; transition:.3s}
.gallery figure:hover img{transform:scale(1.08)}
.gallery figure:hover::after{opacity:1}
.gallery .tall{grid-row:span 2}
.gallery .wide{grid-column:span 2}
@media(max-width:760px){.gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px}.gallery .wide{grid-column:span 2}}

.lb{position:fixed; inset:0; z-index:200; background:rgba(20,26,16,.92); display:none; align-items:center; justify-content:center; padding:30px}
.lb.open{display:flex}
.lb img{max-width:92vw; max-height:86vh; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb-btn{position:absolute; background:rgba(251,247,239,.12); border:1px solid rgba(251,247,239,.3); color:#fff; width:50px;height:50px; border-radius:50%; cursor:pointer; font-size:1.4rem; display:grid; place-items:center; transition:.2s}
.lb-btn:hover{background:rgba(251,247,239,.25)}
.lb-close{top:24px; right:24px}
.lb-prev{left:24px; top:50%; transform:translateY(-50%)}
.lb-next{right:24px; top:50%; transform:translateY(-50%)}
@media(max-width:600px){.lb-prev{left:10px}.lb-next{right:10px}.lb-btn{width:42px;height:42px}}

/* ---------- events / catering cards ---------- */
.evt-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.evt{position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:340px; display:flex; align-items:flex-end; color:#FBF7EF; box-shadow:var(--shadow)}
.evt img{position:absolute; inset:0; width:100%;height:100%;object-fit:cover; z-index:0; transition:transform .8s var(--ease)}
.evt:hover img{transform:scale(1.07)}
.evt::after{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(22,30,18,.92),rgba(22,30,18,.18) 60%,rgba(22,30,18,.05))}
.evt-body{position:relative; z-index:2; padding:26px}
.evt-body h3{color:#fff; font-size:1.5rem}
.evt-body p{color:rgba(251,247,239,.85); font-size:.95rem; margin:.5rem 0 0}
.evt-body .cap{font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft); font-weight:700}

/* ---------- reviews marquee ---------- */
.reviews{background:var(--paper-2); overflow:hidden}
.marquee-wrap{position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee{display:flex; gap:22px; width:max-content; animation:marquee 56s linear infinite}
.marquee:has(.review-card:hover){animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.review-card{
  width:380px; flex:none; background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px; box-shadow:var(--shadow-sm); transition:border-color .25s, box-shadow .25s, transform .25s;
}
.review-card:hover{border-color:var(--gold-soft); box-shadow:0 0 0 2px var(--gold-soft), var(--shadow); transform:translateY(-3px)}
.review-stars{color:var(--gold); letter-spacing:2px; font-size:1rem; margin-bottom:.5rem}
.review-text{font-family:'Playfair Display',serif; font-style:italic; font-size:1.1rem; line-height:1.5; color:var(--ink)}
.review-who{display:flex; align-items:center; gap:.7rem; margin-top:1.1rem}
.review-av{width:40px;height:40px;border-radius:50%; background:linear-gradient(135deg,var(--forest-soft),var(--forest)); color:#F3EEDF; display:grid; place-items:center; font-family:'Playfair Display',serif; font-size:1.1rem}
.review-who b{font-size:.95rem}.review-who small{display:block; color:var(--ink-3); font-size:.8rem}

/* ---------- reservation form ---------- */
.resv{background:var(--forest-2); color:#F3EEDF; position:relative; overflow:hidden}
.resv::before{content:""; position:absolute; inset:0; background:radial-gradient(800px 460px at 12% 110%, rgba(166,124,46,.2), transparent 60%)}
.resv-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; align-items:center; position:relative}
.resv .eyebrow{color:var(--gold-soft)}.resv .eyebrow::before{background:var(--gold-soft)}
.resv h2{color:#fff}
.resv p{color:rgba(243,238,223,.85)}
.resv-hours{margin-top:1.6rem; display:grid; gap:.5rem; font-size:.96rem}
.resv-hours .row{display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid rgba(243,238,223,.16)}
.resv-hours .row b{color:#fff}
.resv-hours .closed{color:var(--gold-soft)}
.form-card{background:var(--card); color:var(--ink); border-radius:var(--r-lg); padding:30px; box-shadow:var(--shadow-lg)}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.field{margin-bottom:16px}
.field label{display:block; font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink-2); margin-bottom:.4rem; text-transform:uppercase}
.field input,.field select,.field textarea{
  width:100%; padding:.8em .9em; border:1.5px solid var(--line); border-radius:10px; background:var(--paper);
  font-family:inherit; font-size:1rem; color:var(--ink); transition:border-color .2s, box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--forest); box-shadow:0 0 0 3px rgba(43,58,40,.12)}
.field textarea{resize:vertical; min-height:84px}
.form-note{font-size:.84rem; color:var(--ink-3); margin-top:.4rem}
.form-msg{margin-top:14px; padding:12px 14px; border-radius:10px; background:rgba(111,160,58,.12); border:1px solid rgba(111,160,58,.4); color:var(--forest); font-size:.92rem; display:none}
.form-msg.show{display:block}

/* ---------- contact / map ---------- */
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:40px; align-items:stretch}
.contact-info{display:grid; gap:18px; align-content:start}
.ci{display:flex; gap:1rem; align-items:flex-start}
.ci-ic{width:46px;height:46px;flex:none;border-radius:12px; background:var(--paper-2); border:1px solid var(--line); display:grid; place-items:center; color:var(--forest)}
.ci-ic svg{width:21px;height:21px}
.ci b{display:block; font-family:'Playfair Display',serif; font-size:1.12rem}
.ci a,.ci span{color:var(--ink-2)}
.ci a:hover{color:var(--forest)}
.map-card{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); min-height:380px}
.map-card iframe{width:100%; height:100%; min-height:380px; border:0; display:block}

/* ---------- page hero (sub-pages) ---------- */
.phead{position:relative; padding:160px 0 70px; color:#FBF7EF; overflow:hidden}
.phead-bg{position:absolute; inset:0; z-index:0}
.phead-bg img{width:100%;height:100%;object-fit:cover}
.phead::after{content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(28,38,25,.9),rgba(30,40,26,.6))}
.phead-inner{position:relative; z-index:2; max-width:720px}
.phead .eyebrow{color:var(--gold-soft)}.phead .eyebrow::before{background:var(--gold-soft)}
.phead h1{font-size:clamp(2.3rem,5vw,3.6rem); color:#fff}
.phead p{color:rgba(251,247,239,.9); font-size:1.12rem; margin-top:.8rem; max-width:560px}
.crumbs{font-size:.84rem; color:rgba(251,247,239,.7); margin-bottom:1rem; letter-spacing:.04em}
.crumbs a:hover{color:#fff}

/* ---------- menu (speisekarte / weinkarte) ---------- */
.menu-tabs{display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-bottom:40px}
.menu-tab{font-family:'Karla',sans-serif; font-weight:700; font-size:.92rem; letter-spacing:.04em; padding:.7em 1.4em; border-radius:999px; border:1.5px solid var(--line); background:var(--card); color:var(--ink-2); cursor:pointer; transition:.25s}
.menu-tab:hover{border-color:var(--forest); color:var(--forest)}
.menu-tab.active{background:var(--forest); color:#FBF7EF; border-color:var(--forest)}
.menu-panel{display:none}
.menu-panel.active{display:block; animation:fade .5s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.menu-cat{margin-bottom:46px}
.menu-cat h3{font-size:1.7rem; color:var(--forest); display:flex; align-items:center; gap:1rem; margin-bottom:1.4rem}
.menu-cat h3::after{content:""; flex:1; height:1px; background:var(--line)}
.menu-cat h3 .ico{width:22px;height:22px;color:var(--gold)}
.menu-list{display:grid; gap:.2rem}
.mi{display:grid; grid-template-columns:1fr auto; gap:.4rem 1rem; padding:.85rem 0; border-bottom:1px dashed var(--line); align-items:baseline}
.mi-main{min-width:0}
.mi-name{font-family:'Playfair Display',serif; font-size:1.18rem; color:var(--ink); display:inline-flex; align-items:center; gap:.5rem; flex-wrap:wrap}
.mi-veg{font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--leaf); border:1px solid var(--leaf); border-radius:6px; padding:.1em .5em}
.mi-desc{font-size:.95rem; color:var(--ink-2); margin-top:.18rem}
.mi-aller{font-size:.74rem; color:var(--ink-3); letter-spacing:.04em; margin-top:.25rem}
.mi-price{font-family:'Karla',sans-serif; font-weight:700; font-size:1.08rem; color:var(--gold); white-space:nowrap; font-variant-numeric:tabular-nums}
.mi-price .two{display:inline-flex; gap:.9rem}
.mi-price small{display:block; font-weight:600; font-size:.66rem; color:var(--ink-3); letter-spacing:.06em; text-transform:uppercase; text-align:right}
.menu-note{background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r); padding:18px 22px; font-size:.92rem; color:var(--ink-2); margin-top:10px}
.menu-banner{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; background:linear-gradient(120deg,var(--forest),var(--forest-soft)); color:#F3EEDF; border-radius:var(--r-lg); padding:26px 30px; margin-bottom:40px}
.menu-banner h3{color:#fff; font-size:1.5rem}
.menu-banner p{margin:.3rem 0 0; color:rgba(243,238,223,.85); font-size:.96rem}
.menu-banner .price-badge{font-family:'Playfair Display',serif; font-size:2.2rem; color:var(--gold-soft); white-space:nowrap}

/* day plan (mittagsteller) */
.days{display:grid; grid-template-columns:repeat(2,1fr); gap:16px}
.day{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 20px; box-shadow:var(--shadow-sm); border-left:4px solid var(--gold)}
.day.closed{border-left-color:var(--bordeaux); opacity:.85}
.day .dow{font-size:.76rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold)}
.day.closed .dow{color:var(--bordeaux)}
.day h4{font-family:'Playfair Display',serif; font-weight:600; font-size:1.18rem; margin:.3rem 0 .2rem}
.day p{font-size:.9rem; color:var(--ink-2); margin:0}

/* wine highlight cards (home teaser) */
.wine-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.wine{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px; box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s}
.wine:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.wine .cat{font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold)}
.wine h4{font-family:'Playfair Display',serif; font-size:1.2rem; margin:.4rem 0 .2rem; color:var(--ink)}
.wine .winery{font-size:.9rem; color:var(--ink-2)}
.wine .price{font-weight:700; color:var(--forest); margin-top:.7rem; font-variant-numeric:tabular-nums}

/* ---------- footer ---------- */
.footer{background:var(--forest-2); color:rgba(243,238,223,.82); padding:70px 0 30px}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px; margin-bottom:46px}
.footer h4{color:#fff; font-family:'Playfair Display',serif; font-size:1.05rem; margin-bottom:1rem}
.footer-brand .fb-name{font-family:'Playfair Display',serif; font-size:1.7rem; color:#fff}
.footer-brand .fb-name .leaf{color:var(--leaf)}
.footer-brand p{font-size:.92rem; margin-top:.7rem; max-width:280px}
.footer ul{list-style:none; padding:0; margin:0; display:grid; gap:.55rem; font-size:.93rem}
.footer ul a:hover{color:#fff}
.foot-soc{display:flex; gap:.6rem; margin-top:1rem}
.foot-soc a{width:40px;height:40px;border-radius:10px; border:1px solid rgba(243,238,223,.25); display:grid; place-items:center; transition:.2s}
.foot-soc a:hover{background:rgba(243,238,223,.1); border-color:var(--gold-soft); color:#fff}
.foot-soc svg{width:19px;height:19px}
.footer-legal{font-size:.82rem; color:rgba(243,238,223,.6); line-height:1.7}
.footer-bottom{border-top:1px solid rgba(243,238,223,.16); padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.83rem; color:rgba(243,238,223,.6)}
.footer-bottom a{text-decoration:underline; text-underline-offset:3px}
.footer-bottom a:hover{color:#fff}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .welcome-grid,.chef-grid,.split,.resv-grid,.contact-grid{grid-template-columns:1fr; gap:40px}
  .split.rev .split-media{order:0}
  .dishes-grid{grid-template-columns:1fr 1fr}
  .evt-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr; gap:30px}
  .chef-media{max-width:420px; margin-inline:auto; aspect-ratio:5/4}
}
@media (max-width:620px){
  body{font-size:16px}
  .section{padding:64px 0}
  .dishes-grid,.evt-grid,.wine-grid,.facts,.form-row,.days{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
  .hero-meta{gap:1.2rem 1.6rem}
  .mi{grid-template-columns:1fr; gap:.2rem}
  .mi-price{text-align:left}
}
