/* umbau-v5 Ergaenzungen zum Apple-gruen-Kanon. Keine externen Requests. */
/* Rechtsseiten (Rechtstexte-Gang 22.08.2026): Lesetakt fuer die wortgleich
   uebernommenen Kerne und Trefferflaeche der Schlusszeilen-Links (TOUCH >=44px,
   nur padding/negativer margin — kein Layoutversatz, keine Schriftaenderung). */
.legal-v5 h2{margin-top:2.2rem;}
.legal-v5 h3{margin-top:1.4rem;}
.legal-v5 p,.legal-v5 ul{margin-top:0.85rem;}
.legal-v5 .linkzeile a{display:inline-flex;align-items:center;padding-block:12px;margin-block:-12px;}
.vorschau-band{margin:0;padding:8px 16px;background:var(--ink);color:#fff;text-align:center;
  font-size:var(--fs-caption);font-weight:600;letter-spacing:0.02em;}
:root{--fs-h1:clamp(2rem,1.2rem+3.8vw,4.5rem);--fs-h2:clamp(1.75rem,1.3rem+2vw,2.75rem);}
/* V5: Not-Umbruch bleibt aktiv (Kanon-Standard). Die Master-Skala haelt 40px
   Display auch bei 320-430px; lange Einzelwoerter (Buchungsinformationen,
   Paketkonfigurator) brauchen den Umbruch ohne Silbentrennung, sonst laeuft
   die Seite ueber (T12.2). hyphens:none = weiterhin keine Trennstriche. */
h1,h2,h3{overflow-wrap:break-word;hyphens:none;}
/* P0 Punkt 7 (Owner 20.08.2026): keine Wortbrueche mitten in langen
   Hauptueberschriften; H1 bricht nur an Wortgrenzen. Die Groessenstufen
   h1-wort-l/-xl setzt der Generator ans laengste H1-Token gekoppelt, damit
   Komposita auf schmalen Breiten ohne Trennung in die Spur passen. */
h1{overflow-wrap:normal;word-break:keep-all;}
@media (max-width:520px){
  h1.h1-wort-l{font-size:clamp(1.5rem,8.6vw,2.25rem);letter-spacing:-0.5px}
  h1.h1-wort-xl{font-size:clamp(1.25rem,7vw,1.75rem);letter-spacing:-0.4px}
}
.world h3{font-size:var(--fs-h2);}
.card h3{font-size:var(--fs-subhead);line-height:1.2;}
code{overflow-wrap:anywhere;}
.pcard,.pcard-text,.pcard-preis,.pcard-punkte li,.feld p,.feld-liste li,.bundle-feld,.bundle-links,
.detail-name,.breadcrumb,.legende-liste li{overflow-wrap:break-word;}
.badge{white-space:normal;text-align:center;}
.chips{max-width:100%;}
.chip{max-width:100%;overflow-wrap:break-word;}
.card .step-num{margin-right:6px;}
.header-tools{display:flex;align-items:center;gap:10px;}
.login-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;
  padding:12px 14px;border-radius:var(--r-pill);border:1px solid var(--hairline);color:var(--ink);}
.login-link:hover{border-color:var(--ink);}
/* TOUCH-ZIELE (Kanon MOBILE-HAERTUNG): 311 geerbte Verstoesse bei 390px ueber
   Wurzeln behoben (19.08.2026, identischer Bestand im HEAD-Bau belegt) — nur
   Trefferflaechen ueber min-height/Padding, keine Schriftgroesse geaendert.
   Wurzeln: Fusszeilen-Listenlinks, Logo- und Login-Link der Kopfleiste,
   Breadcrumb- und Login-Hilfslinks (Padding mit Gegen-Margin, Layout bleibt),
   Chip-Links der Startseite. */
.footer-cols li a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;}
.logo-link{display:inline-flex;align-items:center;min-height:44px;}
.breadcrumb a,.login-hilfe a{display:inline-block;padding-block:13px;margin-block:-13px;}
a.chip{display:inline-flex;align-items:center;min-height:44px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:767px){.grid-2{grid-template-columns:1fr;}}
.prinzipien{list-style:none;}
.section-cta{margin-top:2rem;text-align:center;}
.showcase{margin-bottom:1.5rem;}
.scan-meldung{min-height:1.4em;font-weight:600;color:var(--ember);margin-top:0.75rem;}
.scan-meldung.ok{color:var(--blue);}
.scan-login{margin-top:0.5rem;}
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin-top:1.25rem;}
.chip{display:inline-block;padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--hairline);
  background:var(--paper);font-size:var(--fs-caption);font-weight:600;text-decoration:none;color:var(--ink);}
a.chip:hover{border-color:var(--blue);color:var(--blue);}
.chip-status{background:var(--wash);}
.badge{display:inline-block;padding:4px 12px;border-radius:var(--r-badge);font-size:var(--fs-micro);
  font-weight:600;letter-spacing:0.03em;text-transform:uppercase;}
.badge-bestand{background:#dcefe9;color:#0b5c4d;}
.badge-neuschnitt{background:#dde7f5;color:#274a78;}
.badge-entwurf{background:#f7e8cf;color:#7a4a06;}
.badge-anfrage{background:var(--wash);color:var(--ink-mid);}
.badge-blueprint{background:#e7e0f5;color:#4a3578;}
.pcard{display:flex;flex-direction:column;gap:0.6rem;align-items:flex-start;text-align:left;}
/* BILD-GEOMETRIE (21.08.2026, Pflicht-Riegel bild_geometrie.js): kein Inhaltsbild
   verzerrt. Wurzel des Mobil-Befunds: globales img{max-width:100%} ohne height:auto
   liess die width/height-ATTRIBUTE der media-bild-Slots stehen — Breite gedeckelt,
   Hoehe fix = gestauchte Motive auf jeder schmalen Breite. Je Slot-Typ feste
   aspect-ratio + object-fit:cover; Heros mit Motivschwerpunkt oben-mittig
   (die Registratur fuehrt kein Fokus-Feld, gemessen 21.08.: nur aspect_ratio). */
.media-bild{display:block;width:100%;}
.media-bild img{display:block;width:100%;height:auto;border-radius:var(--r-card);}
.world-hero-grid .visual-wrap .media-bild img{aspect-ratio:16/9;object-fit:cover;object-position:50% 25%;}
.hero .media-bild img,.showcase .media-bild img{aspect-ratio:16/9;object-fit:cover;object-position:50% 25%;}
.world .media-bild img,.card .media-bild img{aspect-ratio:3/2;object-fit:cover;}
.pcard-bild img,.karte-motiv img{aspect-ratio:3/2;object-fit:cover;}
.timeline .pcard-bild img{aspect-ratio:3/2;object-fit:cover;}
.pcard-bild{display:block;width:100%;margin-bottom:4px;}
.pcard-bild img{display:block;width:100%;height:auto;border-radius:var(--r-tile);}
.eingebettet .pcard-bild img{border-radius:var(--r-tile);}
.badge-referenz{background:var(--wash);color:var(--ink-mid);}
.pcard-status{font-size:var(--fs-caption);color:var(--ink-soft);font-weight:600;}
.konfig-optionen{list-style:none;}
.konfig-option{align-items:flex-start;text-align:left;display:flex;flex-direction:column;gap:0.6rem;}
.konfig-option-preis{font-weight:600;color:var(--ink);font-size:var(--fs-caption);}
.eingebettet{align-items:flex-start;text-align:left;display:flex;flex-direction:column;gap:0.6rem;}
.pcard-kopf{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;width:100%;}
.pcard-ergebnis{font-weight:600;color:var(--ink);}
.pcard-text{color:var(--ink-mid);font-size:var(--fs-caption);}
.pcard-preis{font-weight:600;color:var(--ink);font-size:var(--fs-caption);}
.pcard-punkte{list-style:disc;padding-left:1.2em;color:var(--ink-mid);font-size:var(--fs-caption);
  display:flex;flex-direction:column;gap:4px;}
.pcard-cta{margin-top:auto;}
.katalog-welt{text-decoration:none;display:flex;flex-direction:column;gap:0.6rem;align-items:flex-start;text-align:left;}
.breadcrumb{display:block;flex-wrap:wrap;font-size:var(--fs-caption);color:var(--ink-soft);margin-bottom:0.75rem;}
.breadcrumb a{color:var(--ink-soft);}
.container.narrow{max-width:820px;}
.detail-hero .detail-name{font-weight:600;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.detail-sektion h2{margin-bottom:1.25rem;font-size:var(--fs-h2);}
.feld{margin-bottom:1.25rem;}
.preis-pflichtzeile{font-size:var(--fs-caption);color:var(--ink-soft);margin-top:0.75rem;}
.feld-titel{font-size:var(--fs-body-lg);font-weight:600;margin-bottom:0.35rem;}
.feld-liste{list-style:disc;padding-left:1.3em;display:flex;flex-direction:column;gap:6px;color:var(--ink-mid);}
ol.feld-liste{list-style:decimal;}
.tabelle-scroll{overflow-x:auto;margin:1rem 0;}
.tabelle-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:var(--r-link);}
.tabelle-scroll table{border-collapse:collapse;width:100%;min-width:480px;font-variant-numeric:tabular-nums;}
.tabelle-scroll th,.tabelle-scroll td{border:1px solid var(--hairline);padding:10px 14px;text-align:left;font-size:var(--fs-caption);}
.tabelle-scroll th{background:var(--wash);font-weight:600;}
.faq-item{border-bottom:1px solid var(--hairline);padding:0.85rem 0;}
.faq-item summary{font-weight:600;cursor:pointer;padding:6px 4px;border-radius:var(--r-link);}
.faq-item summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px;}
.faq-item p{margin-top:0.6rem;color:var(--ink-mid);}
.bundle-feld{font-size:var(--fs-caption);color:var(--ink-mid);}
.bundle-links{font-size:var(--fs-caption);}
.bundle-links a{color:var(--link);}
.konfig-liste{list-style:none;counter-reset:none;}
.konfig-schritt h3{display:flex;align-items:center;gap:10px;font-size:var(--fs-body-lg);}
.sperr-text p{font-weight:600;color:var(--ink-mid);}
.login-mitte{display:flex;justify-content:center;padding-block:var(--section);}
.login-karte{max-width:520px;width:100%;text-align:left;align-items:stretch;}
.login-karte h1{font-size:var(--fs-h3);margin:0.5rem 0;}
.login-form{display:flex;flex-direction:column;gap:10px;margin:1.25rem 0 0.5rem;}
.login-form .scan-input{flex:0 0 auto;width:100%;}
.login-form label{font-weight:600;font-size:var(--fs-caption);}
.anfrage-text{border-radius:var(--r-tile);min-height:120px;resize:vertical;padding:12px 16px;}
.login-neutral,.login-alt,.login-hilfe{font-size:var(--fs-caption);color:var(--ink-soft);margin-top:0.6rem;}
.login-hilfe a{color:var(--link);}
.drawer-hinweis{font-size:var(--fs-caption);color:var(--ink-soft);font-weight:600;}
.dash-karte{align-items:flex-start;text-align:left;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--paper);
  z-index:300;box-shadow:-12px 0 40px rgba(0,0,0,0.18);display:flex;flex-direction:column;}
.drawer[hidden]{display:none;}
.drawer-kopf{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--hairline);}
.drawer-kopf h2{font-size:var(--fs-body-lg);}
.drawer-schliessen{background:none;border:1px solid var(--hairline);border-radius:50%;width:40px;height:40px;font-size:20px;line-height:1;}
.drawer-schliessen:hover{border-color:var(--ink);}
.drawer-inhalt{padding:22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;}
.korb-zeilen{display:flex;flex-direction:column;gap:10px;margin:0.75rem 0;}
.korb-zeilen li{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-caption);border-bottom:1px solid var(--hairline);padding-bottom:8px;}
.korb-enthalten span:first-child{color:var(--ink-soft);}
.korb-summen{display:flex;flex-direction:column;gap:6px;margin:0.5rem 0;}
.korb-summen div{display:flex;justify-content:space-between;font-size:var(--fs-caption);}
.korb-summen dt{font-weight:600;}
.btn-inaktiv{opacity:0.45;cursor:not-allowed;pointer-events:none;background:var(--ink-soft);}
@media(max-width:600px){.drawer{width:100%;}}
.slot-leer{display:flex;align-items:center;justify-content:center;min-height:240px;}
.legende-karte{align-items:flex-start;text-align:left;}
.legende-liste{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-caption);color:var(--ink-mid);}
.btn-legende{pointer-events:none;font-size:var(--fs-caption);padding:8px 16px;}

.worlds{display:flex;flex-direction:column;gap:28px;}
footer .vorschau-fuss{font-weight:600;}
.footer-bald{color:inherit;opacity:0.75;}
@media(max-width:900px){.header-tools .login-link span{display:inline;}}
