/* ==========================================================================
   SK Bauservice – Das Ende nasser Wände
   Farbwelt der Visitenkarte: Nachtblau + Champagner-Gold
   ========================================================================== */

:root {
  --nacht: #131829;
  --nacht-tief: #0E1220;
  --navy-2: #1B2136;
  --navy-3: #232B47;
  --gold: #C9AE79;
  --gold-hell: #E8D5A4;
  --feucht: #5A6B8C;
  --feucht-hell: #8DA0C4;
  --putz: #EFEAE0;
  --putz-tief: #E4DCCB;
  --ink: #20263B;
  --ink-soft: #4A5068;
  --paper-text: #DCD9CE;
  --paper-dim: #9AA0B5;

  --font-display: "Josefin Sans", "Futura", sans-serif;
  --font-body: "Manrope", "Segoe UI", sans-serif;

  --container: 1180px;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
}

html { scroll-behavior: smooth; }
html[data-fontsize="1"] { font-size: 100%; }
html[data-fontsize="2"] { font-size: 112.5%; }
html[data-fontsize="3"] { font-size: 125%; }

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  color: var(--paper-text);
  background: var(--nacht);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }

::selection { background: var(--gold); color: var(--nacht); }

/* ---- Fokus & Skip-Link ------------------------------------------------- */
:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 2px;
}
.skip-link {
  position: fixed; top: -60px; left: 16px; z-index: 300;
  background: var(--gold); color: var(--nacht);
  padding: .7em 1.2em; font-weight: 700; text-decoration: none;
  transition: top .2s;
}
.skip-link:focus { top: 12px; }

/* ---- Typografie --------------------------------------------------------- */
h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 300;
  line-height: 1.12;
  letter-spacing: .01em;
}
h2 { font-size: clamp(1.9rem, 4.2vw, 3rem); margin-bottom: 1.2em; }
h3 { font-size: 1.25rem; font-weight: 600; }

.eyebrow {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: .8rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.1em;
}
.eyebrow::before {
  content: "";
  display: inline-block;
  width: 2.2em; height: 1px;
  background: var(--gold);
  vertical-align: middle;
  margin-right: .9em;
  opacity: .7;
}
.accent { color: var(--gold-hell); }
.accent-dark { color: #8F6F2E; }

.container { max-width: var(--container); margin-inline: auto; padding-inline: clamp(20px, 4vw, 48px); }
section[id] { scroll-margin-top: 84px; }
.section { position: relative; padding-block: clamp(80px, 12vh, 150px); }
.section--dark { background: var(--nacht); color: var(--paper-text); }
.section--light { background: var(--putz); color: var(--ink); }
.section--light .eyebrow { color: #8F6F2E; }
.section--light .eyebrow::before { background: #8F6F2E; }
.section--light p { color: var(--ink-soft); }
.section--light h2, .section--light h3 { color: var(--ink); }

/* ---- Buttons ------------------------------------------------------------ */
.btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 1.05em 2.1em .9em;
  border: 1px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  overflow: hidden;
  transition: color .3s var(--ease-out), border-color .3s, transform .2s var(--ease-out);
}
.btn span { position: relative; z-index: 1; }
.btn::before {
  content: "";
  position: absolute; inset: 0;
  transform: translateY(101%);
  transition: transform .38s var(--ease-out);
}
.btn:hover::before, .btn:focus-visible::before { transform: translateY(0); }
.btn:active { transform: scale(.97); }

.btn--gold { background: var(--gold); color: var(--nacht); }
.btn--gold::before { background: var(--gold-hell); }
.btn--ghost { border-color: rgba(201,174,121,.55); color: var(--gold-hell); background: transparent; }
.btn--ghost::before { background: rgba(201,174,121,.12); }
.btn--navy { background: var(--nacht); color: var(--gold-hell); }
.btn--navy::before { background: var(--navy-3); }
.btn--full { width: 100%; }

/* ==========================================================================
   Preloader
   ========================================================================== */
.preloader {
  position: fixed; inset: 0; z-index: 400;
  background: var(--nacht-tief);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 22px;
}
.preloader__logo { color: var(--gold); }
.preloader__line {
  font-family: var(--font-display);
  font-size: .82rem; letter-spacing: .34em; text-transform: uppercase;
  color: var(--paper-dim);
}
.preloader.is-done { pointer-events: none; }

/* ==========================================================================
   Feuchtigkeits-Gauge (Scroll-Signatur)
   ========================================================================== */
.gauge {
  position: fixed; right: 22px; top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  mix-blend-mode: normal;
  opacity: 0;
  transition: opacity .5s;
}
.gauge.is-visible { opacity: 1; }
.gauge__label {
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  font-size: .62rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--feucht-hell);
  transition: color .4s;
}
.gauge__track {
  width: 3px; height: 30vh; min-height: 140px;
  background: rgba(140,155,190,.25);
  border-radius: 2px;
  position: relative; overflow: hidden;
}
.gauge__fill {
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 78%;
  background: linear-gradient(to top, var(--feucht), var(--feucht-hell));
  transition: height .15s linear, background .4s;
}
.gauge__value {
  font-family: var(--font-display);
  font-size: .78rem; font-weight: 600;
  color: var(--feucht-hell);
  transition: color .4s;
  white-space: nowrap;
}
.gauge.is-dry .gauge__label, .gauge.is-dry .gauge__value { color: #8F6F2E; }
.gauge.is-dry .gauge__fill { background: linear-gradient(to top, #8F6F2E, var(--gold)); }
.gauge.is-dry .gauge__track { background: rgba(143,111,46,.2); }

@media (max-width: 900px) { .gauge { display: none; } }

/* ==========================================================================
   Navigation
   ========================================================================== */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  transition: background .4s, box-shadow .4s, transform .4s;
}
.nav.is-scrolled {
  background: rgba(14, 18, 32, .88);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(201,174,121,.18);
}
.nav__inner {
  max-width: 1380px; margin-inline: auto;
  padding: 14px clamp(20px, 3vw, 40px);
  display: flex; align-items: center; gap: 32px;
}
.nav__brand {
  display: flex; align-items: center; gap: 13px;
  text-decoration: none; color: var(--paper-text);
  margin-right: auto;
}
.nav__logo { color: var(--gold); flex-shrink: 0; }
.nav__name {
  font-family: var(--font-display); font-weight: 600;
  font-size: 1.12rem; letter-spacing: .06em; white-space: nowrap;
}
.nav__name em { font-style: normal; font-weight: 300; }
.nav__links { display: flex; gap: clamp(16px, 2.4vw, 34px); }
.nav__links a {
  position: relative;
  font-family: var(--font-display);
  font-size: .86rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase;
  color: var(--paper-text); text-decoration: none;
  padding: 6px 2px;
}
.nav__links a::after {
  content: "";
  position: absolute; left: 0; right: 100%; bottom: 0;
  height: 1px; background: var(--gold);
  transition: right .3s var(--ease-out);
}
.nav__links a:hover::after, .nav__links a:focus-visible::after { right: 0; }
.nav__cta {
  display: inline-flex; align-items: center; gap: 9px;
  white-space: nowrap; flex-shrink: 0;
  font-family: var(--font-display); font-weight: 600; font-size: .9rem; letter-spacing: .08em;
  color: var(--nacht); background: var(--gold);
  text-decoration: none;
  padding: .72em 1.3em .6em;
  border-radius: 2px;
  transition: background .3s, transform .2s;
}
.nav__cta:hover { background: var(--gold-hell); transform: translateY(-1px); }
.nav__burger {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: 0; cursor: pointer;
  padding: 10px;
}
.nav__burger span {
  width: 24px; height: 2px; background: var(--gold);
  transition: transform .3s var(--ease-out), opacity .3s;
}
.nav__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-menu {
  position: fixed; inset: 0; z-index: 150;
  background: rgba(14,18,32,.97);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: opacity .35s, visibility .35s;
}
.mobile-menu.is-open { opacity: 1; visibility: visible; }
.mobile-menu nav { display: flex; flex-direction: column; gap: 8px; text-align: center; }
.mobile-menu a {
  font-family: var(--font-display); font-weight: 300;
  font-size: clamp(1.6rem, 6vw, 2.2rem);
  color: var(--paper-text); text-decoration: none;
  padding: .35em .6em;
  transition: color .25s;
}
.mobile-menu a:hover { color: var(--gold-hell); }
.mobile-menu__tel {
  margin-top: 1.2em;
  font-size: 1.05rem !important;
  color: var(--gold) !important;
  letter-spacing: .1em;
}

@media (max-width: 1020px) {
  .nav__links, .nav__cta { display: none; }
  .nav__burger { display: flex; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex; align-items: center;
  background:
    radial-gradient(120% 90% at 75% 10%, #1E2540 0%, var(--nacht) 55%, var(--nacht-tief) 100%);
  overflow: hidden;
}
.hero__pattern {
  position: absolute;
  right: -12%; top: 50%;
  width: min(78vh, 700px); height: min(78vh, 700px);
  transform: translateY(-50%) rotate(8deg);
  color: var(--feucht);
  opacity: .13;
  pointer-events: none;
}
.hero__canvas {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  cursor: none;
}
.hero__content {
  position: relative; z-index: 2;
  max-width: var(--container);
  width: 100%;
  margin-inline: auto;
  padding: 140px clamp(20px, 4vw, 48px) 120px;
  pointer-events: none;
}
.hero__content a { pointer-events: auto; }
.hero__eyebrow {
  font-family: var(--font-display);
  font-size: .8rem; letter-spacing: .32em; text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.6em;
}
.hero__title {
  font-size: clamp(2.7rem, 8.4vw, 6.4rem);
  font-weight: 300;
  color: #F2EFE6;
  margin-bottom: .35em;
}
.hero__title .line { display: block; overflow: hidden; padding-bottom: .08em; }
.hero__title .w { display: inline-block; }
.w--wet {
  position: relative;
  color: var(--feucht-hell);
  transition: color 1.2s var(--ease-out);
}
.w--wet::after {
  content: "";
  position: absolute; left: 6%; right: 10%; bottom: -.04em;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--feucht-hell), transparent);
  opacity: .8;
  transition: opacity 1.2s;
}
.hero.is-dried .w--wet { color: var(--gold-hell); }
.hero.is-dried .w--wet::after { opacity: 0; }
.hero__sub {
  max-width: 34em;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  color: var(--paper-dim);
  margin-bottom: 2.2em;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 2.6em; }
.hero__hint {
  display: inline-flex; align-items: center; gap: 9px;
  font-size: .84rem; letter-spacing: .04em;
  color: var(--feucht-hell);
}
.hero__hint svg { flex-shrink: 0; }
@media (hover: none), (max-width: 900px) {
  .hero__hint { display: none; }
  .hero__canvas { cursor: default; }
}

/* Messfühler-Cursor */
.hero__meter {
  position: absolute; z-index: 3;
  left: 0; top: 0;
  pointer-events: none;
  display: none;
  flex-direction: column; align-items: center;
  transform: translate(-50%, -50%);
  will-change: transform;
}
.hero__meter::before {
  content: "";
  width: 46px; height: 46px;
  border: 1.5px solid var(--gold);
  border-radius: 50%;
  display: block;
  box-shadow: 0 0 22px rgba(201,174,121,.25), inset 0 0 14px rgba(201,174,121,.12);
}
.hero__meter::after {
  content: "";
  position: absolute; top: 23px; left: 50%;
  width: 6px; height: 6px;
  background: var(--gold);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.hero__meter-value {
  margin-top: 10px;
  font-family: var(--font-display); font-weight: 600; font-size: 1.05rem;
  color: var(--feucht-hell);
  transition: color .3s;
}
.hero__meter-label {
  font-family: var(--font-display);
  font-size: .6rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--paper-dim);
}
.hero__meter.is-dry .hero__meter-value { color: var(--gold-hell); }

.hero__scroll {
  position: absolute; bottom: 26px; left: 50%; z-index: 2;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  font-family: var(--font-display);
  font-size: .68rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--paper-dim); text-decoration: none;
  transition: color .3s;
}
.hero__scroll:hover { color: var(--gold-hell); }
.hero__scroll-drop {
  width: 10px; height: 14px;
  background: var(--gold);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  clip-path: polygon(50% 0, 100% 62%, 88% 100%, 12% 100%, 0 62%);
  animation: dropFall 2.2s var(--ease-out) infinite;
}
@keyframes dropFall {
  0% { transform: translateY(-10px) scale(.6); opacity: 0; }
  35% { opacity: 1; }
  70% { transform: translateY(6px) scale(1); opacity: 1; }
  100% { transform: translateY(16px) scale(.9); opacity: 0; }
}

/* ==========================================================================
   Warnsignale
   ========================================================================== */
.symptome__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
  margin-top: 10px;
}
.card {
  position: relative;
  background: linear-gradient(160deg, var(--navy-2), #171D31 70%);
  border: 1px solid rgba(201,174,121,.14);
  border-radius: 4px;
  padding: 34px 28px 30px;
  transition: transform .35s var(--ease-out), border-color .35s, box-shadow .35s;
}
.card::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--gold), transparent 80%);
  opacity: 0;
  transition: opacity .35s;
}
.card:hover, .card:focus-visible {
  transform: translateY(-6px);
  border-color: rgba(201,174,121,.4);
  box-shadow: 0 24px 48px -24px rgba(0,0,0,.6);
}
.card:hover::before, .card:focus-visible::before { opacity: 1; }
.card__icon {
  width: 48px; height: 48px;
  color: var(--gold);
  margin-bottom: 20px;
}
.card__icon svg { width: 100%; height: 100%; }
.ico-draw { stroke-dasharray: 200; stroke-dashoffset: 0; }
.card:hover .ico-draw { animation: icoDraw 1.1s var(--ease-out); }
@keyframes icoDraw { from { stroke-dashoffset: 200; } to { stroke-dashoffset: 0; } }
.card h3 { margin-bottom: .6em; color: #EFEBDF; }
.card p { font-size: .95rem; color: var(--paper-dim); }

.symptome__punch {
  margin-top: 64px;
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(1.4rem, 3vw, 2rem);
  color: #EFEBDF;
  max-width: 30em;
}
.symptome__punch strong { color: var(--feucht-hell); font-weight: 600; }
.symptome__punch-sub {
  display: block;
  margin-top: .9em;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--paper-dim);
  line-height: 1.65;
}

/* ==========================================================================
   Leistungen
   ========================================================================== */
.leistungen { padding-bottom: 0; }
.leistungen .container { padding-bottom: clamp(120px, 16vh, 200px); }
.leistungen__list { border-top: 1px solid rgba(201,174,121,.18); }
.leistung {
  border-bottom: 1px solid rgba(201,174,121,.18);
  padding: 0;
}
.leistung__head {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 30px 4px;
  cursor: pointer;
}
.leistung__head h3 {
  font-size: clamp(1.25rem, 2.6vw, 1.8rem);
  font-weight: 300;
  color: #EFEBDF;
  transition: color .3s, transform .35s var(--ease-out);
}
.leistung:hover .leistung__head h3 { color: var(--gold-hell); transform: translateX(10px); }
.leistung__toggle {
  position: relative;
  width: 34px; height: 34px; flex-shrink: 0;
  border: 1px solid rgba(201,174,121,.4);
  border-radius: 50%;
  transition: background .3s, transform .4s var(--ease-out);
}
.leistung__toggle::before, .leistung__toggle::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  background: var(--gold);
  transform: translate(-50%, -50%);
  transition: transform .3s;
}
.leistung__toggle::before { width: 12px; height: 1.5px; }
.leistung__toggle::after { width: 1.5px; height: 12px; }
.leistung.is-open .leistung__toggle { transform: rotate(135deg); background: rgba(201,174,121,.12); }
.leistung__body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .5s var(--ease-out);
}
.leistung__body p {
  max-width: 44em;
  padding: 0 4px 34px;
  color: var(--paper-dim);
}
.leistung.is-open .leistung__body { max-height: 300px; }

.leistungen__preview {
  position: fixed; z-index: 80;
  width: 280px; height: 350px;
  pointer-events: none;
  opacity: 0;
  transform: scale(.9);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.65);
  will-change: transform, opacity;
}
.leistungen__preview img { width: 100%; height: 100%; object-fit: cover; }
@media (hover: none), (max-width: 1020px) { .leistungen__preview { display: none; } }

/* Trocknungslinie / Seam */
.seam { position: relative; margin-top: -2px; }
.seam svg { display: block; width: 100%; height: clamp(60px, 9vw, 120px); }
.seam__label {
  position: absolute;
  right: clamp(20px, 6vw, 90px); bottom: clamp(28px, 4.5vw, 62px);
  font-family: var(--font-display);
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold);
  background: var(--nacht);
  border: 1px solid rgba(201,174,121,.4);
  border-radius: 30px;
  padding: .6em 1.3em .45em;
}

/* ==========================================================================
   Ablauf
   ========================================================================== */
.steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 26px;
  counter-reset: step;
  position: relative;
}
.step {
  position: relative;
  background: #FBF9F4;
  border: 1px solid rgba(32,38,59,.1);
  border-radius: 4px;
  padding: 30px 26px 30px;
  transition: transform .35s var(--ease-out), box-shadow .35s;
}
.step:hover { transform: translateY(-6px); box-shadow: 0 26px 44px -26px rgba(32,38,59,.35); }
.step__num {
  display: block;
  font-family: var(--font-display); font-weight: 300;
  font-size: 2.6rem;
  color: rgba(32,38,59,.16);
  line-height: 1;
  margin-bottom: 14px;
}
.step h3 { margin-bottom: .55em; }
.step p { font-size: .95rem; }
.step__meter {
  position: absolute; top: 22px; right: 20px;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  color: var(--feucht);
  border: 1px solid rgba(90,107,140,.4);
  border-radius: 30px;
  padding: .45em .95em .3em;
  background: rgba(90,107,140,.07);
}
.step__meter--dry {
  color: #8F6F2E;
  border-color: rgba(143,111,46,.45);
  background: rgba(201,174,121,.14);
}

/* ==========================================================================
   Vorher / Nachher
   ========================================================================== */
.compare {
  position: relative;
  aspect-ratio: 16 / 8.2;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 40px 80px -40px rgba(32,38,59,.5);
  touch-action: pan-y;
}
.compare__pane {
  position: absolute; inset: 0;
  background-size: 200% 100%;
  background-image: url("../assets/img/vergleich.png");
}
.compare__pane--after { background-position: 100% 50%; }
.compare__pane--before {
  background-position: 0% 50%;
  clip-path: inset(0 50% 0 0);
  will-change: clip-path;
}
.compare__handle {
  position: absolute; top: 0; bottom: 0;
  left: 50%;
  width: 2px;
  background: var(--gold);
  will-change: left;
}
.compare__handle-knob {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 52px; height: 52px;
  background: var(--gold);
  color: var(--nacht);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 26px rgba(14,18,32,.45);
}
.compare__tag {
  position: absolute; bottom: 18px;
  font-family: var(--font-display);
  font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
  padding: .6em 1.2em .45em;
  border-radius: 30px;
  backdrop-filter: blur(6px);
}
.compare__tag--before { left: 18px; background: rgba(14,18,32,.55); color: var(--feucht-hell); }
.compare__tag--after { right: 18px; background: rgba(201,174,121,.85); color: var(--nacht); }
.compare__range {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  opacity: 0;
  cursor: ew-resize;
  margin: 0;
}
.compare__range:focus-visible ~ .compare__handle .compare__handle-knob,
.compare:has(.compare__range:focus-visible) .compare__handle-knob {
  outline: 3px solid var(--nacht);
  outline-offset: 3px;
}
.vergleich__note {
  margin-top: 22px;
  font-size: .88rem;
  color: var(--ink-soft);
}

/* ==========================================================================
   Über
   ========================================================================== */
.ueber { padding-top: 0; }
.ueber__grid {
  display: grid;
  grid-template-columns: minmax(280px, 460px) 1fr;
  gap: clamp(36px, 6vw, 90px);
  align-items: center;
}
.ueber__figure { position: relative; }
.ueber__figure img {
  border-radius: 6px;
  box-shadow: 0 40px 70px -35px rgba(32,38,59,.55);
}
.ueber__badge {
  position: absolute; bottom: -22px; right: -18px;
  display: flex; align-items: center; gap: 12px;
  background: var(--nacht);
  color: var(--gold-hell);
  border-radius: 4px;
  padding: 16px 20px;
  font-family: var(--font-display);
  font-size: .82rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  line-height: 1.45;
  box-shadow: 0 20px 40px -18px rgba(14,18,32,.5);
}
.ueber__badge svg { color: var(--gold); flex-shrink: 0; }
.ueber__text h2 { margin-bottom: .6em; }
.ueber__text p { margin-bottom: 1.1em; max-width: 36em; }
.ueber__facts {
  list-style: none;
  margin: 1.6em 0 2.2em;
  display: grid; gap: 14px;
}
.ueber__facts li {
  padding-left: 26px;
  position: relative;
  color: var(--ink-soft);
}
.ueber__facts li::before {
  content: "";
  position: absolute; left: 0; top: .52em;
  width: 12px; height: 12px;
  border: 2px solid var(--gold);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.ueber__facts .accent-dark { font-weight: 700; }

@media (max-width: 860px) {
  .ueber__grid { grid-template-columns: 1fr; }
  .ueber__figure { max-width: 440px; }
}

/* ==========================================================================
   Kontakt
   ========================================================================== */
.section--contact {
  background:
    radial-gradient(130% 100% at 20% 0%, #222A48 0%, var(--nacht) 52%, var(--nacht-tief) 100%);
  color: var(--paper-text);
}
.eyebrow--gold { color: var(--gold); }
.eyebrow--gold::before { background: var(--gold); }
.kontakt__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(40px, 7vw, 100px);
  align-items: start;
}
.kontakt__intro h2 { color: #F2EFE6; }
.kontakt__intro p { color: var(--paper-dim); max-width: 32em; }
.kontakt__channels {
  list-style: none;
  margin-top: 2.4em;
  display: grid; gap: 4px;
}
.kontakt__channels a, .kontakt__channel-plain {
  display: flex; flex-direction: column;
  padding: 18px 20px;
  border-radius: 4px;
  text-decoration: none;
  border: 1px solid transparent;
  transition: border-color .3s, background .3s, transform .25s var(--ease-out);
}
.kontakt__channels a:hover {
  border-color: rgba(201,174,121,.35);
  background: rgba(201,174,121,.06);
  transform: translateX(6px);
}
.kontakt__channel-label {
  font-family: var(--font-display);
  font-size: .68rem; letter-spacing: .3em; text-transform: uppercase;
  color: var(--paper-dim);
  margin-bottom: 3px;
}
.kontakt__channel-value {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  color: var(--gold-hell);
  overflow-wrap: anywhere;
}

.kontakt__form {
  background: rgba(27,33,54,.72);
  border: 1px solid rgba(201,174,121,.2);
  border-radius: 6px;
  padding: clamp(26px, 4vw, 42px);
  backdrop-filter: blur(8px);
}
.field { margin-bottom: 20px; }
.field label {
  display: block;
  font-family: var(--font-display);
  font-size: .74rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}
.field input, .field textarea {
  width: 100%;
  background: rgba(14,18,32,.6);
  border: 1px solid rgba(140,155,190,.25);
  border-radius: 3px;
  color: var(--paper-text);
  font-family: var(--font-body);
  font-size: 1rem;
  padding: 13px 15px;
  transition: border-color .3s, box-shadow .3s;
}
.field input:focus, .field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201,174,121,.18);
}
.field textarea { resize: vertical; min-height: 110px; }
.kontakt__form-note {
  margin-top: 14px;
  font-size: .8rem;
  color: var(--paper-dim);
  text-align: center;
}

@media (max-width: 860px) { .kontakt__grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.footer {
  background: var(--nacht-tief);
  border-top: 1px solid rgba(201,174,121,.15);
  padding: 60px 0 28px;
  color: var(--paper-dim);
}
.footer__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px;
  align-items: start;
}
.footer__brand { display: flex; gap: 16px; align-items: center; }
.footer__brand svg { color: var(--gold); flex-shrink: 0; }
.footer__brand strong {
  font-family: var(--font-display); font-weight: 600;
  letter-spacing: .06em; color: var(--paper-text);
}
.footer__brand span {
  font-family: var(--font-display);
  font-size: .74rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold);
}
.footer__address { font-style: normal; line-height: 1.9; font-size: .92rem; }
.footer__address a { color: var(--paper-text); text-decoration: none; }
.footer__address a:hover { color: var(--gold-hell); }
.footer__legal { display: flex; gap: 24px; justify-content: flex-end; }
.footer__legal a {
  color: var(--paper-dim); text-decoration: none;
  font-size: .9rem;
  border-bottom: 1px solid transparent;
  transition: color .25s, border-color .25s;
}
.footer__legal a:hover { color: var(--gold-hell); border-color: var(--gold-hell); }
.footer__credit {
  text-align: center;
  font-size: .78rem;
  margin-top: 46px;
  opacity: .55;
}
@media (max-width: 700px) { .footer__legal { justify-content: flex-start; } }

/* ==========================================================================
   Barrierefreiheit-Toolbar
   ========================================================================== */
.a11y { position: fixed; left: 20px; bottom: 20px; z-index: 250; }
.a11y__fab {
  width: 54px; height: 54px;
  border-radius: 50%;
  border: 1px solid rgba(201,174,121,.5);
  background: var(--nacht);
  color: var(--gold);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 30px -8px rgba(14,18,32,.6);
  transition: transform .25s var(--ease-out), background .3s;
}
.a11y__fab:hover { transform: scale(1.08); background: var(--navy-2); }
.a11y__panel {
  position: absolute; left: 0; bottom: 66px;
  width: min(300px, calc(100vw - 40px));
  background: var(--nacht);
  border: 1px solid rgba(201,174,121,.35);
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 24px 60px -16px rgba(0,0,0,.65);
}
.a11y__title {
  font-family: var(--font-display);
  font-size: .8rem; font-weight: 600;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 16px;
}
.a11y__row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 9px 0;
}
.a11y__row-label { font-size: .92rem; color: var(--paper-text); }
.a11y__btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--navy-2);
  border: 1px solid rgba(140,155,190,.3);
  color: var(--paper-text);
  border-radius: 4px;
  font-family: var(--font-body); font-size: .82rem;
  padding: 8px 12px;
  cursor: pointer;
  transition: border-color .25s, background .25s, color .25s;
}
.a11y__btn:hover { border-color: var(--gold); }
.a11y__btn[aria-pressed="true"] {
  background: var(--gold); color: var(--nacht); border-color: var(--gold);
}
.a11y__sizes { display: flex; gap: 6px; }
.a11y__size {
  min-width: 38px; height: 38px;
  background: var(--navy-2);
  border: 1px solid rgba(140,155,190,.3);
  color: var(--paper-text);
  border-radius: 4px;
  cursor: pointer;
  font-family: var(--font-display); font-weight: 600;
  transition: border-color .25s, background .25s, color .25s;
}
.a11y__size:nth-child(1) { font-size: .85rem; }
.a11y__size:nth-child(2) { font-size: 1.05rem; }
.a11y__size:nth-child(3) { font-size: 1.3rem; }
.a11y__size.is-active { background: var(--gold); color: var(--nacht); border-color: var(--gold); }

/* Lupe */
.lens {
  position: fixed; z-index: 260;
  width: 240px; height: 240px;
  border-radius: 50%;
  border: 3px solid var(--gold);
  overflow: hidden;
  pointer-events: none;
  box-shadow: 0 18px 50px -10px rgba(0,0,0,.55), inset 0 0 0 1px rgba(14,18,32,.4);
  background: var(--putz);
  transform: translate(-50%, -50%);
}
.lens__content {
  position: absolute; top: 0; left: 0;
  transform-origin: 0 0;
}
body.lens-active, body.lens-active * { cursor: zoom-in !important; }

/* ==========================================================================
   Reveal-Zustände (JS setzt Endwerte; ohne JS alles sichtbar)
   ========================================================================== */
.js .reveal { opacity: 0; transform: translateY(34px); }
.js .reveal-load { opacity: 0; transform: translateY(24px); }
.js .hero__title .w { opacity: 0; transform: translateY(110%); }

/* ==========================================================================
   Reduzierte Bewegung
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
html.reduce-motion { scroll-behavior: auto; }
html.reduce-motion *, html.reduce-motion *::before, html.reduce-motion *::after {
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
}
html.reduce-motion .js .reveal,
html.reduce-motion .js .reveal-load,
html.reduce-motion .js .hero__title .w {
  opacity: 1 !important; transform: none !important;
}

/* ==========================================================================
   Responsive Feinschliff
   ========================================================================== */
@media (max-width: 640px) {
  .hero__content { padding-top: 120px; padding-bottom: 100px; }
  .hero__actions .btn { width: 100%; }
  .hero__pattern { right: -40%; opacity: .09; }
  .section { padding-block: 70px; }
  .compare { aspect-ratio: 4 / 3; }
  .ueber__badge { right: 8px; bottom: -18px; padding: 12px 14px; }
  .a11y { left: 14px; bottom: 14px; }
  .footer__credit { padding-inline: 20px; }
}

/* ==========================================================================
   Theme-Umschalter (Button)
   ========================================================================== */
.theme-toggle {
  width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid rgba(201,174,121,.45);
  background: transparent;
  color: var(--gold);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .3s, transform .25s var(--ease-out);
}
.theme-toggle:hover { background: rgba(201,174,121,.14); transform: rotate(20deg); }
.theme-toggle .icon-moon { display: none; }
html[data-theme="light"] .theme-toggle .icon-sun { display: none; }
html[data-theme="light"] .theme-toggle .icon-moon { display: block; }

/* ==========================================================================
   Helles Theme
   ========================================================================== */
:root { color-scheme: dark; }
html[data-theme="light"] { color-scheme: light; }

html[data-theme="light"] {
  --nacht: #F4EFE5;
  --nacht-tief: #ECE5D4;
  --navy-2: #FFFFFF;
  --navy-3: #F1EADB;
  --paper-text: #262B40;
  --paper-dim: #565C73;
  --gold-hell: #8F6F2E;
  --feucht-hell: #46587F;
}

/* Gold-Flächen behalten immer dunkle Schrift */
html[data-theme="light"] ::selection { color: #131829; }
html[data-theme="light"] .skip-link { color: #131829; }
html[data-theme="light"] .btn--gold { color: #131829; }
html[data-theme="light"] .nav__cta { color: #131829; }
html[data-theme="light"] .compare__handle-knob { color: #131829; }
html[data-theme="light"] .compare__tag--after { color: #131829; }
html[data-theme="light"] .a11y__btn[aria-pressed="true"],
html[data-theme="light"] .a11y__size.is-active { color: #131829; }

/* Dunkle Sektionen werden hell */
html[data-theme="light"] .hero {
  background: radial-gradient(120% 90% at 75% 10%, #FFFFFF 0%, #F4EFE5 55%, #E9E1CE 100%);
}
html[data-theme="light"] .hero__title { color: var(--ink); }
html[data-theme="light"] .hero__pattern { color: var(--gold); opacity: .22; }
html[data-theme="light"] .eyebrow,
html[data-theme="light"] .hero__eyebrow { color: #8F6F2E; }
html[data-theme="light"] .eyebrow::before { background: #8F6F2E; }
html[data-theme="light"] .accent { color: #8F6F2E; }
html[data-theme="light"] .card {
  background: #FFFFFF;
  border-color: rgba(143,111,46,.22);
}
html[data-theme="light"] .card h3 { color: var(--ink); }
html[data-theme="light"] .card__icon { color: #8F6F2E; }
html[data-theme="light"] .symptome__punch { color: var(--ink); }
html[data-theme="light"] .leistung__head h3 { color: var(--ink); }
html[data-theme="light"] .leistung:hover .leistung__head h3 { color: #8F6F2E; }
html[data-theme="light"] .nav.is-scrolled { background: rgba(244,239,229,.9); }
html[data-theme="light"] .mobile-menu { background: rgba(244,239,229,.97); }
html[data-theme="light"] .mobile-menu__tel { color: #8F6F2E !important; }
html[data-theme="light"] .section--contact {
  background: radial-gradient(130% 100% at 20% 0%, #FFFFFF 0%, #F4EFE5 52%, #EAE2D0 100%);
}
html[data-theme="light"] .kontakt__intro h2 { color: var(--ink); }
html[data-theme="light"] .kontakt__form {
  background: rgba(255,255,255,.85);
  border-color: rgba(143,111,46,.3);
}
html[data-theme="light"] .field label { color: #8F6F2E; }
html[data-theme="light"] .field input,
html[data-theme="light"] .field textarea {
  background: rgba(255,255,255,.8);
  border-color: rgba(90,107,140,.35);
  color: var(--ink);
}
html[data-theme="light"] .kontakt__channels a:hover { background: rgba(201,174,121,.14); }
html[data-theme="light"] .footer { border-top-color: rgba(143,111,46,.25); }
html[data-theme="light"] .footer__brand span { color: #8F6F2E; }
html[data-theme="light"] .a11y__title { color: #8F6F2E; }
html[data-theme="light"] .a11y__fab { box-shadow: 0 12px 30px -8px rgba(90,90,70,.4); }
html[data-theme="light"] .seam__label { color: #8F6F2E; }
html[data-theme="light"] .compare__tag--before { color: #A9BADC; }
html[data-theme="light"] .btn--navy { background: #1B2136; color: #E8D5A4; }
html[data-theme="light"] .btn--navy::before { background: #232B47; }
html[data-theme="light"] .ueber__badge { background: #1B2136; color: #E8D5A4; }
html[data-theme="light"] .w--wet::after {
  background: linear-gradient(90deg, transparent, var(--feucht), transparent);
}
html[data-theme="light"] .gauge__track { background: rgba(90,107,140,.25); }

/* ==========================================================================
   Rechtsseiten (Impressum / Datenschutz)
   ========================================================================== */
.page-legal .nav {
  background: rgba(14, 18, 32, .92);
  box-shadow: 0 1px 0 rgba(201,174,121,.18);
}
html[data-theme="light"] .page-legal .nav { background: rgba(244,239,229,.94); }
.legal { padding-top: clamp(130px, 18vh, 190px); }
.legal h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); margin-bottom: .5em; color: var(--ink); }
.legal h2 { font-size: 1.45rem; font-weight: 600; margin: 2.1em 0 .55em; }
.legal h3 { font-size: 1.1rem; margin: 1.5em 0 .4em; }
.legal p, .legal li { max-width: 46em; margin-bottom: .9em; }
.legal ul { padding-left: 1.3em; margin-bottom: 1.1em; color: var(--ink-soft); }
.legal a { color: #8F6F2E; text-underline-offset: 3px; }
.legal a:hover { color: var(--ink); }
.legal__notice {
  max-width: 46em;
  border: 1px solid #8F6F2E;
  background: rgba(201,174,121,.16);
  border-radius: 6px;
  padding: 18px 22px;
  margin: 0 0 2.6em;
  color: var(--ink);
  font-size: .95rem;
}
.legal__notice strong { display: block; margin-bottom: .3em; font-family: var(--font-display); letter-spacing: .06em; }
mark.ph {
  background: rgba(201,174,121,.28);
  border: 1px dashed #8F6F2E;
  border-radius: 3px;
  color: inherit;
  padding: .06em .4em;
}
.legal__back { margin-top: 3em; }

/* ==========================================================================
   Baustellen-Galerie
   ========================================================================== */
.baustelle__intro { max-width: 40em; margin: -1.2em 0 2.4em; }
.baustelle__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  max-width: 980px;
}
.baustelle__item {
  position: relative;
  border: 0; padding: 0;
  background: var(--putz-tief);
  border-radius: 6px;
  overflow: hidden;
  cursor: zoom-in;
  grid-column: span 2;
  aspect-ratio: 16 / 10;
  box-shadow: 0 18px 36px -22px rgba(32,38,59,.45);
  transition: transform .35s var(--ease-out), box-shadow .35s;
}
.baustelle__item:nth-child(1),
.baustelle__item:nth-child(2) { grid-column: span 3; aspect-ratio: 2 / 1; }
.baustelle__item:hover, .baustelle__item:focus-visible {
  transform: translateY(-5px);
  box-shadow: 0 28px 50px -24px rgba(32,38,59,.55);
}
.baustelle__item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .7s var(--ease-out);
}
.baustelle__item:hover img { transform: scale(1.06); }
.baustelle__caption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 34px 16px 13px;
  background: linear-gradient(transparent, rgba(14,18,32,.8));
  color: #F2EFE6;
  font-family: var(--font-body);
  font-size: .84rem;
  text-align: left;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .35s, transform .35s var(--ease-out);
}
.baustelle__item:hover .baustelle__caption,
.baustelle__item:focus-visible .baustelle__caption { opacity: 1; transform: none; }
@media (hover: none) {
  .baustelle__caption { opacity: 1; transform: none; padding-top: 26px; }
}
@media (max-width: 700px) {
  .baustelle__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .baustelle__item,
  .baustelle__item:nth-child(1),
  .baustelle__item:nth-child(2) { grid-column: span 1; aspect-ratio: 4 / 3; }
  .baustelle__item:nth-child(5) { grid-column: span 2; aspect-ratio: 2 / 1; }
  .baustelle__caption { font-size: .72rem; padding: 20px 10px 8px; }
}

/* ==========================================================================
   Lightbox
   ========================================================================== */
.lightbox[hidden] { display: none; }
.lightbox {
  position: fixed; inset: 0; z-index: 320;
  background: rgba(10, 13, 24, .93);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  padding: 34px clamp(16px, 6vw, 90px);
}
.lightbox img {
  max-width: 100%;
  max-height: 76vh;
  border-radius: 6px;
  box-shadow: 0 40px 90px -30px rgba(0,0,0,.8);
}
.lightbox__caption {
  color: #DCD9CE;
  margin-top: 16px;
  font-size: .95rem;
  text-align: center;
  max-width: 44em;
}
.lightbox__close, .lightbox__nav {
  position: absolute;
  display: flex; align-items: center; justify-content: center;
  background: rgba(27,33,54,.85);
  border: 1px solid rgba(201,174,121,.45);
  color: #E8D5A4;
  border-radius: 50%;
  cursor: pointer;
  transition: background .25s, transform .25s var(--ease-out);
}
.lightbox__close:hover, .lightbox__nav:hover { background: #C9AE79; color: #131829; transform: scale(1.07); }
.lightbox__close {
  top: 20px; right: 20px;
  width: 48px; height: 48px;
  font-size: 1.7rem; line-height: 1;
}
.lightbox__nav {
  top: 50%;
  transform: translateY(-50%);
  width: 52px; height: 52px;
  font-size: 2rem; line-height: 1;
}
.lightbox__nav:hover { transform: translateY(-50%) scale(1.07); }
.lightbox__nav--prev { left: 16px; }
.lightbox__nav--next { right: 16px; }
@media (max-width: 640px) {
  .lightbox__nav { width: 42px; height: 42px; }
  .lightbox img { max-height: 64vh; }
}
