:root{
  --wine:#8E2434; --wine-dark:#6E1926; --cream:#FBF6EE; --cream-2:#F3E9DA;
  --ink:#2A2724; --muted:#6B635B; --line:rgba(42,39,36,.12);
  --ok:#2E6B3E; --ok-bg:#e5f0e6; --warn:#C67B1F; --warn-bg:#f8eeda;
  --err:#B5452F; --err-bg:#f7e6e1; --info-bg:#e9eef2;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--cream); line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--wine)}
.wrap{max-width:960px; margin:0 auto; padding:0 18px}
.muted{color:var(--muted)} .small{font-size:.87rem}
h1{font-size:clamp(1.6rem,4.5vw,2.2rem); margin:0 0 6px; letter-spacing:-.01em}
h2{font-size:1.25rem; margin:1.6rem 0 .7rem}

/* Header */
.site-head{background:var(--wine); color:#fff; position:sticky; top:0; z-index:20}
.head-inner{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 18px; flex-wrap:wrap}
.logo{color:#fff; text-decoration:none; font-weight:800; font-size:1.15rem}
.site-nav{display:flex; gap:6px; flex-wrap:wrap; align-items:center}
.site-nav a{color:#fff; text-decoration:none; padding:6px 11px; border-radius:8px; font-weight:600; opacity:.92}
.site-nav a:hover{background:rgba(255,255,255,.14); opacity:1}
.site-nav a.cta{background:#fff; color:var(--wine)}
.site-nav a.cta:hover{background:var(--cream-2)}

.site-main{padding:24px 18px 40px; min-height:60vh}

/* Hero */
.hero{background:linear-gradient(160deg,var(--cream-2),var(--cream)); border:1px solid var(--line); border-radius:16px; padding:22px 22px 8px}
.hero p.lead{color:var(--muted); font-size:1.05rem; margin:.2rem 0 1rem}

/* Filterleiste */
.filters{display:flex; gap:10px; flex-wrap:wrap; align-items:end; background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; margin:16px 0}
.filters .f{display:flex; flex-direction:column; gap:4px}
.filters label{font-size:.78rem; font-weight:600; color:var(--muted)}
/* Suchleiste: breites Feld oben, Beispiel-Prompts, darunter kompakte Filter. */
.searchbar{background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; margin:16px 0}
.searchbar .sb-main{display:flex; gap:8px; align-items:stretch; position:relative} /* Anker fuer die Autosuggest-Liste */
.searchbar .sb-input{flex:1; min-width:0; font-size:1.05rem; padding:12px 15px; border:1px solid var(--line); border-radius:10px}
.searchbar .sb-input:focus{outline:2px solid var(--wine); outline-offset:1px; border-color:var(--wine)}
.searchbar .sb-go{white-space:nowrap; padding-left:20px; padding-right:20px}
.sb-examples{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:10px}
.sb-ex-label{font-size:.78rem; color:var(--muted); font-weight:600}
.sb-examples .chip-sm{padding:4px 11px; font-size:.83rem; font-weight:500}
.sb-filters{display:flex; flex-wrap:wrap; gap:8px 12px; align-items:end; margin-top:12px; padding-top:12px; border-top:1px solid var(--line)}
.sb-filters .f{display:flex; flex-direction:column; gap:3px}
.sb-filters label{font-size:.72rem; font-weight:600; color:var(--muted)}
.sb-filters select{font-size:.88rem; padding:6px 8px; max-width:200px}
.sb-free{display:flex; gap:6px; align-items:center; font-size:.85rem; align-self:end; padding-bottom:6px}
.sb-filter-go{align-self:end; padding:7px 14px; font-size:.9rem}
@media (max-width:560px){ .searchbar .sb-input{font-size:1rem} .sb-filters .f{flex:1 1 44%} .sb-filters select{max-width:none; width:100%} }
.chips{display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 4px}
.chip{display:inline-block; padding:6px 13px; border-radius:999px; background:#fff; border:1px solid var(--line); text-decoration:none; color:var(--ink); font-weight:600; font-size:.9rem}
.chip:hover{border-color:var(--wine)}
.chip.active{background:var(--wine); color:#fff; border-color:var(--wine)}

input,select,textarea{
  padding:9px 11px; border:1px solid var(--line); border-radius:9px; font:inherit; background:#fff; color:var(--ink);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--wine); outline-offset:-1px}
textarea{width:100%; min-height:90px; resize:vertical}

.btn{display:inline-block; background:var(--wine); color:#fff; border:0; padding:9px 16px; border-radius:9px; cursor:pointer; font:inherit; font-weight:600; text-decoration:none}
.btn:hover{background:var(--wine-dark)}
.btn-ghost{background:#fff; color:var(--ink); border:1px solid var(--line)}
.btn-ghost:hover{background:var(--wine-dark); color:#fff; border-color:var(--wine-dark)}

/* Event-Karten */
.event-list{display:grid; gap:12px; margin-top:8px}
.ongoing-teaser{border:1px solid var(--line); background:var(--cream-2); border-radius:12px; padding:11px 15px; margin:16px 0}
.ongoing-teaser>summary{cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.ongoing-teaser>summary::-webkit-details-marker{display:none}
.ongoing-teaser>summary::before{content:"▸"; color:var(--wine); font-size:.8rem}
.ongoing-teaser[open]>summary::before{content:"▾"}
.ongoing-teaser .ot-title{font-weight:800}
.ongoing-teaser .ot-count{color:var(--muted); font-size:.85rem}
.ot-list{list-style:none; margin:11px 0 3px; padding:0; display:grid; gap:7px}
.ot-list li{display:flex; gap:6px 10px; flex-wrap:wrap; align-items:baseline}
.ot-list a{font-weight:600; text-decoration:none}
.ot-list a:hover{text-decoration:underline}
.ot-meta{color:var(--muted); font-size:.85rem}
/* Laeuft ueber das aktuelle Wochenende — die relevantesten Dauer-Feste zuerst. */
.ot-flag{font-size:.75rem; font-weight:700; color:var(--wine); background:rgba(142,36,52,.08); border-radius:999px; padding:2px 8px; white-space:nowrap}
/* „N weitere anzeigen" — haelt den Block auf der Startseite kurz. */
.ot-more{margin-top:4px}
.ot-more>summary{cursor:pointer; list-style:none; color:var(--wine); font-size:.85rem; font-weight:700}
.ot-more>summary::-webkit-details-marker{display:none}
.ot-more>summary::before{content:"+ "; font-weight:800}
.ot-more[open]>summary::before{content:"\2212 "}
.ot-more>summary:hover{text-decoration:underline}
.ev{display:flex; gap:14px; background:#fff; border:1px solid var(--line); border-radius:13px; padding:14px 16px; text-decoration:none; color:inherit}
.ev:hover{border-color:var(--wine); box-shadow:0 6px 18px rgba(142,36,52,.08)}
.ev .date{flex:0 0 88px; text-align:center; border-right:1px solid var(--line); padding-right:12px}
.ev .date .d{font-size:1.5rem; font-weight:800; color:var(--wine); line-height:1}
.ev .date .m{font-size:.8rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em}
.ev .date .wd{font-size:.75rem; color:var(--muted)}
.ev .date .y{font-size:.72rem; font-weight:700; color:var(--wine); margin-top:1px}
.ev .body{flex:1; min-width:0}
.ev .body h3{margin:0 0 3px; font-size:1.1rem}
.ev .meta{color:var(--muted); font-size:.9rem}
.ev .cat{font-size:1.2rem}

/* Kategorie-Kacheln */
.logo-sub{display:block; font-size:.66rem; font-weight:500; color:rgba(255,255,255,.82); letter-spacing:.02em; margin-top:1px}
/* Subline unter dem „F" von Feschtleskalender ausrichten: unsichtbares „🍷 " in Logo-Größe als Einzug. */
.logo-sub::before{content:"🍷 "; visibility:hidden; font-size:1.15rem; line-height:0}
.src-verified{color:#2e7d32; font-weight:600; font-size:.9rem; margin:8px 0 2px}
.src-disclaimer{margin-top:10px; padding:9px 11px; background:rgba(142,36,52,.06); border-radius:8px; color:var(--muted); line-height:1.45}
.consent{position:fixed; left:0; right:0; bottom:0; background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 20px rgba(0,0,0,.10); z-index:60}
.consent-inner{max-width:960px; margin:0 auto; padding:14px 18px; display:flex; gap:16px 20px; align-items:center; flex-wrap:wrap}
.consent-body{flex:1 1 300px; min-width:240px}
.consent-body p{margin:0; font-size:.9rem}
.consent-list{margin:8px 0 0; padding:0; list-style:none; display:grid; gap:5px; font-size:.82rem; color:var(--muted)}
.consent-list li{position:relative; padding-left:16px; line-height:1.4}
.consent-list li::before{content:"•"; position:absolute; left:2px; color:var(--wine)}
.consent-list code{font-size:.9em; background:var(--cream-2); padding:0 4px; border-radius:4px}
.consent-btns{display:flex; gap:10px; flex-wrap:wrap}
.hero p.lead{text-wrap:balance}
.hero-search{display:flex; gap:8px; margin:16px 0 12px; max-width:720px; flex-wrap:wrap; align-items:stretch}
.hero-search .hs-field{position:relative; flex:1 1 240px; min-width:0}
.hero-search .hs-field input{width:100%; padding:13px 16px; border:1px solid var(--line); border-radius:12px; font-size:1rem; background:#fff}
.hero-search .hs-field input:focus{outline:2px solid var(--wine); border-color:var(--wine)}
.hero-search .btn{padding:13px 22px}
.hero-search .chip-near{align-self:stretch; display:inline-flex; align-items:center; white-space:nowrap}
.chips-label{font-size:.85rem; color:var(--muted); align-self:center; margin-right:2px}
/* „Beliebt“-Chips der Startseite: kompakter, damit die Reihe nicht wegen eines einzigen Chips umbricht. */
#suggest{gap:5px}
#suggest .chip{padding:6px 10px; font-size:.85rem}
.chip-near{border:1px dashed var(--wine); background:transparent; color:var(--wine); cursor:pointer; font:inherit}
/* Autocomplete-Dropdown */
.ac-list{position:absolute; z-index:40; left:0; right:0; top:calc(100% + 4px); margin:0; padding:4px; list-style:none;
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 30px rgba(0,0,0,.12); max-height:60vh; overflow:auto}
.ac-list li{margin:0}
.ac-item{display:flex; gap:10px; align-items:baseline; padding:9px 11px; border-radius:8px; cursor:pointer; text-decoration:none; color:var(--ink)}
.ac-item:hover,.ac-item.active{background:var(--cream-2)}
.ac-item .ac-ic{flex:0 0 auto}
.ac-item .ac-t{font-weight:600; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ac-item .ac-meta{flex:0 0 auto; font-size:.82rem; color:var(--muted)}
.ac-item.ac-all{font-weight:600; color:var(--wine)}
.ac-empty{padding:10px 11px; color:var(--muted); font-size:.9rem}
.ac-sugg .ac-t{font-weight:500; white-space:normal}
.ac-typed{color:var(--muted); font-weight:400}
.search-note{font-size:.9rem; color:var(--muted); margin:0 0 10px}
.wk-note{background:#fff5e6; border:1px solid #f0d9b0; color:#7a5a1e; padding:8px 12px; border-radius:9px; font-size:.9rem; margin:2px 0 8px}
.search-note b{color:var(--wine)}
.src-list{list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:6px}
.src-list li{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.9rem}
.src-tier{font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; padding:2px 7px; border-radius:6px; background:#eee; color:#555}
.src-official{background:#1f7a3d; color:#fff}
.src-tourism{background:#2b6cb0; color:#fff}
.src-press{background:#8a6d1f; color:#fff}
.src-aggregator{background:#e2e2e2; color:#666}
.src-primary{font-size:.72rem; font-weight:700; color:var(--wine)}
.cat-tiles{display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:8px}
@media (max-width:760px){.cat-tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:440px){.cat-tiles{grid-template-columns:repeat(2,1fr)}}
.cat-tile{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px 12px; text-decoration:none; color:inherit; font-weight:600; line-height:1.25; min-height:96px; hyphens:auto}
.cat-tile:hover{border-color:var(--wine)}
.cat-tile .i{font-size:1.6rem; line-height:1}

/* Badges */
.badge{display:inline-block; padding:2px 10px; border-radius:999px; font-size:.78rem; font-weight:700}
.b-frei{background:var(--ok-bg); color:var(--ok)}
.b-cancelled{background:var(--err-bg); color:var(--err)}
.b-changed{background:var(--warn-bg); color:#8f560d} /* dunkleres Gold: WCAG-AA auf warn-bg (5.2:1) */
.b-ongoing{background:#e7f0ff; color:#1b4b8f} /* laufende Dauer-Events */
.b-featured{background:#fbe4c0; color:#7a4e00} /* gefördertes Feschtle (Partner) */

/* Partner-Platzierungen (neutral benannt, damit Adblocker sie nicht kosmetisch ausblenden) */
.list-layout{display:grid; grid-template-columns:1fr; gap:22px}
.list-side{display:none}
@media(min-width:980px){
  /* Nur wenn ein Banner gebucht ist, die 300px-Spalte reservieren — sonst volle Breite. */
  .list-layout.has-side{grid-template-columns:minmax(0,1fr) 300px; align-items:start}
  .list-layout.has-side .list-side{display:block; position:sticky; top:88px}
}
.partnerbox{display:block; position:relative; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; text-decoration:none; line-height:0}
.partnerbox img{width:100%; height:auto; display:block}
.pbx-lbl{position:absolute; top:6px; left:6px; background:rgba(0,0,0,.55); color:#fff; font-size:.62rem; line-height:1; letter-spacing:.06em; text-transform:uppercase; padding:2px 6px; border-radius:4px}
.pbx-inline{margin:2px 0}
@media(min-width:980px){ .pbx-inline{display:none} } /* Inline-Platzierung nur auf Mobil/Tablet, Desktop nutzt die rechte Spalte */
/* Hausanzeige, wenn kein Banner gebucht ist */
.koop-hint{display:flex; flex-direction:column; gap:3px; margin:22px 0 4px; padding:16px 18px; text-decoration:none;
  border:1px dashed var(--wine); border-radius:12px; background:linear-gradient(160deg,var(--cream-2),#fff)}
.koop-hint .kh-eyebrow{font-size:.64rem; text-transform:uppercase; letter-spacing:.12em; color:var(--wine); font-weight:700}
.koop-hint .kh-text{color:var(--ink); font-size:.96rem}
.koop-hint .kh-text strong{color:var(--wine)}
.koop-hint:hover{background:linear-gradient(160deg,#f3e6cf,#fff); border-color:var(--wine-dark)}
.pbx-home{max-width:560px; margin:22px auto 0}

/* Flash */
.flash{padding:11px 15px; border-radius:10px; margin-bottom:14px; border:1px solid transparent}
.flash-success{background:var(--ok-bg); color:var(--ok); border-color:#cfe3d1}
.flash-error{background:var(--err-bg); color:var(--err); border-color:#eecdc4}

/* Detailseite */
.detail-head{background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px}
.kv{display:grid; grid-template-columns:130px 1fr; gap:6px 14px; margin:14px 0}
.kv dt{color:var(--muted); font-weight:600} .kv dd{margin:0}
.source-box{background:var(--cream-2); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-top:16px; font-size:.92rem}
details.source-box > summary{cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px}
details.source-box > summary::-webkit-details-marker{display:none}
details.source-box > summary::before{content:"▸"; color:var(--wine); font-size:.8rem; transition:transform .15s}
details.source-box[open] > summary::before{transform:rotate(90deg)}
details.source-box > summary > strong{font-size:1.02rem}
details.source-box[open] > summary{margin-bottom:10px}
.source-box .prov-inner{margin-top:14px; padding-top:12px; border-top:1px solid var(--line)}
.source-box .prov-inner .prov-h{display:block; font-size:1rem; margin:0 0 8px}
.card{background:#fff; border:1px solid var(--line); border-radius:13px; padding:18px 20px; margin-top:18px}
.form-grid{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.form-grid .full{grid-column:1/-1}
.form-grid label{display:block; font-weight:600; font-size:.88rem; margin-bottom:4px}
.form-grid input,.form-grid select{width:100%}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* Footer */
.site-foot{background:var(--ink); color:#c8bdb0; margin-top:44px}
.site-foot a{color:#dcd4c9; text-decoration:none}
.site-foot a:hover{color:#fff; text-decoration:underline; text-underline-offset:3px}
/* Spaltenraster: Marke breiter, dann drei Link-Spalten */
.foot-grid{display:grid; grid-template-columns:1.7fr 1fr 1.3fr 1fr; gap:26px 34px; padding:36px 12px 26px}
.foot-brand .fb-logo{font-size:1.15rem; font-weight:800; color:#fff; letter-spacing:-.01em}
.foot-brand .fb-tag{margin:.6rem 0 0; font-size:.9rem; line-height:1.6; color:#a89d8f; max-width:36ch}
.foot-col{display:flex; flex-direction:column; align-items:flex-start; gap:1px}
.foot-col h3{font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; color:#a89d8f; font-weight:700; margin:0 0 .6rem}
/* Touch-Ziele gross genug (WCAG 2.5.8) */
.foot-col a{font-size:.92rem; padding:6px 0; border-radius:6px}
/* Themen-Zeile: umbrechende Link-Wolke */
.foot-themes{padding:22px 12px 4px; border-top:1px solid rgba(255,255,255,.1)}
.foot-themes h3{font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; color:#a89d8f; font-weight:700; margin:0 0 .5rem}
.foot-themes nav{display:flex; flex-wrap:wrap; gap:5px 8px}
.foot-themes nav a{font-size:.84rem; color:#b3a89a; background:rgba(255,255,255,.05); padding:5px 10px; border-radius:999px}
.foot-themes nav a:hover{background:rgba(255,255,255,.11); color:#fff; text-decoration:none}
/* Bottom-Bar */
.foot-bottom{display:flex; justify-content:space-between; align-items:center; gap:8px 24px; flex-wrap:wrap;
  padding:16px 12px; margin-top:20px; border-top:1px solid rgba(255,255,255,.1); font-size:.82rem; color:#a89d8f}
.foot-bottom .foot-disc{color:#a89d8f}
@media (max-width:760px){
  .foot-grid{grid-template-columns:1fr 1fr; gap:24px 28px}
  .foot-brand{grid-column:1 / -1}
}
@media (max-width:440px){ .foot-grid{grid-template-columns:1fr} }

/* Historie-Galerie (Geschichte) */
.gallery{display:flex; gap:12px; flex-wrap:wrap; margin:16px 0}
.gallery figure{flex:1 1 240px; margin:0}
.gallery img{width:100%; height:auto; border-radius:10px; border:1px solid var(--line)}
.gallery figcaption{font-size:.8rem; color:var(--muted); margin-top:6px}
.prose{max-width:680px} .prose p{margin:0 0 14px}

/* Header kompakt: Logo + Nav in EINER Zeile (Nav rechts neben dem Logo). Greift schon früh (≤720px),
   damit die Nav nicht in eine zweite Zeile umbricht. Subline bleibt, 1px kleiner; „Feschtle melden"
   nur als Icon (＋); „Alle Feschtle"/„Dieses Wochenende" kürzen sich via .nav-hide-sm. Nav hält seine
   Größe (flex-shrink:0), das Logo darf bei Bedarf schrumpfen statt die Seite zu sprengen. */
@media (max-width:720px){
  .head-inner{flex-wrap:nowrap; gap:8px; padding:10px 12px}
  .logo{font-size:1rem; line-height:1.12; min-width:0}
  .logo-sub{font-size:.6rem}
  .site-nav{gap:3px; flex-wrap:nowrap; flex-shrink:0}
  .site-nav a{font-size:.8rem; padding:5px 7px; white-space:nowrap}
  .site-nav a.cta{font-size:0; padding:6px 9px}
  .site-nav a.cta::before{content:"＋"; font-size:1.05rem; font-weight:800; line-height:1}
  .nav-hide-sm{display:none}
}

@media (max-width:560px){
  .ev .date{flex-basis:64px}
  .kv{grid-template-columns:1fr}
  .hero-hock{display:none}
}

/* Druckansicht */
@media print{
  .site-head,.site-foot,.filters,.searchbar,.chips,.site-nav,.btn,.no-print{display:none !important}
  body{background:#fff}
  .ev,.detail-head,.card{border-color:#ccc; box-shadow:none}
  a{color:#000; text-decoration:none}
}

/* Barrierefreiheit: Skip-Link + sichtbarer Tastatur-Fokus */
.skip-link{
  position:absolute; left:8px; top:-48px; z-index:1000;
  background:var(--wine); color:#fff; padding:9px 14px; border-radius:8px;
  text-decoration:none; transition:top .15s ease;
}
.skip-link:focus{top:8px}
main#main:focus{outline:none}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--wine); outline-offset:2px; border-radius:3px;
}
@media (prefers-reduced-motion: reduce){
  .skip-link{transition:none}
  *{scroll-behavior:auto !important}
}

/* a11y-Feinschliff (Pass 2) */
img{max-width:100%; height:auto}
.visually-hidden{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.linkbtn{
  background:none; border:0; padding:0; margin:0; font:inherit; cursor:pointer;
  color:var(--wine); text-decoration:underline;
}
.linkbtn:hover{text-decoration:none}

/* Sortierung (Discovery-Ranking) */
.sortbar{display:flex; align-items:center; gap:8px; margin:4px 0 14px; flex-wrap:wrap}
.sortbar .chip-sm{padding:4px 11px; font-size:.85rem}

/* Ähnliche Feschtle (Detailseite) */
.similar{margin:26px 0 8px}
.similar-h{font-size:1.15rem; margin:0 0 12px}

/* Karten-Ansicht (Leaflet) */
.listhead{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.viewtoggle{display:flex; gap:8px}
.fk-map{position:relative; height:70vh; min-height:420px; border-radius:12px; border:1px solid var(--line); margin:6px 0 14px; z-index:0; overflow:hidden; background:#eee}
.map-consent{position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; background:#f3efe7}
.map-consent-inner{max-width:460px}
.map-consent-inner h2{margin:0 0 8px; font-size:1.15rem}
.map-consent-inner .btn{margin-top:4px}
.consent-remember{display:block; margin-top:12px; color:var(--muted)}
.consent-remember input{margin-right:6px}
.leaflet-popup-content{font:inherit; margin:11px 14px; line-height:1.4}
.leaflet-popup-content a{color:var(--wine); font-weight:600}

/* Query-Verständnis: erkannte Filter */
.understood{margin:2px 0 12px}
.badge-u{display:inline-block; background:var(--wine); color:#fff; border-radius:999px; padding:2px 10px; margin:0 4px 4px 0; font-weight:600; font-size:.82rem}
.understood a{margin-left:6px}

/* Feld-Provenienz (Golden Record) auf der Detailseite */
.provenance{margin:20px 0 8px; background:var(--cream-2); border:1px solid var(--line); border-radius:12px; padding:14px 16px}
.prov-h{font-size:1.05rem; margin:0 0 10px}
.prov-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px}
.prov-list li{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:.92rem}
.prov-field{font-weight:600; min-width:70px}
.prov-host{color:var(--muted); font-size:.88rem}
.src-other{background:#e2e2e2; color:#666}

/* Pagination-Lücke */
.chip-gap{border:0; background:transparent; color:var(--muted); padding:6px 4px; font-weight:600}

/* Karten-Fehlerhinweis */
.map-tileerror{position:absolute; left:10px; right:10px; bottom:10px; z-index:3; background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 12px; font-size:.9rem; box-shadow:0 2px 10px rgba(0,0,0,.12)}
.pagination .chip[rel]{font-weight:700}

/* Seitengröße-Umschalter */
.perpage{display:flex; flex-wrap:wrap; gap:8px; align-items:center}

/* SEO-Landingpages */
.landing-intro{max-width:72ch; color:var(--muted); margin:-2px 0 12px}
.discover{margin-top:26px; border-top:1px solid var(--line); padding-top:16px}
.discover h2{font-size:1.05rem; margin:0 0 8px}

/* Footer-Themen (interne Verlinkung) */

/* Häufige Fragen (Landingpages) */
.faq{margin:30px 0 8px; border-top:1px solid var(--line); padding-top:18px}
.faq h2{font-size:1.15rem; margin:0 0 10px}
.faq-item{background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px 14px; margin-bottom:8px}
.faq-item > summary{cursor:pointer; font-weight:600; list-style:none}
.faq-item > summary::-webkit-details-marker{display:none}
.faq-item > summary::before{content:"▸"; color:var(--wine); margin-right:8px; display:inline-block; transition:transform .15s}
.faq-item[open] > summary::before{transform:rotate(90deg)}
.faq-item p{margin:10px 0 2px; color:var(--muted); line-height:1.6}
