/* Unterseiten der Hallen (Impressum, Datenschutz, AGB, Musterseiten, Gewerke-Seiten, 404).
   Gleicher Beton wie die Hallen: dunkler Raum, warmes Licht von oben, Titel in Big Shoulders, Text in Newsreader.
   Die Klassen stammen aus den bisherigen Seiten (Inhalte wortgleich übernommen) und werden hier neu gestaltet. */
:root {
  --bg: #0c0b09; --bg-elevated: rgba(30, 27, 23, .82); --bg-subtle: rgba(255, 240, 215, .04);
  --fg: var(--text); --muted: #c9c2b5; --faint: #8f897e; --line: rgba(233, 228, 218, .13); --line-strong: rgba(233, 228, 218, .26);
  --accent: var(--licht); --font-display: var(--f-titel); --r-xl: 6px; --r-l: 6px; --r-m: 4px;
}
body.unterseite { background: var(--beton); min-height: 100vh; }
/* Raum im Hintergrund: der Gang der Hallen, stark abgedunkelt, Licht fällt von oben */
body.unterseite::before { content: ""; position: fixed; inset: 0; z-index: -2;
  background: url("../media/raeume/raum3-nischen-1280.jpg") 50% 40% / cover no-repeat; filter: saturate(.7) brightness(.32) blur(2px); transform: scale(1.04); }
body.unterseite::after { content: ""; position: fixed; inset: 0; z-index: -1;
  background: radial-gradient(70% 45% at 50% -5%, rgba(255, 200, 140, .16), transparent 70%), linear-gradient(180deg, rgba(10,9,8,.55), rgba(10,9,8,.86) 40%, rgba(10,9,8,.94)); }
.unterseite .leiste { background: linear-gradient(to bottom, rgba(8,9,8,.94), rgba(8,9,8,.78) 60%, rgba(8,9,8,0)); }
.unter-inhalt { display: block; padding: calc(var(--s7) + 24px) var(--rand) var(--s6) var(--rand); }
.unter-inhalt > section, .unter-inhalt > article { max-width: 1120px; margin: 0 auto; }
.bahn { max-width: 1120px; margin: 0 auto; }
.bahn-schmal { max-width: 760px; }
.bahn-weit { max-width: 1320px; }
.block { padding-block: var(--s5); }
.kopfabstand { padding-top: var(--s3); }
.oben-linie { border-top: 1px solid var(--line); margin-top: var(--s5); }
.flaeche-hoch { background: linear-gradient(180deg, rgba(255,230,190,.035), transparent 70%); }
.linie { border: 0; border-top: 1px solid var(--line); margin: var(--s4) 0; }
.mt-2 { margin-top: var(--s1); } .mt-3 { margin-top: 12px; } .mt-4 { margin-top: var(--s2); } .mt-5 { margin-top: var(--s3); } .mt-6 { margin-top: var(--s4); } .mt-8 { margin-top: var(--s5); }
.unter-inhalt p, .unter-inhalt h1, .unter-inhalt h2, .unter-inhalt h3 { margin-block: 0; }
.kicker { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--licht); }
.h-gross, .h-mittel, .h-klein { font-family: var(--f-titel); font-weight: 300; text-transform: uppercase; line-height: .98; letter-spacing: .01em; color: #f2ede3; }
.h-gross { font-size: clamp(2.6rem, 7vw, 5.4rem); }
.h-mittel { font-size: clamp(1.9rem, 4vw, 3.1rem); }
.h-klein { font-size: 1.35rem; font-weight: 500; letter-spacing: .04em; }
.kursiv-akzent { font-family: var(--f-text); font-style: italic; text-transform: none; color: var(--licht); font-weight: 300; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.55; color: #e2dccf; max-width: 46rem; }
.klein { font-size: .98rem; line-height: 1.6; }
.mini { font-size: .82rem; line-height: 1.5; }
.text-still { color: var(--muted); } .text-leise { color: var(--faint); } .text-akzent { color: var(--licht); }
.unter-inhalt a { color: inherit; }
.textlink { display: inline-flex; align-items: center; gap: 6px; font-family: var(--f-mono); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase;
  text-decoration: none; color: var(--text); border-bottom: 1px solid rgba(232,181,110,.5); padding-bottom: 2px; }
.textlink:hover { color: var(--licht); border-color: var(--licht); }
.pfeil { width: 14px; height: 14px; flex: none; }
.unter-inhalt .knopf { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; text-decoration: none;
  font-family: var(--f-mono); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; background: var(--licht); color: #17120a; border: 1px solid var(--licht); }
.unter-inhalt .knopf:hover { filter: brightness(1.08); }
.unter-inhalt .knopf-still { background: transparent; color: var(--text); border-color: var(--line-strong); }
.unter-inhalt .knopf-still:hover { border-color: var(--licht); color: var(--licht); }
.raster-3 { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.karte { padding: var(--s3); border: 1px solid var(--line); background: var(--bg-elevated); border-radius: var(--r-xl);
  box-shadow: inset 0 1px 0 rgba(255,230,190,.08); backdrop-filter: blur(3px); }
.haken { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.haken li, li.haken, .haken { position: relative; }
ul.haken li { padding-left: 18px; } ul.haken li::before { content: ""; position: absolute; left: 0; top: .75em; width: 9px; height: 1px; background: var(--licht); }
.zeile-verteilt { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s3); }
/* FAQ */
.faq { display: grid; gap: 0; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; position: relative; font-family: var(--f-titel); font-size: 1.3rem; text-transform: uppercase; letter-spacing: .03em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-family: var(--f-mono); color: var(--licht); font-size: 1.3rem; }
.faq details[open] summary::after { content: "–"; }
.antwort { padding: 0 0 20px; color: var(--muted); max-width: 46rem; }
/* Tabellen (Datenschutz, Vergleich) */
.tabelle-rollt, .tabelle-huelle { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.unter-inhalt table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.unter-inhalt th, .unter-inhalt td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.unter-inhalt th { font-family: var(--f-mono); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--licht); font-weight: 400; }
.nur-vorleser { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* Musterseiten-Vergleich: echte Seiten im Rahmen */
.vorschau { position: relative; overflow: hidden; border: 1px solid var(--line-strong); border-radius: var(--r-m); background: #000; }
.vorschau iframe { position: absolute; left: 0; top: 0; border: 0; transform-origin: 0 0; pointer-events: none; }
.mv-raster { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.mv-kopf { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.mv-knoepfe { display: flex; gap: 4px; }
.mv-knoepfe button { font-family: var(--f-mono); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; padding: 7px 9px; min-height: 34px;
  background: none; color: var(--muted); border: 1px solid var(--line); cursor: pointer; }
.mv-knoepfe button[aria-pressed="true"] { color: #17120a; background: var(--licht); border-color: var(--licht); }
.mv-bild { display: block; position: relative; margin-top: 12px; overflow: hidden; border-radius: var(--r-m); border: 1px solid var(--line); }
.mv-bild img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; transition: transform .6s; }
.mv-bild:hover img { transform: scale(1.03); }
.mv-oeffnen { position: absolute; right: 8px; bottom: 8px; font-family: var(--f-mono); font-size: .7rem; letter-spacing: .1em; background: rgba(12,11,9,.8); padding: 4px 8px; border: 1px solid rgba(232,181,110,.5); }
.reiter { display: flex; gap: 6px; flex-wrap: wrap; margin: var(--s3) 0 var(--s2); }
.reiter button { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; padding: 10px 14px; min-height: 44px; background: none; color: var(--muted); border: 1px solid var(--line); cursor: pointer; }
.reiter button[aria-selected="true"] { color: var(--text); background: rgba(232, 181, 110, .12); border-color: var(--licht); box-shadow: inset 0 -2px 0 var(--licht); }
.reiter button span { color: var(--licht); margin-left: 4px; }
.unter-fuss { position: relative; max-width: 1120px; margin: 0 auto; padding: var(--s4) var(--rand) calc(var(--s5) + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); }
@media (max-width: 720px) {
  .unter-inhalt { padding-top: calc(var(--s6) + 30px); }
  .block { padding-block: var(--s4); }
  .unterseite .leiste nav a:nth-child(2) { display: none; }
}
/* Bilder/Videos nie breiter als der Platz, lange Wörter (Adressen, Mails) umbrechen, Rechtstexte gut lesbar */
.unter-inhalt img, .unter-inhalt video { max-width: 100%; height: auto; }
.unter-inhalt { overflow-wrap: anywhere; }
.unter-inhalt [style*="font-size:14px"] { font-size: 1rem !important; color: var(--muted) !important; }
.ef-bild { border-radius: var(--r-m); overflow: hidden; border: 1px solid var(--line); }
.ef-bild video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.wegweiser { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.wegweiser a { color: var(--licht); }

/* 24.10.2026 Verkauf: Schrift mindestens 12 px (Handy 13 px), Bedienelemente mindestens 44 px hoch */
.kicker, .unter-inhalt th, .mv-knoepfe button, .mv-oeffnen { font-size: .75rem; }
.mv-knoepfe button { min-height: 44px; }
.unter-inhalt .textlink, .wegweiser a { display: inline-flex; align-items: center; min-height: 44px; }
.unter-inhalt a[aria-label] { min-height: 44px; }
@media (max-width: 720px) {
  .kicker, .unter-inhalt th, .mv-knoepfe button, .mv-oeffnen, .textlink, .reiter button, .reiter button span, .unter-inhalt .gs-kachel small { font-size: .8125rem; }
}
/* Gewerke-Seiten: Tore in den Probierraum (Verkauf P6) */
.gw-tore { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.gw-tore .knopf { min-height: 48px; }

/* Preis-/Leistungslisten (Musterseiten-Vergleich): Haken und Striche klein vor dem Text (ohne Größe füllten die SVGs die ganze Spalte) */
.preis-liste { list-style: none; padding: 0; margin-left: 0; margin-right: 0; display: grid; gap: 10px; }
.preis-liste li { display: flex; align-items: flex-start; gap: 10px; padding: 0; font-size: .95rem; line-height: 1.45; }
.preis-liste li::before { content: none; }
.preis-liste svg.haken { display: block; flex: none; width: 16px; height: 16px; margin-top: .2em; color: var(--licht); }
.preis-liste.linie { border-top: 1px solid var(--line); }
