/* ============================================================
   Steakhouse Gutshof Herborn – Magazin-Theme
   Aufbau wie restaurant-wetzlarerhof.de (hell, food-first,
   viel Weißraum), CI des Steakhouse: Gutshof-Rot #9E0E21,
   Anthrazit #38373A, Anton-Headlines + Playfair-Kursiv-Akzente.
   ============================================================ */

:root {
  /* helle Flächen (warmes Knochenweiß) */
  --cream:  #F4F0EA;
  --paper:  #ffffff;
  --sand:   #EAE3D8;
  /* Tinte / Text (Anthrazit aus dem Logo) */
  --ink:    #2A2828;
  --ink-2:  #5B5653;
  --ink-3:  #857E79;
  --line:   #E2DAD0;
  /* Akzente – Rot aus dem Logo; auf dunklen Flächen helleres Korallrot */
  --accent:   #9E0E21;
  --accent-d: #7A0A19;
  --accent-l: #EE7A72;
  --primary:  #38373A;
  --dark:   #1D1B1B;
  --dark-2: #262323;
  --red:    #b3261e;
  --green:  #2e7d4f;
  --white:  #ffffff;
  --bg:     #F4F0EA;
  --text:   #2A2828;
  --text-lt:#5B5653;

  --ff-h: 'Anton', Impact, 'Arial Narrow', sans-serif;
  --ff-s: 'Playfair Display', Georgia, serif;
  --ff-b: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --rad: 4px;
  --rad-lg: 10px;
  --ease: .35s cubic-bezier(.4,0,.2,1);
  --shadow-sm: 0 2px 16px rgba(42,40,40,.06);
  --shadow:    0 14px 44px rgba(42,40,40,.10);
  --shadow-lg: 0 30px 70px rgba(16,12,12,.32);
  --container: 1200px;
  --container-wide: 1340px;
  --sp-section: clamp(5rem, 10vw, 9rem);
  --topbar-h: 40px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--ff-b); background: var(--cream); color: var(--ink); line-height: 1.7; overflow-x: hidden; }
img, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; color: inherit; }
input, select, textarea { font-family: inherit; }
::selection { background: var(--accent); color: #fff; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
[id] { scroll-margin-top: 104px; }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 2.3rem; border-radius:var(--rad); font-size:.78rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; transition:background var(--ease),color var(--ease),transform var(--ease),box-shadow var(--ease),border-color var(--ease); }
.btn-prim { background:var(--accent); color:#fff; }
.btn-prim:hover { background:var(--accent-d); transform:translateY(-2px); box-shadow:0 10px 26px rgba(158,14,33,.32); }
.btn-out { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.6); font-weight:500; }
.btn-out:hover { background:#fff; color:var(--ink); transform:translateY(-2px); }
.btn-line { background:transparent; color:var(--ink); border:1.5px solid var(--ink); font-weight:600; }
.btn-line:hover { background:var(--ink); color:var(--cream); transform:translateY(-2px); }
.btn-dl { background:var(--accent); color:#fff; }
.btn-dl:hover { background:var(--accent-d); transform:translateY(-2px); box-shadow:0 10px 26px rgba(158,14,33,.32); }
.btn-white { background:#fff; color:var(--accent); font-weight:700; }
.btn-white:hover { background:var(--cream); transform:translateY(-2px); }

/* ── INFO-BANNER(S) (Announcements) – schlanke Leisten, Button am Textende ── */
#promo-banners { position:relative; z-index:1100; }
.promo-banner { position:relative; background:var(--dark); color:#fff; text-align:center; line-height:1.45;
  padding:.62rem clamp(2.6rem,7vw,3.25rem); font-size:.88rem; }
.promo-banner + .promo-banner { border-top:1px solid rgba(255,255,255,.14); }
.promo-text strong { font-weight:700; }
.promo-text a { color:#fff; text-decoration:underline; }
.promo-view { display:inline-block; vertical-align:middle; margin-left:.65rem; background:var(--accent); color:#fff;
  font-weight:700; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; padding:.33rem .95rem;
  border-radius:999px; white-space:nowrap; transition:background var(--ease),transform var(--ease); }
.promo-view:hover { background:var(--accent-d); transform:translateY(-1px); }
.promo-banner .promo-close { position:absolute; right:.7rem; top:50%; transform:translateY(-50%); width:24px; height:24px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.05rem; opacity:.72;
  transition:background var(--ease),opacity var(--ease); }
.promo-banner .promo-close:hover { background:rgba(255,255,255,.16); opacity:1; }
@media (max-width:560px){ .promo-banner { font-size:.8rem; padding:.55rem 2.3rem; } .promo-view { font-size:.66rem; padding:.3rem .8rem; margin-left:.5rem; } }

/* ── TOPBAR (Öffnungszeiten über der Kopfzeile – rote Leiste wie in der CI) ── */
#topbar { background:var(--accent); color:rgba(255,255,255,.9); font-size:.78rem; letter-spacing:.02em; }
#topbar .tb-inner { max-width:var(--container-wide); margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); height:var(--topbar-h);
  display:flex; align-items:center; justify-content:space-between; gap:1rem; }
#topbar .tb-hours { display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; }
#topbar .tb-hours span { display:inline-flex; align-items:center; gap:.45rem; white-space:nowrap; }
#topbar .tb-hours .tb-strong { font-weight:600; letter-spacing:.08em; text-transform:uppercase; font-size:.74rem; }
#topbar .tb-hours .closed { color:rgba(255,255,255,.72); }
#topbar .tb-right { display:flex; align-items:center; gap:1.4rem; }
#topbar .tb-right a { display:inline-flex; align-items:center; gap:.45rem; transition:color var(--ease),opacity var(--ease); white-space:nowrap; }
#topbar .tb-right a:hover { color:#fff; opacity:.85; }
#topbar svg { color:#fff; opacity:.85; }

/* ── NAVBAR ── */
#navbar { position:sticky; top:0; z-index:1000; display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(1.25rem,4vw,2.5rem); height:124px; background:var(--cream);
  border-bottom:1px solid transparent; transition:height var(--ease), box-shadow var(--ease), background var(--ease); }
#navbar.scrolled { height:96px; box-shadow:0 6px 30px rgba(42,40,40,.09); background:rgba(244,240,234,.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.nav-logo { flex-shrink:0; }
.nav-logo img { height:96px; width:auto; object-fit:contain; transition:height var(--ease); }
#navbar.scrolled .nav-logo img { height:72px; }
.nav-links { display:flex; align-items:center; gap:clamp(.7rem,1.5vw,1.3rem); list-style:none; }
.nav-links a { color:var(--ink); font-size:.76rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; white-space:nowrap;
  transition:color var(--ease); position:relative; padding-bottom:3px; }
.nav-links a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1.5px; background:var(--accent); transition:width var(--ease); }
.nav-links a:hover { color:var(--accent); }
.nav-links a:hover::after { width:100%; }
.nav-links .nav-partner { color:var(--ink-3); }
.nav-cta { background:var(--accent)!important; color:#fff!important; padding:.6rem 1.4rem!important; border-radius:var(--rad)!important; letter-spacing:.13em; transition:background var(--ease),transform var(--ease)!important; }
.nav-cta:hover { background:var(--accent-d)!important; transform:translateY(-1px); }
.nav-cta::after { display:none!important; }
.hamburger { display:none; flex-direction:column; gap:5px; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--ink); border-radius:2px; transition:all .3s; }

/* ── TYPO: Anton-Headlines, Playfair-Kursiv als Akzent ── */
.hero-text h1, .s-title { font-family:var(--ff-h); font-weight:400; text-transform:uppercase; letter-spacing:.01em; }
.hero-text h1 em, .s-title em { font-family:var(--ff-s); font-style:italic; font-weight:400; text-transform:none; letter-spacing:-.01em; color:var(--accent); }

/* ── HERO (Split, food-first) ── */
#home { display:grid; grid-template-columns:1.05fr 1fr; min-height:calc(92vh - var(--topbar-h)); background:var(--cream); }
.hero-text { display:flex; flex-direction:column; justify-content:center; padding:clamp(2.5rem,7vw,6rem) clamp(1.5rem,6vw,5.5rem); }
.hero-kicker { display:inline-flex; align-items:center; gap:.8rem; color:var(--accent); font-size:.74rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; margin-bottom:1.6rem; }
.hero-kicker::before { content:''; width:38px; height:1px; background:var(--accent); }
.hero-text h1 { font-size:clamp(3rem,6.6vw,5.8rem); line-height:.98; color:var(--ink); margin-bottom:1.6rem; }
.hero-text h1 em { display:block; font-size:.78em; line-height:1.1; margin-top:.15em; }
.hero-tagline { font-size:1.1rem; color:var(--ink-2); max-width:460px; line-height:1.75; margin-bottom:2.4rem; }
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-facts { display:flex; flex-wrap:wrap; gap:.6rem 1.8rem; margin-top:2.4rem; padding-top:1.6rem; border-top:1px solid var(--line); max-width:520px; }
.hero-facts span { display:inline-flex; align-items:center; gap:.5rem; font-size:.84rem; color:var(--ink-2); }
.hero-facts svg { color:var(--accent); flex-shrink:0; }
.hero-media { position:relative; overflow:hidden; min-height:50vh; background:var(--dark); }
.hero-media img, .hero-media video { width:100%; height:100%; object-fit:cover; object-position:62% 70%; }
.hero-media::after { content:''; position:absolute; inset:0; box-shadow:inset 0 0 120px rgba(16,12,12,.25); pointer-events:none; }
.hero-scroll { position:absolute; left:50%; bottom:1.6rem; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column;
  align-items:center; gap:.4rem; color:rgba(255,255,255,.85); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; animation:bounce 2.5s infinite; }
.hero-scroll svg { width:20px; height:20px; }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(7px)} }

/* ── SHARED ── */
section { padding:var(--sp-section) 0; }
.container { max-width:var(--container); margin:0 auto; padding:0 clamp(1.25rem,4vw,2rem); }
.container-wide { max-width:var(--container-wide); margin:0 auto; padding:0 clamp(1.25rem,4vw,2rem); }
.s-label { display:inline-flex; align-items:center; gap:.85rem; font-size:.72rem; font-weight:600; letter-spacing:.3em;
  text-transform:uppercase; color:var(--accent); margin-bottom:1.1rem; }
.s-label::before { content:''; width:34px; height:1px; background:currentColor; opacity:.6; }
.s-title { font-size:clamp(2.4rem,5vw,3.9rem); color:var(--ink); line-height:1.02; margin-bottom:1.4rem; }
.s-text { font-size:1.06rem; color:var(--ink-2); max-width:600px; line-height:1.85; }
.s-text + .s-text { margin-top:1rem; }
.divider { width:56px; height:2px; background:var(--accent); margin:1.4rem 0; }
.fade { opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease; }
.fade.d1{transition-delay:.1s} .fade.d2{transition-delay:.2s} .fade.d3{transition-delay:.3s}
.fade.vis { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){ .fade{opacity:1;transform:none;transition:none} html{scroll-behavior:auto} }

/* ── SPEISEKARTE (Priorität, food-first) ── */
#speisekarte { background:var(--paper); overflow:hidden; }
.menu-hdr { text-align:center; margin-bottom:1rem; }
.menu-hdr .s-label { justify-content:center; }
.menu-hdr .s-text { margin:0 auto; }
.menu-hdr .divider { margin:1.4rem auto; }

/* Steak-Showcase (Freisteller schweben auf Papierweiß) */
.dish-showcase { display:flex; flex-direction:column; align-items:center; padding:2rem 0 1rem; }
.dish-show-stage { position:relative; width:min(480px,84vw); aspect-ratio:1; cursor:pointer; user-select:none; perspective:900px; }
.dish-show-stage::after { content:''; position:absolute; left:50%; bottom:9%; transform:translateX(-50%);
  width:56%; height:5%; background:rgba(42,30,30,.22); border-radius:50%; filter:blur(16px); z-index:0; pointer-events:none; }
.dish-show-item { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:1; }
.dish-show-item img { width:100%; height:100%; object-fit:contain; opacity:0; will-change:transform,opacity; backface-visibility:hidden; }
@keyframes dish-rock { 0%,100%{transform:scale(1) translateY(0) rotate(0)} 50%{transform:scale(1.03) translateY(-6px) rotate(-1.5deg)} }
.dish-show-item.active { pointer-events:auto; }
.dish-show-item.active img { opacity:1; animation:dish-rock 7s ease-in-out infinite; }
@keyframes dish-flip-out { 0%{transform:rotateX(0)} 100%{transform:rotateX(-90deg)} }
.dish-show-item.leaving img { animation:dish-flip-out .32s ease-in forwards!important; opacity:1; }
@keyframes dish-flip-in { 0%{transform:rotateX(90deg)} 100%{transform:rotateX(0)} }
.dish-show-item.entering img { animation:dish-flip-in .38s ease-out forwards!important; opacity:1; }
.dish-caption { text-align:center; margin-top:.4rem; min-height:3.6rem; }
.dish-caption strong { display:block; font-family:var(--ff-h); font-weight:400; font-size:clamp(1.6rem,3vw,2.1rem); text-transform:uppercase; letter-spacing:.02em; color:var(--ink); line-height:1.1; }
.dish-caption span { display:block; font-family:var(--ff-s); font-style:italic; font-size:1.05rem; color:var(--accent); margin-top:.15rem; }
.dish-hint { display:flex; flex-direction:column; align-items:center; gap:.35rem; color:var(--ink-3); font-size:.7rem;
  letter-spacing:.2em; text-transform:uppercase; margin-top:1rem; animation:hint-pulse 2.5s ease-in-out infinite; }
.dish-hint svg { width:16px; height:16px; }
@keyframes hint-pulse { 0%,100%{opacity:.45;transform:translateY(0)} 50%{opacity:.85;transform:translateY(4px)} }
.dish-dots { display:flex; gap:.5rem; margin-top:1rem; }
.dish-dot { width:7px; height:7px; border-radius:50%; background:var(--line); cursor:pointer; transition:all .3s; }
.dish-dot.active { background:var(--accent); width:20px; border-radius:4px; }
.dish-counter { color:var(--ink-3); font-size:.75rem; letter-spacing:.12em; margin-top:.6rem; }

/* Steak-Übersicht (Zuschnitte · Herkunft · Gewichte) */
.cuts { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:3rem auto 0; max-width:1040px;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cut { padding:1.6rem 1.4rem; text-align:center; }
.cut + .cut { border-left:1px solid var(--line); }
.cut h3 { font-family:var(--ff-h); font-weight:400; font-size:1.45rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink); line-height:1.1; }
.cut p { font-size:.9rem; color:var(--ink-2); margin-top:.45rem; line-height:1.55; }
.cut .cut-w { display:inline-block; margin-top:.7rem; font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.cuts-note { text-align:center; font-size:.86rem; color:var(--ink-3); margin-top:1rem; }

/* Menu Slider */
.menu-slider-wrap { position:relative; max-width:640px; margin:3.5rem auto 0; }
.menu-slider { position:relative; border-radius:var(--rad); overflow:hidden; box-shadow:var(--shadow); background:#fff; aspect-ratio:1414/2000; }
.slide-track { display:flex; height:100%; transition:transform .5s cubic-bezier(.4,0,.2,1); }
.slide { min-width:100%; height:100%; }
.slide img { width:100%; height:100%; object-fit:contain; background:#fff; display:block; }
.slider-empty { display:flex; align-items:center; justify-content:center; height:100%; color:var(--ink-3); font-size:.95rem; text-align:center; padding:2rem; }
.slider-btn { position:absolute; top:50%; transform:translateY(-50%); z-index:10; width:46px; height:46px; border-radius:50%;
  background:var(--paper); color:var(--ink); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); transition:background var(--ease),color var(--ease),transform var(--ease); }
.slider-btn:hover { background:var(--accent); color:#fff; transform:translateY(-50%) scale(1.08); }
.slider-btn.prev { left:-56px; } .slider-btn.next { right:-56px; }
.slider-btn svg { width:20px; height:20px; }
.slider-dots { display:flex; gap:.5rem; justify-content:center; margin-top:1.25rem; flex-wrap:wrap; }
.slider-dots span { width:8px; height:8px; border-radius:50%; background:var(--line); cursor:pointer; transition:all var(--ease); }
.slider-dots span.active { background:var(--accent); width:22px; border-radius:4px; }
.slider-counter { text-align:center; color:var(--ink-3); font-size:.8rem; margin-top:.75rem; letter-spacing:.1em; }
.menu-actions { display:flex; gap:1rem; justify-content:center; margin-top:2.5rem; flex-wrap:wrap; }

/* ── TOMAHAWK (dunkles Split-Band, Video + drei Schritte) ── */
#tomahawk { padding:0; background:var(--dark); color:#fff; }
.tom-grid { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.tom-media { position:relative; overflow:hidden; min-height:560px; background:#000; }
.tom-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tom-body { padding:clamp(3rem,7vw,6rem) clamp(1.5rem,6vw,5.5rem); display:flex; flex-direction:column; justify-content:center; }
.tom-body .s-label { color:var(--accent-l); }
.tom-body .s-title { color:#fff; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.tom-body .s-title em { color:var(--accent-l); }
.tom-body .s-title img { width:clamp(96px,10vw,140px); height:auto; margin-left:.4rem; }
.tom-body .divider { background:var(--accent-l); }
.tom-steps { list-style:none; display:flex; flex-direction:column; gap:1.5rem; margin:1rem 0 2.4rem; counter-reset:tom; }
.tom-steps li { display:grid; grid-template-columns:3.2rem 1fr; gap:1rem; align-items:start; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.12); }
.tom-steps li::before { counter-increment:tom; content:'0' counter(tom); font-family:var(--ff-h); font-size:1.7rem; line-height:1; color:var(--accent-l); }
.tom-steps h3 { font-size:.78rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:#fff; margin-bottom:.35rem; }
.tom-steps p { font-size:.98rem; color:rgba(255,255,255,.78); line-height:1.75; }
.tom-body .btn { align-self:flex-start; }

/* ── GALERIE (food-forward) ── */
#galerie { background:var(--cream); }
.gal-intro { text-align:center; margin-bottom:3.5rem; }
.gal-intro .s-label { justify-content:center; }
.gal-intro .s-text { margin:0 auto; }
.gal-intro .divider { margin:1.4rem auto; }
.gal-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:230px; gap:12px; }
.gal-item { overflow:hidden; border-radius:var(--rad); cursor:pointer; position:relative; background:var(--sand); }
.gal-item img, .gal-item video { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; display:block; }
.gal-item:hover img, .gal-item:hover video { transform:scale(1.05); }
.gal-item.tall { grid-row:span 2; } .gal-item.wide { grid-column:span 2; }
.gal-item.is-video { cursor:default; }
.gal-ov { position:absolute; inset:0; background:rgba(29,27,27,0); transition:background var(--ease); display:flex; align-items:center; justify-content:center; }
.gal-item:hover .gal-ov { background:rgba(29,27,27,.3); }
.gal-ov svg { color:#fff; opacity:0; transition:opacity var(--ease); width:34px; height:34px; }
.gal-item:hover .gal-ov svg { opacity:1; }
#lightbox { position:fixed; inset:0; background:rgba(16,12,12,.95); z-index:9999; display:none; align-items:center; justify-content:center; padding:2rem; }
#lightbox.active { display:flex; }
#lightbox img { max-width:92vw; max-height:88vh; object-fit:contain; border-radius:2px; }
#lb-close { position:absolute; top:1.5rem; right:1.5rem; color:#fff; font-size:2rem; cursor:pointer; opacity:.75; transition:opacity .2s; }
#lb-close:hover { opacity:1; }

/* ── SPLIT-BAND (editorial) ── */
.split { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.split .split-media { position:relative; overflow:hidden; min-height:560px; }
.split .split-media img, .split .split-media video { width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.split:hover .split-media img { transform:scale(1.04); }
.split .split-body { display:flex; flex-direction:column; justify-content:center; padding:clamp(2.5rem,6vw,5.5rem); background:var(--paper); }
.split-rev .split-media { order:2; }
.split-media .media-inset { position:absolute; right:1.5rem; bottom:1.5rem; width:36%; aspect-ratio:3/4; border:6px solid var(--paper); box-shadow:var(--shadow-lg); border-radius:2px; overflow:hidden; }
.split-media .media-inset img { width:100%; height:100%; object-fit:cover; }
.split-body .feat-row { display:flex; flex-wrap:wrap; gap:.8rem 2rem; margin-top:1.9rem; }
.split-body .feat-row div { display:flex; align-items:center; gap:.55rem; font-size:.9rem; color:var(--ink); }
.split-body .feat-row svg { color:var(--accent); flex-shrink:0; }

/* ── WHISKY & ZIGARREN BAR (Video als Loop-Hintergrund) ── */
#bar { padding:0; background:var(--dark); }
.terr-band { position:relative; overflow:hidden; background:var(--dark); }
.terr-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.terr-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(16,12,12,.9) 0%, rgba(16,12,12,.6) 50%, rgba(16,12,12,.28) 100%); }
.terr-inner { position:relative; z-index:2; max-width:var(--container); margin:0 auto; padding:clamp(4.5rem,10vw,8rem) clamp(1.25rem,4vw,2rem); min-height:72vh; display:flex; align-items:center; }
.terr-content { max-width:640px; color:#fff; }
.terr-content .s-label { color:var(--accent-l); }
.terr-content .s-title { color:#fff; }
.terr-content .s-title em { color:var(--accent-l); }
.terr-content .s-text { color:rgba(255,255,255,.9); }
.terr-content .divider { background:var(--accent-l); }
.terr-list { display:flex; flex-direction:column; gap:.7rem; margin:1.8rem 0; }
.terr-item { display:flex; align-items:center; gap:.7rem; font-size:.95rem; color:rgba(255,255,255,.92); }
.terr-item svg { color:var(--accent-l); flex-shrink:0; }
.terr-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:8px; background:var(--dark-2); }
.terr-strip .gal-item { height:230px; }
@media(max-width:767px){ .terr-strip{grid-template-columns:repeat(2,1fr);} .terr-strip .gal-item{height:160px;} .terr-inner{min-height:62vh;} }

/* ── RESERVIERUNG (Formular) ── */
#reservierung { background:var(--cream); }
.res-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,5vw,4.5rem); align-items:start; }
.res-info h3 { font-family:var(--ff-s); font-weight:400; font-size:1.35rem; color:var(--ink); margin-bottom:.9rem; }
.res-info p { font-size:.98rem; color:var(--ink-2); line-height:1.8; margin-bottom:1.5rem; }
.hours-list { list-style:none; }
.hours-list li { display:flex; justify-content:space-between; gap:1rem; font-size:.92rem; padding:.65rem 0; border-bottom:1px solid var(--line); }
.hours-list li span:last-child { color:var(--ink-2); }
.hours-list li.closed span:last-child { color:var(--red); }
.res-phone { display:inline-flex; align-items:center; gap:.6rem; margin-top:1.6rem; font-family:var(--ff-h); font-size:1.7rem; letter-spacing:.02em; color:var(--ink); }
.res-phone svg { color:var(--accent); }
.res-phone-note { font-size:.84rem; color:var(--ink-3); margin-top:.6rem; }

/* Formular */
.form-card { background:var(--paper); padding:clamp(1.75rem,4vw,2.6rem); border-radius:var(--rad-lg); box-shadow:var(--shadow-sm); border:1px solid var(--line); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-row.three { grid-template-columns:1fr 1fr 1fr; }
.fg { margin-bottom:1.2rem; }
.fg label { display:block; font-size:.76rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:.45rem; }
.fg label .req { color:var(--accent); margin-left:2px; }
.fc { width:100%; padding:.8rem 1rem; background:var(--cream); border:1.5px solid var(--line); border-radius:var(--rad);
  font-size:.95rem; color:var(--ink); transition:border-color var(--ease),box-shadow var(--ease); appearance:none; -webkit-appearance:none; }
.fc:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(158,14,33,.12); background:#fff; }
.fc::placeholder { color:#ADA49B; }
select.fc { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239E0E21' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; }
textarea.fc { resize:vertical; min-height:90px; }
.fg-check { display:flex; align-items:flex-start; gap:.6rem; font-size:.84rem; color:var(--ink-2); }
.fg-check input { margin-top:.2rem; accent-color:var(--accent); }
.fg-check label { text-transform:none; letter-spacing:0; font-weight:400; font-size:.84rem; color:var(--ink-2); }
.fg-check a { color:var(--accent); text-decoration:underline; }
.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-submit { width:100%; padding:1rem; background:var(--accent); color:#fff; border-radius:var(--rad); font-size:.8rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; transition:background var(--ease),transform var(--ease); margin-top:.4rem; }
.form-submit:hover:not(:disabled) { background:var(--accent-d); transform:translateY(-1px); }
.form-submit:disabled { opacity:.6; cursor:not-allowed; }
.form-note { font-size:.78rem; color:var(--ink-3); margin-top:1rem; text-align:center; }
.form-msg { text-align:center; padding:.85rem 1rem; border-radius:var(--rad); font-size:.9rem; margin-top:1rem; display:none; }
.form-msg.ok  { display:block; background:rgba(46,125,79,.12); color:var(--green); }
.form-msg.err { display:block; background:rgba(179,38,30,.1); color:var(--red); }

/* ── CATERING & TENNE ── */
#catering { background:var(--paper); }
.cat-card { display:grid; grid-template-columns:1.1fr 1fr; border-radius:var(--rad-lg); overflow:hidden; background:var(--dark); color:#fff; box-shadow:var(--shadow); }
.cat-media { position:relative; min-height:440px; background:#000; }
.cat-media video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cat-body { padding:clamp(2rem,5vw,3.6rem); display:flex; flex-direction:column; justify-content:center; }
.cat-body .s-label { color:var(--accent-l); }
.cat-body .s-title { color:#fff; font-size:clamp(2.1rem,4vw,3.2rem); }
.cat-body .s-title em { color:var(--accent-l); }
.cat-body .s-text { color:rgba(255,255,255,.84); font-size:1rem; }
.cat-stat { display:flex; align-items:baseline; gap:.8rem; margin:1.4rem 0 1.2rem; }
.cat-stat strong { font-family:var(--ff-h); font-weight:400; font-size:clamp(3rem,6vw,4.2rem); line-height:1; color:var(--accent-l); }
.cat-stat span { font-size:.8rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.85); }
.cat-form-hdr { text-align:center; margin:4rem auto 0; max-width:640px; }
.cat-form-hdr .s-label { justify-content:center; }
.cat-form-hdr .s-title { font-size:clamp(2rem,4vw,2.9rem); }
.cat-form-hdr .s-text { margin:0 auto; }

/* ── KONTAKT ── */
#kontakt { background:var(--cream); }
.kont-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:3rem; margin-bottom:4rem; }
.kont-card h3 { font-family:var(--ff-s); font-weight:400; font-size:1.3rem; color:var(--ink); margin-bottom:1.25rem; padding-bottom:.7rem; border-bottom:2px solid var(--accent); display:inline-block; }
.klink { display:flex; align-items:flex-start; gap:.6rem; font-size:.93rem; color:var(--ink-2); margin-bottom:.6rem; transition:color var(--ease); }
.klink svg { color:var(--accent); flex-shrink:0; margin-top:2px; }
a.klink:hover { color:var(--accent); }
.hours-tbl { width:100%; border-collapse:collapse; }
.hours-tbl td { padding:.5rem 0; font-size:.9rem; color:var(--ink-2); border-bottom:1px solid var(--line); }
.hours-tbl td:first-child { font-weight:500; color:var(--ink); width:55%; }
.hours-tbl .closed td { color:var(--red); }
.kont-img { width:100%; height:150px; object-fit:cover; border-radius:var(--rad); margin-top:1.4rem; }
.map-wrap { border-radius:var(--rad-lg); overflow:hidden; box-shadow:var(--shadow-sm); height:440px; position:relative; border:1px solid var(--line); }
.map-wrap iframe { width:100%; height:100%; border:none; display:block; }
.map-consent { position:absolute; inset:0; background:var(--sand); color:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:1rem; padding:2rem; }
.map-consent svg { color:var(--accent); }
.map-consent p { font-size:.92rem; color:var(--ink-2); max-width:340px; }
.map-consent a { color:var(--accent); text-decoration:underline; }

/* ── PARTNER-BAND ── */
.partner-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin-top:4rem; }
.partner-band { background:var(--paper); border:1px solid var(--line); border-radius:var(--rad-lg); padding:2rem 2.2rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:1.4rem; }
.partner-band strong { color:var(--ink); display:block; font-family:var(--ff-s); font-weight:400; font-size:1.25rem; margin-bottom:.3rem; }
.partner-band p { color:var(--ink-2); font-size:.93rem; max-width:340px; }

/* ── FOOTER ── */
footer { background:var(--dark); color:rgba(244,240,234,.62); padding:4.5rem 0 2rem; }
.foot-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
.foot-brand img { height:64px; width:auto; margin-bottom:1.2rem; }
.foot-brand p { font-size:.88rem; line-height:1.75; max-width:260px; }
.foot-col h4 { font-size:.76rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--cream); margin-bottom:1rem; }
.foot-col ul { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.foot-col ul li, .foot-col ul li a { font-size:.88rem; color:rgba(244,240,234,.58); transition:color var(--ease); }
.foot-col ul li a:hover { color:var(--accent-l); }
.foot-col .closed { color:var(--accent-l); }
.foot-btm { border-top:1px solid rgba(244,240,234,.12); padding-top:2rem; display:flex; align-items:center; justify-content:space-between; font-size:.82rem; flex-wrap:wrap; gap:1rem; }
.foot-btm a { color:var(--accent-l); }
.foot-btm a:hover { text-decoration:underline; }

/* ── COOKIE-CONSENT ── */
#cookie-consent { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:5000; max-width:440px; margin:0 auto;
  background:var(--paper); color:var(--ink); border-radius:var(--rad-lg); box-shadow:var(--shadow-lg); padding:1.5rem; display:none; border:1px solid var(--line); }
#cookie-consent.show { display:block; animation:cc-in .4s ease; }
@keyframes cc-in { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
#cookie-consent h4 { font-family:var(--ff-s); font-weight:400; font-size:1.15rem; color:var(--ink); margin-bottom:.5rem; }
#cookie-consent p { font-size:.84rem; color:var(--ink-2); line-height:1.6; margin-bottom:1rem; }
#cookie-consent p a { color:var(--accent); text-decoration:underline; }
.cc-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.cc-actions button { flex:1; min-width:120px; padding:.7rem 1rem; border-radius:var(--rad); font-size:.78rem; font-weight:600; letter-spacing:.06em; transition:background var(--ease); }
/* Gleichwertige Buttons (DSGVO/DSK: Ablehnen so einfach & prominent wie Zustimmen) */
.cc-accept { background:var(--accent); color:#fff; border:1.5px solid var(--accent); } .cc-accept:hover { background:var(--accent-d); border-color:var(--accent-d); }
.cc-decline { background:var(--sand); color:var(--ink); border:1.5px solid var(--ink); } .cc-decline:hover { background:var(--cream); }
.cc-settings-toggle { background:transparent; color:var(--ink); border:1.5px solid var(--line); } .cc-settings-toggle:hover { background:var(--cream); }
.cc-settings { margin-bottom:1rem; border-top:1px solid var(--line); padding-top:.9rem; display:flex; flex-direction:column; gap:.65rem; }
.cc-settings[hidden] { display:none; }
.cc-opt { display:flex; align-items:flex-start; gap:.55rem; font-size:.82rem; color:var(--ink-2); line-height:1.4; cursor:pointer; }
.cc-opt input { margin-top:.15rem; width:16px; height:16px; accent-color:var(--accent); flex:0 0 auto; }
.cc-opt strong { color:var(--ink); font-weight:600; }
.cc-save { margin-top:.8rem; width:100%; background:var(--accent); color:#fff; border:1.5px solid var(--accent); padding:.7rem 1rem; border-radius:var(--rad); font-size:.78rem; font-weight:600; letter-spacing:.06em; transition:background var(--ease); }
.cc-save:hover { background:var(--accent-d); }
.cc-save[hidden] { display:none; }
/* Permanenter Cookie-Button unten links (Widerruf/Einstellungen jederzeit) */
.cookie-fab { position:fixed; left:1rem; bottom:1rem; z-index:4900; width:44px; height:44px; border-radius:50%;
  background:var(--paper); color:var(--accent); border:1px solid var(--line); box-shadow:var(--shadow);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform var(--ease),background var(--ease); }
.cookie-fab:hover { transform:translateY(-2px); background:var(--cream); }
@media (max-width:640px){ .cookie-fab { width:40px; height:40px; } }

/* ── FAQ ── */
#faq { padding:var(--sp-section) 0; background:var(--paper); }
.faq-hdr { text-align:center; max-width:640px; margin:0 auto 2.5rem; }
.faq-hdr .s-label { justify-content:center; }
.faq-hdr .divider { margin:1.4rem auto; }
.faq-list { max-width:760px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { list-style:none; cursor:pointer; padding:1.15rem 2.5rem 1.15rem 0; position:relative;
  font-family:var(--ff-s); font-size:clamp(1.05rem,2.4vw,1.2rem); color:var(--ink); transition:color var(--ease); }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; position:absolute; right:.2rem; top:50%; transform:translateY(-50%);
  font-size:1.5rem; color:var(--accent); line-height:1; }
.faq-item[open] summary::after { content:'\2013'; }
.faq-item summary:hover { color:var(--accent); }
.faq-a { padding:0 0 1.3rem; }
.faq-a p { color:var(--ink-2); font-size:.98rem; line-height:1.8; }
.faq-a a { color:var(--accent); text-decoration:underline; }

/* ── LEGAL ── */
.legal-page { padding-top:64px; min-height:70vh; background:var(--paper); }
.legal-page .container { max-width:820px; }
.legal-page h1 { font-family:var(--ff-h); font-weight:400; text-transform:uppercase; letter-spacing:.01em; font-size:clamp(2.2rem,5vw,3.2rem); color:var(--ink); line-height:1.05; margin-bottom:1.5rem; }
.legal-page h2 { font-family:var(--ff-s); font-weight:600; font-size:1.3rem; color:var(--ink); margin:2.2rem 0 .75rem; }
.legal-page h3 { font-size:1rem; font-weight:600; color:var(--ink); margin:1.4rem 0 .5rem; }
.legal-page p, .legal-page li { font-size:.96rem; color:var(--ink); line-height:1.85; margin-bottom:.85rem; }
.legal-page ul, .legal-page ol { padding-left:1.25rem; }
.legal-page a { color:var(--accent); text-decoration:underline; }
.legal-page .legal-meta { font-size:.85rem; color:var(--ink-3); }
.legal-page .legal-box { background:var(--cream); border:1px solid var(--line); border-radius:var(--rad-lg); padding:1.4rem 1.6rem; margin:1.2rem 0 1.6rem; }
.legal-page .legal-box p { margin-bottom:.3rem; }
.legal-page .legal-back { text-decoration:none; }
.legal-back { display:inline-flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:2rem; }

/* ── RESPONSIVE ── */
/* Nav früh ins Hamburger-Menü (viele Punkte + breites Logo; ab 1360 px passt alles in eine Zeile) */
@media(max-width:1360px){
  .hamburger{ display:flex; }
  .nav-links{ display:none; flex-direction:column; align-items:flex-start; position:absolute; top:100%; left:0; right:0;
    background:var(--cream); border-bottom:1px solid var(--line); padding:1.5rem clamp(1.25rem,4vw,2.5rem); gap:1.1rem; box-shadow:var(--shadow); max-height:calc(100vh - 100px); overflow-y:auto; }
  .nav-links.open{ display:flex; }
  .nav-links .nav-partner{ color:var(--ink); }
}
@media(max-width:1100px){ .slider-btn.prev{left:-18px} .slider-btn.next{right:-18px} }
@media(max-width:1024px){
  #home{grid-template-columns:1fr; min-height:auto; padding-top:0;}
  .hero-media{min-height:52vh; order:-1;}
  .res-grid{grid-template-columns:1fr; gap:2.5rem;}
  .kont-grid{grid-template-columns:1fr 1fr;} .foot-grid{grid-template-columns:1fr 1fr;}
  .gal-grid{grid-template-columns:repeat(3,1fr);}
  .cuts{grid-template-columns:repeat(2,1fr);} .cut:nth-child(3){border-left:none;} .cut:nth-child(n+3){border-top:1px solid var(--line);}
  .cat-card{grid-template-columns:1fr;} .cat-media{min-height:300px;}
  .partner-grid{grid-template-columns:1fr;}
}
@media(max-width:860px){
  .split,.split-rev,.tom-grid{grid-template-columns:1fr;} .split-rev .split-media{order:0;}
  .split .split-media{min-height:340px;} .tom-media{min-height:320px;}
}
@media(max-width:767px){
  :root{ --topbar-h:36px; }
  [id]{ scroll-margin-top:84px; }
  #topbar .tb-right .tb-mail, #topbar .tb-hours .tb-sun { display:none; }
  #topbar .tb-hours { gap:1rem; font-size:.72rem; }
  #topbar .tb-right { gap:1rem; }
  #navbar{ padding:0 1.25rem; height:92px; }
  #navbar.scrolled{ height:76px; }
  .nav-logo img{ height:70px; } #navbar.scrolled .nav-logo img{ height:56px; }
  .form-row,.form-row.three{grid-template-columns:1fr;}
  .kont-grid{grid-template-columns:1fr; gap:2.4rem;} .gal-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:190px; grid-auto-flow:dense;}
  .gal-item.tall{grid-row:span 2;} .gal-item.wide{grid-column:span 2;}
  .foot-grid{grid-template-columns:1fr; gap:2rem;} .foot-btm{flex-direction:column; text-align:center;}
  .partner-band{flex-direction:column; align-items:flex-start;}
  .split-media .media-inset{ width:40%; right:1rem; bottom:1rem; border-width:4px; }
}
@media(max-width:480px){
  .hero-btns{flex-direction:column; align-items:stretch;}
  .hero-kicker{ letter-spacing:.2em; }
  .hero-facts{ gap:.5rem 1.2rem; }
  .gal-grid{grid-auto-rows:150px; gap:8px;}
  .cuts{grid-template-columns:1fr;} .cut + .cut{border-left:none; border-top:1px solid var(--line);}
  #topbar .tb-right .tb-phone-label{ display:none; }
  .slider-btn{ width:40px; height:40px; }
  .slider-btn.prev{left:-10px} .slider-btn.next{right:-10px}
}

/* ── TERRASSE (helles Split mit Video, Fotostreifen auf Sand) ── */
#terrasse .split-body { background:var(--cream); }
#terrasse .split-media { background:var(--sand); }
#terrasse .split-media video { position:absolute; inset:0; }
.split-body .split-cta { align-self:flex-start; margin-top:2.2rem; }
.terr-strip.light { background:var(--sand); }
@media(max-width:480px){ .split-body .split-cta{ align-self:stretch; text-align:center; } }
/* Sicherheitsabfrage: Link zum erneuten Laden, falls die Aufgabe nicht geladen werden konnte */
.captcha-retry { display:inline; padding:0; margin:0 .15rem; color:var(--accent); font:inherit; text-decoration:underline; letter-spacing:inherit; text-transform:none; cursor:pointer; }
/* Größere Tippflächen auf Touch-Geräten (mind. ~40 px) */
.hamburger { padding:10px; margin-right:-10px; }
.promo-banner .promo-close { width:32px; height:32px; right:.45rem; }
.fg-check input { width:18px; height:18px; flex:0 0 auto; }
@media (max-width:767px){
  .promo-view { padding:.45rem 1rem; }
  .faq-item summary { padding-top:1.25rem; padding-bottom:1.25rem; }
}
/* Handy-Feinschliff (Prüfung 16.10.2026) */
@media (max-width:767px){
  .split-media .media-inset { display:none; }
}
@media (max-width:480px){
  .menu-actions { flex-direction:column; align-items:stretch; }
  .menu-actions .btn { width:100%; }
}
.foot-btm a { white-space:nowrap; }
/* Tablet-Feinschliff (Prüfung 16.10.2026) */
@media (max-width:900px){
  #topbar .tb-right .tb-mail, #topbar .tb-hours .tb-sun { display:none; }   /* rote Leiste passt sonst nicht in eine Zeile */
}
@media (max-width:860px){
  .split-media .media-inset { display:none; }                                /* keine überlappende Bild-Collage, sobald einspaltig */
}
@media (max-width:1024px){
  .gal-grid { grid-auto-flow:dense; }                                        /* keine Lücken im 3-Spalten-Raster */
  .partner-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:767px){
  .partner-grid { grid-template-columns:1fr; }
}
