/* K16 Stadthaus Kesselgasse
   Farben, Schriften und Raster aus dem gedruckten Exposé.
   Ein Akzent, ein Radienmaß, ein Thema mit heller und dunkler Fassung. */

@font-face{font-family:AR;src:url(schrift/archivo-latin-400-normal.woff2) format('woff2');
  font-weight:400;font-display:swap}
@font-face{font-family:AR;src:url(schrift/archivo-latin-500-normal.woff2) format('woff2');
  font-weight:500;font-display:swap}
@font-face{font-family:NR;src:url(schrift/newsreader-latin-300-normal.woff2) format('woff2');
  font-weight:300;font-display:swap}
@font-face{font-family:NR;src:url(schrift/newsreader-latin-400-normal.woff2) format('woff2');
  font-weight:400;font-display:swap}

:root{
  --papier:#FFFFFF;
  --grund:#F6F3ED;
  --sand:#EFEAE1;
  --schiefer:#262B2C;
  --text:#3E4342;
  --leise:#666560;
  --linie:#DDDAD3;
  --ziegel:#B4553F;
  --ziegel-text:#A64A35;
  --schatten:0 1.4rem 4rem rgba(38,43,44,.10);
  --rand:12px;
  --spalte:1280px;
  --luft:clamp(4.5rem,9vw,8.5rem);
  --leseband:64ch;
}
@media (prefers-color-scheme:dark){
  :root{
    --papier:#1B1F20;
    --grund:#22282A;
    --sand:#2B3133;
    --schiefer:#EDE9E2;
    --text:#CBC8C1;
    --leise:#9A968E;
    --linie:#3A4143;
    --ziegel:#C4634A;
    --ziegel-text:#DE8B72;
    --schatten:0 1.4rem 4rem rgba(0,0,0,.44);
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:AR,system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:clamp(1rem,.94rem + .28vw,1.1rem);
  line-height:1.72;color:var(--text);background:var(--papier);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2.5px solid var(--ziegel);outline-offset:3px;border-radius:2px}

/* ── Typografie ─────────────────────────────────────────────── */
.serif{font-family:NR,Georgia,serif;font-weight:300;color:var(--schiefer);
  line-height:1.1;letter-spacing:-.005em}
h1{font-size:clamp(2.5rem,1.6rem + 4.1vw,5.1rem)}
h2{font-size:clamp(2rem,1.4rem + 2.5vw,3.4rem)}
h3{font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem)}
.marke{font-size:.78rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ziegel-text)}
.lead{font-size:clamp(1.14rem,1.02rem + .5vw,1.42rem);line-height:1.56;
  color:var(--schiefer);max-width:52ch}
p{max-width:var(--leseband)}
.leise{color:var(--leise)}
.zahl{font-family:NR,Georgia,serif;font-weight:300;color:var(--schiefer);
  font-variant-numeric:lining-nums tabular-nums;line-height:1}

/* ── Raster ─────────────────────────────────────────────────── */
.bahn{width:min(100% - 2.5rem,var(--spalte));margin-inline:auto}
section{padding-block:var(--luft)}
.grund{background:var(--grund)}
.sand{background:var(--sand)}

/* ── Kopf ───────────────────────────────────────────────────── */
.kopf{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--papier) 86%,transparent);
  backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid transparent;
  transition:border-color .3s,background .3s}
.kopf[data-fest="ja"]{border-bottom-color:var(--linie)}
.kopf__inhalt{display:flex;align-items:center;justify-content:space-between;gap:2rem;
  height:70px}
.kopf__marke{color:var(--schiefer);width:120px;flex:0 0 auto}
.kopf__marke svg{width:100%;height:auto}
.nav{display:flex;align-items:center;gap:clamp(1rem,2.2vw,2.1rem)}
.nav a{font-size:.92rem;text-decoration:none;color:var(--text);white-space:nowrap;
  transition:color .2s}
.nav a:hover{color:var(--ziegel-text)}
@media (max-width:920px){.nav a:not(.knopf){display:none}}

/* ── Knöpfe ─────────────────────────────────────────────────── */
.knopf{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;
  padding:.78rem 1.5rem;border-radius:var(--rand);border:1px solid transparent;
  font:inherit;font-size:.95rem;font-weight:500;text-decoration:none;cursor:pointer;
  transition:transform .16s,background .2s,color .2s,border-color .2s}
.knopf:active{transform:translateY(1px)}
.knopf--voll{background:var(--ziegel);color:#FFFFFF}
.knopf--voll:hover{background:#9C4835}
@media (prefers-color-scheme:dark){.knopf--voll:hover{background:#D3745B}}
.knopf--leer{border-color:var(--linie);color:var(--schiefer);background:transparent}
.knopf--leer:hover{border-color:var(--schiefer)}
.knopf--hell{background:#FFFFFF;color:#262B2C}
.knopf--hell:hover{background:#F0ECE4}
.knopf svg{width:1.1em;height:1.1em;fill:currentColor;flex:0 0 auto}

/* ── Auftakt ────────────────────────────────────────────────── */
.auftakt{display:grid;grid-template-columns:1fr;min-height:calc(100dvh - 70px);
  padding-block:0}
@media (min-width:900px){
  .auftakt{grid-template-columns:minmax(0,52%) minmax(0,48%);align-items:stretch}
}
.auftakt__text{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(3rem,6vw,5.5rem) clamp(1.25rem,4vw,4rem) clamp(3rem,6vw,5rem);
  padding-left:max(1.25rem,calc((100vw - var(--spalte))/2 + 1.25rem))}
.auftakt h1{margin-block:1.5rem 1.6rem;font-size:clamp(2.2rem,.9rem + 3vw,3.7rem);
  text-wrap:balance}
.auftakt .lead{margin-bottom:2.4rem}
.auftakt__tasten{display:flex;flex-wrap:wrap;gap:.85rem}
.auftakt__bild{position:relative;min-height:52vh;overflow:hidden;background:var(--sand)}
.auftakt__bild img{width:100%;height:100%;object-fit:cover;object-position:50% 46%}
@media (min-width:900px){.auftakt__bild{min-height:100%}}

/* ── Zahlenband ─────────────────────────────────────────────── */
.zahlen{display:grid;gap:0 2.5rem;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--linie)}
@media (min-width:760px){.zahlen{grid-template-columns:repeat(4,1fr)}}
.zahlen div{padding:2.2rem 0;border-bottom:1px solid var(--linie)}
@media (min-width:760px){.zahlen div{border-bottom:0}}
.zahlen .zahl{font-size:clamp(2rem,1.4rem + 2vw,3rem)}
.zahlen dt{margin-top:.9rem;font-size:.92rem;color:var(--leise)}

/* ── Textbild ───────────────────────────────────────────────── */
.textbild{display:grid;gap:clamp(2.5rem,5vw,4.5rem);align-items:center;
  grid-template-columns:1fr}
@media (min-width:900px){
  .textbild{grid-template-columns:1fr 1fr}
  .textbild--gedreht .textbild__bild{order:2}
}
.textbild__bild img{width:100%;height:auto;border-radius:var(--rand);box-shadow:var(--schatten)}
.textbild h2{margin-bottom:1.5rem}
.textbild p + p{margin-top:1.15rem}
.merkmale{margin-top:2.2rem;display:grid;gap:1rem}
.merkmale li{display:flex;gap:.9rem;align-items:flex-start;list-style:none;
  font-size:.98rem;line-height:1.6}
.merkmale svg{width:1.35rem;height:1.35rem;fill:var(--ziegel);flex:0 0 auto;margin-top:.15rem}

/* ── Stadt und Lage ─────────────────────────────────────────── */
.lage__kopf{max-width:var(--leseband);margin-bottom:clamp(2.5rem,5vw,4rem)}
.karten{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:1000px){.karten{grid-template-columns:1.62fr 1fr}}
.karte{background:var(--papier);border:1px solid var(--linie);border-radius:var(--rand);
  padding:clamp(1.2rem,2.4vw,2rem);overflow:hidden}
.karte img{width:100%;height:auto;mix-blend-mode:multiply}
@media (prefers-color-scheme:dark){.karte img{mix-blend-mode:normal;
  filter:invert(1) hue-rotate(180deg) saturate(.7) brightness(.95);border-radius:6px}}
.karte h3{font-size:1.05rem;font-family:AR,sans-serif;font-weight:500;color:var(--schiefer);
  letter-spacing:.02em;margin-bottom:1.1rem}
.wege{margin-top:2.5rem;display:grid;gap:1px;background:var(--linie);
  grid-template-columns:repeat(2,1fr);border:1px solid var(--linie);
  border-radius:var(--rand);overflow:hidden}
@media (min-width:700px){.wege{grid-template-columns:repeat(4,1fr)}}
.wege li{list-style:none;background:var(--papier);padding:1.4rem 1.3rem}
.wege .zahl{font-size:1.75rem}
.wege span{display:block;margin-top:.5rem;font-size:.88rem;color:var(--leise);line-height:1.45}

/* ── Wohnungen ──────────────────────────────────────────────── */
.filter{display:flex;flex-wrap:wrap;gap:.6rem;margin-block:2.5rem}
.filter button{font:inherit;font-size:.92rem;padding:.55rem 1.15rem;cursor:pointer;
  border-radius:var(--rand);border:1px solid var(--linie);background:transparent;
  color:var(--text);transition:background .2s,color .2s,border-color .2s}
.filter button:hover{border-color:var(--schiefer)}
.filter button[aria-pressed="true"]{background:var(--schiefer);border-color:var(--schiefer);
  color:var(--papier)}
.wohnungen{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:640px){.wohnungen{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1060px){.wohnungen{grid-template-columns:repeat(3,1fr)}}
.wohnung{display:flex;flex-direction:column;background:var(--papier);
  border:1px solid var(--linie);border-radius:var(--rand);overflow:hidden;
  transition:transform .25s,box-shadow .25s,border-color .25s}
.wohnung:hover{transform:translateY(-3px);box-shadow:var(--schatten);border-color:var(--schiefer)}
.wohnung__plan{background:#FFFFFF;padding:1.6rem 1.6rem .4rem;display:flex;
  align-items:flex-end;justify-content:center;min-height:230px}
.wohnung__plan img{max-height:210px;width:auto}
.wohnung__text{padding:1.5rem 1.6rem 1.7rem;display:flex;flex-direction:column;
  flex:1;gap:.55rem}
.wohnung h3{font-size:1.42rem}
.wohnung__daten{font-size:.92rem;color:var(--leise)}
.wohnung__etagen{font-size:.86rem;color:var(--leise);line-height:1.5}
.wohnung__fuss{margin-top:auto;padding-top:1.2rem;display:flex;align-items:baseline;
  justify-content:space-between;gap:1rem;border-top:1px solid var(--linie)}
.wohnung__preis{font-family:NR,Georgia,serif;font-weight:300;font-size:1.5rem;
  color:var(--schiefer);font-variant-numeric:lining-nums}
.wohnung button{font:inherit;font-size:.88rem;background:none;border:0;cursor:pointer;
  color:var(--ziegel-text);display:inline-flex;align-items:center;gap:.35rem;padding:0}
.wohnung button svg{width:1em;height:1em;fill:currentColor}
.wohnung button:hover{text-decoration:underline}
.wohnung[hidden]{display:none}
.hinweis-preis{margin-top:2rem;font-size:.9rem;color:var(--leise)}

dialog{border:0;padding:0;background:transparent;max-width:min(94vw,1000px);width:100%}
dialog::backdrop{background:rgba(20,24,25,.72);backdrop-filter:blur(4px)}
.lupe{background:#FFFFFF;border-radius:var(--rand);padding:1.5rem;color:#3E4342;
  max-height:92dvh;display:flex;flex-direction:column;gap:1rem}
.lupe__kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}
.lupe__kopf h3{color:#262B2C}
.lupe__kopf p{font-size:.92rem;color:#666560;margin-top:.3rem}
.lupe img{margin-inline:auto;max-height:68dvh;width:auto;object-fit:contain}
.lupe__zu{background:none;border:1px solid #DDDAD3;border-radius:var(--rand);cursor:pointer;
  padding:.5rem;line-height:0;flex:0 0 auto}
.lupe__zu svg{width:1.3rem;height:1.3rem;fill:#3E4342}

/* ── Energie ────────────────────────────────────────────────── */
.bento{display:grid;gap:1.5rem;grid-template-columns:1fr;margin-top:clamp(2.5rem,5vw,4rem)}
@media (min-width:900px){
  .bento{grid-template-columns:repeat(3,1fr)}
  .bento__gross{grid-column:span 2}
  .bento > :nth-child(2){grid-column:span 2}
}
.zelle{border-radius:var(--rand);padding:clamp(1.6rem,3vw,2.4rem);display:flex;
  flex-direction:column;gap:.9rem;justify-content:flex-end;min-height:250px}
.zelle--sand{background:var(--sand)}
.zelle--akzent{background:var(--ziegel);color:#FFFFFF}
.zelle--akzent .zahl,.zelle--akzent h3{color:#FFFFFF}
.zelle--akzent p{color:rgba(255,255,255,.9)}
.zelle--bild{position:relative;overflow:hidden;padding:0;min-height:300px}
.zelle--bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zelle--bild figcaption{position:relative;margin-top:auto;padding:clamp(1.6rem,3vw,2.4rem);
  color:#FFFFFF;background:linear-gradient(180deg,transparent 22%,rgba(16,20,21,.72) 62%,
    rgba(16,20,21,.96));padding-top:5rem;text-shadow:0 1px 3px rgba(0,0,0,.5);
  font-size:.95rem}
.zelle .zahl{font-size:clamp(2.4rem,2rem + 1.8vw,3.4rem)}
.zelle p{font-size:.98rem;max-width:46ch}

/* ── Gründe ─────────────────────────────────────────────────── */
.gruende{display:grid;gap:clamp(2rem,4vw,3.5rem);grid-template-columns:1fr}
@media (min-width:960px){.gruende{grid-template-columns:1fr 1fr}}
.gruende__liste{display:grid;gap:0}
.grund-punkt{padding-block:1.7rem;border-top:1px solid var(--linie)}
.grund-punkt:last-child{border-bottom:1px solid var(--linie)}
.grund-punkt h3{font-size:1.5rem;margin-bottom:.3rem}
.grund-punkt .rolle{font-size:.88rem;font-weight:500;color:var(--ziegel-text);
  margin-bottom:.7rem}
.grund-punkt p{font-size:.97rem}

/* ── Zitat ──────────────────────────────────────────────────── */
.zitat{position:relative;padding-block:clamp(4rem,8vw,7rem)}
.zitat blockquote{font-family:NR,Georgia,serif;font-weight:300;color:var(--schiefer);
  font-size:clamp(1.5rem,1.1rem + 1.9vw,2.6rem);line-height:1.34;max-width:27ch}
.zitat figcaption{margin-top:2rem;font-size:.92rem;color:var(--leise)}
.zitat__gross{position:absolute;left:-.02em;top:-.46em;font-family:NR,Georgia,serif;
  font-size:12rem;line-height:1;color:var(--linie);pointer-events:none;user-select:none}

/* ── Kontakt ────────────────────────────────────────────────── */
.kontakt{display:grid;gap:clamp(2.5rem,5vw,4.5rem);grid-template-columns:1fr;
  align-items:start}
@media (min-width:960px){.kontakt{grid-template-columns:1fr 1.1fr}}
.kontakt__daten{margin-top:2.4rem;display:grid;gap:1.1rem}
.kontakt__daten a{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;
  color:var(--schiefer);font-size:1.02rem}
.kontakt__daten a:hover{color:var(--ziegel-text)}
.kontakt__daten svg{width:1.2rem;height:1.2rem;fill:var(--ziegel);flex:0 0 auto}
form{display:grid;gap:1.25rem}
.feld{display:grid;gap:.45rem}
.feld label{font-size:.88rem;font-weight:500;color:var(--schiefer)}
.feld input,.feld textarea,.feld select{font:inherit;font-size:1rem;color:var(--schiefer);
  background:var(--papier);border:1px solid var(--linie);border-radius:var(--rand);
  padding:.85rem 1rem;width:100%;transition:border-color .2s}
.feld input:hover,.feld textarea:hover,.feld select:hover{border-color:var(--leise)}
.feld input:focus,.feld textarea:focus,.feld select:focus{border-color:var(--ziegel);
  outline:2px solid color-mix(in srgb,var(--ziegel) 34%,transparent);outline-offset:1px}
.feld textarea{min-height:120px;resize:vertical}
.feld .hilfe{font-size:.82rem;color:var(--leise)}
.feld .fehler{font-size:.82rem;color:var(--ziegel-text);display:none}
.feld[data-fehler="ja"] input,.feld[data-fehler="ja"] textarea{border-color:var(--ziegel)}
.feld[data-fehler="ja"] .fehler{display:block}
.zwei{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media (min-width:560px){.zwei{grid-template-columns:1fr 1fr}}
.zustimmung{display:flex;gap:.8rem;align-items:flex-start;font-size:.86rem;
  line-height:1.55;color:var(--leise)}
.zustimmung .fehler{margin-top:.4rem}
.zustimmung[data-fehler="ja"]{color:var(--ziegel-text)}
.zustimmung[data-fehler="ja"] .fehler{display:block}
.zustimmung[data-fehler="ja"] input{outline:2px solid var(--ziegel);outline-offset:2px}
.zustimmung input{width:1.15rem;height:1.15rem;margin-top:.2rem;flex:0 0 auto;
  accent-color:var(--ziegel)}
.honig{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sprung{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--ziegel);
  color:#FFFFFF;padding:.7rem 1.2rem;border-radius:var(--rand);text-decoration:none;
  font-size:.92rem;transition:top .2s}
.sprung:focus{top:1rem}
.melde{padding:1.15rem 1.3rem;border-radius:var(--rand);font-size:.95rem;line-height:1.6;
  display:none}
.melde[data-an="ja"]{display:block}
.melde--gut{background:var(--sand);color:var(--schiefer)}
.melde--schlecht{background:color-mix(in srgb,var(--ziegel) 14%,transparent);
  color:var(--ziegel-text)}
.melde a{color:var(--ziegel-text);font-weight:500}
button[disabled]{opacity:.6;cursor:progress}

/* ── Fuß ────────────────────────────────────────────────────── */
.fuss{background:var(--schiefer);color:#B7B3AC;padding-block:clamp(3.5rem,6vw,5.5rem)}
.fuss__raster{display:grid;gap:2.5rem;grid-template-columns:1fr}
@media (min-width:760px){.fuss__raster{grid-template-columns:1.3fr 1fr 1fr}}
.fuss__marke{color:var(--papier);width:150px;margin-bottom:1.6rem}
@media (prefers-color-scheme:dark){.fuss{background:var(--grund);color:var(--leise)}
  .fuss__marke{color:var(--schiefer)}}
.fuss h4{font-size:.78rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:#8C8880;margin-bottom:1.1rem}
.fuss p,.fuss a{font-size:.92rem;line-height:1.7;color:inherit}
.fuss a{text-decoration:none}
.fuss a:hover{color:var(--papier)}
@media (prefers-color-scheme:dark){.fuss a:hover{color:var(--schiefer)}}
.fuss__logo{background:#FFFFFF;border-radius:8px;padding:.7rem .9rem;display:inline-block;
  margin-bottom:1rem}
.fuss__logo img{height:30px;width:auto}
.fuss__unten{margin-top:3rem;padding-top:1.8rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:1rem 2rem;font-size:.85rem}
@media (prefers-color-scheme:dark){.fuss__unten{border-top-color:var(--linie)}}
.rechtstext{font-size:.82rem;line-height:1.7;color:#8C8880;margin-top:1.8rem;
  max-width:none}

/* ── Bewegung ───────────────────────────────────────────────── */
[data-auf]{opacity:0;transform:translateY(22px)}
[data-auf="ja"]{opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
@media (prefers-reduced-motion:reduce){
  [data-auf]{opacity:1;transform:none;transition:none}
  .wohnung:hover{transform:none}
  .knopf:active{transform:none}
}

/* ═══════════════════════════════════════════════════════════════
   Erlebnisebene. Jede Bewegung hat eine Aufgabe, keine läuft ohne
   Anlass, und unter prefers-reduced-motion steht alles still.
   ═══════════════════════════════════════════════════════════════ */

/* ── Auftakt: das Bild fährt einmal ruhig heran, der Text staffelt ── */
@media (prefers-reduced-motion:no-preference){
  .auftakt__bild img{animation:anfahrt 14s cubic-bezier(.16,1,.3,1) both}
  @keyframes anfahrt{from{transform:scale(1.075)}to{transform:scale(1)}}
  [data-ein]{opacity:0;transform:translateY(18px);
    animation:auftritt .85s cubic-bezier(.16,1,.3,1) both}
  [data-ein="1"]{animation-delay:.10s}
  [data-ein="2"]{animation-delay:.20s}
  [data-ein="3"]{animation-delay:.34s}
  [data-ein="4"]{animation-delay:.46s}
  @keyframes auftritt{to{opacity:1;transform:none}}
}

/* ── Lesefortschritt im Kopf, nur wo der Browser scrollgesteuerte
      Animationen kann. Sonst ist die Linie einfach nicht da. ── */
.fortschritt{position:absolute;left:0;bottom:-1px;height:2px;width:100%;
  background:var(--ziegel);transform-origin:0 50%;transform:scaleX(0);display:none}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .fortschritt{display:block;animation:lesen linear both;
      animation-timeline:scroll(root block)}
    @keyframes lesen{to{transform:scaleX(1)}}
  }
}

/* ── Tag und Abend zum Schieben ── */
.vergleich{position:relative;border-radius:var(--rand);overflow:hidden;
  box-shadow:var(--schatten);touch-action:pan-y}
.vergleich img{width:100%;height:auto;display:block}
.vergleich__oben{position:absolute;inset:0;width:100%;
  clip-path:inset(0 calc(100% - var(--teiler,52%)) 0 0)}
.vergleich__oben img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vergleich__griff{position:absolute;top:0;bottom:0;left:var(--teiler,52%);width:2px;
  background:rgba(255,255,255,.9);transform:translateX(-1px);pointer-events:none;
  box-shadow:0 0 0 1px rgba(20,24,25,.18)}
.vergleich__griff span{position:absolute;top:50%;left:50%;width:44px;height:44px;
  transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.94);
  box-shadow:0 4px 18px rgba(20,24,25,.28);display:flex;align-items:center;
  justify-content:center;gap:1px}
.vergleich__griff svg{width:17px;height:17px;fill:#262B2C}
.vergleich__griff svg:first-child{transform:rotate(90deg)}
.vergleich__griff svg:last-child{transform:rotate(-90deg)}
.vergleich__regler{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;
  cursor:ew-resize;appearance:none;background:transparent}
.vergleich__regler::-webkit-slider-thumb{appearance:none;width:56px;height:100%}
.vergleich__regler::-moz-range-thumb{width:56px;height:100%;border:0;background:transparent}
.vergleich__regler:focus-visible{opacity:1;outline:3px solid var(--ziegel);
  outline-offset:-3px;background:transparent}
.vergleich__marke{position:absolute;bottom:.85rem;font-size:.76rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:#FFFFFF;pointer-events:none;
  text-shadow:0 1px 6px rgba(0,0,0,.6)}
.vergleich__marke--links{left:1rem}
.vergleich__marke--rechts{right:1rem}
.cap{margin-top:.9rem;font-size:.85rem;color:var(--leise)}

/* ── Wohnungssucher mit Etagenwahl ── */
.sucher{display:grid;gap:clamp(2rem,4vw,3.5rem);grid-template-columns:1fr;
  margin-top:clamp(2.4rem,4vw,3.4rem)}
@media (min-width:1060px){.sucher{grid-template-columns:264px minmax(0,1fr);
  align-items:start}}
.haus{display:grid;gap:6px}
@media (min-width:1060px){.haus{position:sticky;top:96px}}
.haus__titel{font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--leise);margin-bottom:.6rem}
.haus__dach{height:34px;background:var(--linie);
  clip-path:polygon(50% 0,100% 100%,0 100%)}
.haus__etage{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;
  font:inherit;text-align:left;cursor:pointer;padding:.72rem .95rem;
  border:1px solid var(--linie);border-left:4px solid var(--linie);
  border-radius:0 var(--rand) var(--rand) 0;background:var(--papier);color:var(--text);
  transition:border-color .2s,background .2s,transform .2s}
.haus__etage:hover{border-left-color:var(--ziegel);transform:translateX(3px)}
.haus__etage span{font-size:.94rem;color:var(--schiefer)}
.haus__etage em{font-style:normal;font-size:.8rem;color:var(--leise)}
.haus__etage[aria-pressed="true"]{background:var(--schiefer);border-color:var(--schiefer);
  border-left-color:var(--ziegel)}
.haus__etage[aria-pressed="true"] span,
.haus__etage[aria-pressed="true"] em{color:var(--papier)}
@media (prefers-color-scheme:dark){
  .haus__etage[aria-pressed="true"] span,
  .haus__etage[aria-pressed="true"] em{color:var(--grund)}
}
.haus__sockel{margin-top:2px;padding:.8rem .95rem;font-size:.8rem;line-height:1.5;
  color:var(--leise);background:var(--sand);border-radius:0 var(--rand) var(--rand) 0;
  border-left:4px solid var(--linie)}
.filter{margin-block:0 1.2rem}
.filter__weg{display:inline-flex;align-items:center;gap:.45rem;border-style:dashed}
.filter__weg svg{width:.85em;height:.85em;fill:currentColor}
.filter__stand{font-size:.88rem;color:var(--leise);margin-bottom:1.6rem}
.leerstand{padding:2.5rem 0;font-size:.98rem;color:var(--leise)}
.alsLink{font:inherit;background:none;border:0;padding:0;cursor:pointer;
  color:var(--ziegel-text);text-decoration:underline}

/* Karten kommen gestaffelt herein, wenn sich die Auswahl ändert */
@media (prefers-reduced-motion:no-preference){
  .wohnung[data-neu]{animation:kartenein .5s cubic-bezier(.16,1,.3,1) both}
  @keyframes kartenein{from{opacity:0;transform:translateY(14px) scale(.985)}
    to{opacity:1;transform:none}}
}

/* ── Grundriss im Fenster: Klick vergrößert ── */
.lupe img{cursor:zoom-in;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.lupe img[data-zoom="ja"]{cursor:zoom-out;transform:scale(1.9)}
.lupe__bildfeld{overflow:auto;display:flex;align-items:center;justify-content:center}
@media (prefers-reduced-motion:reduce){.lupe img{transition:none}}

/* ── Anziehender Knopf, nur bei feinem Zeiger ── */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .knopf--voll{transition:transform .18s cubic-bezier(.16,1,.3,1),background .2s}
}

@media (prefers-reduced-motion:reduce){
  .auftakt__bild img,[data-ein]{animation:none;opacity:1;transform:none}
  .haus__etage:hover{transform:none}
}

/* Im Sucher steht die Kartenspalte enger, deshalb hier ein eigenes Raster */
@media (min-width:1060px) and (max-width:1439px){
  .sucher .wohnungen{grid-template-columns:repeat(2,1fr)}
}
.wohnung__preis{white-space:nowrap}
.wohnung button{white-space:nowrap}
.wohnung__fuss{flex-wrap:wrap;row-gap:.6rem}

/* Ein display-Wert schlaegt das hidden-Attribut, deshalb hier ausdruecklich */
.filter__weg[hidden]{display:none}

/* ═══════════════════════════════════════════════════════════════
   Zweiter Durchgang: mobil zuerst, großzügiger, vollflächiger Auftakt.
   Alles hier überschreibt bewusst die erste Fassung weiter oben.
   ═══════════════════════════════════════════════════════════════ */

:root{
  --spalte:1240px;
  --breit:1520px;
  --kopf:58px;
  --rand:14px;
  --luft:clamp(4rem,11vw,9rem);
}
@media (min-width:900px){ :root{ --kopf:70px } }

.bahn{width:min(100% - 2.5rem,var(--spalte))}
@media (min-width:640px){ .bahn{width:min(100% - 4rem,var(--spalte))} }

/* ── Kopfzeile ─────────────────────────────────────────────────
   Marke links, Navigation als Gruppe in der Mitte, Handlung rechts.
   Auf dem Telefon nur Marke, Knopf und Menü. */
.kopf{background:color-mix(in srgb,var(--papier) 78%,transparent);
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
.kopf__inhalt{width:min(100% - 2rem,var(--breit));margin-inline:auto;height:var(--kopf);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem}
@media (min-width:640px){.kopf__inhalt{width:min(100% - 3.5rem,var(--breit))}}
.kopf__marke{width:84px}
@media (min-width:900px){.kopf__marke{width:104px}}
.nav{display:none;justify-content:center;gap:clamp(1.4rem,2.6vw,2.6rem)}
@media (min-width:900px){.nav{display:flex}}
.nav a{font-size:.9rem;letter-spacing:.005em;color:var(--text);position:relative;padding:.3rem 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;
  background:var(--ziegel);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .3s cubic-bezier(.16,1,.3,1)}
.nav a:hover::after{transform:scaleX(1)}
.kopf__rechts{display:flex;align-items:center;gap:.6rem;justify-self:end}
.knopf--klein{padding:.55rem 1.1rem;font-size:.88rem;border-radius:999px}
@media (max-width:519px){.kopf__rechts .knopf--klein{display:none}}

.menuknopf{display:grid;place-content:center;gap:5px;width:42px;height:42px;padding:0;
  border:0;background:none;cursor:pointer;border-radius:999px}
@media (min-width:900px){.menuknopf{display:none}}
.menuknopf span{display:block;width:19px;height:1.5px;background:var(--schiefer);
  transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .2s}
.menuknopf[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.menuknopf[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}

.menublatt{position:fixed;inset:var(--kopf) 0 0;z-index:49;background:var(--papier);
  padding:2.5rem 1.25rem 2rem;display:flex;flex-direction:column;
  justify-content:space-between;overflow-y:auto}
.menublatt[hidden]{display:none}
.menublatt nav{display:grid;gap:.2rem}
.menublatt nav a{font-family:NR,Georgia,serif;font-weight:300;font-size:2rem;
  color:var(--schiefer);text-decoration:none;padding:.55rem 0}
.menublatt nav a.knopf{font-family:AR,sans-serif;font-size:1rem;font-weight:500;
  color:#FFFFFF;justify-self:start;margin-top:1.6rem;padding:.85rem 1.6rem}
.menublatt__fuss{display:grid;gap:.5rem;padding-top:2rem;border-top:1px solid var(--linie);
  font-size:.95rem}
.menublatt__fuss a{color:var(--leise);text-decoration:none}
@media (prefers-reduced-motion:no-preference){
  .menublatt nav a{animation:blattein .5s cubic-bezier(.16,1,.3,1) both}
  .menublatt nav a:nth-child(1){animation-delay:.04s}
  .menublatt nav a:nth-child(2){animation-delay:.08s}
  .menublatt nav a:nth-child(3){animation-delay:.12s}
  .menublatt nav a:nth-child(4){animation-delay:.16s}
  .menublatt nav a:nth-child(5){animation-delay:.20s}
  .menublatt nav a:nth-child(6){animation-delay:.26s}
  @keyframes blattein{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
body[data-menu="auf"]{overflow:hidden}

/* ── Auftakt: Bild über den ganzen Schirm, Text darauf ── */
.auftakt{position:relative;display:block;min-height:100dvh;padding:0;
  margin-top:calc(var(--kopf) * -1);overflow:hidden;background:var(--schiefer)}
.auftakt__bild{position:absolute;inset:0;display:block}
.auftakt__bild img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
@media (min-width:760px){.auftakt__bild img{object-position:50% 54%}}
.auftakt__schleier{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(12,16,17,.52) 0%,rgba(12,16,17,.12) 26%,
  rgba(12,16,17,0) 46%,rgba(12,16,17,.42) 68%,rgba(12,16,17,.88) 100%)}
.auftakt__text{position:relative;min-height:100dvh;display:flex;flex-direction:column;
  justify-content:flex-end;align-items:center;text-align:center;gap:1.1rem;
  width:min(100% - 2.5rem,860px);margin-inline:auto;
  padding:calc(var(--kopf) + 2rem) 0 clamp(3.5rem,9vh,6rem)}
.auftakt h1{color:#FFFFFF;font-size:clamp(2.6rem,1.2rem + 5.4vw,5.6rem);line-height:1.05;
  text-wrap:balance;text-shadow:0 2px 30px rgba(10,14,15,.45)}
.marke--hell{color:#FFFFFF;opacity:.92}
.auftakt__lead{color:rgba(255,255,255,.92);font-size:clamp(1.05rem,.95rem + .5vw,1.35rem);
  max-width:44ch;text-wrap:balance;text-shadow:0 1px 18px rgba(10,14,15,.5)}
.auftakt__tasten{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;
  margin-top:.9rem}
.knopf--glas{color:#FFFFFF;border-color:rgba(255,255,255,.5);
  background:rgba(255,255,255,.10);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px)}
.knopf--glas:hover{background:rgba(255,255,255,.2);border-color:#FFFFFF}
@media (prefers-reduced-transparency:reduce){
  .knopf--glas{background:rgba(20,24,25,.65);backdrop-filter:none}
}
.knopf--voll,.knopf--leer,.knopf--glas{border-radius:999px;padding:.85rem 1.7rem}

/* ── Zahlenband dichter an Apples ruhiger Reihe ── */
.zahlen{border-top:0;gap:0}
.zahlen div{border-bottom:1px solid var(--linie);padding:2.6rem 0 2.4rem}
@media (min-width:760px){.zahlen div{border-bottom:0;text-align:center}}
.zahlen .zahl{font-size:clamp(2.2rem,1.4rem + 2.4vw,3.4rem)}

/* ── Abschnitte bekommen mehr Luft, Überschriften mehr Ruhe ── */
.lage__kopf,.sucher > div > .filter{margin-inline:auto}
.mitte{text-align:center;margin-inline:auto;max-width:24ch}
.mitte + .lead,.mitte ~ .lead{margin-inline:auto;text-align:center;max-width:54ch}

/* ── Vollflächiger Zwischenruf, wie im Heft die Stimmungsseite ── */
.moment{position:relative;min-height:78vh;display:grid;place-items:center;
  padding:0;overflow:hidden;background:var(--schiefer)}
.moment picture{position:absolute;inset:0}
.moment img{width:100%;height:100%;object-fit:cover}
.moment__schleier{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,16,17,.3),rgba(12,16,17,.62))}
.moment__text{position:relative;text-align:center;color:#FFFFFF;
  width:min(100% - 2.5rem,720px);padding-block:5rem}
.moment__text p{font-family:NR,Georgia,serif;font-weight:300;color:#FFFFFF;
  font-size:clamp(1.6rem,1.1rem + 2.3vw,3rem);line-height:1.26;max-width:none;
  text-wrap:balance}
.moment__text span{display:block;margin-top:1.6rem;font-size:.78rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.72)}

@media (prefers-reduced-motion:reduce){
  .nav a::after,.menuknopf span,.menublatt nav a{transition:none;animation:none}
}

/* ── Kopfzeile über dem Auftaktbild: erst durchsichtig, nach dem
      ersten Scrollen die helle Leiste ── */
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]){
  background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-bottom-color:transparent}
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]) .kopf__marke{color:#FFFFFF}
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]) .nav a{color:rgba(255,255,255,.94)}
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]) .menuknopf span{background:#FFFFFF}
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]) .knopf--klein{
  background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);color:#FFFFFF;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.kopf[data-ueberbild="ja"]:not([data-fest="ja"]) .knopf--klein:hover{
  background:rgba(255,255,255,.26)}
.kopf{transition:background .35s ease,backdrop-filter .35s ease,border-color .35s ease}
.kopf__marke,.nav a,.menuknopf span,.knopf--klein{transition:color .35s ease,
  background .35s ease,border-color .35s ease}
/* Bei offenem Menüblatt immer die helle Leiste, sonst verschwindet die Marke */
body[data-menu="auf"] .kopf[data-ueberbild="ja"]{
  background:var(--papier);backdrop-filter:none}
body[data-menu="auf"] .kopf[data-ueberbild="ja"] .kopf__marke{color:var(--schiefer)}
body[data-menu="auf"] .kopf[data-ueberbild="ja"] .menuknopf span{background:var(--schiefer)}
body[data-menu="auf"] .kopf[data-ueberbild="ja"] .knopf--klein{
  background:var(--ziegel);border-color:transparent;color:#FFFFFF}

/* Absätze bekommen überall Abstand, nicht nur im Textbild */
p + p{margin-top:1.15rem}
.lead + p{margin-top:1.5rem}
