/* ═══════════════════════════════════════════════════════════════════════
   Burg Tuchfabrik LP21 — Main Stylesheet
   Merged from: index.html <style id="rfw-override">, index.html <style>,
   and assets/css/registration-form.css (form widget base + themes).
   Removed: .loc-subtitle, .mspot*, .loc-pin-badge, @keyframes locPing21,
            and all unreferenced keyframes.
   ═══════════════════════════════════════════════════════════════════════ */

/* ─── CSS CUSTOM PROPERTIES ──────────────────────────────────────────── */
:root {
  --white: #ffffff;
  --off:   #f8f6f2;
  --cream: #f2ebe0;
  --paper: #faf8f5;

  --ink:    #111218;
  --slate:  #2c3546;
  --mid:    #5c6680;
  --red:    #c0392b;
  --red-l:  #d95036;
  --red-xl: #fdf2f0;
  --gold:   #c9963c;
  --gold-xl:#fdf6e8;

  --t1: #111218;
  --t2: #4a5165;
  --t3: #8a93a8;

  --border:  #e4e0d8;
  --border2: #cdc8be;
  --shadow:  0 2px 16px rgba(17,18,24,.07);
  --shadow2: 0 8px 40px rgba(17,18,24,.1);

  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ─── RESET & BASE ───────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; -webkit-text-size-adjust:100%; }
body { background:var(--white); color:var(--t1); font-family:var(--font-sans); font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:clip; }
img { max-width:100%; }
.hs-img,
.ss img,
#standort-img,
.nav-logo-img { max-width:none; }

/* ─── UTILITY ─────────────────────────────────────────────────────────── */
/* Reveal: elements start visible; JS adds 'pre-reveal' to opt-in to animation */
.pre-reveal { opacity:0; transform:translateY(20px); transition:opacity .55s ease, transform .55s ease; }
.pre-reveal.visible { opacity:1; transform:none; }
.pre-reveal:nth-child(2){transition-delay:.08s} .pre-reveal:nth-child(3){transition-delay:.16s} .pre-reveal:nth-child(4){transition-delay:.24s}
/* Legacy: keep .reveal always visible — never hide by default */
.reveal { opacity:1; transform:none; }

/* ─── NAV ─────────────────────────────────────────────────────────────── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:66px; padding:0 15%;
  display:flex; align-items:center; justify-content:space-between;
  transition:background .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}
nav:not(.scrolled) {
  background:transparent;
  backdrop-filter:none;
}
nav.scrolled {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 var(--border);
}

/* Logo: SVG is neutral — invert to dark when nav is on white */
nav.scrolled .nav-logo-img { filter:invert(1) sepia(.2) saturate(2) hue-rotate(330deg) brightness(.7); }
nav:not(.scrolled) .nav-logo-img { filter:none; }

.nav-logo-wrap { flex-shrink:0; }
.nav-logo-img { height:34px; display:block; }
.nav-links { display:flex; gap:28px; align-items:center; }
.nav-links a {
  font-family:var(--font-sans); font-size:13px; font-weight:500;
  text-decoration:none; transition:color .2s;
}
nav.scrolled .nav-links a { color:var(--t2); }
nav.scrolled .nav-links a:hover { color:var(--ink); }
nav:not(.scrolled) .nav-links a { color:rgba(255,255,255,.8); }
nav:not(.scrolled) .nav-links a:hover { color:#fff; }

.nav-cta {
  background:var(--red); color:#fff;
  font-family:var(--font-sans); font-size:13px; font-weight:600;
  padding:9px 20px; border-radius:8px; border:none; cursor:pointer;
  transition:background .2s, transform .15s;
  white-space:nowrap;
}
.nav-cta:hover { background:var(--red-l); transform:translateY(-1px); }

.nav-toggle {
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  cursor:pointer;
  flex-shrink:0;
  color:#fff;
  transition:background .2s, border-color .2s;
}
.nav-toggle span {
  display:block;
  width:20px;
  height:2px;
  background:currentColor;
  border-radius:1px;
  transition:transform .25s ease, opacity .25s ease;
}
nav.scrolled .nav-toggle { color:var(--ink); }
nav.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
nav.nav-open .nav-toggle span:nth-child(2) { opacity:0; }
nav.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ─── HERO ─────────────────────────────────────────────────────────────── */
.hero {
  position:relative; width:100%; height:100vh; min-height:620px;
  overflow:hidden;
}
.hero-slider { position:absolute; inset:0; }
.hs {
  position:absolute; inset:0; opacity:0;
  transition:opacity 1.2s ease; overflow:hidden;
}
.hs.active { opacity:1; }
.hs-img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hs.active .hs-img {
  animation:kb21new 10s ease-in-out alternate infinite;
}
@keyframes kb21new { from{transform:scale(1.0)} to{transform:scale(1.06)} }
.hs-overlay { display:none; }

/* Hero content */
.hero-content {
  position:absolute; bottom:calc(10% + 88px); left:7%; z-index:2; max-width:580px;
}
.hero-eyebrow {
  font-family:var(--font-sans); font-size:11px; font-weight:400;
  letter-spacing:3.5px; text-transform:uppercase;
  color:rgba(255,255,255,.6); margin-bottom:16px;
}
.hero-h1 {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(1.75rem, 4vw, 3.25rem);
  color:#fff; line-height:1.12; letter-spacing:-0.03em; margin-bottom:20px;
  display:block;
}
.hero-h1-line { display:block; white-space:nowrap; }
.hero-h1-accent { font-weight:800; color:var(--red-l); }
.hero-sub {
  font-family:var(--font-sans); font-size:clamp(15px,1.5vw,16px); font-weight:400;
  color:rgba(255,255,255,.88); max-width:750px; line-height:1.85;
  margin-bottom:26px;
  text-shadow:0 1px 3px rgba(0,0,0,.35);
}
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.btn-red {
  background:var(--red); color:#fff;
  font-family:var(--font-sans); font-size:14px; font-weight:600;
  padding:13px 26px; border-radius:9px; border:none; cursor:pointer;
  transition:background .2s, transform .15s;
}
.btn-red:hover { background:var(--red-l); transform:translateY(-2px); }
.btn-ghost-w {
  color:#fff; border:1.5px solid rgba(255,255,255,.45);
  font-family:var(--font-sans); font-size:14px; font-weight:500;
  padding:12px 24px; border-radius:9px; text-decoration:none;
  transition:border-color .2s, background .2s;
}
.btn-ghost-w:hover { border-color:rgba(255,255,255,.85); background:rgba(255,255,255,.08); }

.hero-chips { display:flex; gap:8px; flex-wrap:wrap; }
.hero-chip {
  font-family:var(--font-sans); font-size:11.5px; font-weight:500;
  color:rgba(255,255,255,.75);
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  border-radius:9999px; padding:5px 12px;
}

/* Slider controls */
.hero-controls {
  position:absolute; bottom:72px; left:50%; transform:translateX(-50%);
  z-index:10; display:flex; align-items:center; gap:10px;
}
.h-prev, .h-next { display:none; }
.h-dots { display:none; }
.h-dot {
  width:6px; height:6px; border-radius:50%;
  background:rgba(255,255,255,.35); border:none; cursor:pointer;
  transition:background .3s, transform .3s;
}
.h-dot.active { background:#fff; transform:scale(1.3); }

/* Hero bar — KfW center feature */
.hero-bar {
  position:absolute; bottom:0; left:0; right:0; z-index:3;
  background:rgba(20,16,10,.62);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid rgba(255,255,255,.08);
  display:flex; justify-content:center; align-items:stretch;
}
.hero-bar-inner {
  width:100%; padding:0 15%;
  display:flex; align-items:stretch;
}

/* Side items */
.hero-bar-item {
  flex:1; position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:14px 32px; text-align:center;
  transition:background .2s; cursor:default;
}
.hero-bar-item:hover { background:rgba(192,57,43,.06); }
.hero-bar-item + .hero-bar-item::before {
  content:''; position:absolute; left:0; top:20%; height:60%;
  width:1px; background:rgba(255,255,255,.12);
}
.hero-bar-val {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(.95rem,1.8vw,1.35rem); color:#f0ebe3; line-height:1.1; letter-spacing:-.3px;
  transition:color .2s;
}
.hero-bar-item:hover .hero-bar-val { color:#e74c3c; }
.hero-bar-lbl {
  font-family:var(--font-sans); font-size:10px; font-weight:600; color:rgba(240,235,227,.65);
  margin-top:3px; letter-spacing:.6px; text-transform:uppercase;
}
.hero-bar-tag {
  display:inline-block; font-family:var(--font-sans); font-size:10px;
  font-weight:700; color:rgba(255,210,195,.95); background:rgba(192,57,43,.4);
  border-radius:9999px; padding:3px 10px; margin-bottom:5px; letter-spacing:.8px; text-transform:uppercase;
  border:1px solid rgba(231,76,60,.5);
}

/* KfW center block */
.hero-bar-kfw {
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:0 52px; min-width:400px;
  background:linear-gradient(160deg, rgba(28,18,6,.96) 0%, rgba(18,12,4,.92) 100%);
  border-left:1px solid rgba(245,158,11,.28);
  border-right:1px solid rgba(245,158,11,.28);
  cursor:default;
  animation:kfwBarEntry .9s cubic-bezier(.22,.68,0,1.2) .5s both,
             kfwBarGlow 3.5s ease-in-out 2s infinite;
}
/* Amber top accent line */
.hero-bar-kfw::before {
  content:''; position:absolute; top:0; left:10%; right:10%; height:2px;
  background:linear-gradient(90deg, transparent, rgba(245,158,11,.5), rgba(245,158,11,1), rgba(245,158,11,.5), transparent);
  animation:kfwLineShimmer 2.5s ease-in-out 2s infinite;
}
/* Shimmer sweep */
.hero-bar-kfw-shimmer {
  position:absolute; top:0; left:-100%; width:55%; height:100%;
  background:linear-gradient(90deg, transparent, rgba(245,158,11,.09), transparent);
  transform:skewX(-18deg);
  animation:kfwShimmer 3.8s ease-in-out 2.2s infinite;
  pointer-events:none;
}
.hero-bar-kfw-badge {
  font-family:var(--font-sans); font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:2px;
  color:rgba(251,191,36,.9); margin-bottom:8px;
  background:rgba(245,158,11,.15); padding:3px 14px; border-radius:9999px;
  border:1px solid rgba(245,158,11,.35);
}
.hero-bar-kfw-row { display:flex; align-items:center; gap:0; }
.hero-bar-kfw-col { display:flex; flex-direction:column; align-items:center; padding:0 32px; }
.hero-bar-kfw-sep {
  width:1px; height:48px; background:rgba(245,158,11,.25); flex-shrink:0;
}
.hero-bar-kfw-val {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(1.7rem,3.2vw,2.3rem); color:rgba(255,255,255,.97);
  line-height:1; margin-bottom:5px; letter-spacing:-.6px;
}
.hero-bar-kfw-gold {
  color:#fbbf24;
  text-shadow:0 0 28px rgba(245,158,11,.5), 0 0 12px rgba(245,158,11,.3);
  animation:kfwGoldPulse 2.8s ease-in-out 2.5s infinite;
}
.hero-bar-kfw-lbl {
  font-family:var(--font-sans); font-size:9.5px; font-weight:600;
  color:rgba(240,235,227,.45); letter-spacing:.9px; text-transform:uppercase;
}

/* KfW bar keyframes */
@keyframes kfwBarEntry {
  from { opacity:0; transform:scaleY(.85) translateY(8px); }
  to   { opacity:1; transform:scaleY(1) translateY(0); }
}
@keyframes kfwBarGlow {
  0%,100% { box-shadow:0 0 0 rgba(245,158,11,0); }
  50%      { box-shadow:0 -4px 28px rgba(245,158,11,.12), 0 0 16px rgba(245,158,11,.06); }
}
@keyframes kfwGoldPulse {
  0%,100% { text-shadow:0 0 22px rgba(245,158,11,.45), 0 0 8px rgba(245,158,11,.25); }
  50%      { text-shadow:0 0 32px rgba(245,158,11,.7), 0 0 14px rgba(245,158,11,.45); }
}
@keyframes kfwLineShimmer {
  0%,100% { opacity:.5; } 50% { opacity:1; }
}
@keyframes kfwShimmer {
  0%   { left:-100%; }
  60%,100% { left:180%; }
}

/* Side item entrance */
@keyframes barSlideUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
.hbar-side { animation:barSlideUp .6s ease both; }
.hbar-side:nth-child(1){ animation-delay:.1s; }
.hbar-side:nth-child(2){ animation-delay:.22s; }
.hbar-side:nth-child(4){ animation-delay:.22s; }
.hbar-side:nth-child(5){ animation-delay:.1s; }

/* ─── SECTION TITLE (shared) ──────────────────────────────────────────── */
.section-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(2rem,3.8vw,3.2rem); color:var(--ink);
  line-height:1.15; margin-bottom:8px; letter-spacing:-0.02em;
}
input[type=range] {
  -webkit-appearance:none; width:100%; height:4px;
  border-radius:2px; outline:none; cursor:pointer; margin-bottom:8px;
}
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance:none; width:20px; height:20px;
  border-radius:50%; background:var(--red);
  border:3px solid var(--ink); box-shadow:0 1px 6px rgba(192,57,43,.4);
  cursor:pointer;
}
input[type=range]::-moz-range-thumb {
  width:20px; height:20px; border-radius:50%; background:var(--red);
  border:3px solid var(--ink); box-shadow:0 1px 6px rgba(192,57,43,.4); cursor:pointer;
}
/* ─── SECTION 5: PROJECT STORY ─────────────────────────────────────────── */
.story-section {
  background:var(--off);
  padding:80px 15%;
}
.story-wrap {
  display:grid; grid-template-columns:1fr 1fr;
  max-width:1400px; margin:0 auto;
  gap:48px; align-items:center;
}
.story-slider-panel {
  position:relative; overflow:hidden; min-height:500px;
  border-radius:16px;
}
.ss {
  position:absolute; inset:0; opacity:0;
  transition:opacity 1.2s ease; overflow:hidden;
}
.ss.active { opacity:1; }
.ss img {
  width:100%; height:100%; object-fit:cover;
  animation:kb21new 9s ease-in-out alternate infinite;
}
.story-slider-controls {
  position:absolute; bottom:16px; left:0; right:0; z-index:3;
  display:flex; align-items:center; justify-content:center; gap:12px;
}
.s-prev, .s-next {
  background:rgba(17,18,24,.35); border:1px solid rgba(255,255,255,.25);
  color:#fff; font-size:18px; cursor:pointer; border-radius:6px;
  padding:4px 10px; transition:background .2s;
}
.s-prev:hover, .s-next:hover { background:rgba(17,18,24,.6); }
.s-dots { display:flex; gap:5px; }
.s-dot {
  width:5px; height:5px; border-radius:50%;
  background:rgba(255,255,255,.4); border:none; cursor:pointer;
  transition:background .3s;
}
.s-dot.active { background:#fff; }

.story-content {
  background:transparent; padding:0;
  display:flex; flex-direction:column; justify-content:center;
}
.story-eyebrow {
  font-family:var(--font-sans); font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:1.8px; color:var(--red);
  margin-bottom:10px;
}
.story-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(1.8rem,3vw,2.6rem); color:var(--ink);
  line-height:1.15; margin-bottom:14px; letter-spacing:-0.02em;
}
.story-text {
  font-family:var(--font-sans); font-size:15px; font-weight:400;
  color:var(--t2); line-height:1.85; margin-bottom:12px;
}
.story-chips {
  display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;
}
.story-chip {
  background:#fff; border:1px solid var(--border);
  font-family:var(--font-sans); font-size:12.5px; font-weight:500;
  color:var(--t2); padding:6px 14px; border-radius:9999px;
}

/* ─── SECTION 6: UNIT TYPES ─────────────────────────────────────────────── */
.units-section {
  background:var(--cream); padding:80px 15%;
}
.units-eyebrow {
  font-family:var(--font-sans); font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:1.8px; color:var(--red);
  margin-bottom:8px;
}
.units-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:18px; max-width:1400px; margin:0 auto;
}
.unit-card {
  background:#fff; border:1px solid var(--border);
  border-radius:16px; overflow:hidden; box-shadow:var(--shadow);
  transition:transform .25s, box-shadow .25s;
}
.unit-card:hover { transform:translateY(-4px); box-shadow:var(--shadow2); }
.unit-header {
  padding:18px 22px; position:relative;
}
.unit-type {
  font-family:var(--font-display); font-style:normal; font-weight:600;
  font-size:1.3rem; color:#fff;
}
.unit-count {
  font-family:var(--font-sans); font-size:12px; font-weight:300;
  color:rgba(255,255,255,.6); margin-top:2px;
}
.unit-badge {
  position:absolute; top:14px; right:14px;
  background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.35);
  font-family:var(--font-sans); font-size:11px; font-weight:600;
  color:#fff; padding:3px 10px; border-radius:9999px;
}
.unit-body { padding:0 22px; }
.unit-row {
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 0; border-bottom:1px solid var(--border);
}
.unit-row-label {
  font-family:var(--font-sans); font-size:13.5px; font-weight:400;
  color:var(--t3);
}
.unit-row-val {
  font-family:var(--font-sans); font-size:13.5px; font-weight:600;
  color:var(--ink);
}
.unit-calc {
  background:var(--red-xl); border-left:2px solid var(--red);
  margin:8px 0; padding:10px 14px;
}
.unit-calc-title {
  font-family:var(--font-sans); font-size:11px; font-weight:600;
  text-transform:uppercase; color:var(--red); margin-bottom:3px;
}
.unit-calc-val {
  font-family:var(--font-sans); font-size:12.5px; font-weight:400;
  color:var(--t2);
}
.unit-footer {
  padding:16px 22px;
  display:flex; justify-content:space-between; align-items:center;
  border-top:1px solid var(--border);
}
.unit-price {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:1.2rem; color:var(--red);
}
.unit-cta {
  font-family:var(--font-sans); font-size:13px; font-weight:600;
  color:var(--red); background:var(--red-xl);
  padding:8px 14px; border-radius:8px; border:none; cursor:pointer;
  transition:background .2s;
}
.unit-cta:hover { background:#f9ddd9; }

/* ─── SECTION 7: LOCATION ────────────────────────────────────────────────── */
.location-section { background:var(--off); padding:80px 15%; }

.loc-header { margin:0 0 40px; }
.location-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(1.9rem,3vw,2.6rem); color:var(--ink); margin-bottom:8px; line-height:1.12; letter-spacing:-0.02em;
}

.location-grid {
  display:grid;
  grid-template-columns:minmax(0,58fr) minmax(0,42fr);
  gap:28px; align-items:stretch;
  width:100%;
}
.loc-map-cell { height:100%; min-height:0; }

.market-strip {
  grid-column:1 / -1; width:100%;
  background:#fff; border:1px solid var(--border); border-radius:16px;
  padding:28px 32px; box-shadow:0 8px 32px rgba(17,18,24,.07);
}
.market-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.market-head {
  display:flex; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; gap:12px 24px; margin-bottom:24px;
}
.market-eyebrow {
  display:flex; align-items:center; gap:8px;
  font:700 9px/1 var(--font-sans); letter-spacing:1.8px;
  text-transform:uppercase; color:var(--t3); margin-bottom:8px;
}
.market-eyebrow-bar { width:3px; height:16px; background:var(--red); border-radius:2px; }
.market-title {
  font:700 clamp(1.15rem,2vw,1.45rem)/1.2 var(--font-display);
  color:var(--ink); letter-spacing:-.02em; margin:0 0 4px;
}
.market-sub { font:400 12.5px/1.4 var(--font-sans); color:var(--t3); margin:0; }
.market-range { font:400 11px/1 var(--font-sans); color:var(--t3); padding-top:4px; white-space:nowrap; }
.market-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.market-card {
  --mc:#16a34a; --mb:#ecfdf3; --md:#15803d;
  border:1px solid var(--border); border-radius:14px; padding:18px 20px 14px;
}
.market-card--rent { --mc:#d97706; --mb:#fff7ed; --md:#b45309; }
.market-card-top {
  display:flex; justify-content:space-between; align-items:center;
  gap:10px; margin-bottom:14px;
}
.market-card-brand { display:flex; align-items:center; gap:10px; }
.market-card-icon {
  width:36px; height:36px; border-radius:50%; background:var(--mb); color:var(--mc);
  display:flex; align-items:center; justify-content:center; font-size:16px;
}
.market-card-name {
  font:700 11px/1 var(--font-sans); letter-spacing:1px;
  text-transform:uppercase; color:var(--mc);
}
.market-badge {
  font:600 9.5px/1 var(--font-sans); padding:4px 10px; border-radius:9999px;
  background:var(--mb); color:var(--md); white-space:nowrap;
}
.market-card-stats { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.market-card-pct {
  font:700 clamp(1.6rem,2.5vw,2rem)/1 var(--font-display);
  color:var(--mc); letter-spacing:-.03em;
}
.market-card-avg { font:400 11px/1 var(--font-sans); color:var(--t3); }
.market-chart { width:100%; height:110px; display:block; }
.market-chart-grid line { stroke:#e8e4dc; stroke-width:1; stroke-dasharray:4 4; }
.market-chart-axis { font:400 9px var(--font-sans); fill:var(--t3); }
.market-card--buy .market-line { fill:none; stroke:#16a34a; stroke-width:2.5; stroke-linecap:round; }
.market-card--buy circle { fill:#fff; stroke:#16a34a; stroke-width:2; }
.market-card--buy .market-dot { fill:#16a34a; stroke:none; }
.market-card--rent .market-line { fill:none; stroke:#d97706; stroke-width:2.5; stroke-linecap:round; }
.market-card--rent circle { fill:#fff; stroke:#d97706; stroke-width:2; }
.market-card--rent .market-dot { fill:#d97706; stroke:none; }
.market-chart-labels {
  display:grid; grid-template-columns:repeat(4,1fr); margin-top:6px;
  font:400 9px/1.5 var(--font-sans); color:var(--t3); text-align:center;
}
.market-chart-labels b { font-weight:700; color:var(--mc); font-size:10px; }
.market-insights {
  display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--border); border-radius:12px; background:var(--off);
}
.market-insight {
  display:flex; align-items:center; gap:12px;
  padding:16px 20px; border-right:1px solid var(--border);
}
.market-insight:last-child { border-right:none; }
.market-insight-icon {
  width:32px; height:32px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.market-insight--buy .market-insight-icon { background:#ecfdf3; color:#16a34a; }
.market-insight--rent .market-insight-icon { background:#fff7ed; color:#d97706; }
.market-insight--blue .market-insight-icon { background:#eff6ff; color:#2563eb; }
.market-insight strong {
  display:block; font:700 12.5px/1.3 var(--font-sans); color:var(--ink); margin-bottom:2px;
}
.market-insight span { font:400 11px/1.4 var(--font-sans); color:var(--t3); }
.market-source {
  font:400 9px/1.4 var(--font-sans); color:var(--t3);
  margin:14px 0 0; padding-top:12px; border-top:1px solid var(--border);
}

/* Map */
.loc-map-wrap {
  border-radius:20px; overflow:hidden;
  box-shadow:0 16px 56px rgba(17,18,24,.13);
  border:1px solid var(--border); position:relative;
  cursor:grab; height:100%; min-height:320px;
  background:var(--paper);
}
.loc-map-wrap.dragging { cursor:grabbing; }
#standort-img {
  user-select:none;
  width:100%; height:100%; display:block;
  object-fit:cover; object-position:center center;
  transition:transform .25s ease;
  transform-origin:center center;
  will-change:transform;
}
#standort-img.no-transition { transition:none !important; }

/* ─── SECTION 8: PROCESS ─────────────────────────────────────────────────── */
.process-section {
  background:var(--ink); padding:72px 15%;
}
.process-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:2.4rem; color:#fff; margin-bottom:40px; letter-spacing:-0.02em;
}
.process-steps {
  display:grid; grid-template-columns:repeat(6,1fr);
  gap:0; max-width:1400px; margin:0 auto;
  position:relative;
}
.process-steps::before {
  content:''; position:absolute;
  top:24px; left:40px; right:40px; height:1px;
  background:rgba(255,255,255,.12); pointer-events:none;
}
.process-step {
  display:flex; flex-direction:column; align-items:center;
  text-align:center; padding:0 10px; position:relative;
}
.step-num {
  width:48px; height:48px; border-radius:50%; background:var(--red);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-sans); font-size:15px; font-weight:700;
  color:#fff; z-index:2; flex-shrink:0; position:relative;
}
.step-title {
  font-family:var(--font-sans); font-size:13px; font-weight:600;
  color:#fff; margin-top:12px; margin-bottom:6px; line-height:1.3;
}
.step-text {
  font-family:var(--font-sans); font-size:12px; font-weight:300;
  color:rgba(255,255,255,.55); line-height:1.65;
}

/* ─── SECTION 9: FAQ ──────────────────────────────────────────────────────── */
.faq-section {
  background:var(--off); padding:72px 15%;
}
.faq-inner { max-width:1400px; margin:0 auto; }
.faq-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:2.4rem; color:var(--ink); margin-bottom:8px; letter-spacing:-0.02em;
}
.faq-sub {
  font-family:var(--font-sans); font-size:15px; font-weight:400;
  color:var(--t2); margin-bottom:36px;
}
.faq-item { border-bottom:1px solid var(--border); }
.faq-q {
  display:flex; justify-content:space-between; align-items:center;
  gap:16px; padding:16px 0; cursor:pointer;
  font-family:var(--font-sans); font-size:15px; font-weight:600;
  color:var(--ink); background:none; border:none; width:100%; text-align:left;
}
.faq-q:hover { color:var(--red); }
.faq-icon {
  font-size:20px; font-weight:300; color:var(--red);
  flex-shrink:0; transition:transform .3s;
}
.faq-item.open .faq-icon { transform:rotate(45deg); }
.faq-a {
  display:none; font-family:var(--font-sans); font-size:14px; font-weight:300;
  color:var(--t2); padding-bottom:16px; line-height:1.75;
  border-left:3px solid var(--red); padding-left:16px;
}
.faq-item.open .faq-a { display:block; }

/* ─── SECTION 10: LEAD FORM ─────────────────────────────────────────────── */
.form-section {
  background:var(--white); padding:88px 15%;
}
.form-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:64px; max-width:1400px; margin:0 auto; align-items:start;
}
.form-left-eyebrow {
  font-family:var(--font-sans); font-size:11px; font-weight:500;
  text-transform:uppercase; letter-spacing:1.8px; color:var(--red);
  margin-bottom:10px;
}
.form-left-title {
  font-family:var(--font-display); font-style:normal; font-weight:700;
  font-size:clamp(2rem,3.5vw,3rem); color:var(--ink);
  line-height:1.12; margin-bottom:12px; letter-spacing:-0.02em;
}
.form-left-sub {
  font-family:var(--font-sans); font-size:15px; font-weight:400;
  color:var(--t2); line-height:1.8; margin-bottom:24px;
}
.trust-bullet {
  display:flex; align-items:flex-start; gap:10px; margin-bottom:10px;
}
.trust-dot {
  width:8px; height:8px; border-radius:50%; background:var(--red);
  margin-top:5px; flex-shrink:0;
}
.trust-text {
  font-family:var(--font-sans); font-size:14px; font-weight:400; color:var(--t2);
}
/* ─── FOOTER ──────────────────────────────────────────────────────────────── */
footer {
  background:#0c1117; padding:44px 15% 0;
}
.footer-inner {
  max-width:1400px; margin:0 auto;
}
.footer-cols {
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr;
  gap:36px 48px; padding-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,.07);
  align-items:start;
}
.footer-col img { height:26px; display:block; }
.footer-brand {
  font-family:var(--font-sans); font-size:13px; font-weight:700;
  color:#fff; margin-top:10px; margin-bottom:6px;
}
.footer-addr {
  font-family:var(--font-sans); font-size:12px; font-weight:300;
  color:rgba(255,255,255,.4); line-height:1.85;
}
.footer-ext-links {
  display:flex; flex-direction:column; gap:6px; margin-top:10px;
}
.footer-ext-link {
  display:block;
  font-family:var(--font-sans); font-size:12px; font-weight:500;
  color:rgba(255,255,255,.4); text-decoration:none; transition:color .15s;
}
.footer-ext-link:hover { color:#fff; }
.footer-col-label {
  font-family:var(--font-sans); font-size:10px; font-weight:700;
  text-transform:uppercase; letter-spacing:1.5px;
  color:rgba(255,255,255,.25); margin-bottom:14px;
}
.footer-nav {
  display:flex; flex-direction:column; gap:2px;
}
.footer-nav-link {
  font-family:var(--font-sans); font-size:13px; font-weight:400;
  color:rgba(255,255,255,.48); text-decoration:none;
  transition:color .15s; line-height:1.9;
}
.footer-nav-link:hover { color:#fff; }
.footer-nav-cta {
  color:var(--red); margin-top:6px; font-weight:600;
}
.footer-nav-cta:hover { color:var(--red-l); }
.footer-col-tags {
  display:flex; flex-direction:column; gap:3px; margin-top:14px;
}
.footer-tag {
  font-family:var(--font-sans); font-size:11.5px; font-weight:400;
  color:rgba(255,255,255,.35); line-height:1.8;
}
.footer-pills {
  display:flex; flex-direction:column; gap:6px;
}
.footer-pill {
  font-family:var(--font-sans); font-size:11.5px; font-weight:600;
  color:rgba(255,255,255,.48); border:1px solid rgba(255,255,255,.11);
  padding:5px 11px; border-radius:6px; display:inline-block; width:fit-content;
}
.footer-seo-text {
  font-family:var(--font-sans); font-size:11.5px; font-weight:300;
  color:rgba(255,255,255,.25); line-height:1.75;
  padding:18px 0 16px; border-bottom:1px solid rgba(255,255,255,.06);
  max-width:700px;
}
.footer-disclaimer {
  padding-top:16px;
  font-family:var(--font-sans); font-size:11px; font-weight:300;
  color:rgba(255,255,255,.22); line-height:1.7;
}
.footer-bottom-row {
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:12px;
  padding:14px 0 28px; border-top:1px solid rgba(255,255,255,.05); margin-top:16px;
}
.footer-inline-links { display:flex; gap:16px; flex-wrap:wrap; }
.footer-inline-links a {
  font-family:var(--font-sans); font-size:11px; font-weight:400;
  color:rgba(255,255,255,.28); text-decoration:none; transition:color .15s;
}
.footer-inline-links a:hover { color:rgba(255,255,255,.65); }
.footer-copy {
  font-family:var(--font-sans); font-size:11px; font-weight:300;
  color:rgba(255,255,255,.18);
}

/* ─── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media(max-width:900px){
  nav { padding:0 4%; gap:10px; }
  .nav-toggle { display:flex; }
  .nav-links {
    position:fixed;
    top:66px;
    left:0;
    right:0;
    z-index:199;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 4% 16px;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--border);
    box-shadow:0 8px 24px rgba(17,18,24,.08);
    transform:translateY(-8px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
  }
  nav.nav-open .nav-links {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
  .nav-links a {
    color:var(--t2) !important;
    padding:14px 0;
    border-bottom:1px solid var(--border);
    font-size:14px;
  }
  .nav-links a:last-child { border-bottom:none; }
  .nav-cta { padding:8px 14px; font-size:12px; }

  #vorteile,
  #rechner {
    padding-top:56px !important;
    padding-bottom:56px !important;
    padding-left:5% !important;
    padding-right:5% !important;
  }
  .story-section,
  .units-section,
  .location-section,
  .process-section,
  .faq-section,
  .form-section {
    padding-top:56px;
    padding-bottom:56px;
    padding-left:5%;
    padding-right:5%;
  }

  .hero {
    height:auto;
    min-height:100svh;
    display:flex;
    flex-direction:column;
  }
  .hero-slider {
    position:relative;
    flex:1 1 auto;
    min-height:max(42vh, 280px);
  }
  .hero-content {
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    max-width:100%;
    padding:28px 5% 20px;
    background:linear-gradient(180deg, rgba(17,18,24,.45) 0%, rgba(17,18,24,.92) 100%);
  }
  .hero-controls {
    position:relative;
    bottom:auto;
    left:auto;
    transform:none;
    padding:8px 0 12px;
    background:rgba(17,18,24,.92);
  }
  .hero-bar {
    position:relative;
    overflow:visible;
  }
  .hero-bar-inner {
    flex-direction:column;
    padding:0;
  }
  .hero-bar-item {
    width:100%;
    padding:14px 16px;
  }
  .hero-bar-item + .hero-bar-item::before {
    left:16px;
    right:16px;
    top:0;
    width:auto;
    height:1px;
  }
  .hero-bar-kfw {
    order:-1;
    min-width:0;
    width:100%;
    padding:18px 16px;
  }
  .hero-bar-kfw-val { font-size:1.4rem; }
  .hero-bar-kfw-col { padding:0 14px; }

  .grid-2col,
  .calc-grid { grid-template-columns:1fr !important; gap:32px !important; }
  #rechner > div > div:first-child p:last-child { text-align:left !important; max-width:none !important; }
  .market-cards,
  .market-insights { grid-template-columns:1fr; }
  .market-insight { border-right:none; border-bottom:1px solid var(--border); }
  .market-insight:last-child { border-bottom:none; }

  .story-wrap { grid-template-columns:1fr; gap:28px; }
  .story-slider-panel { min-height:300px; }
  .units-grid { grid-template-columns:1fr; }
  .location-grid { grid-template-columns:1fr !important; }
  .loc-map-cell { height:auto; }
  .loc-map-wrap { height:auto; min-height:240px; }
  #standort-img { height:auto; object-fit:contain; }
  .process-steps {
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  .process-steps::before { display:none; }
  .form-grid { grid-template-columns:1fr; gap:40px; }
  .footer-cols { grid-template-columns:1fr 1fr; }
  footer { padding:40px 5% 0; }
}

@media(max-width:600px){
  nav { padding:0 16px; }
  .nav-cta { display:none; }
  .nav-links { padding-left:16px; padding-right:16px; }

  .hero-h1 { font-size:clamp(1.45rem, 6.2vw, 1.85rem); letter-spacing:-0.02em; }
  .hero-sub { font-size:15px; line-height:1.7; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .btn-red,
  .hero-actions .btn-ghost-w { width:100%; text-align:center; justify-content:center; }
  .hero-bar-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .hero-bar-kfw { grid-column:1 / -1; }
  .hero-bar-item + .hero-bar-item::before { display:none; }
  .hero-bar-item:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.12); }

  .process-steps { grid-template-columns:1fr; }
  .process-title,
  .faq-title { font-size:clamp(1.6rem,6vw,2.4rem); }
  .footer-cols { grid-template-columns:1fr; gap:28px; }
  .market-strip { padding:20px 18px !important; }
  .market-range { width:100%; }
  .market-insight { padding:14px 16px; }

  .objekt-section { padding:56px 5%; }
  .objekt-header-block { max-width:none; }
  .unit-footer { flex-direction:column; align-items:flex-start; gap:12px; }
  .unit-cta { width:100%; text-align:center; }
  .form-cta-box { padding:28px 20px !important; }
  .calc-inputs { padding:24px 18px !important; }
}

@media(max-width:480px){
  .hero-h1 { font-size:clamp(1.35rem, 5.8vw, 1.65rem); }
  #p21-itick0,
  #p21-itick1,
  #p21-itick2,
  #p21-itick3,
  #p21-itick4 { font-size:8px !important; }
  .hero-bar-kfw-row { flex-direction:column; gap:12px; }
  .hero-bar-kfw-sep { width:48px; height:1px; }
  .hero-eyebrow { font-size:10px; letter-spacing:2px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   REGISTRATION FORM WIDGET — LP21 Override (t-warm theme)
   ═══════════════════════════════════════════════════════════════════════════ */
/* Modal: clean, compact */
.rfw-modal.t-warm{
  background:#fdfcf9;border:1px solid #e8e3db;
  border-radius:18px;box-shadow:0 28px 80px rgba(26,18,8,.16);
  font-family:var(--font-sans);
  max-width:520px;
}

/* Topbar */
.t-warm .rfw-topbar{padding:14px 20px 0;}
.t-warm .rfw-logo{font-family:var(--font-sans);font-size:12.5px;font-weight:700;color:#1a1208;letter-spacing:.2px;}
.t-warm .rfw-logo span{color:#c0392b;}
.t-warm .rfw-close{
  background:#f0ede8;border:1px solid #e0dbd2;color:#5c5248;
  border-radius:50%;width:28px;height:28px;font-size:13px;
}

/* Progress */
.t-warm .rfw-progress-wrap{padding:10px 20px 0;}
.t-warm .rfw-track{background:#ece8e2;height:2px;}
.t-warm .rfw-fill{background:#1a1208;}
.t-warm .rfw-step-counter{font-size:11px;color:#9a9088;}
.t-warm .rfw-path-badge,
.t-warm .rfw-path-badge.path-1,
.t-warm .rfw-path-badge.path-2,
.t-warm .rfw-path-badge.path-3{
  display:none!important;
}

/* Body */
.t-warm .rfw-body{padding:12px 20px 0;}
.t-warm .rfw-q-label{font-size:9px;color:rgba(26,18,8,.35);letter-spacing:1px;}
.t-warm .rfw-question{
  font-family:var(--font-sans);font-style:normal;
  font-size:15px;font-weight:700;color:#1a1208;
  letter-spacing:-.2px;margin-bottom:12px;
}

/* Options */
.t-warm .rfw-options{gap:5px!important;}
.t-warm .rfw-opt{
  display:flex!important;align-items:center!important;gap:10px!important;
  padding:10px 13px!important;border-radius:10px!important;
  background:#fff!important;border:1.5px solid #e8e4dc!important;
  cursor:pointer;user-select:none;transition:border-color .12s,background .12s;
}
.t-warm .rfw-opt:hover{border-color:#c4c0b8!important;background:#fafaf8!important;}
.t-warm .rfw-opt.selected{border-color:#1a1208!important;background:#f6f5f3!important;}
.t-warm .rfw-opt-radio{
  width:17px!important;height:17px!important;border-radius:50%!important;
  border:1.5px solid #cdc9c2!important;background:#fff!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-shrink:0!important;transition:all .12s;
}
.t-warm .rfw-opt.selected .rfw-opt-radio{border-color:#1a1208!important;background:#1a1208!important;}
.t-warm .rfw-opt.selected .rfw-opt-radio::after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#fff;}
.t-warm .rfw-opt-text{font-size:13.5px!important;font-weight:500!important;color:#1a1208!important;}
.t-warm .rfw-opt.selected .rfw-opt-text{font-weight:600!important;}

/* Buttons */
.t-warm .rfw-footer{padding:12px 20px max(16px, env(safe-area-inset-bottom));border-top:1px solid #f0ece6;margin-top:0;}
.t-warm .rfw-btn-next{background:#1a1208;color:#fff;border-radius:9px;font-weight:600;font-size:13px;padding:10px 22px;}
.t-warm .rfw-btn-next:hover{background:#2c2016;}
.t-warm .rfw-btn-back{background:none;border:none;color:rgba(26,18,8,.55);}
.t-warm .rfw-btn-back:hover{color:#1a1208;background:rgba(26,18,8,.05);}

/* Contact fields */
.t-warm .rfw-contact-grid{gap:8px;}
.t-warm .rfw-field label{font-size:9.5px;color:rgba(26,18,8,.4);letter-spacing:.5px;}
.t-warm .rfw-field input{border:1.5px solid #e4e0d8;border-radius:9px;background:#fff;padding:10px 12px;color:#1a1208;font-size:13.5px;}
.t-warm .rfw-field input:focus{border-color:#1a1208;outline:none;}
.t-warm .rfw-field input::placeholder{color:#b0a89e;}


/* Standort pill toggle */
.rfw-ort-wrap{margin-top:14px;padding-top:12px;border-top:1px solid #f0ece6;}
.rfw-ort-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:rgba(26,18,8,.38);margin-bottom:7px;}
.rfw-ort-row{display:flex;gap:5px;flex-wrap:wrap;}
.rfw-ort-pill{
  font-family:var(--font-sans);font-size:12px;font-weight:500;
  padding:5px 13px;border-radius:9999px;cursor:pointer;
  border:1.5px solid #e0dbd3;color:rgba(26,18,8,.5);background:#faf9f7;
  transition:border-color .15s,color .15s,background .15s;user-select:none;
}
.rfw-ort-pill:hover{border-color:#c4c0b8;color:#1a1208;}
.rfw-ort-pill.active{border-color:#1a1208;color:#1a1208;background:#f0ece6;font-weight:600;}
.rfw-ort-city-wrap{
  display:none;margin-top:8px;
  animation:rfwIn .18s ease;
}
.rfw-ort-city-wrap.visible{display:block;}
.rfw-ort-input{
  width:100%;box-sizing:border-box;
  padding:8px 12px;border-radius:9px;
  border:1.5px solid #e0dbd3;background:#faf9f7;
  font-family:var(--font-sans);font-size:13px;color:#1a1208;outline:none;
  transition:border-color .15s;
}
.rfw-ort-input:focus{border-color:#1a1208;}
.rfw-ort-input::placeholder{color:rgba(26,18,8,.28);}

/* Newsletter compact pills */
.rfw-nl-wrap{margin-top:14px;padding-top:12px;border-top:1px solid #f0ece6;}
.rfw-nl-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:rgba(26,18,8,.38);margin-bottom:7px;}
.rfw-nl-opts{display:flex;gap:5px;flex-wrap:wrap;}
.rfw-nl-opt{
  display:flex;align-items:center;gap:6px;
  padding:5px 13px;border-radius:9999px;
  cursor:pointer;user-select:none;
  background:#faf9f7;border:1.5px solid #e0dbd3;
  transition:border-color .12s,background .12s,color .12s;
}
.rfw-nl-opt:hover{border-color:#c4c0b8;}
.rfw-nl-opt.selected{border-color:#1a1208;background:#f0ece6;}
.rfw-nl-circle{
  width:11px;height:11px;border-radius:50%;flex-shrink:0;
  border:1.5px solid #cdc9c2;background:#fff;
  display:block;position:relative;transition:all .1s;
}
.rfw-nl-opt.selected .rfw-nl-circle{border-color:#1a1208;background:#1a1208;}
.rfw-nl-opt.selected .rfw-nl-circle::after{
  content:'';display:block;width:4px;height:4px;border-radius:50%;background:#fff;
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
}
.rfw-nl-text{font-size:12px;font-weight:500;color:rgba(26,18,8,.7);}
.rfw-nl-opt.selected .rfw-nl-text{color:#1a1208;font-weight:600;}

/* Success */
.t-warm .rfw-success h3{font-size:17px;font-weight:700;}
.t-warm .rfw-success p{font-size:13px;}
.t-warm .rfw-success-close{border-radius:9px;font-size:13px;}

/* ─── MAP OVERLAY CONTROLS ───────────────────────────────────────────────── */
.map-pin-btn {
  width:32px; height:32px; border-radius:50%;
  background:var(--red);
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; flex-shrink:0;
  box-shadow:0 3px 14px rgba(192,57,43,.45);
  transition:transform .18s, box-shadow .18s;
}
.map-pin-btn:hover { transform:scale(1.14); box-shadow:0 6px 22px rgba(192,57,43,.6); }

.zoom-btn {
  width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.9); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 10px rgba(0,0,0,.18);
  transition:all .15s; line-height:1;
  font-family:var(--font-sans); color:#1a1208;
}
.zoom-btn:hover { background:#fff; transform:scale(1.12); }
#zoom-in-btn { font-size:18px; font-weight:400; }
#zoom-out-btn { font-size:20px; font-weight:300; }

/* ─── FULL-WIDTH RED CTA (calculator & form section) ─────────────────────── */
.btn-full-red {
  width:100%; background:var(--red); color:#fff;
  font-family:var(--font-sans); font-weight:700;
  border-radius:10px; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:8px;
  transition:background .18s, transform .15s;
  letter-spacing:.2px;
}
.btn-full-red:hover { background:var(--red-l); transform:translateY(-2px); }

/* ─── SHARED LAYOUT & UTILITIES ───────────────────────────────────────── */
.section-inner,
.objekt-inner,
.location-inner { max-width:1400px; margin:0 auto; width:100%; }
.u-mb8 { margin-bottom:8px; }
.u-mb12 { margin-bottom:12px; }
.u-ink { color:var(--ink); }

/* ─── CALCULATOR ──────────────────────────────────────────────────────── */
.calc-section { background:var(--white); padding:80px 15%; border-top:1px solid var(--border); }
.calc-header {
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap; gap:16px; margin-bottom:48px;
}
.calc-title {
  font-family:var(--font-display); font-weight:600;
  font-size:clamp(1.8rem,3.5vw,2.8rem); color:var(--ink); line-height:1.15;
}
.calc-intro { font-size:14px; color:var(--t3); max-width:340px; line-height:1.7; text-align:right; }
.calc-grid.calc-grid-gap { gap:40px; align-items:start; }
.calc-inputs {
  background:var(--off); border-radius:18px; padding:32px 28px;
  display:flex; flex-direction:column; gap:32px;
}
.calc-slider-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.calc-label {
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:1px; color:var(--t3);
}
.calc-income-val { font-size:12px; font-weight:600; color:var(--red); }
.calc-range { background:linear-gradient(to right,var(--red) 50%,var(--border2) 50%); }
.calc-range--price { background:linear-gradient(to right,var(--red) 42%,var(--border2) 42%); margin-bottom:6px; }
.calc-ticks { display:flex; justify-content:space-between; }
.calc-tick { font-size:10px; color:var(--t3); text-align:center; width:20%; }
.calc-tick--active, .calc-tick.is-active { color:var(--red); font-weight:700; }
.calc-rate-note { font-size:11.5px; color:var(--t3); margin-top:8px; }
.calc-price-val { font-weight:700; font-size:1.5rem; color:var(--ink); line-height:1; }
.calc-range-bounds { display:flex; justify-content:space-between; font-size:10px; color:var(--t3); }
.calc-results {
  display:flex; flex-direction:column; gap:0;
  border:1px solid var(--border); border-radius:18px; overflow:hidden;
}
.calc-results-head { padding:20px 24px 16px; border-bottom:1px solid var(--border); background:var(--off); }
.calc-results-eyebrow {
  font-size:10.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.2px; color:var(--t3);
}
.calc-row {
  padding:16px 24px; border-bottom:1px solid var(--border);
  display:flex; justify-content:space-between; align-items:center;
}
.calc-row--primary { padding:20px 24px; background:var(--red-xl); }
.calc-row--muted { background:var(--off); }
.calc-row-primary-label { font-size:12px; font-weight:600; color:var(--red); margin-bottom:2px; }
.calc-row-primary-sub { font-size:11px; color:rgba(192,57,43,.55); }
.calc-row-primary-val {
  font-weight:700; font-size:clamp(1.8rem,3vw,2.6rem);
  color:var(--red); line-height:1;
}
.calc-row-label { font-size:13.5px; color:var(--t2); }
.calc-row-label--dim { color:var(--t3); }
.calc-row-val { font-size:15px; font-weight:700; color:var(--ink); }
.calc-row-val--sm { font-size:14px; font-weight:600; color:var(--t2); }
.calc-row-val--gold { font-weight:700; font-size:1.4rem; color:var(--gold); line-height:1; }
.calc-row-val--blue { font-weight:700; font-size:1.4rem; color:#2563eb; line-height:1; }
.calc-row-sub { font-size:11px; color:var(--t3); }
.calc-divider { padding:10px 24px; background:var(--off); border-bottom:1px solid var(--border); }
.calc-divider-title {
  font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.2px; color:var(--t3); margin:0;
}
.calc-cta-wrap { padding:20px 24px 24px; }
.btn-full-red.calc-cta-btn { font-size:14.5px; padding:15px; }
.calc-disclaimer { font-size:10.5px; font-style:italic; color:var(--t3); text-align:center; margin-top:10px; }

/* ─── UNITS EXTRAS ────────────────────────────────────────────────────── */
.units-lead { font-size:14px; font-weight:300; color:var(--t2); line-height:1.8; max-width:700px; margin-bottom:32px; }
.units-amenities { margin:28px auto 0; padding-top:28px; border-top:1px solid var(--border); }
.unit-header--slate { background:var(--slate); }
.unit-header--red { background:var(--red); position:relative; }
.unit-row--last { border-bottom:none; }
.feat-chips { display:flex; flex-wrap:wrap; gap:8px; }
.feat-chip {
  font-family:var(--font-sans); font-size:12.5px; font-weight:500;
  color:var(--t2); background:var(--off); border:1px solid var(--border);
  border-radius:9999px; padding:6px 14px;
}
.section-title.u-mb12 { margin-bottom:12px; }
.sec-eyebrow-gray.sec-eyebrow-gray--sm { font-size:10px; letter-spacing:1.5px; }

/* ─── LOCATION DATA PANEL ─────────────────────────────────────────────── */
.loc-info-col.loc-info-card {
  gap:0; background:#fff; border:1px solid var(--border); border-radius:16px;
  overflow:hidden; box-shadow:0 8px 32px rgba(17,18,24,.07);
}
.loc-block { padding:22px 24px; border-bottom:1px solid var(--border); }
.loc-block--last { padding:18px 24px; border-bottom:none; }
.loc-block-head { display:flex; align-items:center; gap:8px; margin-bottom:16px; }
.loc-block-head--sm { margin-bottom:14px; }
.loc-bar { width:3px; height:16px; background:var(--red); border-radius:2px; flex-shrink:0; }
.loc-block-title {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:1.8px; color:var(--t3);
}
.loc-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.loc-stat-grid--lg { gap:16px; }
.loc-stat-num { font-weight:700; font-size:2rem; color:var(--ink); line-height:1; letter-spacing:-.5px; }
.loc-stat-lbl { font-size:11px; color:var(--t3); margin-top:4px; }
.loc-growth-bar {
  display:flex; align-items:center; justify-content:space-between;
  padding:9px 12px; background:#f9fafb; border-radius:8px; border:1px solid var(--border);
}
.loc-growth-left { display:flex; align-items:center; gap:6px; }
.loc-growth-pct { font-size:12.5px; font-weight:700; color:#15803d; }
.loc-mini-card { padding:12px 14px; background:#f9fafb; border:1px solid var(--border); border-radius:10px; }
.loc-mini-val { font-weight:700; font-size:1.2rem; color:var(--ink); line-height:1.1; }
.loc-mini-card > .loc-mini-val { margin-bottom:4px; }
.loc-mini-lbl { font-size:10px; color:var(--t3); }
.loc-mini-lbl--spaced { margin-top:4px; }
.loc-mini-row { display:flex; align-items:baseline; gap:5px; }
.loc-mini-tag--green { font-size:10px; color:#15803d; font-weight:600; }
.loc-list-title {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.5px; color:var(--t3); margin-bottom:8px;
}
.loc-list { display:flex; flex-direction:column; gap:6px; }
.loc-list-row { display:flex; justify-content:space-between; align-items:center; }
.loc-list-name { font-size:12px; color:var(--t2); }
.loc-list-meta { font-size:10.5px; color:var(--t3); }
.loc-metrics { display:flex; flex-direction:column; }
.loc-metric-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:7px 0; border-bottom:1px solid var(--border);
}
.loc-metric-row--last { border-bottom:none; }
.loc-metric-right { display:flex; align-items:center; gap:8px; }
.loc-metric-val { font-size:12px; font-weight:600; color:var(--ink); }
.loc-dot { width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.loc-dot--amber { background:#f59e0b; }
.loc-dot--green { background:#22c55e; }
.map-actions { position:absolute; top:14px; right:14px; display:flex; align-items:flex-start; gap:8px; z-index:10; }
.map-zoom-stack { display:flex; flex-direction:column; gap:4px; }
.sec-eyebrow.sec-eyebrow--loc { font-size:11px; margin-bottom:8px; }

/* ─── FORM CTA CARD ───────────────────────────────────────────────────── */
.form-cta-col { display:flex; align-items:center; }
.form-cta-box { width:100%; padding:40px; border:1.5px solid var(--border); border-radius:18px; text-align:center; }
.form-cta-title {
  font-weight:600; font-size:clamp(1.5rem,2.5vw,2rem);
  color:var(--ink); line-height:1.2; margin-bottom:10px;
}
.form-cta-sub { font-size:14px; font-weight:300; color:var(--t2); line-height:1.8; margin-bottom:32px; }
.btn-full-red.form-cta-btn { font-size:15px; padding:16px; }
.form-cta-note { font-size:11.5px; color:var(--t3); margin-top:12px; }

/* ─── SHARED SECTION UTILITIES ────────────────────────────────────────── */
.sec-eyebrow {
  font-family:var(--font-sans); font-size:10.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:1.8px; color:var(--red);
}
.sec-eyebrow-gray {
  font-family:var(--font-sans); font-size:10.5px; font-weight:700;
  text-transform:uppercase; letter-spacing:1.8px; color:var(--t3); margin-bottom:14px;
}
/* ─── OBJEKT SECTION ─────────────────────────────────────────────────── */
.objekt-section {
  background:var(--off); padding:80px 15%;
  border-top:1px solid var(--border);
}
.objekt-header-block { max-width:820px; }
.objekt-title {
  font-family:var(--font-display); font-style:normal; font-weight:600;
  font-size:clamp(1.6rem,2.8vw,2.2rem); color:var(--ink);
  line-height:1.15; letter-spacing:-0.02em;
  margin:6px 0 16px;
}
.objekt-lead {
  font-family:var(--font-sans); font-size:clamp(15px,1.5vw,16px); font-weight:400;
  color:var(--t2); line-height:1.85; margin:0 0 4px;
}
.objekt-header-block .story-chips { margin-top:18px; }

.grid-2col {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 48px;
}

/* ═══════════════════════════════════════════════════════════════════════
   REGISTRATION FORM WIDGET (base + t-warm overrides above)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── OVERLAY ─────────────────────────────────────────────────────────── */
.rfw-overlay{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:16px;
  opacity:0;pointer-events:none;transition:opacity .3s;
  background:rgba(10,10,18,.68);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.rfw-overlay.rfw-open{opacity:1;pointer-events:all;}

/* ── MODAL SHELL ─────────────────────────────────────────────────────── */
.rfw-modal{
  width:100%;max-width:580px;max-height:min(94dvh,94vh);
  display:flex;flex-direction:column;overflow:hidden;
  min-height:0;
  transform:translateY(28px) scale(.96);
  transition:transform .4s cubic-bezier(.22,.68,0,1.2);
}
.rfw-overlay.rfw-open .rfw-modal{transform:none;}

/* ── TOPBAR ──────────────────────────────────────────────────────────── */
.rfw-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 0;flex-shrink:0;}
.rfw-logo{font-weight:800;font-size:13px;letter-spacing:.2px;}
.rfw-close{
  width:28px;height:28px;border-radius:50%;border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:14px;line-height:1;transition:all .18s;
}

/* ── PROGRESS ────────────────────────────────────────────────────────── */
.rfw-progress-wrap{padding:14px 22px 0;flex-shrink:0;}
.rfw-progress-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;}
/* Global path badge — neutral, understated */
.rfw-path-badge{
  display:inline-flex;align-items:center;
  padding:2px 10px;border-radius:9999px;
  font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  transition:all .3s;
  background:rgba(128,128,128,.1);border:1px solid rgba(128,128,128,.18);color:rgba(80,80,80,.7);
}
.rfw-step-counter{font-size:11px;font-weight:700;}
.rfw-track{height:2px;overflow:hidden;}
.rfw-fill{height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);}

/* ── BODY ────────────────────────────────────────────────────────────── */
.rfw-body{
  padding:14px 20px 20px; overflow-y:auto; flex:1 1 auto;
  min-height:0; -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain; touch-action:pan-y;
  scrollbar-width:thin;
}
.rfw-modal.rfw-contact-step .rfw-body{ padding-bottom:28px; }

/* ── STEP ANIMATION ──────────────────────────────────────────────────── */
.rfw-step{display:none;}
.rfw-step.rfw-active{display:block;animation:rfwIn .25s ease both;}
@keyframes rfwIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}

/* ── QUESTION HEADER ─────────────────────────────────────────────────── */
.rfw-q-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;opacity:.6;}
.rfw-question{font-size:clamp(15px,2.5vw,19px);font-weight:800;line-height:1.25;margin-bottom:14px;letter-spacing:-.2px;}

/* ── OPTION LIST — universal clean card base ─────────────────────────── */
.rfw-options{display:flex;flex-direction:column;gap:7px;}

/* Clean card: radio circle left, label right */
.rfw-opt{
  display:flex;align-items:center;gap:12px;
  padding:13px 15px;border-radius:11px;
  background:#fff;border:1.5px solid #e8e6e2;
  cursor:pointer;user-select:none;
  transition:border-color .14s,background .14s;
  position:relative;
}
.rfw-opt:hover{border-color:#c8c5c0;background:#fafafa;}
.rfw-opt.selected{border-color:#b0aba4;background:#f8f7f5;}
/* Radio circle — always visible */
.rfw-opt-radio{
  width:18px;height:18px;border-radius:50%;flex-shrink:0;
  border:2px solid #d0cdc8;background:#fff;
  display:flex;align-items:center;justify-content:center;
  transition:all .14s;
}
.rfw-opt.selected .rfw-opt-radio{border-color:#555;background:#555;}
.rfw-opt.selected .rfw-opt-radio::after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#fff;}
.rfw-opt-text{font-size:14.5px;font-weight:600;flex:1;line-height:1.3;color:#1a1a1a;}

/* Contact */
.rfw-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.rfw-field{display:flex;flex-direction:column;gap:5px;}
.rfw-field.full{grid-column:1/-1;}
.rfw-field label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;}
.rfw-field input{padding:11px 13px;font-size:13.5px;font-family:inherit;outline:none;transition:border-color .18s;}

/* Footer */
.rfw-footer{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 22px max(20px, env(safe-area-inset-bottom));
  flex-shrink:0; margin-top:0;
  border-top:1px solid var(--border);
  background:#fff; position:relative; z-index:2;
}
/* In radio mode: hide next button (auto-advance), show only back */
.rfw-footer.rfw-radio-mode .rfw-btn-next{opacity:0;pointer-events:none;}
.rfw-btn-back{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;background:none;border-radius:50%;cursor:pointer;font-family:inherit;transition:all .16s;flex-shrink:0;}
.rfw-btn-back:disabled{opacity:.22;pointer-events:none;}
.rfw-btn-next{display:flex;align-items:center;gap:6px;padding:10px 24px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;border:none;transition:all .18s;}
.rfw-btn-next:disabled{opacity:.35;pointer-events:none;}

/* Success */
.rfw-success{display:none;padding:36px 22px 28px;text-align:center;}
.rfw-success.rfw-active{display:block;animation:rfwIn .3s ease;}
.rfw-success-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 18px;}
.rfw-success h3{font-size:22px;font-weight:800;margin-bottom:9px;}
.rfw-success p{font-size:13.5px;line-height:1.7;max-width:360px;margin:0 auto 22px;}
.rfw-success-close{padding:9px 24px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .16s;}

/* Trigger button */
.rfw-trigger{display:inline-flex;align-items:center;gap:7px;cursor:pointer;padding:11px 20px;font-size:13.5px;font-weight:700;border:none;font-family:inherit;text-decoration:none;transition:all .2s;}
.rfw-trigger svg{width:14px;height:14px;flex-shrink:0;}

@media(max-width:500px){
  .rfw-overlay{align-items:flex-end;padding:0;overscroll-behavior:none;}
  .rfw-modal{
    border-radius:20px 20px 0 0 !important;
    max-height:min(92dvh,96vh);
    width:100%;
  }
  .rfw-contact-grid{grid-template-columns:1fr;}
  .rfw-topbar,.rfw-progress-wrap,.rfw-body,.rfw-footer{padding-left:16px;padding-right:16px;}
  .rfw-body{ padding-bottom:24px; }
  .rfw-modal.rfw-contact-step .rfw-body{ padding-bottom:32px; }
  .rfw-footer{
    padding-bottom:max(16px, env(safe-area-inset-bottom));
    box-shadow:0 -6px 20px rgba(17,18,24,.06);
  }
}