/* ============================================================
   Restaurant Wetzlarer Hof – Magazin-Theme (hell & warm)
   Food-first · große Serifen-Typografie · viel Weißraum
   ============================================================ */

:root {
  /* warme Flächen */
  --cream:  #F6F1E7;
  --paper:  #ffffff;
  --sand:   #EFE7D7;
  /* Tinte / Text (warm) */
  --ink:    #2b2722;
  --ink-2:  #5d564c;
  --ink-3:  #8a8174;
  --line:   #e4dccc;
  /* Akzente – Blau ist jetzt der Signatur-Akzent (Grün ↔ Blau getauscht) */
  --accent: #526979;
  --accent-d:#3d5260;
  --primary:#7A8F63;
  --primary-d:#697c53;
  --dark:   #211f1b;
  --red:    #b8442f;
  --green:  #2e7d4f;
  --yellow: #c9971f;
  --white:  #ffffff;
  --bg:     #F6F1E7;
  --text:   #2b2722;
  --text-lt:#5d564c;

  --ff-h: '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(43,39,34,.06);
  --shadow:    0 14px 44px rgba(43,39,34,.10);
  --shadow-lg: 0 30px 70px rgba(20,16,12,.30);
  --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; }

/* ── 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(82,105,121,.34); }
.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(82,105,121,.34); }
.btn-ghost { background:transparent; color:var(--ink); border:1.5px solid var(--line); font-weight:600; }
.btn-ghost:hover { background:var(--ink); color:var(--cream); }
.btn-white { background:#fff; color:var(--accent); font-weight:700; }
.btn-white:hover { background:var(--cream); transform:translateY(-2px); }

/* ── INFO-BANNER (Announcement) ── */
#promo-banner { position:relative; z-index:1100; background:var(--accent); color:#fff; display:none;
  align-items:center; justify-content:center; gap:1rem; text-align:center; padding:.65rem 3rem .65rem 1.5rem; font-size:.9rem; }
#promo-banner.show { display:flex; }
#promo-banner .promo-text strong { font-weight:700; }
#promo-banner .promo-close { position:absolute; right:1rem; top:50%; transform:translateY(-50%); width:26px; height:26px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; opacity:.85; transition:background var(--ease); }
#promo-banner .promo-close:hover { background:rgba(255,255,255,.2); }

/* ── TOPBAR (Öffnungszeiten über der Kopfzeile) ── */
#topbar { background:var(--dark); color:rgba(246,241,231,.82); 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 svg { color:var(--accent); }
#topbar .tb-hours .closed { color:#e08b7c; }
#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); white-space:nowrap; }
#topbar .tb-right a:hover { color:#fff; }
#topbar .tb-right svg { color:var(--accent); }
#topbar .tb-partner { color:rgba(246,241,231,.6); }
#topbar .tb-partner b { color:var(--accent); font-weight:600; }

/* ── 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(43,39,34,.09); background:rgba(246,241,231,.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.nav-logo img { height:104px; object-fit:contain; transition:height var(--ease); }
#navbar.scrolled .nav-logo img { height:80px; }
.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;
  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; }

/* ── 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-family:var(--ff-h); font-size:clamp(2.6rem,5.5vw,4.4rem); font-weight:400; line-height:1.06; letter-spacing:-.015em; color:var(--ink); margin-bottom:1.4rem; }
.hero-text h1 em { font-style:italic; color:var(--accent); }
.hero-tagline { font-size:1.1rem; color:var(--ink-2); max-width:440px; line-height:1.75; margin-bottom:2.4rem; }
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-media { position:relative; overflow:hidden; min-height:50vh; }
.hero-media img, .hero-media video { width:100%; height:100%; object-fit:cover; }
.hero-media::after { content:''; position:absolute; inset:0; box-shadow:inset 0 0 120px rgba(20,16,12,.18); 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-family:var(--ff-h); font-size:clamp(2.2rem,4.6vw,3.4rem); font-weight:400; color:var(--ink); line-height:1.12; letter-spacing:-.015em; margin-bottom:1.4rem; }
.s-text { font-size:1.06rem; color:var(--ink-2); max-width:600px; line-height:1.85; }
.divider { width:56px; height:1.5px; 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; }

/* Dish Showcase (Teller schweben auf Papierweiß) */
.dish-showcase { display:flex; flex-direction:column; align-items:center; padding:2.5rem 0 1.5rem; }
.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:6%; transform:translateX(-50%);
  width:54%; height:5%; background:rgba(43,39,34,.18); 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; filter:none; opacity:0; will-change:transform,opacity; backface-visibility:hidden; }
@keyframes dish-rock { 0%,100%{transform:scale(1) translateY(0)} 50%{transform:scale(1.03) translateY(-6px)} }
.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-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:1.2rem; 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; }

/* Menu Slider */
.menu-slider-wrap { position:relative; max-width:680px; margin:2.5rem auto 0; }
.menu-slider { position:relative; border-radius:var(--rad); overflow:hidden; box-shadow:var(--shadow); background:var(--sand); aspect-ratio:3/4; }
.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; }

/* ── 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-ov { position:absolute; inset:0; background:rgba(43,39,34,0); transition:background var(--ease); display:flex; align-items:center; justify-content:center; }
.gal-item:hover .gal-ov { background:rgba(43,39,34,.28); }
.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(20,16,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:520px; }
.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.alt .split-body { background:var(--sand); }
.split-rev .split-media { order:2; }
.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; }

/* ── TERRASSE (Drohnen-Video als Loop-Hintergrund) ── */
#terrasse { 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,20,26,.86) 0%, rgba(16,20,26,.56) 50%, rgba(16,20,26,.3) 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:580px; color:#fff; }
.terr-content .s-label { color:rgba(255,255,255,.85); }
.terr-content .s-title { color:#fff; }
.terr-content .s-text { color:rgba(255,255,255,.9); }
.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); flex-shrink:0; }
.terr-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:8px; background:var(--sand); }
.terr-strip .gal-item { height:230px; }
@media(max-width:768px){ .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-h); 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; 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.5rem; 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(82,105,121,.14); background:#fff; }
.fc::placeholder { color:#b3aa99; }
select.fc { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23526979' 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 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(184,68,47,.1); color:var(--red); }

/* Catering */
.catering-banner { background:linear-gradient(135deg,var(--accent),var(--accent-d)); padding:clamp(2rem,4vw,3rem); border-radius:var(--rad-lg); text-align:center; color:#fff; margin-top:4.5rem; }
.catering-banner h3 { font-family:var(--ff-h); font-size:1.8rem; margin-bottom:.7rem; }
.catering-banner p { font-size:1rem; opacity:.92; max-width:560px; margin:0 auto 1.4rem; }

/* ── KONTAKT ── */
#kontakt { background:var(--paper); }
.kont-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:3rem; margin-bottom:4rem; }
.kont-card h3 { font-family:var(--ff-h); font-size:1.25rem; 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; }
.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); }
.socials { display:flex; gap:.85rem; margin-top:1.5rem; }
.social-btn { display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:var(--ink); color:var(--cream); border-radius:50%; transition:background var(--ease),transform var(--ease); }
.social-btn:hover { background:var(--accent); transform:translateY(-2px); }
.social-btn svg { width:18px; height:18px; }
.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 p { font-size:.92rem; color:var(--ink-2); max-width:340px; }
.map-consent a { color:var(--accent); text-decoration:underline; }

/* ── PARTNER-BAND ── */
.partner-band { background:var(--sand); border-radius:var(--rad-lg); padding:2rem 2.5rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:4rem; flex-wrap:wrap; }
.partner-band strong { color:var(--ink); display:block; font-family:var(--ff-h); font-size:1.2rem; margin-bottom:.3rem; }
.partner-band p { color:var(--ink-2); font-size:.93rem; }

/* ── FOOTER ── */
footer { background:var(--dark); color:rgba(246,241,231,.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:46px; filter:brightness(0) invert(.92); margin-bottom:1rem; }
.foot-brand p { font-size:.88rem; line-height:1.75; max-width:230px; }
.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 a { font-size:.88rem; color:rgba(246,241,231,.55); transition:color var(--ease); }
.foot-col ul li a:hover { color:var(--accent); }
.foot-btm { border-top:1px solid rgba(246,241,231,.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); }
.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-h); font-size:1.1rem; 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); }
/* Granulare Einstellungen */
.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(--cream); }
.faq-hdr { text-align:center; max-width:640px; margin:0 auto 2.5rem; }
.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-h); 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; }
.legal-page .container { max-width:820px; }
.legal-page h1 { font-family:var(--ff-h); font-size:clamp(1.9rem,4vw,2.7rem); color:var(--ink); margin-bottom:1.5rem; }
.legal-page h2 { font-family:var(--ff-h); font-size:1.3rem; color:var(--ink); margin:2rem 0 .75rem; }
.legal-page p, .legal-page li { font-size:.96rem; color:var(--ink); line-height:1.85; margin-bottom:.85rem; }
.legal-page ul { padding-left:1.25rem; }
.legal-page a { color:var(--accent); text-decoration:underline; }

/* ── RESPONSIVE ── */
/* Nav früh ins Hamburger-Menü (viele Punkte + großes Logo) */
@media(max-width:1280px){
  .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); }
  .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;}
  .hero-media{min-height:46vh; order:-1;}
  .terr-grid{grid-template-columns:1fr;} .terr-imgs{height:380px;}
  .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);}
}
@media(max-width:860px){ .split,.split-rev{grid-template-columns:1fr;} .split-rev .split-media{order:0;} .split .split-media{min-height:340px;} }
@media(max-width:768px){
  #topbar .tb-partner, #topbar .tb-right .tb-mail { display:none; }
  #topbar .tb-hours { gap:1rem; font-size:.72rem; }
  #navbar{ padding:0 1.25rem; }
  .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; gap:1.1rem; box-shadow:var(--shadow); }
  .nav-links.open{ display:flex; } .hamburger{ display:flex; }
  .form-row,.form-row.three{grid-template-columns:1fr;}
  .kont-grid{grid-template-columns:1fr;} .gal-grid{grid-template-columns:repeat(2,1fr);}
  .gal-item.tall{grid-row:span 1;} .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; text-align:center;}
  .catering-banner{margin-top:3rem;}
}
@media(max-width:480px){
  .hero-btns{flex-direction:column; align-items:stretch;}
  .gal-grid{grid-template-columns:1fr;} .gal-item.wide{grid-column:span 1;}
  #topbar .tb-hours .tb-sun{display:none;}
}
