/* Leibnitz Online - Redesign 3B "Autorität institutionell" in Markenfarben
   Palette: Grün + Weiss + Ink (kein Gelb). Schrift: Libre Franklin (UI) + Source Serif 4 (Headlines/Artikel). */

:root {
  --green:#028337;
  --green-dark:#016628;
  --green-deep:#14331f;
  --ink:#0b0b0b;
  --bg:#ffffff;
  --muted:#5a5a5a;
  --border:#e5e5e5;
  --green-light:#9fc7ad;
  --green-tint:#bfe0c9;
  --maxw:1200px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { font-family:'Libre Franklin',-apple-system,Segoe UI,sans-serif; background:var(--bg); color:var(--ink); line-height:1.5; }
a { color:inherit; text-decoration:none; transition:color .15s ease, background .15s ease, border-color .15s ease; }
img { max-width:100%; display:block; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 40px; }
.serif { font-family:'Source Serif 4',Georgia,serif; }
.kick { font-weight:700; font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--green); }

/* Utility bar */
.util { background:var(--green-dark); color:var(--green-tint); }
.util .wrap { display:flex; justify-content:space-between; gap:16px; padding:8px 40px; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; }

/* Masthead */
.site-header { background:var(--green-dark); color:#fff; }
.site-header .wrap { display:flex; align-items:flex-end; justify-content:space-between; padding:22px 40px 20px; }
.brand-h1 { display:contents; margin:0; font:inherit; }
.skyline { display:none; }
.logo { font-weight:800; font-size:40px; letter-spacing:-.015em; line-height:1; }
.logo b { color:#fff; font-weight:800; }
.logo .s { display:block; font-weight:500; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--green-light); margin-top:8px; }
.site-header .meta { text-align:right; font-size:12px; color:var(--green-light); letter-spacing:.04em; line-height:1.7; }
.accent { height:3px; background:var(--green); }

/* Navigation */
.nav { border-bottom:1px solid var(--border); position:relative; }
.nav .wrap { display:flex; align-items:center; gap:28px; padding:0 40px; position:relative; }
.nav-toggle { display:none; }
.nav ul { list-style:none; display:flex; flex-wrap:wrap; gap:2px 10px; }
.nav a { display:block; padding:14px 0; font-weight:600; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:#2a2a2a; border-bottom:2px solid transparent; }
.nav a:hover, .nav a.act { color:var(--green-dark); border-bottom-color:var(--green); }
.nav li { position:static; }
.nav .sub-t { display:none; }
.nav li.has-sub > a::after { content:"▾"; font-size:9px; margin-left:6px; vertical-align:middle; opacity:.55; }
/* Desktop: Mega-Flyout ueber die volle Content-Breite, mehrspaltig */
.nav .submenu { display:none; position:absolute; top:100%; left:0; right:0; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1px 16px; background:#fff; border:1px solid var(--border); border-top:2px solid var(--green); box-shadow:0 16px 34px rgba(0,0,0,.13); z-index:60; padding:18px 40px 20px; }
.nav .submenu a { padding:8px 12px; font-size:12.5px; font-weight:500; letter-spacing:.01em; text-transform:none; border-bottom:0; border-radius:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nav .submenu a::after { content:none; }
.nav .submenu a:hover { background:#f4f9f5; color:var(--green-dark); border-bottom:0; }
@media (hover:hover) and (pointer:fine) { .nav li.has-sub:hover > .submenu { display:grid; } }
/* Gruppiertes Mega-Menue (Service): Spalten mit Zwischenueberschrift */
.nav .submenu.grouped { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:4px 24px; align-items:start; }
.nav .sub-grp { display:block; }
.nav .sub-t2 { display:block; padding:4px 12px 7px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--green-dark); border-bottom:1px solid var(--border); margin-bottom:4px; }
.nav .sub-grp ul { display:block; list-style:none; }
.menu-btn { display:none; }

/* Lead / Leitartikel */
.lede { display:grid; grid-template-columns:1.55fr 1fr; gap:36px; margin:30px 0; padding-bottom:28px; border-bottom:1px solid var(--border); }
.feat .photo { position:relative; margin-bottom:18px; background:var(--green-deep); aspect-ratio:16/9; overflow:hidden; }
.feat .photo img { width:100%; height:100%; object-fit:cover; }
.feat .photo .cat { position:absolute; top:0; left:0; background:var(--green-dark); color:#fff; font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:7px 14px; z-index:2; }
.feat h2 { font-family:'Source Serif 4',serif; font-weight:600; font-size:42px; line-height:1.08; margin:4px 0 14px; letter-spacing:-.01em; }
.feat h2 a:hover { color:var(--green-dark); }
.feat .stand { font-size:18px; line-height:1.6; color:#333; max-width:640px; }
.feat .by { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:14px; }

.stack { display:flex; flex-direction:column; }
.it { padding:0 0 18px; margin-bottom:18px; border-bottom:1px solid var(--border); }
.it:last-child { border-bottom:0; margin-bottom:0; }
.it h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:23px; line-height:1.2; margin:6px 0 6px; }
.it h3 a:hover { color:var(--green-dark); }
.it p { font-size:14.5px; color:var(--muted); }

/* Section heading */
.sec { display:flex; align-items:center; gap:14px; margin:42px 0 22px; }
.sec h2 { font-size:15px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.sec .l { flex:1; height:2px; background:var(--green-dark); }
.sec .more { font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--green); white-space:nowrap; }

/* Ressort / card grid */
.grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.card .photo { aspect-ratio:16/10; background:var(--green-deep); margin-bottom:12px; overflow:hidden; }
.card .photo img { width:100%; height:100%; object-fit:cover; }
.card h4 { font-family:'Source Serif 4',serif; font-weight:600; font-size:20px; line-height:1.18; margin:6px 0 7px; }
.card h4 a:hover { color:var(--green-dark); }
.card p { font-size:14px; color:var(--muted); }

/* Split: headline list + service quicklinks */
.split { display:grid; grid-template-columns:1.55fr 1fr; gap:36px; align-items:start; }
.hl { list-style:none; }
.hl li { padding:15px 0; border-top:1px solid var(--border); display:flex; gap:16px; }
.hl li:first-child { border-top:0; }
.hl .num { font-family:'Source Serif 4',serif; font-weight:600; font-size:24px; color:var(--green); line-height:1; min-width:26px; }
.hl h4 { font-family:'Source Serif 4',serif; font-weight:600; font-size:19px; line-height:1.25; }
.hl h4 a:hover { color:var(--green-dark); }
.hl small { display:block; font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--green); margin-bottom:3px; }

.panel { border:1px solid var(--border); }
.panel .hd { background:var(--green-dark); color:#fff; font-weight:700; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:12px 18px; }
.panel ul { list-style:none; }
.panel li a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 18px; border-top:1px solid var(--border); font-size:14.5px; }
.panel li:first-child a { border-top:0; }
.panel li a:hover { background:#f4f9f5; color:var(--green-dark); }
.panel li a span { color:var(--green); font-weight:700; }

/* Aktuell-Ticker */
.ticker { background:#f4f9f5; border-bottom:1px solid var(--border); }
.ticker .wrap { display:flex; align-items:center; gap:16px; padding:9px 40px; overflow:hidden; }
.ticker .lbl { flex:none; display:inline-flex; align-items:center; gap:7px; background:var(--green-dark); color:#fff; font-weight:700; font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:5px 11px; }
.ticker .lbl .dot { width:7px; height:7px; border-radius:50%; background:#fff; }
.ticker .items { display:flex; gap:24px; white-space:nowrap; overflow:hidden; font-size:13.5px; }
.ticker .items a { color:#1a1a1a; display:inline-flex; gap:9px; align-items:baseline; }
.ticker .items a:hover { color:var(--green-dark); }
.ticker .items time { font-weight:700; font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--green); }

/* News-Section "Aktuelle Meldungen" */
.live { display:inline-flex; align-items:center; gap:7px; }
.live .dot { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 0 rgba(2,131,55,.5); animation:pulse 2s infinite; }
@keyframes pulse { 0%{box-shadow:0 0 0 0 rgba(2,131,55,.45);} 70%{box-shadow:0 0 0 7px rgba(2,131,55,0);} 100%{box-shadow:0 0 0 0 rgba(2,131,55,0);} }
.newsgrid { display:grid; grid-template-columns:1.55fr 1fr; gap:36px; align-items:start; }
.nf { display:flex; gap:18px; padding:17px 0; border-top:1px solid var(--border); }
.nf:first-child { border-top:0; padding-top:0; }
.nf time { flex:none; width:78px; font-weight:700; font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--green); padding-top:4px; line-height:1.4; }
.nf .c { font-weight:700; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.nf h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:21px; line-height:1.22; margin:3px 0 5px; }
.nf h3 a:hover { color:var(--green-dark); }
.nf p { font-size:14px; color:var(--muted); }
.kurz .hd { display:flex; justify-content:space-between; align-items:center; background:var(--green-dark); color:#fff; font-weight:700; font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:12px 18px; }
.kurz .hd a { color:#fff; font-weight:700; font-size:10.5px; letter-spacing:.08em; opacity:.85; }
.kurz .hd a:hover { opacity:1; text-decoration:underline; }
.kurz ul { list-style:none; border:1px solid var(--border); border-top:0; }
.kurz li { border-top:1px solid var(--border); }
.kurz li:first-child { border-top:0; }
.kurz li a { display:block; padding:13px 18px; }
.kurz li a:hover { background:#f4f9f5; }
.kurz time { display:block; font-weight:700; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--green); margin-bottom:4px; }
.kurz h4 { font-family:'Source Serif 4',serif; font-weight:600; font-size:17px; line-height:1.3; color:var(--ink); }

/* Footer */
.site-footer { background:var(--green-dark); color:#cfe0d4; margin-top:56px; }
.site-footer .wrap { padding:46px 40px 28px; }
.foot-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.12); }
.foot-brand .logo { font-size:30px; color:#fff; }
.foot-brand p { font-size:13.5px; line-height:1.7; margin-top:14px; color:#a9c7b3; max-width:280px; }
.foot-col h5 { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:14px; }
.foot-col ul { list-style:none; }
.foot-col li { margin-bottom:9px; }
.foot-col a { font-size:14px; color:#bcd4c4; }
.foot-col a:hover { color:#fff; }
.foot-bottom { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:22px; font-size:13px; color:#9fc0aa; }
.foot-bottom a { color:#9fc0aa; }
.foot-bottom a:hover { color:#fff; }

/* ---------- Article page ---------- */
.crumb { font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:18px 0 0; }
.crumb a:hover { color:var(--green-dark); }
.article { max-width:var(--maxw); margin:0 auto; padding:0 40px; }
.article .a-kick { margin-top:22px; }
.article h1 { font-family:'Source Serif 4',serif; font-weight:600; font-size:44px; line-height:1.1; letter-spacing:-.01em; margin:10px 0 16px; }
.article .a-lead { font-family:'Source Serif 4',serif; font-size:21px; line-height:1.55; color:#2a2a2a; margin-bottom:20px; }
.article .a-meta { display:flex; gap:16px; flex-wrap:wrap; align-items:center; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.a-hero { max-width:var(--maxw); margin:26px auto; }
.a-hero .photo { aspect-ratio:16/9; background:var(--green-deep); }
.a-hero figcaption { font-size:12.5px; color:var(--muted); padding:8px 40px 0; }
/* Artikel im Broadsheet-Muster: Kopf volle Breite, darunter Text + Marginalspalte (wie .lede/.newsgrid der Startseite) */
.art-head { border-bottom:2px solid var(--ink,#111); padding-bottom:18px; margin-bottom:26px; }
.art-head .kick { margin-bottom:10px; }
.art-head h1 { font-size:clamp(34px,4.6vw,52px); line-height:1.08; margin:0 0 14px; }
.standfirst { font-family:'Source Serif 4',serif; font-size:21px; line-height:1.55; color:#2c2c2c; max-width:56em; margin:0 0 16px; }
.art-head .a-meta { border:0; padding:0; margin:0; }
.art-grid { display:grid; grid-template-columns:1.55fr 1fr; gap:8px 48px; align-items:start; }
/* Seiten ohne Seitenspalte nutzen die volle Breite statt 420px leer zu lassen */
.art-grid.solo { grid-template-columns:1fr; }
.art-aside { position:sticky; top:24px; display:flex; flex-direction:column; gap:22px; }
.aside-box { border-top:2px solid var(--green); background:#f4f9f5; padding:16px 20px 8px; }
.aside-box .kick { margin-bottom:4px; }
.aside-box ul { list-style:none; margin:0; }
.aside-box li { border-bottom:1px solid var(--border); }
.aside-box li:last-child { border-bottom:0; }
.aside-box a { display:block; padding:10px 0; font-family:'Source Serif 4',serif; font-weight:600; font-size:16.5px; line-height:1.35; color:#1a1a1a; }
.aside-box a:hover { color:var(--green-dark); }
.aside-box ul.facts li { padding:9px 0; font-family:'Libre Franklin',sans-serif; font-size:14px; line-height:1.55; color:#333; }
.aside-box ul.facts strong { color:#111; }
.a-foot { font-size:13px; color:var(--muted); margin-top:18px; line-height:1.6; }
.a-foot a { color:var(--green-dark); }
@media (max-width:900px){ .art-grid { grid-template-columns:1fr; } .art-aside { position:static; } }
.a-body { font-family:'Source Serif 4',serif; font-size:18.5px; line-height:1.75; color:#1a1a1a; }
/* Ueberlaufschutz: Grid-/Flex-Kinder duerfen nicht ueber ihren Container wachsen.
   Ohne min-width:0 sprengt eine breite Tabelle die ganze Spalte (min-width:auto ist Default). */
.a-body { min-width:0; overflow-wrap:break-word; }
/* Lange Komposita (Bezirkshauptmannschaft, Baumklettermeisterschaft) sprengen sonst
   auf schmalen Displays den Container - Silbentrennung mit Umbruch als Rueckfallebene. */
h1, h2, h3, h4, .art-head h1, .standfirst { overflow-wrap:break-word; hyphens:auto; }
.foot-grid { min-width:0; }
.foot-grid > * { min-width:0; overflow-wrap:break-word; }
.art-grid > *, .biz-layout > * { min-width:0; }
/* Breite Inhalte scrollen in sich selbst statt die Seite zu verbreitern */
.factbox, .altpapier-container, .restmuell-container, .biomuell-container, .gelbersack-container,
.quarter-overview, .altpapier-quarter-overview { max-width:100%; overflow-x:auto; }
.a-body table { max-width:100%; }
.table-scroll { max-width:100%; overflow-x:auto; margin:22px 0; }
.table-scroll table { margin:0; }
.a-body h2 { font-family:'Source Serif 4',serif; font-weight:600; font-size:28px; line-height:1.2; margin:34px 0 12px; }
.a-body h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:22px; margin:26px 0 10px; }
.a-body p { margin-bottom:18px; }
.a-body a { color:var(--green-dark); border-bottom:1px solid var(--green-light); }
.a-body a:hover { background:#f4f9f5; }
.a-body ul { margin:0 0 18px 22px; }
.a-body li { margin-bottom:8px; }
.pullquote { font-family:'Source Serif 4',serif; font-size:24px; line-height:1.4; font-style:italic; color:var(--green-dark); border-left:3px solid var(--green); padding:6px 0 6px 22px; margin:26px 0; }
/* Box: Die Stadt Leibnitz */
.stadtbox { background:#f4f9f5; border-left:4px solid var(--green); border-radius:var(--border-radius-md); padding:30px 34px; margin:26px 0 34px; }
.stadtbox h2 { font-family:'Source Serif 4',serif; font-weight:600; font-size:29px; line-height:1.2; margin:0 0 12px; }
.stadtbox > p { font-size:18px; line-height:1.65; margin:0 0 22px; max-width:70ch; }
.stadtbox h3 { font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--green-dark); margin:0 0 14px; }
.stadtbox-listen { display:grid; grid-template-columns:1fr 1fr; gap:4px 44px; max-width:640px; }
.stadtbox-listen ol { margin:0; padding-left:24px; }
.stadtbox-listen li { font-family:'Libre Franklin',sans-serif; font-size:16px; line-height:1.5; margin-bottom:7px; }
@media (max-width:640px){ .stadtbox { padding:24px 22px; } .stadtbox h2 { font-size:25px; } .stadtbox-listen { grid-template-columns:1fr; gap:0; } }

.portrait { margin:8px 0 46px; }
.portrait-lead { font-size:21px; line-height:1.6; font-weight:600; color:#111; margin-bottom:22px; }
.portrait-lists { display:grid; grid-template-columns:1fr 1fr; gap:8px 44px; margin:8px 0 20px; padding:20px 24px; background:#f4f9f5; border-radius:var(--border-radius-md); }
.portrait-lists h4 { font-family:'Libre Franklin',sans-serif; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--green-dark); margin:0 0 8px; }
.portrait-lists ul { list-style:none; margin:0; columns:2; column-gap:24px; }
.portrait-lists li { font-family:'Libre Franklin',sans-serif; font-size:15.5px; margin-bottom:5px; break-inside:avoid; }
.portrait-more { font-family:'Libre Franklin',sans-serif; font-weight:600; }
.portrait-more a { border-bottom:none; }
@media (max-width:640px){ .portrait-lists { grid-template-columns:1fr; } }
.a-body table { width:100%; border-collapse:collapse; margin:22px 0; font-family:'Libre Franklin',sans-serif; font-size:15px; }
.a-body table td, .a-body table th { border:1px solid var(--border); padding:9px 12px; text-align:left; vertical-align:top; line-height:1.5; }
.a-body table th, .a-body table tr:first-child td { background:#f4f9f5; font-weight:600; }
.a-body figure { margin:22px 0; }
.a-body figure.wp-block-table, .a-body figure { overflow-x:auto; }
.a-body img { border-radius:var(--border-radius-md); margin:18px 0; }
.a-body h2:first-child, .a-body h3:first-child, .a-body p:first-child { margin-top:0; }
.faq { border-top:2px solid var(--green-dark); margin-top:40px; padding-top:8px; }
.faq h2 { font-family:'Source Serif 4',serif; font-weight:600; font-size:26px; margin:16px 0 8px; }
.faq details { border-bottom:1px solid var(--border); padding:14px 0; }
.faq summary { font-family:'Source Serif 4',serif; font-weight:600; font-size:18px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; color:var(--green); font-weight:700; }
.faq details[open] summary::after { content:'\2212'; }
.faq details p { font-family:'Source Serif 4',serif; font-size:16.5px; line-height:1.7; color:#333; margin-top:10px; }

/* ---------- Branchenverzeichnis ---------- */
.dir-hero { background:var(--green-dark); color:#fff; }
.dir-hero .wrap { padding:40px 40px 44px; }
.dir-hero .kick { color:#bfe0c9; }
.dir-hero h1 { font-family:'Source Serif 4',serif; font-weight:600; font-size:40px; line-height:1.1; margin:8px 0 8px; color:#fff; }
.dir-hero p { font-size:17px; color:#cfe0d4; max-width:620px; margin-bottom:22px; }
.dir-search { display:flex; max-width:620px; border:2px solid #fff; background:#fff; }
.dir-search input { flex:1; border:0; padding:13px 16px; font-size:16px; font-family:inherit; color:var(--ink); outline:none; }
.dir-search button { border:0; background:var(--green); color:#fff; font-family:inherit; font-weight:600; font-size:15px; padding:0 22px; cursor:pointer; }
.dir-search button:hover { background:var(--green-dark); }
.dir-count { font-size:13px; color:#9fc7ad; margin-top:12px; }

.cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:34px 0 10px; }
.cat-grid:has(.cat-tile) { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:10px 14px; margin:14px 0 30px; }
.cat-tile { display:block; padding:13px 16px; background:#f4f9f5; border-left:3px solid var(--green); font-family:'Libre Franklin',sans-serif; font-weight:600; font-size:15.5px; color:#1a1a1a; line-height:1.35; }
.cat-tile:hover { background:var(--green-dark); color:#fff; }
.cat-card { border:1px solid var(--border); border-radius:var(--border-radius-md,8px); border-radius:8px; padding:20px 22px; display:flex; flex-direction:column; }
.cat-card:hover { border-color:var(--green); }
.cat-card .ic { width:40px; height:40px; border-radius:8px; background:#eef6f0; color:var(--green-dark); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.cat-card .ic svg { width:22px; height:22px; }
.cat-card h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:21px; line-height:1.2; }
.cat-card .n { font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--green); margin:3px 0 10px; }
.cat-card .chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.cat-card .chip { font-size:12.5px; color:#3a3a3a; background:#f4f9f5; border:1px solid #e3efe7; padding:3px 9px; border-radius:20px; }
.cat-card .chip.more { background:none; border-color:transparent; color:var(--green-dark); font-weight:600; }

/* Branche-Listing (Einträge) */
.biz-head h1 { font-family:'Source Serif 4',serif; font-weight:600; font-size:38px; line-height:1.12; margin:12px 0 6px; }
.biz-head p { font-size:16px; color:var(--muted); max-width:640px; margin-bottom:18px; }
.biz-toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:8px; }
.biz-toolbar input { flex:1; min-width:200px; border:1px solid var(--border); border-radius:8px; padding:10px 14px; font-size:15px; font-family:inherit; outline:none; }
.biz-toolbar input:focus { border-color:var(--green); }
.biz-toolbar .res { font-size:13px; color:var(--muted); white-space:nowrap; }
.biz-list { margin:0; }
.biz { display:grid; grid-template-columns:1fr auto; gap:8px 24px; padding:22px 0; border-bottom:1px solid var(--border); }
.biz .ort { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--green); }
.biz h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:23px; line-height:1.2; margin:2px 0 8px; }
.biz p { font-size:15.5px; line-height:1.65; color:#2a2a2a; max-width:680px; }
.biz .contact { grid-column:1; display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:12px; font-size:14px; }
.biz .contact a, .biz .contact span { display:inline-flex; align-items:center; gap:7px; color:#2a2a2a; }
.biz .contact a:hover { color:var(--green-dark); }
.biz .contact .ci { width:15px; height:15px; color:var(--green); flex:none; }
.biz .tag { grid-column:2; grid-row:1; align-self:start; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--green-dark); background:#eef6f0; padding:5px 11px; border-radius:20px; white-space:nowrap; }
.biz.hidden { display:none; }
.noresult { padding:30px 0; color:var(--muted); font-size:15px; }

/* Filter-Buttons + kompaktes Betriebs-Raster (z. B. Restaurants) */
.filterbar { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 20px; }
.fbtn { font-family:inherit; font-size:13px; font-weight:600; padding:8px 15px; border:1px solid var(--border); border-radius:20px; background:#fff; color:#2a2a2a; cursor:pointer; transition:all .15s ease; }
.fbtn:hover { border-color:var(--green); }
.fbtn.act { background:var(--green-dark); color:#fff; border-color:var(--green-dark); }
.rest-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.rest { border:1px solid var(--border); border-radius:8px; padding:16px 18px; display:flex; flex-direction:column; }
.rest:hover { border-color:var(--green); }
.rest .tag { align-self:flex-start; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--green-dark); background:#eef6f0; padding:4px 10px; border-radius:20px; margin-bottom:11px; }
.rest h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:20px; line-height:1.2; margin-bottom:9px; }
.rest .ort { font-size:14px; color:var(--muted); margin-bottom:11px; display:flex; gap:7px; align-items:flex-start; line-height:1.4; }
.rest .contact { margin-top:auto; display:flex; flex-wrap:wrap; gap:7px 16px; font-size:14px; }
.rest .contact a { display:inline-flex; align-items:center; gap:6px; color:#2a2a2a; }
.rest .contact a:hover { color:var(--green-dark); }
.ci { width:14px; height:14px; color:var(--green); flex:none; }
.rest.hidden { display:none; }
.sprite { position:absolute; width:0; height:0; overflow:hidden; }

/* ---------- Notdienst-Box ---------- */
.notdienst { border:1px solid var(--border); border-radius:var(--border-radius-lg,12px); border-radius:12px; overflow:hidden; margin:6px 0 34px; }
.notdienst .hd { background:#a32d2d; color:#fff; padding:12px 18px; font-weight:700; font-size:14px; letter-spacing:.06em; text-transform:uppercase; display:flex; align-items:center; gap:9px; }
.notdienst .hd svg { width:18px; height:18px; }
.nd-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.nd { display:flex; flex-direction:column; gap:3px; padding:14px 18px; border-top:1px solid var(--border); border-left:1px solid var(--border); }
.nd:hover { background:#f4f9f5; }
.nd .lbl { font-size:12.5px; color:var(--muted); }
.nd .num { font-family:'Source Serif 4',serif; font-size:23px; font-weight:600; color:var(--green-dark); line-height:1.1; }
.nd .sub { font-size:11.5px; color:var(--muted); }
a.nd:hover .num { color:var(--green); }

/* ---------- Notfall-Leiste (kompakt) ---------- */
.notfall { display:flex; flex-wrap:wrap; align-items:center; gap:7px 18px; padding:10px 16px; background:#fcf4f4; border:1px solid #eccccc; border-left:4px solid #a32d2d; border-radius:0; border-radius:8px; margin:6px 0 28px; font-size:14px; }
.notfall .nf-lbl { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:#a32d2d; }
.notfall .nf-lbl svg { width:15px; height:15px; }
.notfall a { display:inline-flex; align-items:baseline; gap:6px; color:#3a3a3a; white-space:nowrap; }
.notfall a:hover { color:var(--green-dark); }
.notfall a b { font-family:'Source Serif 4',serif; font-size:17px; font-weight:600; color:var(--green-dark); }
.lead p { font-size:16px; line-height:1.65; color:var(--muted); max-width:100%; margin:0 0 26px; }

/* Mobil: Einleitungstext + Notfall-Leiste unter die Ärzte-Liste, über die Karte */
@media (max-width:640px) {
  main.docpage { display:flex; flex-direction:column; }
  main.docpage > * { order:3; }
  main.docpage > .biz-head { order:1; }
  main.docpage > .lead { order:5; margin-top:6px; }
  .lead p { max-width:100%; }
  main.docpage > .notfall { order:6; margin-top:0; }
  main.docpage > .sec-map { order:7; }
  main.docpage > .docmap { order:8; }
  main.docpage > .disclaimer { order:9; }
  main.docpage > .sec-cross { order:10; }
  main.docpage > .cross-grid { order:11; }
}

/* ---------- Ärzte-Finder ---------- */
.finder { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:14px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); margin-bottom:6px; }
.finder input, .finder select { border:1px solid var(--border); border-radius:8px; padding:10px 12px; font-size:15px; font-family:inherit; outline:none; background:#fff; }
.finder input { flex:1; min-width:200px; }
.finder input:focus, .finder select:focus { border-color:var(--green); }
.finder .res { font-size:13px; color:var(--muted); white-space:nowrap; margin-left:auto; }
.doc-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0; }
.doc { border:1px solid var(--border); border-radius:10px; padding:15px 17px; display:flex; flex-direction:column; }
.doc.hidden { display:none; }
.doc .top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.doc .spec { font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--green); }
.doc h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:19px; line-height:1.2; margin:3px 0 8px; }
.doc .ort { font-size:14px; color:var(--muted); display:flex; gap:7px; align-items:flex-start; margin-bottom:6px; }
.doc .hours { font-size:13px; color:#3a3a3a; margin:0 0 10px; display:flex; gap:7px; align-items:flex-start; }
.doc .hours svg { width:15px; height:15px; flex:none; margin-top:2px; color:var(--green); }
.doc .contact { margin-top:auto; display:flex; flex-wrap:wrap; gap:7px 16px; font-size:14px; }
.doc .contact a { display:inline-flex; align-items:center; gap:6px; color:#2a2a2a; }
.doc .contact a:hover { color:var(--green-dark); }
.badge { font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:4px 9px; border-radius:20px; white-space:nowrap; flex:none; }
.badge-k { background:#eaf3de; color:#27500a; }
.badge-w { background:#f1efe8; color:#5f5e5a; }
.badge-n { background:#f4f9f5; color:var(--green-dark); }
.badge-top { background:var(--green); color:#fff; }
.doc .badges { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.doc.istop { border-color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.docmap { height:440px; border:1px solid var(--border); border-radius:12px; margin:18px 0 8px; z-index:0; }
.docmap a { color:var(--green-dark); }

/* ---------- Legal pages (Impressum / Datenschutz) ---------- */
.legal { max-width:var(--maxw); margin:0 auto; padding:0 40px 10px; }
.legal h1 { font-family:'Source Serif 4',serif; font-weight:600; font-size:38px; line-height:1.12; letter-spacing:-.01em; margin:26px 0 6px; }
.legal .updated { font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:24px; }
.legal h2 { font-family:'Source Serif 4',serif; font-weight:600; font-size:23px; line-height:1.25; margin:30px 0 10px; padding-top:18px; border-top:1px solid var(--border); }
.legal h2:first-of-type { border-top:0; padding-top:0; }
.legal p { font-size:16px; line-height:1.7; color:#222; margin-bottom:14px; }
.legal address { font-style:normal; font-size:16px; line-height:1.8; color:#222; margin-bottom:14px; }
.legal a { color:var(--green-dark); border-bottom:1px solid var(--green-light); }
.legal a:hover { background:#f4f9f5; }
.legal ul { margin:0 0 16px 22px; }
.legal li { font-size:16px; line-height:1.7; margin-bottom:7px; }
.legal .dl { display:grid; grid-template-columns:200px 1fr; gap:6px 18px; font-size:16px; margin-bottom:16px; }
.legal .dl dt { color:var(--muted); }
.legal .dl dd { color:#1a1a1a; }
.legal .note { background:#f4f9f5; border-left:3px solid var(--green); padding:14px 18px; font-size:15px; line-height:1.65; color:#1a1a1a; margin:18px 0; }

/* ---------- Responsive ---------- */
@media (max-width:900px) {
  .wrap, .util .wrap, .site-header .wrap, .nav .wrap { padding-left:22px; padding-right:22px; }
  .lede, .split, .newsgrid { grid-template-columns:1fr; gap:26px; }
  .ticker .wrap { padding-left:22px; padding-right:22px; }
  .grid4 { grid-template-columns:1fr 1fr; }
  .cat-grid { grid-template-columns:1fr 1fr; }
  .foot-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .logo { font-size:34px; }
  .feat h2 { font-size:34px; }
  .article, .a-hero figcaption { padding-left:22px; padding-right:22px; }
  .article h1 { font-size:34px; }
  .legal { padding-left:22px; padding-right:22px; }
  .legal h1 { font-size:30px; }
  .legal .dl { grid-template-columns:1fr; gap:2px 0; }
  .legal .dl dt { margin-top:8px; }
}
@media (max-width:640px) {
  .util .wrap span:last-child { display:none; }
  .site-header .wrap { align-items:flex-start; padding-top:16px; padding-bottom:16px; }
  .site-header .meta { display:none; }
  .site-header .logo .s { font-size:clamp(9.5px,2.75vw,11px); letter-spacing:.09em; margin-top:6px; white-space:nowrap; }
  .site-header .menu-btn { display:block; background:none; border:0; padding:9px 11px; margin:-18px -11px 0 0; font-size:27px; line-height:1; color:#fff; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:rgba(255,255,255,.2); }
  .nav .wrap { flex-wrap:wrap; padding:0 22px; }
  .nav ul { display:none; flex-direction:column; gap:0; width:100%; padding:6px 0 8px; }
  .nav ul.open { display:flex; }
  .nav a { padding:11px 0; border-bottom:1px solid var(--border); width:100%; }
  .nav a.act, .nav a:hover { border-bottom-color:var(--border); }
  .nav li.has-sub { display:flex; flex-wrap:wrap; align-items:center; }
  .nav li.has-sub > a { flex:1; width:auto; }
  .nav li.has-sub > a::after { content:none; }
  .nav .sub-t { display:inline-flex; align-items:center; justify-content:center; width:42px; align-self:stretch; background:none; border:0; border-bottom:1px solid var(--border); color:var(--green-dark); font-size:14px; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:rgba(0,0,0,.08); }
  .nav .submenu { position:static; display:none; width:100%; min-width:0; grid-template-columns:none; box-shadow:none; border:0; padding:0 0 4px 16px; }
  .nav li.open > .submenu { display:flex; flex-direction:column; }
  .nav .submenu a { padding:9px 0; font-size:13px; font-weight:500; border-bottom:1px solid var(--border); }
  /* Sektionskopf: Titel und "Alle ..."-Link duerfen umbrechen statt hinauszuragen */
  .sec { flex-wrap:wrap; gap:6px 12px; margin:34px 0 18px; }
  .sec h2 { white-space:normal; }
  .sec .l { flex:1 1 24px; }
  .sec .more { margin-left:auto; }
  .grid4, .grid3 { grid-template-columns:1fr; }
  .cat-grid { grid-template-columns:1fr; }
  .rest-grid { grid-template-columns:1fr; }
  .doc-grid { grid-template-columns:1fr; }
  .finder .res { margin-left:0; }
  .biz { grid-template-columns:1fr; }
  .biz .tag { grid-column:1; grid-row:auto; justify-self:start; margin-bottom:4px; }
  .foot-grid { grid-template-columns:1fr 1fr; gap:24px 28px; }
  .foot-brand { grid-column:1 / -1; }
  .feat h2 { font-size:29px; }
  .article h1 { font-size:29px; }
  .a-body { font-size:17.5px; }
}

/* Einzelbetriebs-Seiten mit Steckbrief (Handel, Filialen). Das Markup lag seit
   dem Import ohne Stylesheet vor - Text lief randlos, die Icon-SVGs wurden in
   Originalgroesse gerendert. */
.biz-layout { max-width:var(--maxw); margin:0 auto; padding:0 40px; display:grid; grid-template-columns:1.55fr 1fr; gap:8px 48px; align-items:start; }
.biz-aside { position:sticky; top:24px; display:flex; flex-direction:column; gap:22px; }
.biz-layout .a-body { min-width:0; }
.biz-layout svg, .steckbrief svg, .hours-box svg { width:18px; height:18px; flex:none; }

.steckbrief { border-top:2px solid var(--green); background:#f4f9f5; padding:0 0 6px; }
.sb-hd { padding:16px 20px 12px; border-bottom:1px solid var(--border); }
.sb-hd .s { font-family:'Libre Franklin',sans-serif; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--green-dark); }
.sb-hd .t { font-family:'Source Serif 4',serif; font-size:22px; font-weight:600; line-height:1.2; margin-top:5px; }
.sb-row { display:flex; gap:11px; align-items:flex-start; padding:12px 20px; border-bottom:1px solid var(--border); font-family:'Libre Franklin',sans-serif; font-size:14.5px; line-height:1.5; color:#333; }
.sb-row:last-of-type { border-bottom:0; }
.sb-row svg { color:var(--green); margin-top:2px; }
.sb-row .lbl { display:block; font-size:11.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-bottom:2px; }
.sb-row a { color:var(--green-dark); font-weight:600; }
.stars .st { color:#e8a317; letter-spacing:1px; margin-right:5px; }
.stars b { color:#111; }
.sb-cta { display:flex; flex-wrap:wrap; gap:8px; padding:14px 20px 6px; }

.hours-box { border:1px solid var(--border); border-top:2px solid var(--green); margin:22px 0; }
.hb-hd { display:flex; align-items:center; gap:9px; padding:12px 18px; background:#f4f9f5; font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:13px; letter-spacing:.07em; text-transform:uppercase; color:var(--green-dark); }
.hb-hd svg { color:var(--green); }
.hb-row { display:flex; justify-content:space-between; gap:16px; padding:10px 18px; border-top:1px solid var(--border); font-family:'Libre Franklin',sans-serif; font-size:15px; }
.hb-row .d { color:#333; }
.hb-row .h { font-weight:600; color:#111; }
.hb-row .h.closed { color:var(--muted); font-weight:500; }

.btn { display:inline-flex; align-items:center; gap:7px; background:var(--green); color:#fff; padding:9px 16px; border-radius:6px; font-family:'Libre Franklin',sans-serif; font-size:14px; font-weight:600; text-decoration:none; border:1px solid var(--green); }
.btn:hover { background:var(--green-dark); border-color:var(--green-dark); color:#fff; }
.btn-ghost { background:none; color:var(--green-dark); border-color:var(--border); }
.btn-ghost:hover { background:#f4f9f5; color:var(--green-dark); border-color:var(--green); }

.faq-item { border-bottom:1px solid var(--border); padding:14px 0; }
.faq-q { font-family:'Source Serif 4',serif; font-weight:600; font-size:18px; line-height:1.35; margin:0 0 6px; }
.faq-a { color:#333; }
.faq-a p:last-child { margin-bottom:0; }

@media (max-width:900px){ .biz-layout { grid-template-columns:1fr; } .biz-aside { position:static; } }
@media (max-width:640px){ .biz-layout { padding:0 22px; } }
/* Event-Landingpage: Kopf mit Eckdaten, Ticketbox und Programm-Zeitleiste */
.ev-hero { background:var(--green-dark); color:#fff; }
.ev-hero .wrap { padding:34px 40px 30px; }
.ev-hero .kick { color:var(--green-tint); }
.ev-hero h1 { font-family:'Source Serif 4',serif; font-weight:600; font-size:clamp(30px,4.4vw,46px); line-height:1.08; margin:8px 0 12px; color:#fff; }
.ev-hero .stand { font-size:18px; line-height:1.6; color:#dfeee4; max-width:60em; }
.ev-status { display:inline-block; background:var(--green); color:#fff; font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:12px; letter-spacing:.09em; text-transform:uppercase; padding:6px 12px; border-radius:4px; margin-bottom:6px; }
.ev-fakten { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; background:rgba(255,255,255,.22); margin-top:22px; }
.ev-fakten > div { background:var(--green-dark); padding:14px 16px; }
.ev-fakten dt { font-family:'Libre Franklin',sans-serif; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--green-tint); margin-bottom:5px; }
.ev-fakten dd { font-size:16.5px; line-height:1.4; color:#fff; }
.ev-fakten dd a { color:#fff; border-bottom:1px solid rgba(255,255,255,.5); }

.ev-cta { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.ev-cta a { display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--green-dark); padding:11px 20px; border-radius:6px; font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:14.5px; }
.ev-cta a:hover { background:var(--green-tint); color:var(--green-dark); }
.ev-cta a.ghost { background:none; color:#fff; border:1px solid rgba(255,255,255,.6); }
.ev-cta a.ghost:hover { background:rgba(255,255,255,.12); color:#fff; }

.ev-prog { list-style:none; margin:0; padding:0; border-top:1px solid var(--border); }
.ev-prog li { display:grid; grid-template-columns:150px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid var(--border); }
.ev-prog .tag { font-family:'Libre Franklin',sans-serif; font-weight:700; font-size:14px; color:var(--green-dark); }
.ev-prog .tag span { display:block; font-weight:500; font-size:12.5px; color:var(--muted); margin-top:2px; }
.ev-prog .was { font-family:'Source Serif 4',serif; font-size:17.5px; line-height:1.5; }
@media (max-width:640px){
  .ev-hero .wrap { padding:26px 22px 24px; }
  .ev-prog li { grid-template-columns:1fr; gap:4px; }
}

/* Rubriken-Verteiler auf der Startseite */
.rubriken { display:grid; grid-template-columns:repeat(3,1fr); gap:26px 30px; margin:18px 0 40px; }
.rub h3 { font-family:'Source Serif 4',serif; font-weight:600; font-size:20px; line-height:1.2; margin-bottom:7px; }
.rub h3 a:hover { color:var(--green-dark); }
.rub p { font-size:14.5px; line-height:1.6; color:var(--muted); }
.rub .mehr { margin-top:7px; font-size:13.5px; color:var(--border); }
.rub .mehr a { color:var(--green-dark); font-weight:600; }
.rub .mehr a:hover { text-decoration:underline; }
@media (max-width:900px){ .rubriken { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .rubriken { grid-template-columns:1fr; gap:22px; } }
.lead-img{margin:0 0 20px}
.lead-img img{width:100%;height:auto;display:block;border-radius:8px}
.lead-img.book img{max-width:300px;width:auto;margin:0 auto;border-radius:6px}

/* Stadtsilhouette im Header (nur Desktop) */
@media (min-width:900px) {
  .site-header .wrap { position:relative; }
  .site-header .logo { position:relative; z-index:1; }
  .skyline { display:block; position:absolute; right:40px; bottom:0; width:min(500px,40vw); height:auto; opacity:.2; pointer-events:none; }
}
