/* ==========================================================================
   Hausglück – Exposé (Objekt-Detailseite), Ergänzung MN Webdesign 10/2026
   Lädt als letzte Ebene nach style.css → pages.css → optimiert.css → design.css.
   Nur CI-Tokens (Rosé, Rosé dunkel, Schiefer, Schriftgrau, Warmweiß, Rosé-Grau),
   Hairlines statt Kästen, 0 Radius, Cormorant für Zahlen/Titel, Inter für Text.

   Aufbau (Reihenfolge = DOM-Reihenfolge, BEM-Präfix .expose-…):
     .expose-top        Kopf (Meta, H1, Kennzahlen | Preis) + Fotomosaik
     .expose-nav        klebende Sprungleiste (Fotos · Überblick · … · Kontakt)
     .expose-body       Hauptspalte (.expose-main, Abschnitte im 3/9-Raster: Überblick mit Objekt+Kosten
                        nebeneinander, Beschreibung, Ausstattung, Lage mit Karte, Energie, Sonstiges)
                        + klebende Seitenkarte (.expose-aside > .expose-card)
     .expose-contact    vollbreites Band (Rosé-Grau): Annika klebend links, breites Formular rechts
     .expose-more       Weitere Angebote (Objektkarten der Liste)
     .expose-bar        feste Leiste unten (nur ≤ 1000 px)
     .expose-lightbox   Vollbild-Galerie (wird von hg-expose.js erzeugt)
   JS setzt --expose-header-h / --expose-nav-h auf <html>; ohne JS gelten die
   Fallbacks (84 px / 54 px).
   ========================================================================== */

/* ---------- Grundlagen ---------- */
.expose-page .sticky-cta{display:none!important} /* die allgemeine Mobil-Leiste weicht der Exposé-Leiste */
.expose{--expose-offset:calc(var(--expose-header-h,84px) + var(--expose-nav-h,54px))}
.expose [id]{scroll-margin-top:calc(var(--expose-nav-h,54px) + .75rem)} /* der Kopfzeilen-Anteil steckt schon in html{scroll-padding-top} (style.css) */
@media (prefers-reduced-motion:no-preference){.expose-page{scroll-behavior:smooth}}

.expose-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text-subtle)}

/* ---------- Brotkrumen + Zurück ---------- */
.expose-crumbs{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.expose-crumbs .breadcrumb{padding-top:0}
.expose-crumbs__back{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;color:var(--color-text-muted);text-decoration:none;padding:.4rem 0;white-space:nowrap}
.expose-crumbs__back:hover{color:var(--color-accent-deep)}
.expose-crumbs__back span{color:var(--color-accent);margin-right:.35rem}
.expose > .expose-crumbs{padding-top:1.5rem}

/* ---------- Kopf: Meta, Titel, Kennzahlen | Preis ---------- */
.expose-top{display:flex;flex-direction:column}
.expose-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(2rem,4vw,4rem);align-items:end;padding-block:clamp(1.25rem,2.2vw,2rem) clamp(1.25rem,2.4vw,2rem)}
.expose-head__main{grid-column:1;min-width:0}
/* Meta-Zeile (Mobil-Korrektur 17.10.): jeder Eintrag trägt seinen Trennpunkt links; die Zeile ist um den Abstand nach links
   verschoben und dort per clip-path beschnitten, sodass der Punkt des jeweils ersten Eintrags einer Zeile unsichtbar bleibt –
   ein Trennpunkt steht nie am Zeilenanfang. */
.expose-head__meta{display:flex;flex-wrap:wrap;gap:.35rem 0;margin:0 0 0 -1.5rem;clip-path:inset(0 0 0 1.5rem)}
.expose-head__meta span{position:relative;margin-left:1.5rem;white-space:nowrap}
.expose-head__meta span::before{content:"";position:absolute;left:-.75rem;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--color-accent)}
.expose-head__title{font-family:var(--font-serif);font-weight:500;font-size:clamp(2.05rem,1.3rem + 2.7vw,3.45rem);line-height:1.08;letter-spacing:var(--serif-tracking);color:var(--color-text);margin-top:.85rem;max-width:20ch;text-wrap:balance;hyphens:manual}
.expose-figures{list-style:none;margin:1.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem 0}
.expose-figures li{padding-right:1.5rem;margin-right:1.5rem;border-right:1px solid var(--line);min-width:0}
.expose-figures li:last-child{border-right:0;margin-right:0;padding-right:0}
.expose-figures__k{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text-subtle);margin-bottom:.2rem}
.expose-figures__v{display:block;font-family:var(--font-serif);font-weight:500;font-size:1.6rem;line-height:1.05;color:var(--color-text);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.expose-head__price{grid-column:2;text-align:right;margin:0;padding-bottom:.15rem}
.expose-head__price strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:clamp(2rem,1.4rem + 1.8vw,2.9rem);line-height:1;color:var(--color-text);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.expose-head__price span{display:block;font-size:.85rem;color:var(--color-text-muted);margin-top:.45rem}
.expose-head__price--status strong{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem)}

/* ---------- Fotomosaik (Desktop) / Wischgalerie (Mobil) ---------- */
.expose-gallery{position:relative}
.expose-gallery__track{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}
.expose-gallery__item{display:block;position:relative;overflow:hidden;background:var(--color-surface);aspect-ratio:4/3;min-width:0}
.expose-gallery__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 900ms var(--ease-out)}
.expose-gallery__item:hover img{transform:scale(1.02)}
.expose-gallery__item:focus-visible{outline:2px solid var(--color-focus);outline-offset:-4px}
.expose-gallery__item--main{grid-column:1;grid-row:1 / 3;aspect-ratio:auto}
.expose-gallery__item--more{display:none} /* ab dem 6. Foto nur in der Lightbox / im Wischen */
/* Varianten nach Fotoanzahl, damit kein leeres Feld entsteht */
.expose-gallery[data-count="1"] .expose-gallery__track{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}
.expose-gallery[data-count="1"] .expose-gallery__item--main{grid-row:auto;aspect-ratio:21/10}
.expose-gallery[data-count="2"] .expose-gallery__track{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
.expose-gallery[data-count="2"] .expose-gallery__item--main{grid-row:auto;aspect-ratio:4/3}
.expose-gallery[data-count="3"] .expose-gallery__track{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.expose-gallery[data-count="4"] .expose-gallery__track{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto}
.expose-gallery[data-count="4"] .expose-gallery__item--main{grid-column:1 / -1;grid-row:1;aspect-ratio:21/9}
.expose-gallery__all{position:absolute;right:.9rem;bottom:.9rem;z-index:2;display:inline-flex;align-items:center;gap:.6rem;min-height:44px;padding:0 1rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--line-strong);font:500 .72rem/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.expose-gallery__all:hover{background:var(--color-text);color:var(--color-on-accent);border-color:var(--color-text)}
.expose-gallery__all::before{content:"";width:12px;height:12px;border:1px solid currentColor;box-shadow:3px 3px 0 -1px var(--color-bg),3px 3px 0 0 currentColor}
.expose-gallery__count{display:none;position:absolute;left:.9rem;bottom:.9rem;z-index:2;margin:0;padding:.55rem .7rem;background:rgba(var(--schiefer-rgb),.72);color:var(--warmweiss);font:500 .72rem/1 var(--font-sans);letter-spacing:.12em;font-variant-numeric:tabular-nums}
.expose-gallery .badge{z-index:2}

/* ---------- Sprungleiste ---------- */
.expose-nav{position:sticky;top:var(--expose-header-h,84px);z-index:60;background:var(--color-bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:clamp(1.5rem,3vw,2.5rem)}
.expose-nav ul{display:flex;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.expose-nav ul::-webkit-scrollbar{display:none}
.expose-nav a{display:flex;align-items:center;min-height:54px;padding:0 1.15rem;margin-bottom:-1px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text-muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.expose-nav li:first-child a{padding-left:0}
.expose-nav a:hover{color:var(--color-text)}
.expose-nav a[aria-current="true"]{color:var(--color-text);border-bottom-color:var(--color-text)}
.expose-nav a:focus-visible{outline-offset:-3px}

/* ---------- Hauptspalte + Seitenkarte ---------- */
.expose-body{display:grid;grid-template-columns:minmax(0,1fr) 352px;column-gap:clamp(2.5rem,5vw,5.5rem);align-items:start;padding-top:clamp(2rem,4vw,3.25rem)}
.expose-main{min-width:0}
.expose-aside{position:sticky;top:calc(var(--expose-offset) + 1.5rem)}

.expose-section{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);column-gap:var(--col-gap);border-top:1px solid var(--line);padding-top:1.25rem;margin-bottom:clamp(2.5rem,5vw,4.25rem)}
.expose-section__title{grid-column:1;font-family:var(--font-serif);font-weight:500;font-size:1.5rem;line-height:1.2;color:var(--color-text);margin:0;position:sticky;top:calc(var(--expose-offset) + 1.25rem);align-self:start}
.expose-section__body{grid-column:2;min-width:0}
.expose-section__sub{font-family:var(--font-serif);font-weight:500;font-size:1.25rem;color:var(--color-text);margin:2rem 0 .75rem}
.expose-section__note{font-size:.82rem;color:var(--color-text-subtle);margin-top:1rem;line-height:1.5}

/* Fließtext: Lesemaß, erster Absatz als Lead, „Weiterlesen“ */
.expose-prose{position:relative;max-width:62ch}
.expose-prose p{color:var(--color-text-muted)}
.expose-prose p + p{margin-top:1rem}
.expose-prose__lead{color:var(--color-text)!important} /* CRM-Texte haben keinen geschriebenen Einstieg: gleiche Schrift wie der Rest, nur etwas dunkler */
.expose-prose.is-collapsed{max-height:24rem;overflow:hidden}
.expose-prose.is-collapsed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5rem;background:linear-gradient(to bottom,rgba(var(--warmweiss-rgb),0),var(--warmweiss))}
.expose-readmore{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;margin-top:.5rem;padding:0;background:none;border:0;font:500 .78rem var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);cursor:pointer}
.expose-readmore span{display:inline-block;width:14px;height:14px;position:relative}
.expose-readmore span::before,.expose-readmore span::after{content:"";position:absolute;left:0;top:6px;width:14px;height:1px;background:var(--color-accent-deep)}
.expose-readmore span::after{transform:rotate(90deg);transition:transform var(--dur) var(--ease)}
.expose-readmore[aria-expanded="true"] span::after{transform:rotate(0)}
.expose-readmore:hover{color:var(--color-accent-deep)}

/* Überblick: Objekt und Kosten nebeneinander (mobil untereinander) */
.expose-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem clamp(2rem,4vw,3.5rem)}
.expose-overview > div{min-width:0}
.expose-overview .expose-section__sub{margin:0 0 .35rem}
.expose-overview .expose-facts{grid-template-columns:minmax(0,1fr);max-width:none}

/* Eckdaten als Zeilen mit Hairline */
.expose-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2.5rem;margin:0}
.expose-facts > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.72rem 0;border-bottom:1px solid var(--line);min-width:0}
.expose-facts dt{font-size:.9rem;color:var(--color-text-muted)}
.expose-facts dd{margin:0;font-weight:500;color:var(--color-text);text-align:right;font-variant-numeric:lining-nums tabular-nums;overflow-wrap:break-word;hyphens:auto}
.expose-facts--single{grid-template-columns:minmax(0,1fr);max-width:30rem}
.expose-facts__sum{border-bottom:0!important;border-top:1px solid var(--line-strong);margin-top:-1px;padding-top:1rem!important}
.expose-facts__sum dt{color:var(--color-text);font-weight:500}
.expose-facts__sum dd{font-family:var(--font-serif);font-size:1.6rem;line-height:1}
.expose-facts__hint{font-size:.82rem;color:var(--color-text-subtle);margin-top:1rem;max-width:30rem;line-height:1.5}

/* Lage: eigene SVG-Karte (tools/karte_plz.py, OpenStreetMap-Daten, inline) – kein Kartendienst, keine Fremdanfragen;
   ohne Karte für die PLZ bleibt die Ortskachel (.expose-place) */
.expose-section--karte .expose-map{grid-column:1 / -1;grid-row:2;margin-top:1rem} /* Karte über die ganze Hauptspalte, Text darunter in der Textspalte */
.expose-section--karte .expose-map__credit{grid-column:2;grid-row:3;margin:.5rem 0 1.25rem}
.expose-section--karte .expose-section__title{grid-row:1;position:static}
.expose-section--karte .expose-section__body{grid-row:4}
.expose-map{position:relative;margin:0 0 .6rem;border:1px solid var(--line);background:rgba(var(--schiefer-rgb),.05);overflow:hidden}
.lage-map{display:block;width:100%;height:auto}
.lage-map__gemeinde{fill:rgba(var(--schiefer-rgb),.11);stroke:var(--weiss);stroke-width:2;stroke-linejoin:round}
.lage-map__gemeinde--ort{fill:rgba(var(--schiefer-rgb),.19)}
.lage-map__plz{fill:var(--color-accent-deep);stroke:var(--weiss);stroke-width:2;stroke-linejoin:round}
.lage-map__rhein path{fill:none;stroke:color-mix(in srgb,var(--schiefer) 28%,var(--warmweiss));stroke-width:11;stroke-linecap:round;stroke-linejoin:round}
.lage-map__erft path{fill:none;stroke:color-mix(in srgb,var(--schiefer) 22%,var(--warmweiss));stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.lage-map__nachbar{font-family:var(--font-sans);font-size:15px;font-weight:500;fill:var(--color-text)}
.lage-map__fluss{font-family:var(--font-sans);font-size:13px;font-style:italic;fill:var(--color-text-muted)}
.lage-map__ortsteil{font-family:var(--font-sans);font-size:12px;fill:var(--color-text-muted)}
.lage-map__ortsteil--plz{fill:var(--warmweiss)}
.expose-map__label{position:absolute;left:1rem;top:1rem;margin:0;padding:.6rem .9rem;background:var(--color-bg);border:1px solid var(--line)}
.expose-map__label strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:1.35rem;line-height:1.1;color:var(--color-text);font-variant-numeric:lining-nums}
.expose-map__label span{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--color-text-subtle);margin-top:.25rem}
.expose-map__credit{margin:0;font-size:.72rem;color:var(--color-text-subtle)}
.expose-lage__text{max-width:62ch}
.expose-place{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.25rem;align-items:center;max-width:62ch;margin:0 0 1.5rem;padding:1rem 1.25rem;border:1px solid var(--line)}
.expose-place__plz{display:block;grid-row:1 / 3;font-family:var(--font-serif);font-weight:500;font-size:2.4rem;line-height:1;color:var(--color-text);font-variant-numeric:lining-nums;padding-right:1.25rem;border-right:1px solid var(--line)}
.expose-place__ort{display:block;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text)}
.expose-place__ort::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-accent);margin-right:.6rem;vertical-align:.1em}
.expose-place__note{display:block;font-size:.84rem;color:var(--color-text-muted);margin-top:.3rem;line-height:1.5}

/* Energie: Pflichtangaben + Skala A+ … H (Rosé-Tönung nimmt zur Klasse H zu) */
.expose-energy__scale{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;list-style:none;margin:1.5rem 0 0;padding:0}
.expose-energy__scale li{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;color:var(--color-text-muted);background:rgba(198,118,119,var(--t,.05));font-variant-numeric:lining-nums}
.expose-energy__scale li:nth-child(1){--t:.05}.expose-energy__scale li:nth-child(2){--t:.08}.expose-energy__scale li:nth-child(3){--t:.11}
.expose-energy__scale li:nth-child(4){--t:.14}.expose-energy__scale li:nth-child(5){--t:.18}.expose-energy__scale li:nth-child(6){--t:.22}
.expose-energy__scale li:nth-child(7){--t:.27}.expose-energy__scale li:nth-child(8){--t:.32}.expose-energy__scale li:nth-child(9){--t:.38}
.expose-energy__scale li[aria-current="true"]{background:var(--schiefer);color:var(--warmweiss);font-family:var(--font-serif);font-size:1.3rem}
.expose-energy__scale li[aria-current="true"]::after{content:"";position:absolute;left:50%;bottom:-7px;width:7px;height:7px;margin-left:-3.5px;background:var(--schiefer);transform:rotate(45deg)}
.expose-energy__caption{margin-top:1.1rem;font-size:.85rem;color:var(--color-text-muted)}
.expose-energy__caption strong{color:var(--color-text);font-weight:500}
.expose-energy__missing{border:1px solid var(--line);padding:1rem 1.1rem;font-size:.9rem;color:var(--color-text-muted)}

/* Kontakt: vollbreites Band auf Rosé-Grau am Ende des Inhalts – Annika links (klebt beim Scrollen im Band),
   Formular rechts breit; bei Referenzen steht rechts der Suchauftrag (.expose-search) */
.expose-contact{background:var(--color-surface);margin-top:clamp(1rem,2vw,1.5rem);padding-block:clamp(2.5rem,5vw,4.5rem)}
.expose-contact__inner{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--col-gap);align-items:start}
.expose-contact__person{position:sticky;top:calc(var(--expose-offset) + 1.5rem)}
.expose-contact__eyebrow{margin:0 0 1.25rem}
.expose-contact__person img{width:150px;height:200px;object-fit:cover;object-position:50% 12%;display:block}
.expose-contact__name{font-family:var(--font-serif);font-weight:500;font-size:1.5rem;color:var(--color-text);margin-top:1rem;line-height:1.2}
.expose-contact__role{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text-subtle);margin-top:.3rem;hyphens:none}
.expose-contact__links{display:grid;gap:.1rem;margin-top:.9rem;font-size:.92rem}
.expose-contact__links a{display:inline-block;color:var(--color-text);text-decoration:none;padding:.3rem 0;overflow-wrap:anywhere}
.expose-contact__links a:hover{color:var(--color-accent-deep)}
.expose-contact__form{min-width:0}
.expose-contact__title{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.75rem,1.2rem + 1.8vw,2.5rem);line-height:1.12;color:var(--color-text);margin:0 0 .75rem;max-width:22ch}
.expose-contact__lead{font-size:1.02rem;line-height:1.55;color:var(--color-text-muted);margin:0 0 1.75rem;max-width:52ch}
.expose-contact__form .form-wrap{margin-top:0;max-width:none}
.expose-contact__form .field label{color:var(--color-text)}
.expose-contact__form textarea{min-height:12.5rem;resize:vertical} /* mindestens 8 Zeilen, in der Höhe ziehbar */
.expose-contact__form .form-nav{margin-top:1.25rem}
.expose-contact__form .form-success{margin-top:0;max-width:none}

/* Referenz: Suchauftrag statt Formular */
.expose-search{min-width:0}
.expose-search p{color:var(--color-text-muted);max-width:52ch}
.expose-search__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}

/* Seitenkarte */
.expose-card{background:var(--color-card);border:1px solid var(--line);padding:1.5rem}
.expose-card__price{font-family:var(--font-serif);font-weight:500;font-size:2.5rem;line-height:1;color:var(--color-text);margin:.4rem 0 0;font-variant-numeric:lining-nums tabular-nums}
.expose-card__price small{display:block;font-family:var(--font-sans);font-weight:400;font-size:.88rem;color:var(--color-text-muted);margin-top:.5rem}
.expose-card__price--status{font-size:2rem}
.expose-card__rows{margin:1.25rem 0 0;border-top:1px solid var(--line)}
.expose-card__rows > div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.expose-card__rows dt{color:var(--color-text-muted)}
.expose-card__rows dd{margin:0;color:var(--color-text);font-weight:500;font-variant-numeric:lining-nums tabular-nums}
.expose-card__actions{display:grid;gap:.6rem;margin-top:1.25rem}
.expose-card__actions .btn{width:100%;min-height:48px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.expose-card__actions .btn--ghost{border-color:var(--line-strong);color:var(--color-text)}
.expose-card__actions .btn--ghost:hover{background:var(--color-text);border-color:var(--color-text);color:var(--color-on-accent)}
.expose-card__person{display:flex;gap:.9rem;align-items:center;margin-top:1.4rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.expose-card__person img{width:48px;height:62px;object-fit:cover;object-position:50% 14%;flex:none}
.expose-card__person p{margin:0;font-size:.84rem;line-height:1.4;color:var(--color-text-muted)}
.expose-card__person strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:1.15rem;color:var(--color-text);line-height:1.2}
.expose-card__tools{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:0 1.25rem}
.expose-card__tools a,.expose-card__tools button{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;font:500 .74rem var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);text-decoration:none;cursor:pointer}
.expose-card__tools a > span,.expose-card__tools button > span{border-bottom:1px solid var(--line-strong);padding-bottom:2px}
.expose-card__tools a:hover,.expose-card__tools button:hover{color:var(--color-accent-deep)}
.expose-card__nr{margin:.9rem 0 0;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-subtle)}

/* Weitere Angebote */
.expose-more{padding-block:clamp(3rem,6vw,5rem) clamp(3rem,6vw,5.5rem);border-top:1px solid var(--line)}
.expose-more__head{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);column-gap:var(--col-gap);align-items:start;margin-bottom:clamp(1.75rem,3vw,2.5rem)}
.expose-more__head .eyebrow{grid-column:1;margin:0;padding-top:.35rem}
.expose-more__head .h2{grid-column:2;font-size:clamp(1.75rem,1.2rem + 2vw,2.6rem);max-width:22ch}
.expose-more__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem var(--col-gap)}
.expose-more__foot{margin-top:clamp(2rem,4vw,3rem);display:flex;justify-content:flex-end}
.expose-more__foot .arrow-link{margin-top:0}

/* Feste Leiste unten (Mobil) */
.expose-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--color-bg);border-top:1px solid var(--line);padding:.6rem var(--gutter);padding-bottom:calc(.6rem + env(safe-area-inset-bottom,0px));gap:.6rem;align-items:center}
.expose-bar__price{flex:1 1 auto;min-width:0;margin:0}
.expose-bar__price strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:1.4rem;line-height:1;color:var(--color-text);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.expose-bar__price span{display:block;font-size:.72rem;color:var(--color-text-muted);margin-top:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} /* Zweitzeile bewusst kurz („Kaltmiete“, „Kaufpreis“), damit bei 320–430 px nichts abgeschnitten wird */
.expose-bar__tel{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .8rem;border:1px solid var(--line-strong);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--color-text);text-decoration:none}
.expose-bar .btn{flex:none;min-height:44px;padding:.6rem 1.1rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500}

/* ---------- Lightbox (von hg-expose.js erzeugt) ---------- */
.expose-lightbox{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;background:rgba(var(--schiefer-rgb),.97);color:var(--warmweiss)}
.expose-lightbox[hidden]{display:none}
.expose-lightbox__top{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:.6rem clamp(1rem,3vw,2rem)}
.expose-lightbox__meta{min-width:0;display:flex;align-items:baseline;gap:1rem}
.expose-lightbox__count{margin:0;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--hellgrau);white-space:nowrap}
.expose-lightbox__title{margin:0;font-family:var(--font-serif);font-size:1.1rem;color:var(--hellgrau);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.expose-lightbox__close{flex:none;display:inline-flex;align-items:center;gap:.6rem;min-height:44px;padding:0 1rem;background:none;border:1px solid rgba(var(--hellgrau-rgb),.4);color:inherit;font:500 .72rem var(--font-sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.expose-lightbox__close:hover{background:rgba(var(--hellgrau-rgb),.12)}
.expose-lightbox__stage{flex:1 1 auto;position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 clamp(3.75rem,8vw,6rem)}
.expose-lightbox__stage figure{margin:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;min-height:0}
.expose-lightbox__stage img{max-width:100%;max-height:100%;width:auto;height:auto;display:block;object-fit:contain;background:rgba(var(--hellgrau-rgb),.06)}
.expose-lightbox__arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(var(--schiefer-rgb),.6);border:1px solid rgba(var(--hellgrau-rgb),.4);color:inherit;cursor:pointer;padding:0}
.expose-lightbox__arrow:hover{background:rgba(var(--hellgrau-rgb),.12)}
.expose-lightbox__arrow--prev{left:clamp(.6rem,2vw,1.5rem)}
.expose-lightbox__arrow--next{right:clamp(.6rem,2vw,1.5rem)}
.expose-lightbox__arrow svg{width:18px;height:18px;display:block}
.expose-lightbox__thumbs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:.75rem clamp(1rem,3vw,2rem);padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px));margin:0;list-style:none}
.expose-lightbox__thumbs::-webkit-scrollbar{display:none}
.expose-lightbox__thumbs li{flex:none}
.expose-lightbox__thumbs li:first-child{margin-left:auto}
.expose-lightbox__thumbs li:last-child{margin-right:auto}
.expose-lightbox__thumb{display:block;width:72px;height:48px;padding:0;border:1px solid transparent;background:none;cursor:pointer;opacity:.5;transition:opacity var(--dur) var(--ease)}
.expose-lightbox__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.expose-lightbox__thumb:hover,.expose-lightbox__thumb[aria-current="true"]{opacity:1}
.expose-lightbox__thumb[aria-current="true"]{border-color:var(--rose-hell)}
.expose-lightbox :focus-visible{outline:2px solid var(--rose-hell);outline-offset:3px}
.expose-lightbox-open{overflow:hidden}
@media (prefers-reduced-motion:no-preference){
  .expose-lightbox{animation:expose-fade 220ms var(--ease)}
  @keyframes expose-fade{from{opacity:0}}
}

/* ---------- Tablet / Mobil ---------- */
@media (max-width:1000px){
  .expose-page{padding-bottom:5.5rem} /* Platz für die feste Leiste */
  .expose-top .expose-gallery{order:-1} /* Foto zuerst, dann Titel */
  .expose-gallery{margin-inline:calc(-1 * var(--gutter))}
  .expose-gallery__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .expose-gallery__track::-webkit-scrollbar{display:none}
  .expose-gallery__item,.expose-gallery__item--main,.expose-gallery__item--more,
  .expose-gallery[data-count="1"] .expose-gallery__item--main,.expose-gallery[data-count="2"] .expose-gallery__item--main,.expose-gallery[data-count="4"] .expose-gallery__item--main{display:block;flex:0 0 100%;scroll-snap-align:start;aspect-ratio:4/3;grid-area:auto}
  .expose-gallery__item:hover img{transform:none}
  .expose-gallery__count{display:block}
  .expose-gallery__all{right:var(--gutter)}
  .expose-gallery__count{left:var(--gutter)}
  .expose-head{grid-template-columns:minmax(0,1fr);padding-top:1.5rem}
  .expose-head__price{grid-column:1;text-align:left;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}
  .expose-head__price strong{display:inline-block;vertical-align:baseline}
  .expose-head__price span{display:inline-block;margin:0 0 0 .75rem}
  .expose-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem;margin-top:1.25rem}
  .expose-figures li{border-right:0;margin:0;padding:.75rem 0;border-bottom:1px solid var(--line)}
  .expose-figures li:last-child{padding-right:0}
  .expose-figures__v{font-size:1.45rem}
  .expose-nav{margin-top:1.5rem}
  .expose-body{grid-template-columns:minmax(0,1fr);row-gap:2.5rem}
  .expose-aside{position:static}
  .expose-section{grid-template-columns:minmax(0,1fr);row-gap:1rem}
  .expose-section__title,.expose-section__body,.expose-section--karte .expose-map__credit{grid-column:1}
  .expose-section__title{position:static}
  .expose-contact__inner{grid-template-columns:minmax(0,1fr);row-gap:2rem}
  .expose-contact__person{position:static;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1rem;align-items:center}
  .expose-contact__person img{width:88px;height:118px;grid-row:1 / 5}
  .expose-contact__eyebrow{margin-bottom:.25rem}
  .expose-contact__name{margin-top:0}
  .expose-bar{display:flex}
}
@media (max-width:640px){
  .expose > .expose-crumbs{display:none} /* Brotkrumen global ausgeblendet (design.css) + Rückweg-Link weg → sonst bliebe ein leeres Band über dem Foto */
  .expose-crumbs__back{display:none}
  .expose-place__plz{font-size:1.9rem;padding-right:1rem}
  .expose-facts{grid-template-columns:minmax(0,1fr)}
  .expose-overview{grid-template-columns:minmax(0,1fr)}
  .lage-map__nachbar{font-size:26px}
  .lage-map__fluss{font-size:22px}
  .lage-map__ortsteil{display:none} /* schmale Geräte: nur die Stadtteile im PLZ-Gebiet, sonst unleserlich klein */
  .lage-map__ortsteil--plz{display:block;font-size:22px}
  .expose-map__label{left:.6rem;top:.6rem;padding:.45rem .7rem}
  .expose-map__label strong{font-size:1.15rem}
  .expose-more__head{grid-template-columns:minmax(0,1fr);row-gap:.75rem}
  .expose-more__head .eyebrow,.expose-more__head .h2{grid-column:1}
  .expose-more__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.25rem;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scrollbar-width:none}
  .expose-more__grid::-webkit-scrollbar{display:none}
  .expose-more__grid > .property-card{flex:0 0 clamp(250px,74vw,340px);scroll-snap-align:start}
  .expose-more__foot{justify-content:flex-start}
  .expose-lightbox__stage{padding:0 .5rem}
  .expose-lightbox__arrow{width:44px;height:44px;top:auto;bottom:.5rem;transform:none}
  .expose-lightbox__title{display:none}
  .expose-lightbox__thumb{width:56px;height:38px}
}
@media (max-width:360px){
  .expose-figures__v{font-size:1.3rem}
  .expose-facts > div{flex-direction:column;align-items:flex-start;gap:.15rem} /* sehr schmale Geräte: Label über Wert statt nebeneinander */
  .expose-facts dd{text-align:left}
  .expose-energy__scale li{font-size:.72rem}
  .expose-bar__tel{padding:0 .6rem}
  .expose-bar .btn{padding-inline:.9rem}
}

/* ---------- Bewegung aus / Druck ---------- */
@media (prefers-reduced-motion:reduce){
  .expose-gallery__item img,.expose-readmore span::after,.expose-lightbox__thumb,.expose-nav a{transition:none}
  .expose-gallery__item:hover img{transform:none}
}
@media print{
  .expose-nav,.expose-bar,.expose-gallery__all,.expose-gallery__count,.expose-card__actions,.expose-card__tools,.expose-more,.expose-crumbs__back,.expose-readmore,.expose-contact__form{display:none!important}
  .expose-prose.is-collapsed{max-height:none}
  .expose-prose.is-collapsed::after{display:none}
  .expose-body{grid-template-columns:minmax(0,1fr)}
  .expose-aside,.expose-section__title,.expose-contact__person{position:static}
  .expose-overview,.expose-contact__inner{grid-template-columns:minmax(0,1fr)}
}

/* Feinschliff nach Marvins Durchsicht (17.10.2026) */
/* Eckdaten: Werte in derselben Schrift und Größe wie die Bezeichnungen, Summenzeile nur kräftiger */
.expose-facts dt,.expose-facts dd{font-size:.95rem;line-height:1.45}
.expose-facts dd{font-family:var(--font-sans,inherit);font-weight:500}
.expose-facts__sum dt{white-space:normal}
.expose-contact__title{max-width:none}
.expose-facts__sum dd{font-family:var(--font-sans);font-size:.95rem;line-height:1.45;font-weight:600}
/* Kontaktband: Formular so breit wie Überschrift und Einleitung (kein Seitenraster mit Schrittspalte) */
.expose-contact__form .form-wrap{display:block;max-width:none}
.expose-contact__form .form-wrap > *{max-width:none;grid-column:auto}
/* Weitere Angebote: Überschrift einzeilig */
.expose-more__head .h2{max-width:none}
/* Objekttitel höchstens zwei Zeilen: breiter laufen lassen, etwas kleiner */
.expose-head__title{max-width:34ch;font-size:clamp(2rem,1.3rem + 2.2vw,3.1rem)}

/* Audit-Final 17.10. (10): Sprungleiste auf schmalen Bildschirmen – Randverlauf zeigt, dass rechts weitere Punkte folgen;
   hg-expose.js setzt is-start/is-end am <ul> und scrollt den aktiven Punkt in Sicht */
.expose-nav .container{position:relative}
.expose-nav .container::before,.expose-nav .container::after{content:"";position:absolute;top:0;bottom:0;width:3rem;pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease)}
.expose-nav .container::before{left:0;background:linear-gradient(90deg,var(--color-bg) 25%,rgba(var(--warmweiss-rgb),0))}
.expose-nav .container::after{right:0;background:linear-gradient(270deg,var(--color-bg) 25%,rgba(var(--warmweiss-rgb),0))}
.expose-nav .container:has(ul.is-scrollable:not(.is-start))::before,.expose-nav .container:has(ul.is-scrollable:not(.is-end))::after{opacity:1}
.expose-nav ul{scroll-padding-inline:1rem}
.expose-nav li:last-child a{padding-right:1.5rem}
/* Audit-Final 17.10. (17): Quadratmeter-Zeichen in den Kennzahlen – die Serife setzt „²“ zu hoch, daher in der Sans */
.expose-figures__v .qm{font-family:var(--font-sans);font-size:.72em;font-weight:500;vertical-align:.22em;line-height:0;margin-left:.04em}
/* Marvin 27.10. („mobil zu viele Trennstriche“): Kennzahl-Kacheln ohne eigene Linien, über „Überblick“ keine zweite
   Linie direkt unter der Sprungleiste. Es bleiben: eine Linie über dem Preis, die Leiste, die Zeilen der Faktentabelle. */
@media (max-width:1000px){
  .expose-figures li{border-bottom:0;padding:.5rem 0}
  .expose-main > .expose-section:first-child{border-top:0;padding-top:0}
}
