/* BAUSCHULZ – schlichte Seite (v2, 2026-09-25). Klassisch: weiß, hellgrau, anthrazit; Orange nur als Fläche/Kante. */
@font-face{font-family:"Sofia Sans";src:url(assets/fonts/sofia-sans-var.woff2) format("woff2");font-weight:1 1000;font-display:swap}
@font-face{font-family:"Sofia Sans Condensed";src:url(assets/fonts/sofia-sans-cond-var.woff2) format("woff2");font-weight:1 1000;font-display:swap}

:root{
  color-scheme:light;
  --anthrazit:#353534;      /* Logo */
  --anthrazit-tief:#262625;
  --orange:#E88507;         /* Logo – nie als Text auf Hell */
  --papier:#fff;
  --grau:#f4f4f2;
  --linie:#dcdbd7;
  --text:#2b2b2a;
  --text-leise:#5b5a56;
  --wa:#25D366;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2rem;--s5:3rem;--s6:4.5rem;--s7:6rem;
  --wrap:1200px;
  --kopf-h:84px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --schrift:"Sofia Sans",system-ui,sans-serif;
  --titel:"Sofia Sans Condensed","Sofia Sans",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
[id]{scroll-margin-top:calc(var(--kopf-h) + 16px)}
body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:var(--papier);color:var(--text);font:400 1.0625rem/1.6 var(--schrift);font-optical-sizing:auto}
img{display:block;max-width:100%;height:auto}
picture{display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--titel);font-weight:700;line-height:1.1;margin:0;letter-spacing:.005em}
h2{font-size:clamp(2rem,3.2vw,2.6rem);color:var(--anthrazit)}
p{margin:0}
svg{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
:focus-visible{outline:3px solid var(--anthrazit);outline-offset:3px}
.kopf :focus-visible,.hero__box :focus-visible,.galerie :focus-visible,.fuss :focus-visible,.karte__hinweis :focus-visible{outline-color:var(--orange)}
main{flex:1 0 auto}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 max(16px,3vw)}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--papier);color:var(--anthrazit);padding:.6rem 1rem;font-weight:700}
.skip:focus{left:16px}

/* Knöpfe */
.knopf{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;padding:.75rem 1.4rem;background:var(--orange);color:var(--anthrazit-tief);font:700 1rem/1.2 var(--schrift);text-decoration:none;border:2px solid var(--orange);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.knopf--hell{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.knopf--linie{background:transparent;color:var(--anthrazit);border-color:var(--anthrazit)}
@media (hover:hover) and (pointer:fine){
  .knopf:hover{background:#f39a24;border-color:#f39a24}
  .knopf--hell:hover{background:#fff;color:var(--anthrazit);border-color:#fff}
  .knopf--linie:hover{background:var(--anthrazit);color:#fff;border-color:var(--anthrazit)}
}

/* Kopfleiste */
.kopf{position:sticky;top:0;z-index:50;background:var(--anthrazit);color:#fff}
.kopf__in{max-width:var(--wrap);margin:0 auto;height:var(--kopf-h);padding:0 max(16px,3vw);display:flex;align-items:center;gap:var(--s4)}
.kopf__logo{flex:none;display:block;padding:6px 0}
.kopf__logo img{width:190px;height:auto}
.kopf__nav{margin-left:auto}
.kopf__nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(1rem,2vw,2rem)}
.kopf__nav a{display:block;padding:.5rem 0;text-decoration:none;font-weight:600;font-size:1rem;border-bottom:2px solid transparent;transition:border-color .2s ease}
@media (hover:hover) and (pointer:fine){.kopf__nav a:hover{border-bottom-color:var(--orange)}}
.kopf__nav a[aria-current="page"]{border-bottom-color:var(--orange)}
.kopf__tel{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;background:var(--orange);color:var(--anthrazit-tief);font-weight:700;text-decoration:none;white-space:nowrap}
.kopf__menue{display:none;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .9rem;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5);font:700 1rem var(--schrift);cursor:pointer}
.kopf__menue svg{width:1.3em;height:1.3em}
@media (max-width:1180px){
  .kopf__tel span{display:none}
  .kopf__tel{padding:.5rem .8rem}
  .kopf__tel svg{width:1.3em;height:1.3em}
}
@media (max-width:1040px){
  :root{--kopf-h:72px}
  .kopf__logo img{width:160px}
  .kopf__in{gap:var(--s2)}
  .kopf__menue{display:inline-flex;order:3}
  .kopf__tel{margin-left:auto}
  .kopf__nav{position:absolute;left:0;right:0;top:100%;background:var(--anthrazit);border-top:1px solid rgba(255,255,255,.15);margin:0;display:none}
  .kopf.ist-offen .kopf__nav{display:block}
  .kopf__nav ul{flex-direction:column;gap:0;padding:var(--s1) max(16px,3vw) var(--s3)}
  .kopf__nav a{padding:.85rem 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:1.1rem}
  .kopf__nav a[aria-current="page"]{border-bottom-color:rgba(255,255,255,.12);box-shadow:inset 4px 0 0 var(--orange);padding-left:14px}
}
@media (max-width:400px){.kopf__logo img{width:136px}.kopf__menue span{display:none}}

/* Hero */
.hero{position:relative;background:var(--anthrazit)}
.hero__bild img{width:100%;height:clamp(520px,78vh,820px);object-fit:cover;object-position:50% 42%}
.hero__box{position:absolute;left:max(16px,min(calc(max(0px,(100% - var(--wrap)) / 2) + max(16px,3vw)),calc(41vw - 424px)));bottom:clamp(40px,7vh,72px);width:420px;background:rgba(38,38,37,.9);color:#fff;border-left:8px solid var(--orange);padding:var(--s4) var(--s4) var(--s4) calc(var(--s4) + 4px)}
.hero__firma{font-size:.9rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#d9d8d4;margin-bottom:var(--s2)}
.hero h1{font-size:clamp(2.1rem,3.2vw,2.9rem);color:#fff;margin-bottom:var(--s2);text-wrap:balance}
.hero__box>p:not([class]){font-size:1.15rem;color:#eeede9}
.hero__knoepfe{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
@media (min-width:1181px){.hero__knoepfe{flex-direction:column;align-items:stretch;gap:.75rem}.hero__knoepfe .knopf{justify-content:center}}
@media (max-width:1180px){
  .hero__bild img{height:auto;aspect-ratio:3/2;max-height:max(220px,calc(100svh - var(--kopf-h) - 260px))}
  .hero__box{position:static;width:auto;border-left:0;border-top:6px solid var(--orange);padding:var(--s4) max(16px,3vw) var(--s5);background:var(--anthrazit-tief)}
  .hero__box>*{max-width:640px}
}

/* Infoleiste */
.info{background:var(--grau);border-bottom:1px solid var(--linie)}
.info__in{max-width:var(--wrap);margin:0 auto;padding:var(--s4) max(16px,3vw);display:grid;grid-template-columns:1.15fr 1.3fr .8fr 1fr;gap:var(--s3) 0}
.info__in>div{padding-right:var(--s3)}
.info__in>div+div{border-left:1px solid var(--linie);padding-left:var(--s4)}
@media (min-width:901px) and (max-width:1320px){.info__in{padding-right:calc(max(16px,3vw) + 64px)}}
.info dt{font-weight:700;font-size:.95rem;color:var(--anthrazit)}
.info dd{margin:.15rem 0 0;color:var(--text-leise);font-size:.98rem}
.info a{color:var(--text);text-underline-offset:3px}
.info dd a,.standort dd a,.karte__hinweis a{display:inline-block;padding:12px 0;margin:-12px 0}
@media (max-width:900px){
  .info__in{grid-template-columns:1fr 1fr;gap:var(--s3)}
  .info__in>div+div{border-left:0;padding-left:0}
}
@media (max-width:520px){.info__in{grid-template-columns:1fr;gap:var(--s2)}}

/* Sparten */
.sparten{padding:var(--s7) 0 var(--s6)}
.sparten h2{margin-bottom:var(--s4)}
.sparten__liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4)}
.sparte__knopf{position:relative;display:block;width:100%;padding:0;border:0;background:var(--anthrazit);cursor:pointer;overflow:hidden;text-align:left;color:#fff;font:inherit;text-decoration:none}
.sparte__knopf picture{aspect-ratio:3/2;overflow:hidden}
.sparte__knopf img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.sparte__leiste{position:absolute;left:0;right:0;bottom:0;z-index:3;display:block;padding:1.1rem 1.5rem 1.2rem;background:rgba(38,38,37,.86);transition:background-color .2s ease}
.sparte__titel{display:block;font:700 clamp(1.35rem,1.9vw,1.7rem)/1.15 var(--titel)}
.sparte__mehr{display:inline-flex;align-items:center;gap:.4rem;margin-top:.25rem;font-weight:700;font-size:.98rem;color:var(--orange)}
.sparte p{margin-top:var(--s2);color:var(--text-leise)}
/* Bildwechsel in den Kacheln (script.js): zwei Ebenen über dem Startbild, Überblendung nur per opacity */
.sparte__knopf .sparte__wechsel{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s var(--ease-out),transform .5s var(--ease-out)}
.sparte__knopf .sparte__wechsel.ist-da{opacity:1}
@media (hover:hover) and (pointer:fine){
  .sparte__knopf:hover img{transform:scale(1.04)}
  .sparte__knopf:hover .sparte__leiste{background:rgba(38,38,37,.95)}
}
@media (max-width:700px){.sparten__liste{grid-template-columns:1fr}.sparte__knopf picture{aspect-ratio:4/3}}

/* Sparten-Seite: Kopfbild mit Text */
.sparten-kopf{position:relative;background:var(--anthrazit)}
.sparten-kopf__bild img{width:100%;height:clamp(420px,62vh,640px);object-fit:cover}
.sparten-kopf--hochbau img{object-position:50% 45%}
.sparten-kopf--tiefbau img{object-position:50% 78%}
/* Tiefbau: Brücke liegt links im Bild → Textbox rechts an der Inhaltskante */
@media (min-width:1181px){.sparten-kopf--tiefbau .hero__box{left:auto;right:max(16px,calc(max(0px,(100% - var(--wrap)) / 2) + max(16px,3vw)))}}
.sparten-kopf h1{font-size:clamp(2.2rem,3.6vw,3.2rem);color:#fff;margin-bottom:var(--s2)}
.sparten-kopf__box>p:not([class]){font-size:1.1rem;color:#eeede9}
.sparten-kopf__box>p:not([class])+p:not([class]){margin-top:var(--s2);font-size:1rem;color:#d9d8d4}
@media (max-width:1180px){.sparten-kopf__bild img{height:auto;aspect-ratio:16/9;max-height:max(220px,calc(100svh - var(--kopf-h) - 260px))}}

/* Sparten-Seite: Leistungen (Gewerke) */
.leistungen{padding:var(--s6) 0 0}
.leistungen h2{margin-bottom:var(--s3)}
.leistungen__liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--linie)}
.leistungen__liste li{position:relative;padding:1rem 1rem 1rem 1.6rem;border-bottom:1px solid var(--linie);font-weight:600;font-size:1.08rem;color:var(--anthrazit)}
.leistungen__liste li::before{content:"";position:absolute;left:0;top:1.45rem;width:.6rem;height:.6rem;background:var(--orange)}
@media (max-width:900px){.leistungen__liste{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.leistungen__liste{grid-template-columns:1fr}}

/* Downloads */
.seitenkopf{background:var(--anthrazit);color:#fff;border-bottom:6px solid var(--orange)}
.seitenkopf .wrap{padding-top:var(--s5);padding-bottom:var(--s5)}
.seitenkopf h1{font-size:clamp(2.2rem,3.6vw,3.2rem)}
.downloads{padding:var(--s6) 0 var(--s7)}
main:has(.downloads){display:flex;flex-direction:column}
main:has(.downloads) .downloads{flex:1}
.downloads__leer{max-width:62ch;font-size:1.1rem;color:var(--text-leise)}
.downloads__leer a{color:var(--text);font-weight:600;text-underline-offset:3px}
.downloads__hinweis{margin-bottom:var(--s4);color:var(--text-leise);font-size:1.05rem}
/* Dokumente als Vorschau-Kacheln (Seite 1 des PDFs), Klick = Download */
.dokumente{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4) var(--s3)}
@media (max-width:1099px){.dokumente{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dokumente>li{display:flex;flex-direction:column}
.dok{flex:1;display:flex;flex-direction:column;text-decoration:none;color:var(--text)}
.dok__bild{display:block;aspect-ratio:1/1.414;overflow:hidden;background:#fff;border:1px solid var(--linie);transition:border-color .2s ease}
.dok__bild img{width:100%;height:100%;object-fit:cover;object-position:top}
.dok__text{flex:1;display:flex;flex-direction:column;gap:.2rem;padding-top:var(--s2)}
.dok__text b{font-size:1.05rem;line-height:1.3;color:var(--anthrazit);hyphens:auto;overflow-wrap:break-word}
.dok__text>span{color:var(--text-leise);font-size:.95rem}
.dok__datei{display:inline-flex;align-self:flex-start;align-items:center;gap:.4rem;margin-top:.4rem;padding:.4rem 0;font-weight:700;color:var(--anthrazit);font-size:.95rem;text-decoration:none}
.dok__datei svg{width:18px;height:18px;flex:none;fill:none;stroke:var(--orange);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){.dok:hover .dok__bild{border-color:var(--orange)}.dok:hover b{text-decoration:underline;text-underline-offset:3px}.dok__datei:hover{text-decoration:underline;text-underline-offset:3px}}
.dok:focus-visible,.dok__datei:focus-visible{outline:3px solid var(--anthrazit);outline-offset:4px}
/* Handy: Liste mit kleiner Vorschau links */
@media (max-width:620px){.dokumente{grid-template-columns:1fr;gap:0;border-top:1px solid var(--linie)}.dokumente>li{border-bottom:1px solid var(--linie);padding:var(--s3) 0}.dok{flex-direction:row;align-items:flex-start;gap:var(--s3)}.dok__bild{width:96px;flex:none}.dok__text{padding-top:0}.dok__datei{margin:.3rem 0 0 calc(96px + var(--s3))}}
@media (max-width:360px){.dok{gap:var(--s2)}.dok__bild{width:72px}.dok__datei{margin-left:calc(72px + var(--s2))}}

/* Vorschau eines Dokuments (Dialog, Seiten untereinander) */
.dokansicht{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#1d1d1c;color:#fff}
.dokansicht[open]{display:grid;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}
.dokansicht::backdrop{background:rgba(0,0,0,.6)}
@media (prefers-reduced-motion:no-preference){.dokansicht[open]{animation:galerie-ein .25s var(--ease-out)}}
.dokansicht :focus-visible{outline-color:var(--orange)}
.dokansicht__kopf{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) max(16px,3vw);border-bottom:1px solid rgba(255,255,255,.12)}
.dokansicht__titel{flex:1;min-width:0}
.dokansicht__titel h2{color:#fff;font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.2}
.dokansicht__titel p{margin-top:.15rem;color:#c9c8c4;font-size:.95rem}
.dokansicht__laden{flex:none}
.dokansicht__laden svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.dokansicht__seiten{overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s4) max(16px,3vw) var(--s6)}
.dokansicht__seiten picture{display:block;width:100%;max-width:860px}
.dokansicht__seiten img{display:block;width:100%;height:auto;background:#fff}
@media (max-width:640px){.dokansicht__kopf{flex-wrap:wrap;gap:var(--s2)}.dokansicht__laden{order:3;width:100%;justify-content:center}
  .dokansicht__titel h2{font-size:1.15rem}.dokansicht__seiten{padding:var(--s2) 8px var(--s5);gap:var(--s2)}}

/* Sparten-Seite: Bilder klein, Klick = Großansicht */
.bilder{padding:var(--s6) 0 var(--s4)}
.bilder h2{display:flex;align-items:baseline;gap:.6rem;margin-bottom:var(--s4)}
.bilder h2 span{font:600 1rem var(--schrift);color:var(--text-leise)}
/* 12er-Raster, Spaltenbreite je Bild aus bs2_gen.py (--d/--t/--m) → immer volle Reihen, egal wie viele Bilder */
.bilder__raster{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s2)}
.bilder__raster>li{grid-column:span var(--d,3)}
.bilder__kachel{display:block;overflow:hidden;background:var(--grau)}
.bilder__kachel img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .45s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.bilder__kachel:hover img{transform:scale(1.04)}}
.bilder__kachel.fokus-unten img{object-position:50% 90%}
.weitere{margin-bottom:var(--s6);color:var(--text-leise);font-size:1.05rem}
.weitere span{font-weight:700;color:var(--anthrazit);margin-right:.35rem}
.weitere a{display:inline-block;padding:10px 0;color:var(--text);font-weight:600;text-underline-offset:3px}
@media (max-width:1000px){.bilder__raster>li{grid-column:span var(--t,4)}}
@media (max-width:600px){.bilder__raster{gap:.6rem}.bilder__raster>li{grid-column:span var(--m,6)}}

/* Galerie */
.galerie{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#1d1d1c;color:#fff}
.galerie[open]{display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}
.galerie::backdrop{background:rgba(0,0,0,.6)}
@media (prefers-reduced-motion:no-preference){.galerie[open]{animation:galerie-ein .25s var(--ease-out)}}
@keyframes galerie-ein{from{opacity:0}to{opacity:1}}
.galerie__kopf{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) max(16px,3vw);border-bottom:1px solid rgba(255,255,255,.12)}
.galerie__kopf h2{min-width:0;color:#fff;font-size:clamp(1.4rem,2.4vw,1.9rem)}
.galerie__zahl{flex:none;white-space:nowrap;color:#c9c8c4;font-variant-numeric:tabular-nums}
.galerie__zu{flex:none;margin-left:auto;width:48px;height:48px;display:grid;place-items:center;background:transparent;border:2px solid rgba(255,255,255,.4);color:#fff;cursor:pointer}
.galerie__zu svg{width:24px;height:24px}
.galerie__buehne{position:relative;margin:0;min-height:0;display:grid;grid-template-rows:auto auto;align-content:center;justify-items:center;padding:var(--s3) calc(max(16px,3vw) + 64px) var(--s2)}
.galerie__buehne{touch-action:pan-y}
.galerie__buehne img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
.galerie__rahmen{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}
.galerie__buehne img{max-width:100%;max-height:calc(100dvh - 230px);width:auto;height:auto;object-fit:contain;transition:opacity .2s ease}
.galerie__buehne img.ist-leer{opacity:0}
.galerie figcaption{padding-top:var(--s2);color:#e4e3df;text-align:center;max-width:70ch}
.galerie__pfeil{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.35);color:#fff;cursor:pointer}
.galerie__pfeil svg{width:26px;height:26px}
.galerie__pfeil--zurueck{left:-64px}
.galerie__pfeil--vor{right:-64px}
@media (hover:hover) and (pointer:fine){.galerie__pfeil:hover,.galerie__zu:hover{background:rgba(255,255,255,.18)}}
@media (max-width:900px){
  .galerie__buehne{padding:var(--s2) max(16px,3vw) var(--s1)}
  .galerie__buehne img{max-height:calc(100dvh - 210px)}
  .galerie__pfeil{width:44px;height:44px;background:rgba(0,0,0,.5);border-color:rgba(255,255,255,.5)}
  .galerie__pfeil--zurueck{left:0}.galerie__pfeil--vor{right:0}
  .galerie figcaption{font-size:.95rem}
  .galerie__kopf{gap:var(--s2)}
  .galerie__kopf h2{flex:1 1 0;font-size:1.35rem}
  }

/* Team */
.team{padding:var(--s6) 0 var(--s7);background:var(--grau);border-top:1px solid var(--linie);border-bottom:1px solid var(--linie)}
.team__kopf{display:grid;grid-template-columns:auto 1fr;gap:var(--s2) var(--s5);align-items:end;margin-bottom:var(--s4)}
.team__kopf p{color:var(--text-leise);max-width:52ch;font-size:1.1rem}
.team__gruppe{margin:0}
.team__gruppe img{width:100%}
.team__text{max-width:68ch;margin-top:var(--s4);font-size:1.15rem;line-height:1.65;color:var(--text)}
.team__portraits{list-style:none;margin:var(--s3) 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s3)}
.team__portraits figure{margin:0}
.team__portraits img{width:100%;aspect-ratio:4/5;object-fit:cover}
.team__portraits figcaption{padding-top:.6rem;font-size:.95rem;color:var(--text-leise)}
.team__portraits figcaption b{display:block;color:var(--anthrazit)}
@media (max-width:900px){.team__kopf{grid-template-columns:1fr}.team__portraits{gap:var(--s2)}}
@media (max-width:600px){.team__portraits{display:flex;gap:var(--s2);overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(-1 * max(16px,3vw));padding-right:max(16px,3vw);padding-bottom:var(--s1)}.team__portraits li{flex:0 0 42%;scroll-snap-align:start}}

/* Standort */
.standort{padding:var(--s7) 0}
.standort__in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s5);align-items:start}
.standort h2{margin-bottom:var(--s3)}
.standort address{font-style:normal;font-size:1.15rem;line-height:1.55;margin-bottom:var(--s3)}
.standort address b{color:var(--anthrazit)}
.standort dl{margin:0;display:grid;gap:var(--s2);padding:var(--s3) 0;border-top:1px solid var(--linie);border-bottom:1px solid var(--linie)}
.standort dl div{display:grid;grid-template-columns:8.5rem 1fr;gap:var(--s2)}
.standort dt{font-weight:700;color:var(--anthrazit)}
.standort dd{margin:0}
.standort dd a{text-underline-offset:3px}
.standort__orte{margin-top:var(--s3);color:var(--text-leise)}
.standort__knoepfe{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.karte{position:relative;background:var(--grau);aspect-ratio:4/3;overflow:hidden}
.karte__platz{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:var(--s4) var(--s3) calc(var(--s3) + 110px);color:var(--text-leise);text-align:center;background:repeating-linear-gradient(0deg,transparent 0 47px,var(--linie) 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,var(--linie) 47px 48px),var(--grau)}
.karte__platz svg{width:48px;height:48px;color:var(--anthrazit);fill:var(--orange);stroke-width:1.4}
.karte__platz svg circle{fill:#fff}
.karte__platz span{font-weight:700;color:var(--anthrazit)}
.karte__hinweis{position:absolute;left:0;right:0;bottom:0;padding:var(--s3);background:rgba(38,38,37,.9);color:#eeede9;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
.karte__hinweis p{flex:1 1 260px;font-size:.92rem;line-height:1.45}
.karte__hinweis a{color:#fff}
.karte__leinwand{position:absolute;inset:0}
.karte__leinwand[hidden]{display:none!important}
.karte.ist-geladen .karte__platz,.karte.ist-geladen .karte__hinweis{display:none}
.karte .leaflet-tile{outline:1px solid transparent}
.sitz-marker{color:var(--orange)}
.sitz-marker svg{width:40px;height:40px;fill:var(--orange);stroke:var(--anthrazit-tief);stroke-width:1.2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
@media (max-width:900px){.standort__in{grid-template-columns:1fr}}
@media (max-width:520px){.karte{aspect-ratio:auto}.karte__platz{position:static;min-height:240px;padding-bottom:var(--s4)}.karte__hinweis{position:static}.karte.ist-geladen{aspect-ratio:1}.standort dl div{grid-template-columns:1fr;gap:0}}

/* Fuß */
.fuss{background:var(--anthrazit);color:#e4e3df}
.fuss__in{max-width:var(--wrap);margin:0 auto;padding:var(--s4) max(16px,3vw) calc(var(--s4) + 8px);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4)}
.fuss img{width:150px}
.fuss p{font-size:.93rem;color:#cfceca}
.fuss ul{list-style:none;margin:0 0 0 auto;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3)}
.fuss a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;color:#fff;text-decoration:none;font-weight:600}
@media (hover:hover) and (pointer:fine){.fuss a:hover{text-decoration:underline;text-underline-offset:3px}}
@media (max-width:760px){.fuss ul{margin-left:0}.fuss__in{padding-right:88px}}

/* WhatsApp (Standard .wa-fab, siehe kfz-mattes) */
.wa-fab{position:fixed;right:16px;bottom:24px;z-index:60;width:56px;height:56px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px -8px rgba(37,211,102,.7);transition:transform .35s var(--ease-out),opacity .35s var(--ease-out)}
.wa-fab svg{width:32px;height:32px;position:relative;z-index:1}
.wa-fab__pulse{position:absolute;inset:0;border-radius:50%;background:var(--wa);opacity:.45}
@media (prefers-reduced-motion:no-preference){.wa-fab__pulse{animation:wa-puls 2.6s ease-out infinite}}
@keyframes wa-puls{0%{transform:scale(1);opacity:.45}100%{transform:scale(1.65);opacity:0}}
@media (hover:hover) and (pointer:fine){.wa-fab:hover{transform:scale(1.06)}}
.wa-fab:active{transform:scale(.97)}
.wa-fab:focus-visible{outline:3px solid var(--anthrazit);outline-offset:2px;box-shadow:0 0 0 2px #fff,0 0 0 8px #fff}

/* Rechtstexte */
.recht{padding:var(--s6) 0 var(--s7)}
.recht .wrap{max-width:860px}
.recht h1{font-size:clamp(2.2rem,4vw,3rem);color:var(--anthrazit);margin-bottom:var(--s4);hyphens:manual}
.recht h2{font-size:1.6rem;margin:var(--s5) 0 var(--s2)}
.recht h3{font-size:1.2rem;margin:var(--s4) 0 var(--s1);color:var(--anthrazit)}
.recht p,.recht address{margin:0 0 var(--s2);font-style:normal}
.recht .hinweis{margin-top:var(--s5);color:var(--text-leise);font-size:.95rem}
.recht a{text-underline-offset:3px;overflow-wrap:anywhere}
.vierohvier{min-height:50vh}

@media (prefers-reduced-motion:reduce){.sparte__knopf img,.galerie__buehne img,.bilder__kachel img{transition:none}.sparte__knopf:hover img,.bilder__kachel:hover img{transform:none}}
@media print{.kopf,.wa-fab,.karte{display:none!important}}
