/* ═══════════════════════════════════════════════════════════════
   Schädlingsbekämpfung Käfer - Freiburg
   Brand: Lime-Grün #41a636 (Logo) · Anthrazit (Arbeitskleidung) · clean white
   Engine: React + GSAP + Tailwind (CDN). Reveal via IntersectionObserver → .active
   ═══════════════════════════════════════════════════════════════ */

/* Lokale Fonts (selbst gehostet, DSGVO-konform, font-display:swap) */
@font-face{font-family:'Archivo';font-style:normal;font-weight:500 900;font-display:swap;src:url('fonts/archivo-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/inter-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root {
  --accent: #B85C38;          /* Ziegel-Terrakotta (Primär) */
  --accent-rgb: 184, 92, 56;
  --accent-deep: #8C4326;     /* dunkler – Hover/aktiv */
  --accent-ink: #8C4326;      /* Terracotta-Text auf hellem Grund (besserer Kontrast/AA) */
  --accent-text: #FFFFFF;     /* Text auf Terracotta-Buttons */
  --brand: #B85C38;
  --brand-text: #FFFFFF;

  --ink: #14171C;             /* Headlines */
  --body: #525A64;            /* Fließtext */
  --muted: #8A929C;           /* Captions */
  --border: rgba(20, 23, 28, 0.09);

  --bg: #FFFFFF;
  --bg-alt: #FBF6E9;          /* warm-grün getöntes Off-White */
  --bg-card: #FFFFFF;

  --dark: #2A2E36;            /* hell-schwarz #2A2E36 - ein Schwarz ueberall */
  --dark-2: #2A2E36;
  --dark-card: rgba(255, 255, 255, 0.045);
  --dark-border: rgba(255, 255, 255, 0.10);

  --text: var(--ink);
}

/* ─── Base ─────────────────────────────────────────────── */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--bg);
  color: var(--ink);
  overflow-x: clip;
  max-width: 100%;
}
::selection { background: rgba(var(--accent-rgb), 0.28); color: var(--ink); }
img { transition: opacity .4s ease; }

.font-heading { font-family: 'Archivo', system-ui, sans-serif; }
.font-body { font-family: 'Inter', system-ui, sans-serif; }
.font-black { font-weight: 900; }   /* Archivo Black – Section-Headlines auf Hero-Maß */

/* Anchor offset for fixed navbar */
section[id] { scroll-margin-top: 96px; }

/* ─── Buttons ──────────────────────────────────────────── */
.btn-primary {
  background: var(--accent);
  color: var(--accent-text);
  font-weight: 700;
  transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, background .3s ease;
  box-shadow: 0 8px 24px -8px rgba(var(--accent-rgb), 0.55);
}
.btn-primary:hover {
  background: var(--accent-deep);
  transform: translateY(-2px);
  box-shadow: 0 16px 34px -10px rgba(var(--accent-rgb), 0.7);
}
.btn-dark {
  background: var(--dark);
  color: #fff;
  transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, background .3s ease;
}
.btn-dark:hover { background: #1f232a; transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(0,0,0,.5); }

/* Hell-schwarz (#2A2E36) auf allen dunklen Sections - wie die Benefit-Karten.
   Tailwind hat die bg-ink Klassen mit festen RGB-Werten kompiliert, daher hier ueberschreiben. */
.bg-ink   { background-color: #2A2E36 !important; }
.bg-ink-2 { background-color: #2A2E36 !important; }
.btn-ghost {
  background: #fff; color: var(--ink); border: 1px solid var(--border);
  transition: all .3s ease;
}
.btn-ghost:hover { border-color: rgba(var(--accent-rgb), .6); background: var(--bg-alt); transform: translateY(-2px); }

/* WhatsApp tint */
.btn-wa { background: #25D366; color: #0a2e16; font-weight: 700; transition: all .3s ease; }
.btn-wa:hover { background: #1eb858; transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(37,211,102,.6); }

/* ─── CTA pulse ────────────────────────────────────────── */
@keyframes pulse-cta {
  0%   { box-shadow: 0 8px 24px -8px rgba(var(--accent-rgb), .55), 0 0 0 0 rgba(var(--accent-rgb), .45); }
  70%  { box-shadow: 0 8px 24px -8px rgba(var(--accent-rgb), .55), 0 0 0 16px rgba(var(--accent-rgb), 0); }
  100% { box-shadow: 0 8px 24px -8px rgba(var(--accent-rgb), .55), 0 0 0 0 rgba(var(--accent-rgb), 0); }
}
.cta-pulse { animation: pulse-cta 3s infinite; }
.cta-pulse:hover { animation: none; }

/* ─── Ambient animations ───────────────────────────────── */
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.animate-float { animation: float 5s ease-in-out infinite; }
.animate-float-slow { animation: float 7s ease-in-out infinite; }
.animate-float-delay { animation: float 5s ease-in-out 1.2s infinite; }

@keyframes breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.animate-breathe { animation: breathe 4.5s ease-in-out infinite; }

@keyframes dot-pulse-anim {
  0%   { transform: scale(.8); opacity: .5; }
  50%  { transform: scale(1.25); opacity: 1; }
  100% { transform: scale(.8); opacity: .5; }
}
.dot-pulse { animation: dot-pulse-anim 2s ease-in-out infinite; }

@keyframes spin-slow { to { transform: rotate(360deg); } }
.animate-spin-slow { animation: spin-slow 26s linear infinite; }

/* ─── Reveal system (IntersectionObserver adds .active) ── */
.reveal {
  opacity: 0;
  transform: translateY(42px) scale(.985);
  filter: blur(14px);
  transition: opacity .5s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1), filter .55s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform, filter;
}
.reveal.active { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
.reveal-left  { opacity: 0; transform: translateX(-48px); filter: blur(12px); transition: opacity .5s cubic-bezier(.16,1,.3,1), transform .58s cubic-bezier(.16,1,.3,1), filter .58s cubic-bezier(.16,1,.3,1); will-change: opacity, transform, filter; }
.reveal-right { opacity: 0; transform: translateX(48px);  filter: blur(12px); transition: opacity .5s cubic-bezier(.16,1,.3,1), transform .58s cubic-bezier(.16,1,.3,1), filter .58s cubic-bezier(.16,1,.3,1); will-change: opacity, transform, filter; }
.reveal-left.active, .reveal-right.active { opacity: 1; transform: translateX(0); filter: blur(0); }
.reveal-scale { opacity: 0; transform: scale(.92); filter: blur(18px); transition: opacity .55s cubic-bezier(.16,1,.3,1), transform .62s cubic-bezier(.16,1,.3,1), filter .62s cubic-bezier(.16,1,.3,1); will-change: opacity, transform, filter; }
.reveal-scale.active { opacity: 1; transform: scale(1); filter: blur(0); }
/* Wenn GSAP ScrollTrigger den Reveal steuert: CSS-Transition aus, GSAP tweent inline */
.gsap-on .reveal, .gsap-on .reveal-left, .gsap-on .reveal-right, .gsap-on .reveal-scale { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity: 1 !important; transform: none !important; filter: none !important; }
  .animate-float, .animate-float-slow, .animate-float-delay, .animate-breathe, .dot-pulse, .cta-pulse, .marquee-track { animation: none !important; }
  html { scroll-behavior: auto; }
}

/* ─── Cards ────────────────────────────────────────────── */
.card-lift { transition: transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s ease, border-color .4s ease; }
.card-lift:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -24px rgba(20,23,28,.28); }

/* Werte-Karten: Premium-Effekte (Glow, Akzentlinie, Nummer-Watermark, Icon-Motion) */
.sw-value {
  position: relative; overflow: hidden;
  background: linear-gradient(165deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border: 1px solid rgba(184,92,56,.20);
  box-shadow: 0 18px 50px -34px rgba(0,0,0,.7), 0 0 26px -14px rgba(184,92,56,.28);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s ease, border-color .5s ease;
}
.sw-value::before { content: ""; position: absolute; top: -40%; right: -30%; width: 240px; height: 240px; background: radial-gradient(circle, rgba(184,92,56,.16) 0%, transparent 70%); opacity: .45; transition: opacity .55s ease; pointer-events: none; }
.sw-value::after { content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 2px; background: linear-gradient(90deg, transparent, var(--accent), transparent); transform: scaleX(0); transform-origin: center; transition: transform .55s cubic-bezier(.16,1,.3,1); }
.sw-value:hover { transform: translateY(-8px); border-color: rgba(184,92,56,.40); box-shadow: 0 44px 84px -42px rgba(0,0,0,.95), 0 0 44px -12px rgba(184,92,56,.28); }
.sw-value:hover::before { opacity: 1; }
.sw-value:hover::after { transform: scaleX(1); }
.sw-value__ico { position: relative; z-index: 1; box-shadow: 0 12px 28px -8px rgba(184,92,56,.55); transition: transform .5s cubic-bezier(.16,1,.3,1); }
.sw-value:hover .sw-value__ico { transform: rotate(-6deg) scale(1.08); }
.sw-value__num { position: absolute; top: 14px; right: 22px; font-family: 'Archivo', system-ui, sans-serif; font-weight: 900; font-size: 4.5rem; line-height: 1; color: rgba(184,92,56,.08); pointer-events: none; z-index: 0; transition: color .55s ease; }
.sw-value:hover .sw-value__num { color: rgba(184,92,56,.18); }
.sw-value h3, .sw-value p { position: relative; z-index: 1; }

/* Pest service card (image background) */
.pest-card { transition: transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s ease; position: relative; overflow: hidden; }
.pest-bg { transition: transform .7s cubic-bezier(.16,1,.3,1); }
.pest-card:hover { transform: translateY(-6px); box-shadow: 0 26px 50px -26px rgba(20,23,28,.28); }
.pest-card:hover .pest-bg { transform: scale(1.07); }

/* Case study card (Problem → Lösung) - dauerhafter Glow (kein Hover nötig) */
.case-card {
  position: relative;
  border: 1px solid rgba(184,92,56,.28);
  box-shadow: 0 22px 48px -30px rgba(20,23,28,.28), 0 0 36px -14px rgba(184,92,56,.5);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s ease, border-color .5s ease;
}
/* amber Akzentlinie oben - immer sichtbar */
.case-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 4; background: linear-gradient(90deg, var(--accent), #ffd451); }
.case-card:hover { transform: translateY(-6px); border-color: rgba(184,92,56,.5); box-shadow: 0 40px 70px -34px rgba(20,23,28,.4), 0 0 46px -12px rgba(184,92,56,.6); }

/* Bild-Bereich: Zoom + Gradient-Overlay */
.case-media { overflow: hidden; flex:1 1 auto; min-height:160px; }
.case-media img { transition: transform .8s cubic-bezier(.16,1,.3,1); }
.case-card:hover .case-media img { transform: scale(1.08); }
.case-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,23,28,.34) 0%, transparent 42%); pointer-events: none; }
.case-card .case-media > span { transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease; }
.case-card:hover .case-media > span { transform: translateY(-2px) scale(1.05); box-shadow: 0 10px 22px -8px rgba(184,92,56,.7); }

/* Leistungen - separierte Karten mit Nummern-Medaillon (schwarze Haupt-Section) */
.lz-rows { display: flex; flex-direction: column; gap: 2.75rem; margin-top: 3.5rem; }   /* Luft, damit das 01-Medaillon nicht in die Subheadline ragt (mb-20 am Header ist nicht kompiliert) */

.lz-card {
  position: relative;
  border-radius: 34px;
  padding: 1.5rem;
  background: linear-gradient(152deg, #1d222b 0%, #2A2E36 62%);
  border: 1px solid rgba(255,255,255,.07);
  box-shadow: 0 36px 80px -46px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.04);
  /* transform wird per GSAP-Scrub gesteuert (Fokus-Skalierung) -> hier nicht transitionen */
  transition: box-shadow .55s ease, border-color .55s ease, background .55s ease;
}
.lz-card:hover {
  border-color: rgba(184,92,56,.32);
  box-shadow: 0 52px 100px -48px rgba(0,0,0,1), 0 0 0 1px rgba(184,92,56,.18), inset 0 1px 0 rgba(255,255,255,.05);
}
/* Scroll-Highlight: die zentrierte (groesste) Karte leuchtet auf */
.lz-card.lz-active {
  border-color: rgba(184,92,56,.55);
  background: linear-gradient(152deg, #242b36 0%, #181c22 62%);
  box-shadow:
    0 60px 110px -46px rgba(0,0,0,1),
    0 0 0 1px rgba(184,92,56,.4),
    0 0 46px -6px rgba(184,92,56,.32),
    inset 0 1px 0 rgba(255,255,255,.06);
}
.lz-card.lz-active .lz-badge {
  box-shadow: 0 0 0 6px #2A2E36, 0 0 0 7px rgba(184,92,56,.45), 0 22px 40px -8px rgba(184,92,56,.7);
}

.lz-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 2.75rem; align-items: center; }
.lz-card--rev .lz-media { order: -1; }            /* abwechselnd: Bild links, Text rechts */

.lz-media {
  position: relative; overflow: hidden; border-radius: 24px; height: 360px;
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.8);
  will-change: transform;
}
.lz-media img { width: 100%; height: 100%; object-fit: cover; display: block; will-change: transform; }

.lz-text { padding: 2.6rem 1.5rem .75rem; }   /* oben Luft, damit Text nicht ans Medaillon stößt */
.lz-tag {
  display: inline-block; font-family: 'Archivo', sans-serif; font-weight: 700;
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.1rem;
}
.lz-stat {
  display: inline-flex; align-items: baseline; gap: .5rem; margin-top: 1.6rem;
  padding: .5rem .95rem; border-radius: 9999px;
  background: rgba(184,92,56,.08); border: 1px solid rgba(184,92,56,.22);
}
.lz-stat__val { font-family: 'Archivo', sans-serif; font-weight: 900; font-size: 15px; color: #fff; }
.lz-stat__sub { font-size: 12px; color: rgba(255,255,255,.72); }
.lz-cta { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.5rem; font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 14px; color: #D9794A; transition: gap .25s ease, color .25s ease; }
.lz-cta:hover { color: #fff; gap: .65rem; }
.lz-cta svg { transition: transform .25s ease; }
.lz-cta:hover svg { transform: translateX(3px); }
/* Footer-Reihe: Pill links, "Mehr erfahren" rechts */
.lz-foot { display: flex; align-items: center; justify-content: flex-start; gap: 1.5rem 2rem; flex-wrap: wrap; margin-top: 1.6rem; }
.lz-foot .lz-stat { margin-top: 0; }
.lz-foot .lz-cta { margin-top: 0; }
/* Ganze Leistungs-Karte klickbar (stretched link, kein Anker-Nesting) */
.lz-cta::after { content: ""; position: absolute; inset: 0; z-index: 4; }
.lz-card:hover .lz-cta { color: #fff; }

/* Rundes Nummern-Medaillon, ragt oben aus der Karte */
.lz-badge {
  position: absolute; top: -26px; left: 32px; z-index: 4;
  width: 74px; height: 74px; border-radius: 9999px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  line-height: 1; color: #2A2E36;
  background: radial-gradient(circle at 32% 26%, #B85C38 0%, var(--accent) 68%);
  box-shadow: 0 0 0 6px #2A2E36, 0 0 0 7px rgba(184,92,56,.28), 0 18px 32px -10px rgba(184,92,56,.55);
}
/* Zickzack: ungerade Karten (02, 04, 06) -> Medaillon nach rechts, folgt dem Text */
.lz-card--rev .lz-badge { left: auto; right: 32px; }
.lz-badge__num { font-family: 'Archivo', sans-serif; font-weight: 900; font-size: 25px; letter-spacing: -.02em; }
.lz-badge__tot { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 10px; opacity: .55; margin-top: 2px; }

/* ── Sticky-Stacking (Desktop): jede Karte bleibt oben kleben, die naechste schiebt sich mit leichtem Versatz darueber ── */
@media (min-width: 1024px) {
  .lz-rows { gap: 4rem; }
  .lz-card { position: sticky; }
  .lz-card:nth-child(1) { top: 108px; }
  .lz-card:nth-child(2) { top: 134px; }
  .lz-card:nth-child(3) { top: 160px; }
  .lz-card:nth-child(4) { top: 186px; }
  .lz-card:nth-child(5) { top: 212px; }
  /* dezenter Tiefenschatten zwischen gestapelten Karten */
  .lz-card { box-shadow: 0 -8px 60px -20px rgba(0,0,0,.9), 0 36px 80px -46px rgba(0,0,0,.95), inset 0 1px 0 rgba(255,255,255,.04); }
}

@media (max-width: 1023px) {
  .lz-rows { gap: 2.25rem; }
  .lz-card { padding: 1.1rem 1.1rem 1.4rem; border-radius: 28px; }
  .lz-inner { grid-template-columns: 1fr; gap: 1.25rem; }
  .lz-media, .lz-card--rev .lz-media { order: -1; height: 230px; }   /* Mobile: Bild immer oben */
  .lz-text { padding: .25rem .6rem .4rem; }
  .lz-badge { top: -22px; left: 22px; width: 60px; height: 60px; }
  .lz-card--rev .lz-badge { left: auto; right: 22px; }
  .lz-badge__num { font-size: 21px; }
}
/* Problem → Lösung Timeline (durchgehender gelber Strich) */
.case-steps { position:relative; display:flex; flex-direction:column; gap:0.8rem; }
.case-step { position:relative; }
.case-step + .case-step { border-top:1px solid rgba(20,23,28,.10); padding-top:0.8rem; }
.case-step__dot { display:none; }
.case-card .case-step__body p { font-size: 14px; }

/* ─── Marquee (trust strip) ────────────────────────────── */
.marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track { display: inline-flex; white-space: nowrap; animation: marquee 32s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ─── Form fields ──────────────────────────────────────── */
.field {
  width: 100%;
  background-color: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff;
  border-radius: 14px;
  padding: 13px 15px;
  font-size: 15px;
  transition: border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.field::placeholder { color: rgba(255,255,255,.45); }
.field:hover { border-color: rgba(184,92,56,.40); }
.field:focus { outline: none; border-color: var(--accent); background-color: rgba(255,255,255,.10); box-shadow: 0 0 0 4px rgba(var(--accent-rgb), .16), 0 10px 26px -14px rgba(184,92,56,.55); }

/* Premium-Formular: Icon-Felder */
.sw-ff { position: relative; }
.sw-ff__ico { position: absolute; left: 15px; top: 23px; transform: translateY(-50%); color: var(--accent); opacity: .8; pointer-events: none; display: flex; transition: opacity .25s ease; }
.sw-ff:focus-within .sw-ff__ico { opacity: 1; }
.sw-ff .field { padding-left: 46px; }
.sw-ff--area .sw-ff__ico { top: 20px; transform: none; }

/* Anrede-Select: nativen Pfeil ersetzen durch amber Chevron */
select.field { -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer; padding-right: 42px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23B85C38' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; }
select.field option { background: #1B2029; color: #fff; }

/* Submit-Button: dezenter Shine beim Hover */
.sw-submit { position: relative; overflow: hidden; }
.sw-submit::before { content: ""; position: absolute; top: 0; left: -60%; width: 45%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-18deg); transition: left .6s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.sw-submit:hover::before { left: 130%; }
.field-light {
  width: 100%; background: #FBFAF6; border: 1.5px solid rgba(20,23,28,.10); color: var(--ink);
  border-radius: 13px; padding: 11px 14px; font-size: 14.5px;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.field-light::placeholder { color: var(--muted); }
.field-light:hover { border-color: rgba(184,92,56,.45); }
.field-light:focus { outline: none; border-color: var(--accent); background: #fff; box-shadow: 0 0 0 4px rgba(var(--accent-rgb), .18); }
.sw-fwrap { position: relative; }
.sw-fic { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #C49A2E; display: flex; pointer-events: none; transition: color .2s ease; }
.sw-fic-top { top: 15px; transform: none; }
.field-light.sw-field-ico { padding-left: 43px; }
.sw-fwrap:focus-within .sw-fic { color: var(--accent-deep); }

/* ─── Step form (lead generator) ─────────────────────── */
@keyframes stepIn {
  from { opacity: 0; transform: translateX(28px); }
  to   { opacity: 1; transform: translateX(0); }
}
.step-in { animation: stepIn .45s cubic-bezier(.16,1,.3,1); }
@keyframes popIn { 0% { opacity:0; transform: scale(.8); } 60% { transform: scale(1.08); } 100% { opacity:1; transform: scale(1); } }
.pop-in { animation: popIn .5s cubic-bezier(.34,1.56,.64,1); }

.choice-tile { background: #fff; transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s ease, border-color .25s ease, background .25s ease; cursor: pointer; }
.choice-tile:hover { border-color: rgba(var(--accent-rgb), .55); transform: translateY(-3px); box-shadow: 0 14px 26px -16px rgba(20,23,28,.3); }
.choice-tile:active { transform: translateY(-1px) scale(.99); }
.choice-active { border-color: var(--accent) !important; background: rgba(var(--accent-rgb), .08) !important; box-shadow: 0 0 0 3px rgba(var(--accent-rgb), .2); }
.choice-tile img { transition: transform .3s cubic-bezier(.34,1.56,.64,1); }
.choice-tile:hover img { transform: scale(1.12) rotate(-5deg); }
@media (prefers-reduced-motion: reduce) { .step-in, .pop-in { animation: none !important; } }

/* ─── FAQ accordion ────────────────────────────────────── */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }

/* FAQ – nummerierte Reihen (Editorial-Stil, Marcel-Davia) */
.faq-list { position: relative; display: flex; flex-direction: column; border: none; border-radius: 0; background: none; padding: 0; }
.faq-list::before, .faq-list::after { content: none; }
.faq-item { border-top: 1px solid rgba(255,255,255,.10); }
.faq-item:first-child { border-top: none; }
.faq-head { display: flex; align-items: center; gap: .95rem; padding: 24px 4px; }
.faq-num { width: 30px; flex-shrink: 0; font-weight: 700; font-size: 13px; letter-spacing: .04em; color: rgba(255,255,255,.34); transition: color .3s ease; }
.faq-q { flex: 1; min-width: 0; font-weight: 800; font-size: 20px; line-height: 1.25; color: #fff; transition: color .3s ease; }
.faq-icon { flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--accent); transition: transform .35s cubic-bezier(.16,1,.3,1); }
.faq-item:hover .faq-q { color: var(--accent); }
.faq-item:hover .faq-num { color: rgba(184,92,56,.7); }
details[open] > summary .faq-icon { transform: rotate(45deg); }
details[open] > summary .faq-q, details[open] > summary .faq-num { color: var(--accent); }
.faq-body {
  margin: 0 4px 18px 44px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: rgba(255,255,255,.7);
  line-height: 1.7;
  font-size: 15.5px;
}
html { interpolate-size: allow-keywords; }

/* FAQ – Chip + CTA-Karte (linke Spalte) */
.faq-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .42rem .9rem .42rem .72rem; border-radius: 999px; background: rgba(184,92,56,.12); border: 1px solid rgba(184,92,56,.35); color: #B85C38; font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.faq-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); animation: sw-dot-pulse 1.8s ease-in-out infinite; }
.faq-cta { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 2rem; max-width: 470px; padding: 26px 26px 26px 30px; border-radius: 22px; background: linear-gradient(155deg,#1B2029 0%,#15181D 60%,#101317 100%); border: 1px solid rgba(184,92,56,.2); box-shadow: 0 24px 50px -28px rgba(0,0,0,.7); transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease; }
.faq-cta:hover { transform: translateY(-3px); border-color: rgba(184,92,56,.45); box-shadow: 0 30px 60px -26px rgba(0,0,0,.8); }
.faq-cta-label { font-family: 'Archivo', system-ui, sans-serif; font-weight: 800; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.faq-cta-title { font-weight: 800; font-size: 23px; color: #fff; line-height: 1.15; }
.faq-cta-sub { font-size: 14px; color: rgba(255,255,255,.55); }
.faq-cta-arrow { flex-shrink: 0; width: 60px; height: 60px; border-radius: 50%; background: var(--accent); color: #15181D; display: flex; align-items: center; justify-content: center; transition: transform .35s cubic-bezier(.16,1,.3,1); }
.faq-cta:hover .faq-cta-arrow { transform: rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .faq-dot, .faq-icon, .faq-cta-arrow { animation: none !important; transition: none !important; } }

/* Footer: alle Spalten oben buendig (Logo + Link-Spalten auf einer Linie) */
@media (min-width: 1024px) { .sw-fcol { margin-top: 0; } }
/* Footer: auf Desktop Spalten inhaltsbreit mit gleichen Abstaenden zwischen Leistungen/Navigation/Kontakt */
@media (min-width: 1024px) { .footer-grid { grid-template-columns: auto auto auto auto; justify-content: space-between; } }

/* ─── Decorative backgrounds ───────────────────────────── */
.bg-glow-tl { position: relative; }
.bg-glow-tl::before {
  content: ''; position: absolute; top: -15%; left: -8%; width: 46%; height: 60%;
  background: radial-gradient(ellipse, rgba(var(--accent-rgb), .12) 0%, transparent 70%);
  pointer-events: none; z-index: 0;
}
.bg-glow-br { position: relative; }
.bg-glow-br::before {
  content: ''; position: absolute; bottom: -18%; right: -8%; width: 48%; height: 62%;
  background: radial-gradient(ellipse, rgba(var(--accent-rgb), .10) 0%, transparent 70%);
  pointer-events: none; z-index: 0;
}
.bg-dots { background-image: radial-gradient(rgba(20,23,28,.05) 1px, transparent 1px); background-size: 26px 26px; }
.bg-dots-light { background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size: 26px 26px; }
.bg-grid-dark {
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 64px 64px;
}
.accent-line-top { position: relative; }
.accent-line-top::before {
  content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 96px; height: 4px; background: var(--accent); border-radius: 0 0 6px 6px;
}
.watermark { position: relative; overflow: hidden; }
.watermark::before {
  content: attr(data-watermark);
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-8deg);
  font-family: 'Archivo', sans-serif; font-size: clamp(5rem, 14vw, 13rem); font-weight: 700;
  color: rgba(20,23,28,.028); white-space: nowrap; pointer-events: none; z-index: 0; line-height: 1;
}

/* gradient text + animated underline */
.text-gradient { background: linear-gradient(100deg, var(--accent-deep), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nav-link { position: relative; }
.nav-link::after {
  content: ''; position: absolute; left: 0; bottom: -4px; height: 2px; width: 0; background: var(--accent);
  transition: width .3s cubic-bezier(.16,1,.3,1);
}
.nav-link:hover::after { width: 100%; }

/* highlight swoosh under hero word - bulletproof gradient (no z-index tricks) */
.swoosh {
  background-image: linear-gradient(180deg, transparent 60%, rgba(var(--accent-rgb), .85) 60%);
  padding: 0 .08em;
  border-radius: 3px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* scroll progress bar */
#scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--accent-deep), var(--accent)); z-index: 60;
  transition: width .1s linear;
}

/* sticky mobile call bar */
.mobile-callbar { box-shadow: 0 -8px 30px -10px rgba(0,0,0,.25); }

/* ===================== SW Photovoltaik cinematic hero ===================== */
/* Atzor-style header: transparent → glass pill on scroll */
.sw-navwrap { position:fixed; top:0; left:0; right:0; z-index:50; padding:12px 12px 0; transition:padding .55s cubic-bezier(.16,1,.3,1); }
@media (min-width:768px){ .sw-navwrap { padding:12px 20px 0; } }
@media (max-width:640px){ .sw-navwrap { padding:14px 12px 0; } }
.sw-navwrap.scrolled { padding:10px 16px 0; }
@media (max-width:640px){ .sw-navwrap.scrolled { padding:12px 12px 0; } }
.sw-navpill2 { max-width:80rem; margin:0 auto; border-radius:26px 26px 0 0; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; border:1px solid transparent; box-shadow:none; transition:all .55s cubic-bezier(.16,1,.3,1); }
.sw-navwrap.scrolled .sw-navpill2 { border-radius:24px; background:rgba(20,23,28,.55); backdrop-filter:blur(22px) saturate(1.4); -webkit-backdrop-filter:blur(22px) saturate(1.4); border:1px solid rgba(255,255,255,.1); box-shadow:0 8px 40px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.04); }
@media (max-width:640px){ .sw-navwrap.scrolled .sw-navpill2 { border-radius:28px; } body.nav-solid .sw-navpill2 { border-radius:28px; } }
.sw-navinner { height:78px; padding:0 16px 0 20px; display:flex; align-items:center; justify-content:space-between; gap:1rem; transition:height .4s cubic-bezier(.16,1,.3,1); }
.sw-navwrap.scrolled .sw-navinner { height:70px; }
.sw-navlogo { height:96px; width:auto; transition:height .4s cubic-bezier(.16,1,.3,1); }
.sw-navwrap.scrolled .sw-navlogo { height:96px; }
/* nav-solid: Seiten mit hellem Hero brauchen die solide Nav-Pille (sonst weißer Text auf hell) */
body.nav-solid .sw-navwrap { padding:10px 16px 0; }
body.nav-solid .sw-navpill2 { border-radius:24px; background:rgba(20,23,28,.82); backdrop-filter:blur(22px) saturate(1.4); -webkit-backdrop-filter:blur(22px) saturate(1.4); border:1px solid rgba(255,255,255,.1); box-shadow:0 8px 40px rgba(0,0,0,.22); }
body.nav-solid .sw-navinner { height:64px; }
body.nav-solid .sw-navlogo { height:96px; }   /* Logo überall gleich (Desktop) */
.sw-navlinks { justify-content:center; align-items:center; gap:2.25rem; }
.sw-navlink { position:relative; font-family:'Archivo',system-ui,sans-serif; font-weight:600; font-size:16px; color:rgba(255,255,255,.82); transition:color .25s; padding:4px 0; }
.sw-navlink::after { display:none; }
.sw-navlink:hover { color:#fff; }
.sw-navlink.active { color:#fff; }
.sw-navlink.active:hover { color:#fff; }
.sw-navlink.active::after { display:none; }
/* Leistungen-Dropdown (Desktop, Hover) */
.sw-navitem { position:relative; display:inline-flex; align-items:center; }
.sw-navlink--has { display:inline-flex; align-items:center; gap:4px; cursor:pointer; }
.sw-caret { transition:transform .25s ease; opacity:.65; }
.sw-navitem:hover .sw-caret { transform:rotate(180deg); }
.sw-dropdown { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(12px) scale(.98); transform-origin:top center; width:330px; padding:9px; border-radius:20px; background:linear-gradient(180deg, rgba(30,34,43,.98) 0%, rgba(17,20,26,.98) 100%); backdrop-filter:blur(22px) saturate(1.4); -webkit-backdrop-filter:blur(22px) saturate(1.4); border:1px solid rgba(255,255,255,.1); box-shadow:0 34px 80px -26px rgba(0,0,0,.85), 0 0 0 1px rgba(184,92,56,.05), inset 0 1px 0 rgba(255,255,255,.07); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .16s ease, transform .2s cubic-bezier(.16,1,.3,1), visibility 0s linear .16s; z-index:60; overflow:hidden; }
.sw-dropdown::before { content:''; position:absolute; top:-36px; left:-30px; right:-30px; height:40px; }
.sw-navitem { padding-bottom:22px; margin-bottom:-22px; }
.sw-navitem::after { content:''; position:absolute; left:-14px; right:-14px; top:100%; height:24px; pointer-events:none; }
.sw-navitem:hover::after, .sw-navitem:focus-within::after { pointer-events:auto; }
.sw-dropdown::after { content:''; position:absolute; top:-45%; left:-25%; width:260px; height:260px; background:radial-gradient(circle, rgba(184,92,56,.18) 0%, transparent 68%); pointer-events:none; }
.sw-navitem:hover .sw-dropdown, .sw-navitem:focus-within .sw-dropdown { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(6px) scale(1); transition: opacity .22s ease, transform .26s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s; }
.sw-dd-head { position:relative; z-index:1; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:rgba(184,92,56,.9); padding:8px 12px 10px; }
.sw-dd-item { position:relative; z-index:1; display:flex; align-items:center; gap:.85rem; padding:.6rem .65rem; border-radius:14px; transition:background .18s ease; }
.sw-dd-item::after { display:none; }
.sw-dd-item:hover { background:rgba(184,92,56,.1); }
.sw-dd-ico { width:40px; height:40px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.06); color:#B85C38; border:1px solid rgba(255,255,255,.09); transition:transform .22s cubic-bezier(.16,1,.3,1), background .22s ease, color .22s ease, box-shadow .22s ease, border-color .22s ease; }
.sw-dd-item:hover .sw-dd-ico { background:linear-gradient(180deg,#C9714A 0%,#B85C38 100%); color:#FFFFFF; border-color:transparent; box-shadow:0 10px 22px -7px rgba(184,92,56,.65); transform:translateY(-2px) rotate(-3deg); }
.sw-dd-tx { display:flex; flex-direction:column; min-width:0; flex:1; }
.sw-dd-tt { font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:15px; color:#fff; line-height:1.2; transition:color .18s ease; }
.sw-dd-item:hover .sw-dd-tt { color:#B85C38; }
.sw-dd-sub { font-size:12px; color:rgba(255,255,255,.5); margin-top:2px; }
.sw-dd-arrow { color:#B85C38; opacity:0; transform:translateX(-7px); transition:opacity .2s ease, transform .2s cubic-bezier(.16,1,.3,1); flex-shrink:0; }
.sw-dd-item:hover .sw-dd-arrow { opacity:1; transform:translateX(0); }
.sw-dd-divider { position:relative; z-index:1; height:1px; margin:8px 12px; background:linear-gradient(90deg, transparent, rgba(255,255,255,.14), transparent); }
.sw-dd-all .sw-dd-tt { color:#B85C38; }
.sw-dd-all .sw-dd-ico { background:rgba(184,92,56,.14); color:#B85C38; border-color:rgba(184,92,56,.3); }
.sw-dd-all .sw-dd-arrow { opacity:1; transform:none; }
/* === Mobile Burger Button - Morph zu X === */
.sw-navburger { position:relative; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:12px; color:#fff; transition:background .2s; z-index:201; }
.sw-navburger:hover { background:rgba(255,255,255,.12); }
.sw-navburger svg { display:none; }
.sw-navburger span { position:absolute; left:11px; display:block; width:22px; height:2px; background:currentColor; border-radius:2px; transition:transform .45s cubic-bezier(.16,1,.3,1), opacity .25s ease, background .35s ease, width .35s ease; }
.sw-navburger span:nth-child(1) { top:14px; }
.sw-navburger span:nth-child(2) { top:21px; width:16px; }
.sw-navburger span:nth-child(3) { top:28px; width:18px; }
.sw-navburger.is-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); background:#B85C38; }
.sw-navburger.is-open span:nth-child(2) { opacity:0; transform:translateX(-8px); }
.sw-navburger.is-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); background:#B85C38; width:22px; }
@media (min-width:1024px){ .sw-navburger { display:none; } }

/* === Full-Screen Mobile Menu - Editorial Premium === */
.sw-mobilemenu { position:fixed; inset:0; z-index:198; background:linear-gradient(180deg,#14171C 0%,#0E1014 100%); opacity:0; visibility:hidden; transition:opacity .45s cubic-bezier(.16,1,.3,1), visibility 0s linear .45s; display:flex; flex-direction:column; padding:5.5rem 1.5rem 1.8rem; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; max-width:none; margin:0; border-radius:0; max-height:none; border:0; }
.sw-mobilemenu::before { content:''; position:absolute; top:0; left:0; right:0; height:80%; background:radial-gradient(ellipse 70% 55% at center top, rgba(184,92,56,.26) 0%, rgba(184,92,56,.06) 38%, transparent 68%); pointer-events:none; z-index:0; }
.sw-mobilemenu::after { content:''; position:absolute; bottom:0; left:0; right:0; height:50%; background:radial-gradient(ellipse 60% 70% at right bottom, rgba(184,92,56,.12) 0%, transparent 60%); pointer-events:none; z-index:0; }
.sw-mobilemenu.open { opacity:1; visibility:visible; transition:opacity .45s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s; }
.sw-mobilemenu > * { position:relative; z-index:1; }

.sw-mobile-eyebrow { font-family:'Archivo',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#B85C38; margin-bottom:1.4rem; display:inline-flex; align-items:center; gap:.5rem; opacity:0; transform:translateY(12px); transition:opacity .5s ease .1s, transform .5s cubic-bezier(.16,1,.3,1) .1s; }
.sw-mobile-eyebrow::before { content:''; width:6px; height:6px; border-radius:50%; background:#B85C38; box-shadow:0 0 0 0 rgba(184,92,56,.5); animation:sw-pulse 2s ease-out infinite; }
@keyframes sw-pulse { 0%{box-shadow:0 0 0 0 rgba(184,92,56,.5);} 70%{box-shadow:0 0 0 8px rgba(184,92,56,0);} 100%{box-shadow:0 0 0 0 rgba(184,92,56,0);} }
.sw-mobilemenu.open .sw-mobile-eyebrow { opacity:1; transform:translateY(0); }

.sw-mobile-links { display:flex; flex-direction:column; margin-bottom:auto; }

/* Top-Level Row (Direkt-Link ODER Accordion) */
.sw-mobile-row { position:relative; border-bottom:1px solid rgba(255,255,255,.08); transform:translateY(18px); opacity:0; transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .55s ease; }
.sw-mobilemenu.open .sw-mobile-row { transform:translateY(0); opacity:1; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(1) { transition-delay:.14s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(2) { transition-delay:.20s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(3) { transition-delay:.26s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(4) { transition-delay:.32s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(5) { transition-delay:.38s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(6) { transition-delay:.44s; }
.sw-mobilemenu.open .sw-mobile-row:nth-child(7) { transition-delay:.50s; }

/* Direkt-Link (kein Sub) */
a.sw-mobilelink.sw-mobile-row { position:relative; display:flex; align-items:center; justify-content:space-between; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.85rem; letter-spacing:-.02em; line-height:1; color:rgba(255,255,255,.94); padding:.95rem 0; border-bottom:1px solid rgba(255,255,255,.08); transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .55s ease, color .25s ease; }
a.sw-mobilelink.sw-mobile-row::after { content:''; position:absolute; left:0; bottom:-1px; height:2px; width:0; background:linear-gradient(90deg,#C9714A,#B85C38); transition:width .35s cubic-bezier(.16,1,.3,1); }
a.sw-mobilelink.sw-mobile-row:hover, a.sw-mobilelink.sw-mobile-row:focus { color:#B85C38; }
a.sw-mobilelink.sw-mobile-row:hover::after, a.sw-mobilelink.sw-mobile-row:focus::after { width:40%; }

/* Accordion (Item mit Sub-Items) */
.sw-mobile-acc { background:transparent; }
.sw-mobile-acc summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; padding:.95rem 0; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.85rem; letter-spacing:-.02em; line-height:1; color:rgba(255,255,255,.94); transition:color .25s ease; }
.sw-mobile-acc summary::-webkit-details-marker { display:none; }
.sw-mobile-acc summary:hover { color:#B85C38; }
.sw-mobile-acc__lbl { display:inline-block; }
.sw-mobile-acc__ico { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:rgba(184,92,56,.1); border:1px solid rgba(184,92,56,.25); color:#B85C38; flex-shrink:0; transition:transform .4s cubic-bezier(.16,1,.3,1), background .25s ease, border-color .25s ease; }
.sw-mobile-acc[open] .sw-mobile-acc__ico { transform:rotate(180deg); background:linear-gradient(180deg,#C9714A,#B85C38); border-color:transparent; color:#FFFFFF; box-shadow:0 8px 20px -8px rgba(184,92,56,.55); }
.sw-mobile-acc__body { overflow:hidden; padding:0 0 1rem 0; display:flex; flex-direction:column; gap:.1rem; animation:sw-acc-in .35s cubic-bezier(.16,1,.3,1); }
@keyframes sw-acc-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }

/* Sub-Items im Accordion */
.sw-mobilelink--sub { position:relative; display:block; font-family:'Inter',sans-serif; font-size:1.02rem; font-weight:500; color:rgba(255,255,255,.62); padding:.55rem 0 .55rem 1.4rem; letter-spacing:0; line-height:1.35; transition:color .25s ease, transform .25s ease; }
.sw-mobilelink--sub::before { content:''; position:absolute; left:0; top:50%; width:6px; height:6px; border-radius:50%; background:#B85C38; transform:translateY(-50%); opacity:.55; transition:opacity .25s ease, transform .25s ease; }
.sw-mobilelink--sub:hover { color:#fff; transform:translateX(3px); }
.sw-mobilelink--sub:hover::before { opacity:1; transform:translateY(-50%) scale(1.4); }

.sw-mobile-foot { margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.08); opacity:0; transform:translateY(14px); transition:opacity .55s ease .55s, transform .55s cubic-bezier(.16,1,.3,1) .55s; }
.sw-mobilemenu.open .sw-mobile-foot { opacity:1; transform:translateY(0); }
.sw-mobile-btns { display:flex; gap:.7rem; margin-bottom:1.3rem; }
.sw-mobile-btn { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:1rem 1rem; border-radius:999px; font-family:'Archivo',sans-serif; font-weight:800; font-size:.92rem; transition:transform .25s ease, box-shadow .25s ease; }
.sw-mobile-btn--primary { background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; box-shadow:0 14px 32px -12px rgba(184,92,56,.5); }
.sw-mobile-btn--primary:hover { transform:translateY(-2px); }
.sw-mobile-btn--ghost { background:rgba(255,255,255,.06); color:#fff; border:1px solid rgba(255,255,255,.14); }
.sw-mobile-btn--ghost:hover { background:rgba(255,255,255,.1); border-color:rgba(184,92,56,.4); }
.sw-mobile-meta { display:flex; flex-direction:column; gap:.45rem; font-family:'Inter',sans-serif; font-size:12.5px; color:rgba(255,255,255,.55); line-height:1.4; }
.sw-mobile-meta__row { display:flex; align-items:center; gap:.55rem; }
.sw-mobile-meta__row svg { color:#B85C38; flex-shrink:0; }
.sw-nav-cta { align-items:center; gap:.6rem; background:var(--accent); color:#fff; border-radius:999px; padding:.5rem .5rem .5rem 1.4rem; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:16px; line-height:1; transition:transform .25s, box-shadow .25s; }
.sw-nav-cta:hover { transform:translateY(-1px); box-shadow:0 10px 26px -12px rgba(184,92,56,.6); }
.sw-nav-cta i { width:2.05rem; height:2.05rem; border-radius:999px; background:#fff; color:var(--accent); display:flex; align-items:center; justify-content:center; font-style:normal; }

.sw-hero { position:relative; background:#2A2E36; }
.sw-hero__card { position:relative; display:flex; flex-direction:column; overflow:hidden; background:#2A2E36; }
.sw-hero__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.sw-hero__veil { position:absolute; inset:0; pointer-events:none; }
.sw-hero__veil--v { background:linear-gradient(180deg, rgba(12,15,19,.45) 0%, rgba(12,15,19,.16) 32%, rgba(12,15,19,.34) 64%, rgba(12,15,19,.78) 100%); }
.sw-hero__veil--h { background:linear-gradient(90deg, rgba(12,15,19,.82) 0%, rgba(12,15,19,.34) 46%, rgba(12,15,19,.05) 100%); }
/* Dunkel-Layer hinter dem Text (links/unten) -> Text klar im Vordergrund, Sonne bleibt sichtbar */
.sw-hero__veil--scrim { background:radial-gradient(118% 95% at 25% 80%, rgba(10,12,16,.46) 0%, rgba(10,12,16,.18) 48%, rgba(10,12,16,0) 76%); }
.sw-hero__inner { position:relative; z-index:2; flex:1; display:flex; flex-direction:column; justify-content:flex-end; width:100%; max-width:80rem; margin:0 auto; padding:5rem 1.25rem 2rem; }
@media (min-width:768px){ .sw-hero__inner { padding:9.5rem 2rem 2rem; } }
@media (min-width:1024px){ .sw-hero__inner { justify-content:center; padding-top:8rem; padding-bottom:3.5rem; } }
.sw-hero__title { font-family:'Archivo',system-ui,sans-serif; font-weight:900; line-height:.84; letter-spacing:-.045em; color:#fff; font-size:clamp(2.8rem,11.5vw,9.3rem); text-shadow:0 2px 40px rgba(0,0,0,.35); margin-left:-.85rem; margin-top:3rem; }
.sw-hero__title .accent { color:#B85C38; }
.sw-hero__spacer { flex:0 0 auto; height:0.4rem; }
.sw-hero__bottom { display:grid; grid-template-columns:1fr; gap:2.25rem; align-items:center; }
@media (min-width:1024px){ .sw-hero__bottom { grid-template-columns:1fr 34rem; gap:3rem; align-items:center; } }
.sw-pill { display:inline-flex; align-items:center; gap:.6rem; padding:.5rem 1rem; border-radius:999px; background:rgba(255,255,255,.1); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.2); }
.sw-pill .t { color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.16em; }
.sw-pill .d { width:5px; height:5px; border-radius:999px; background:var(--accent); }
.sw-hero__sub { font-family:'Archivo',system-ui,sans-serif; font-weight:900; color:#fff; font-size:clamp(2.4rem,4.75vw,3.85rem); line-height:1.06; letter-spacing:-.03em; margin:1rem 0 1rem; text-shadow:0 2px 30px rgba(0,0,0,.35); }
.hero-badge { display:inline-flex; align-items:center; gap:.6rem; padding:.4rem 1.1rem .4rem .4rem; border-radius:999px; background:rgba(22,26,31,.55); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.18); box-shadow:0 10px 30px -14px rgba(0,0,0,.6); margin-bottom:.4rem; }
.hero-badge__ic { width:2rem; height:2rem; border-radius:999px; background:linear-gradient(180deg, var(--accent), #9d4a2c); color:#fff; display:flex; align-items:center; justify-content:center; flex:none; box-shadow:0 5px 14px -5px rgba(184,92,56,.75); }
.hero-badge__t { font-family:'Archivo',system-ui,sans-serif; font-weight:600; color:rgba(255,255,255,.92); font-size:.94rem; letter-spacing:.005em; white-space:nowrap; }
.hero-badge__t b { font-weight:800; color:#fff; }
.sw-cta-row { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.sw-cta { display:inline-flex; align-items:center; gap:.7rem; background:#fff; color:var(--ink); border-radius:999px; padding:.95rem .95rem .95rem 2.1rem; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:1.22rem; transition:transform .25s, box-shadow .25s; }
.sw-cta:hover { transform:translateY(-2px); box-shadow:0 16px 38px -14px rgba(0,0,0,.6); }
.sw-cta__ico { width:2.65rem; height:2.65rem; border-radius:999px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; }
.sw-cta-ghost { display:inline-flex; align-items:center; gap:.65rem; padding:1.08rem 1.9rem; border-radius:999px; border:1px solid rgba(255,255,255,.4); color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:1.22rem; line-height:1; transition:background .25s, border-color .25s, transform .25s; }
.sw-cta-ghost:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.6); transform:translateY(-2px); }
.sw-cards { display:flex; flex-wrap:wrap; gap:.7rem; align-items:stretch; }
@media (min-width:1024px){ .sw-cards { justify-content:flex-end; } }
.sw-card { background:rgba(22,26,31,.66); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.13); border-radius:1.1rem; padding:1.05rem 1.2rem; display:flex; flex-direction:column; justify-content:center; min-width:9.2rem; }
.sw-card__b { font-family:'Archivo',system-ui,sans-serif; font-weight:900; color:#fff; font-size:1.9rem; line-height:1; }
.sw-card__s { color:rgba(255,255,255,.6); font-size:12px; font-weight:600; line-height:1.3; margin-top:.4rem; }
.sw-card--img { position:relative; padding:0; overflow:hidden; min-width:10rem; max-width:13rem; }
.sw-card--img img { width:100%; height:100%; object-fit:cover; min-height:8.5rem; }
.sw-neu { position:absolute; top:.55rem; left:.55rem; background:var(--accent); color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:10px; text-transform:uppercase; letter-spacing:.08em; padding:.16rem .55rem; border-radius:999px; }
.sw-card__cap { position:absolute; inset-inline:0; bottom:0; padding:.7rem .8rem; background:linear-gradient(to top, rgba(0,0,0,.88), transparent); }
.sw-card__cap b { display:block; color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:12.5px; line-height:1.15; }
.sw-card__cap span { display:block; color:rgba(255,255,255,.72); font-size:10.5px; margin-top:.15rem; }
@media (max-width:640px){
  .sw-hero__sub { font-size:1.9rem; }
  .sw-cards { width:100%; }
  .sw-founder { max-width:100%; }
}

/* ─── Inhaber-Karte im Hero (Glas) ─── */
.sw-hero__right { display:flex; flex-direction:column; gap:1rem; align-items:stretch; }
@media (min-width:1024px){ .sw-hero__right { align-items:flex-end; } }
.sw-founder {
  width:100%; max-width:36rem; border-radius:1.6rem; overflow:visible;
  background:transparent; border:none; box-shadow:0 30px 70px -30px rgba(0,0,0,.7);
}
.sw-founder__top {
  position:relative; height:31rem; overflow:hidden; display:flex; align-items:flex-end; justify-content:center;
  border-radius:1.6rem;
  background:radial-gradient(120% 95% at 72% 0%, rgba(var(--accent-rgb),.30), transparent 58%), linear-gradient(180deg,#1c2128,#12151a);
  padding:0 .6rem 0;
}
.sw-founder__top img { max-height:100%; max-width:100%; width:auto; height:auto; object-fit:contain; object-position:center bottom; position:relative; z-index:2; filter:drop-shadow(0 16px 28px rgba(0,0,0,.55)); }
.sw-founder__body { position:relative; z-index:4; margin:-8.5rem .9rem .9rem; padding:1.2rem 1.45rem 1.35rem; text-align:left; background:linear-gradient(180deg, rgba(38,34,30,.30), rgba(18,16,15,.40)); backdrop-filter:blur(26px) saturate(1.3); -webkit-backdrop-filter:blur(26px) saturate(1.3); border:1px solid rgba(255,255,255,.18); border-radius:1.35rem; box-shadow:0 24px 54px -26px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.08); }
.sw-founder__name { font-family:'Archivo',system-ui,sans-serif; font-weight:800; color:#fff; font-size:1.45rem; line-height:1.05; letter-spacing:-.015em; }
.sw-founder__role { color:rgba(255,255,255,.6); font-size:13px; margin-top:.4rem; font-weight:600; }
.sw-founder__stats { display:flex; gap:1rem; margin-top:1.15rem; padding-top:1.2rem; justify-content:space-between; border-top:1px solid rgba(255,255,255,.1); }
.sw-founder__stat { text-align:center; }
.sw-founder__stat .n { font-family:'Archivo',system-ui,sans-serif; font-weight:800; color:var(--accent); font-size:1.28rem; line-height:1; }
.sw-founder__stat .l { color:rgba(255,255,255,.5); font-size:10px; text-transform:uppercase; letter-spacing:.06em; margin-top:.42rem; font-weight:700; }
.sw-founder__rev { display:flex; align-items:center; gap:.5rem; margin-top:1.15rem; padding-top:1.05rem; border-top:1px solid rgba(255,255,255,.1); }
.sw-founder__gicon { flex:none; }
.sw-founder__score { color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:1.15rem; }
.sw-founder__based { color:rgba(255,255,255,.5); font-size:11px; margin-left:auto; }

/* Hero: linke + rechte Spalte vertikal zentriert, rechte Spalte = Karten-Breite */
@media (min-width:1024px){
  .sw-hero__bottom { align-items:center; }
  .sw-hero__right { max-width:36rem; margin-top:6rem; }
  .sw-hero__left { margin-top:0; align-self:center; }
}
.sw-hero__left { align-self:center; }
.sw-hero__left .sw-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; width:100%; max-width:36rem; margin-top:1.75rem; }
.sw-hero__left .sw-card { min-width:0; padding:1rem 1rem; }
.sw-hero__left .sw-card__b { font-size:1.55rem; }
.sw-hero__left .sw-card__s { font-size:11px; margin-top:.35rem; }
.sw-hero__left .sw-card--img { min-width:0; max-width:none; height:6.25rem; }
.sw-hero__left .sw-card--img img { min-height:0; height:100%; }

/* Mobile: Inhaber-Karte naeher an die 4 cards + hero kuerzer (nach inhaberkarte schnell zur naechsten section) */
@media (max-width:640px){
  .sw-hero__inner { padding-bottom:2rem !important; }
  .sw-hero__bottom { gap:1.5rem; }
  .sw-hero__right { margin-top:4rem !important; }
  .sw-founder__top { height:19rem; position:relative; padding:0 .5rem 0; align-items:flex-end !important; }
  .sw-founder__top img { max-height:100% !important; max-width:100% !important; width:auto !important; height:auto !important; object-fit:contain !important; object-position:center bottom !important; position:relative !important; bottom:auto !important; left:auto !important; transform:none !important; }
  .sw-founder__body { padding:1.5rem 1.25rem 1.2rem; }
}


/* ===================== Segments (Privat / Gewerbe) - fresh ===================== */
.seg-section { padding-top:4.5rem; padding-bottom:4.5rem; background:#fff; }
@media (min-width:768px){ .seg-section { padding-top:6rem; padding-bottom:6rem; } }
.seg-head { text-align:center; max-width:42rem; margin:0 auto 2.75rem; }
.seg-eyebrow { display:block; color:var(--accent-deep); font-family:'Archivo',system-ui,sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.16em; font-size:12px; margin-bottom:.6rem; }
.seg-title { font-family:'Archivo',system-ui,sans-serif; font-weight:900; color:var(--ink); font-size:clamp(1.95rem,4.2vw,2.85rem); line-height:1.04; letter-spacing:-.035em; }
.seg-amp { color:var(--accent); font-weight:900; }
.seg-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:768px){ .seg-grid { grid-template-columns:1fr 1fr; gap:1.75rem; } }
.seg-card { position:relative; background:#fff; border:1px solid rgba(20,23,28,.08); border-radius:22px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 4px 20px -14px rgba(20,23,28,.3); transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, border-color .45s ease, opacity .45s ease, filter .45s ease; will-change:transform; }
.seg-card__media { position:relative; height:200px; overflow:hidden; }
.seg-card__img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.seg-card__icon { position:absolute; left:1.5rem; top:1.5rem; width:2.9rem; height:2.9rem; border-radius:14px; background:var(--accent); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 26px -8px rgba(var(--accent-rgb),.6); transition:transform .45s cubic-bezier(.16,1,.3,1); z-index:2; }
.seg-card__body { padding:1.75rem; flex:1; display:flex; flex-direction:column; }
.seg-card__title { font-family:'Archivo',system-ui,sans-serif; font-weight:700; color:var(--ink); font-size:1.4rem; margin-bottom:.55rem; letter-spacing:-.01em; }
.seg-card__desc { color:var(--body); font-size:14.5px; line-height:1.6; margin-bottom:1.05rem; }
.seg-card__list { display:flex; flex-direction:column; gap:.6rem; margin-bottom:1.4rem; }
.seg-card__li { display:flex; align-items:flex-start; gap:.6rem; color:var(--ink); font-size:14.5px; font-weight:500; }
.seg-card__check { color:var(--accent-deep); margin-top:.08rem; flex-shrink:0; display:inline-flex; }
.seg-card__link { margin-top:auto; display:inline-flex; align-items:center; gap:.5rem; color:var(--accent-deep); font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:14.5px; transition:gap .3s ease; }
.seg-card__link svg { transition:transform .3s ease; }
.seg-card:hover { transform:translateY(-10px) scale(1.015); box-shadow:0 32px 64px -28px rgba(20,23,28,.45); border-color:rgba(var(--accent-rgb),.55); }
.seg-card:hover .seg-card__img { transform:scale(1.07); }
.seg-card:hover .seg-card__icon { transform:translateY(-4px) scale(1.06); }
.seg-card:hover .seg-card__link { gap:.85rem; }
.seg-card:hover .seg-card__link svg { transform:translateX(3px); }
.seg-grid:hover .seg-card:not(:hover) { opacity:.55; transform:scale(.97); filter:saturate(.82); }
@media (max-width:767px){ .seg-grid:hover .seg-card:not(:hover) { opacity:1; transform:none; filter:none; } }

/* ===================== Spotlight-Hover (Focus & Dim) - reusable ===================== */
.spot-item { position:relative; }
.spot .spot-item { transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, opacity .45s ease, filter .45s ease !important; }
.spot-item img { transition:transform .7s cubic-bezier(.16,1,.3,1); }
.spot-item:hover { transform:translateY(-6px) scale(1.02); box-shadow:0 30px 60px -32px rgba(20,23,28,.4); z-index:3; }
.spot-item:hover img { transform:scale(1.04); }
.spot:hover .spot-item:not(:hover) { opacity:.78; transform:scale(.985); filter:saturate(.9) brightness(.97); }
@media (max-width:767px){ .spot:hover .spot-item:not(:hover) { opacity:1; transform:none; filter:none; } }

/* ===================== About-Textblock im Rahmen ===================== */
.sw-frame { border:1px solid rgba(20,23,28,.12); border-radius:26px; padding:2rem; background:#fff; box-shadow:0 24px 60px -38px rgba(20,23,28,.4); }
@media (min-width:768px){ .sw-frame { padding:2.75rem; } }

/* ===================== About: Bild + Rahmen gleiche Höhe ===================== */
.about-grid { align-items:start; }
/* Inhaber- + Google-Bewertungs-Karte: Desktop 2-spaltig, Handy gestapelt (sonst Overlap) */
.about-cards { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; margin-top:1.4rem; align-items:stretch; }
@media (max-width:640px){ .about-cards { grid-template-columns:1fr; } }
@media (min-width:1024px){
  .about-grid { align-items:stretch; }
  .about-grid .reveal-left { height:100%; }
  .about-grid .about-media { height:100%; position:relative; min-height:0; }
  .about-grid .about-media img { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; object-fit:contain !important; object-position:center bottom !important; }
}

/* ===================== About-Rahmen kompakter ===================== */
.sw-frame { padding:1.4rem 1.55rem; }
@media (min-width:768px){ .sw-frame { padding:1.7rem 1.9rem; } }
.sw-frame h2 { font-size:1.75rem !important; line-height:1.15 !important; margin-bottom:.75rem !important; }
.sw-frame .space-y-4 p { font-size:14px !important; line-height:1.55 !important; }
.sw-frame .mt-7 { margin-top:1.05rem !important; }
.sw-frame .grid.grid-cols-3 .text-2xl { font-size:1.55rem !important; }


/* === Kontakt linke Spalte === */
.sw-kontakt-chip { display:inline-flex; align-items:center; gap:.5rem; padding:.42rem .9rem .42rem .72rem; border-radius:999px; background:rgba(184,92,56,.13); border:1px solid rgba(184,92,56,.4); color:#8A5E00; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.sw-cdot { width:7px; height:7px; border-radius:50%; background:var(--accent); animation:sw-dot-pulse 1.8s ease-in-out infinite; }
@keyframes sw-dot-pulse { 0%{ box-shadow:0 0 0 0 rgba(184,92,56,.55);} 70%{ box-shadow:0 0 0 8px rgba(184,92,56,0);} 100%{ box-shadow:0 0 0 0 rgba(184,92,56,0);} }

.sw-contact-wrap { display:flex; align-items:center; gap:1.5rem; }
.sw-contact-cards { display:flex; flex-direction:column; gap:.85rem; flex:1; min-width:0; }
.sw-contact-card { display:flex; align-items:center; gap:1rem; padding:.95rem 1.05rem; border-radius:16px; background:#fff; border:1px solid rgba(20,23,28,.08); box-shadow:0 12px 30px -24px rgba(20,23,28,.5); transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease; }
.sw-contact-card:hover { transform:translateY(-3px); border-color:rgba(184,92,56,.55); box-shadow:0 22px 42px -26px rgba(184,92,56,.55); }
.sw-contact-ico { width:46px; height:46px; border-radius:13px; background:linear-gradient(145deg,#C9714A 0%,#B85C38 100%); color:#FFFFFF; display:flex; align-items:center; justify-content:center; flex-shrink:0; box-shadow:0 8px 16px -7px rgba(184,92,56,.75); }
.sw-contact-label { display:block; color:#8A929C; font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:600; margin-bottom:1px; }
.sw-contact-value { display:block; color:#14171C; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:16px; line-height:1.2; transition:color .25s; }
.sw-contact-card:hover .sw-contact-value { color:var(--accent-deep); }
.sw-contact-go { margin-left:auto; color:#CBC4BA; display:flex; align-items:center; transition:transform .35s cubic-bezier(.16,1,.3,1), color .35s ease; }
.sw-contact-card:hover .sw-contact-go { color:var(--accent); transform:translateX(4px); }

.sw-contact-arrow { display:none; flex-direction:column; align-items:center; gap:.4rem; flex-shrink:0; }
.sw-contact-arrow-label { font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-deep); }
.sw-contact-arrow-svg { animation:sw-arrow-nudge 1.3s ease-in-out infinite; filter:drop-shadow(0 4px 8px rgba(184,92,56,.45)); }
@keyframes sw-arrow-nudge { 0%,100%{ transform:translateX(0);} 50%{ transform:translateX(12px);} }
@media (min-width:1024px) { .sw-contact-arrow { display:flex; } }
@media (prefers-reduced-motion: reduce) { .sw-cdot, .sw-contact-arrow-svg { animation:none !important; } }


/* === Anfrage Foto-Kacheln === */
.sw-qtile { position:relative; min-height:112px; border-radius:17px; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding:11px 9px 13px; cursor:pointer; isolation:isolate; background-size:cover; background-position:center; box-shadow:0 12px 28px -18px rgba(20,16,2,.55); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease; }
.sw-qtile::before { content:""; position:absolute; inset:-10%; background-image:inherit; background-size:cover; background-position:center; filter:blur(1.1px) saturate(1.08); transform:scale(1.06); z-index:-2; }
.sw-qtile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,16,2,0.02) 0%,rgba(20,16,2,0.22) 50%,rgba(20,16,2,0.72) 100%); z-index:-1; transition:background .3s ease; }
.sw-qtile-ic { color:#fff; margin-bottom:5px; display:flex; }
.sw-qtile-ic svg { width:22px; height:22px; filter:drop-shadow(0 2px 7px rgba(0,0,0,.55)); }
.sw-qtile-lb { color:#fff; font-family:'Archivo',system-ui,sans-serif; font-weight:700; font-size:13px; text-align:center; line-height:1.15; letter-spacing:-.01em; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.sw-qtile:hover { transform:translateY(-5px); box-shadow:0 26px 46px -22px rgba(20,16,2,.7); }
.sw-qtile:hover::before { transform:scale(1.13); }
.sw-qtile-active { outline:3px solid var(--accent); outline-offset:-3px; }
.sw-qtile-active::after { background:linear-gradient(180deg,rgba(184,92,56,0.18) 0%,rgba(20,16,2,0.45) 50%,rgba(20,16,2,0.85) 100%); }
.sw-qtile-active .sw-qtile-ic { color:var(--accent); }

.sw-qtile-wide { border-radius:16px; border:1px dashed rgba(20,23,28,.22); background:#fff; padding:15px; text-align:center; font-family:'Archivo',system-ui,sans-serif; font-weight:600; font-size:14px; color:#525A64; cursor:pointer; transition:border-color .25s ease, color .25s ease, background .25s ease; }
.sw-qtile-wide:hover { border-color:var(--accent); color:var(--accent-deep); }
.sw-qtile-wide.sw-qtile-active { border-style:solid; border-color:var(--accent); color:var(--accent-deep); background:rgba(184,92,56,.08); outline:none; }
@media (prefers-reduced-motion: reduce){ .sw-qtile, .sw-qtile::before { transition:none !important; } }


/* === Anfrage Erfolg-Animation === */
.sw-success-badge { position:relative; width:96px; height:96px; margin:0 auto 22px; }
.sw-suc-ring { position:absolute; inset:0; border-radius:50%; background:radial-gradient(circle, rgba(184,92,56,.4), rgba(184,92,56,0) 70%); animation:sw-suc-ring 1.9s ease-out infinite; }
@keyframes sw-suc-ring { 0%{transform:scale(.55);opacity:.75} 70%{opacity:0} 100%{transform:scale(1.7);opacity:0} }
.sw-suc-disc { position:absolute; inset:14px; border-radius:50%; background:linear-gradient(145deg,#C9714A,#B85C38); display:flex; align-items:center; justify-content:center; box-shadow:0 16px 32px -10px rgba(184,92,56,.75); animation:sw-suc-pop .6s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes sw-suc-pop { 0%{transform:scale(0) rotate(-25deg)} 100%{transform:scale(1) rotate(0)} }
.sw-check-svg path { stroke-dasharray:30; stroke-dashoffset:30; animation:sw-check-draw .45s .35s ease forwards; }
@keyframes sw-check-draw { to{ stroke-dashoffset:0 } }
.sw-suc-rise { opacity:0; transform:translateY(14px); animation:sw-suc-rise .55s ease forwards; }
@keyframes sw-suc-rise { to{ opacity:1; transform:none } }
.sw-confetti { position:absolute; top:48px; left:50%; width:0; height:0; pointer-events:none; }
.sw-confetti i { position:absolute; width:9px; height:9px; border-radius:2px; opacity:0; animation:sw-conf 1.05s ease-out forwards; }
@keyframes sw-conf { 0%{opacity:1; transform:translate(0,0) rotate(0) scale(1)} 100%{opacity:0; transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.35)} }
@media (prefers-reduced-motion: reduce){ .sw-suc-ring,.sw-confetti i,.sw-check-svg path,.sw-suc-disc,.sw-suc-rise{ animation:none !important; opacity:1 !important; transform:none !important; stroke-dashoffset:0 !important } }


/* === Glas-Chip (helle Sections) === */
.sw-glass-chip { display:inline-flex; align-items:center; gap:.5rem; padding:.42rem .9rem .42rem .72rem; border-radius:999px; background:rgba(184,92,56,.10); border:1px solid rgba(184,92,56,.38); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); color:#141C1E; font-family:'Archivo',system-ui,sans-serif; font-weight:800; font-size:11px; letter-spacing:.16em; text-transform:uppercase; box-shadow:0 6px 18px -10px rgba(184,92,56,.5); }


/* FAQ – normale Section, kein Sticky/100vh-Scroll mehr */
.faq-left { padding-left: 0; }


/* ─── Lead-Quiz „Antwort-Karussell" ─────────────────────── */
.lq-card { position:relative; max-width:none; margin:0; border-radius:0; overflow:hidden; border:0; border-bottom:0; background:#2A2E36; }
.lq-grid { display:grid; grid-template-columns:380px 1fr; min-height:0; }
@media (max-width:1023px){ .lq-grid { grid-template-columns:1fr; min-height:0; } }

.lq-rail { position:relative; overflow:hidden; background:#23272F; color:#fff; padding:2.4rem 2rem 2rem; display:flex; flex-direction:column; }
.lq-rail::before { content:""; position:absolute; top:-10%; left:-25%; width:80%; height:42%; pointer-events:none; background:radial-gradient(ellipse, rgba(184,92,56,0.22) 0%, transparent 70%); }
@media (max-width:1023px){ .lq-rail { display:none; } }
.lq-logo { font-family:'Archivo',sans-serif; font-weight:900; font-size:1.7rem; letter-spacing:-0.02em; margin-bottom:1.6rem; position:relative; z-index:1; }
.lq-steps { display:flex; flex-direction:column; position:relative; z-index:1; margin-bottom:1.4rem; }
.lq-step { display:flex; align-items:center; gap:1.05rem; padding:0.95rem 0; position:relative; font-family:'Archivo',sans-serif; font-weight:600; font-size:19px; color:rgba(255,255,255,0.5); transition:color .3s ease; }
.lq-step:not(:last-child)::after { content:""; position:absolute; left:19px; top:52px; bottom:-20px; width:2px; background:rgba(255,255,255,0.1); }
.lq-step.is-done:not(:last-child)::after { background:rgba(184,92,56,0.4); }
.lq-step.is-active { color:#fff; }
.lq-step.is-done { color:rgba(255,255,255,0.78); }
.lq-step__dot { width:40px; height:40px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; border:1.5px solid rgba(255,255,255,0.2); color:rgba(255,255,255,0.5); background:#23272F; position:relative; z-index:1; transition:all .3s cubic-bezier(.16,1,.3,1); }
.lq-step.is-active .lq-step__dot { background:#B85C38; border-color:#B85C38; color:#FFFFFF; box-shadow:0 0 0 5px rgba(184,92,56,0.16); }
.lq-step.is-done .lq-step__dot { background:rgba(184,92,56,0.16); border-color:rgba(184,92,56,0.55); color:#B85C38; }
.lq-google { margin-top:auto; display:flex; align-items:center; gap:0.9rem; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:16px; padding:1.05rem 1.2rem; position:relative; z-index:1; }
.lq-gicon { width:44px; height:44px; border-radius:11px; background:#fff; color:#4285F4; font-family:'Archivo',sans-serif; font-weight:900; font-size:24px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }

.lq-main { padding:2.4rem 1.6rem; display:flex; flex-direction:column; justify-content:center; }
@media (min-width:768px){ .lq-main { padding:3rem 3.4rem; } }
@media (min-width:1280px){ .lq-main { padding:3.4rem 4.5rem; } }
.lq-badge { align-self:flex-start; display:inline-block; background:rgba(184,92,56,0.16); color:#B85C38; font-family:'Archivo',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; font-size:11px; padding:0.45rem 0.85rem; border-radius:999px; margin-bottom:1rem; }
.lq-mobprog { display:none; }
@media (max-width:1023px){ .lq-mobprog { display:block; height:5px; border-radius:999px; background:rgba(255,255,255,0.14); overflow:hidden; margin:0 0 1.1rem; } .lq-mobprog > span { display:block; height:100%; background:#B85C38; transition:width .4s cubic-bezier(.16,1,.3,1); } }
.lq-q2 { font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.02; letter-spacing:-0.025em; color:#ffffff; margin:0; }
.lq-sub { color:rgba(255,255,255,0.5); font-size:15px; margin:0.7rem 0 1.5rem; max-width:34rem; }

.lq-card2 { display:grid; grid-template-columns:230px 1fr; background:linear-gradient(180deg,#343A43 0%,#2C313A 100%); border:1px solid rgba(255,255,255,0.09); border-radius:24px; overflow:hidden; box-shadow:0 34px 76px -38px rgba(0,0,0,0.8), inset 0 1px 0 rgba(255,255,255,0.06); animation:lqUp .45s cubic-bezier(.16,1,.3,1) both; }
@media (max-width:680px){ .lq-card2 { grid-template-columns:1fr; } }
.lq-num { position:relative; overflow:hidden; padding:1.6rem; display:flex; flex-direction:column; justify-content:space-between; min-height:236px; background:linear-gradient(150deg,#C9714A 0%,#B85C38 58%,#8C4326 100%); }
.lq-num::before { content:""; position:absolute; top:-28%; right:-22%; width:72%; height:68%; border-radius:50%; background:rgba(255,255,255,0.22); }
.lq-num__ico { width:54px; height:54px; border-radius:14px; background:rgba(26,20,2,0.14); color:#FFFFFF; display:flex; align-items:center; justify-content:center; position:relative; z-index:1; }
.lq-num__big { position:relative; z-index:1; line-height:0.85; }
.lq-num__n { display:block; font-family:'Archivo',sans-serif; font-weight:900; font-size:4.6rem; color:#FFFFFF; letter-spacing:-0.04em; }
.lq-num__of { font-family:'Archivo',sans-serif; font-weight:700; font-size:12px; color:rgba(26,20,2,0.55); text-transform:uppercase; letter-spacing:0.1em; }
.lq-ans { padding:1.8rem 1.9rem; animation:lqUp .35s cubic-bezier(.16,1,.3,1) both; }
.lq-ihr { display:block; font-family:'Archivo',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:0.13em; font-size:11px; color:#B85C38; margin-bottom:0.4rem; }
.lq-ans__t { font-weight:800; font-size:clamp(1.5rem,2.4vw,2rem); color:#ffffff; letter-spacing:-0.02em; line-height:1.1; margin:0 0 0.6rem; }
.lq-ans__d { color:rgba(255,255,255,0.6); font-size:14.5px; line-height:1.6; margin:0 0 1.2rem; max-width:30rem; }
.lq-checks { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.55rem; }
.lq-checks li { display:flex; align-items:center; gap:0.6rem; font-family:'Archivo',sans-serif; font-weight:600; font-size:14px; color:rgba(255,255,255,0.9); }
.lq-chk { width:22px; height:22px; border-radius:50%; background:#B85C38; color:#FFFFFF; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }

.lq-card2--input { display:block; padding:2.2rem 2.2rem 2.4rem; }
.lq-inputwrap { max-width:30rem; }
.lq-plz { width:100%; font-family:'Archivo',sans-serif; font-weight:800; font-size:2.4rem; letter-spacing:0.25em; text-align:center; color:#ffffff; background:rgba(255,255,255,0.05); border:1.5px solid rgba(255,255,255,0.12); border-radius:16px; padding:0.9rem 1rem; }
.lq-plz:focus { outline:none; border-color:#B85C38; box-shadow:0 0 0 4px rgba(184,92,56,0.16); }
.lq-plz::placeholder { color:rgba(255,255,255,0.22); }
.lq-fields { display:flex; flex-direction:column; gap:0.7rem; }
.lq-fld { width:100%; font-size:15px; color:#ffffff; background:rgba(255,255,255,0.05); border:1.5px solid rgba(255,255,255,0.12); border-radius:13px; padding:0.85rem 1rem; }
.lq-fld:focus { outline:none; border-color:#B85C38; box-shadow:0 0 0 4px rgba(184,92,56,0.16); }
.lq-fld::placeholder { color:rgba(255,255,255,0.4); }
.lq-inputhint { color:rgba(255,255,255,0.5); font-size:13px; margin:0.9rem 0 0; }

.lq-optnav { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; margin-top:1rem; }
@media (max-width:560px){ .lq-optnav { grid-template-columns:1fr; } }
.lq-optbtn { display:flex; align-items:center; gap:0.6rem; background:rgba(255,255,255,0.045); border:1px solid rgba(255,255,255,0.1); border-radius:14px; padding:0.95rem 1.1rem; cursor:pointer; color:#fff; min-width:0; transition:border-color .25s ease, background .25s ease, transform .25s ease; }
.lq-optbtn:hover { border-color:rgba(184,92,56,0.6); background:rgba(255,255,255,0.08); transform:translateY(-1px); }
.lq-optbtn--r { justify-content:flex-end; text-align:right; }
.lq-optbtn__k { font-family:'Archivo',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; font-size:10.5px; color:rgba(255,255,255,0.45); flex-shrink:0; }
.lq-optbtn__v { font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.lq-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.7rem; flex-wrap:wrap; }
.lq-trust2 { display:flex; align-items:center; gap:0.5rem; color:rgba(255,255,255,0.62); font-size:13.5px; }
.lq-tchk { width:20px; height:20px; border-radius:50%; background:rgba(22,163,74,0.14); color:#16A34A; display:inline-flex; align-items:center; justify-content:center; }
.lq-back2 { background:none; border:0; cursor:pointer; color:rgba(255,255,255,0.55); font-family:'Archivo',sans-serif; font-weight:600; font-size:14px; padding:0.5rem; }
.lq-back2:hover { color:#fff; }
.lq-cta { display:inline-flex; align-items:center; gap:0.7rem; background:#B85C38; color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; font-size:15.5px; border:0; border-radius:999px; padding:0.7rem 0.7rem 0.7rem 1.5rem; cursor:pointer; box-shadow:0 16px 30px -12px rgba(184,92,56,0.75); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, opacity .3s ease; }
.lq-cta:hover { transform:translateY(-2px); box-shadow:0 22px 40px -12px rgba(184,92,56,0.9); }
.lq-cta__a { width:36px; height:36px; border-radius:50%; background:#FFFFFF; color:#B85C38; display:inline-flex; align-items:center; justify-content:center; }
.lq-cta.is-off { opacity:0.4; pointer-events:none; box-shadow:none; }

.lq-main.lq-done { align-items:center; text-align:center; justify-content:center; }
.lq-donedisc { width:80px; height:80px; border-radius:50%; background:#B85C38; color:#FFFFFF; display:flex; align-items:center; justify-content:center; margin-bottom:1.4rem; box-shadow:0 18px 40px -14px rgba(184,92,56,0.7); }
.lq-summary { width:100%; max-width:30rem; display:flex; flex-direction:column; gap:0.5rem; }
.lq-srow { display:flex; justify-content:space-between; gap:1rem; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.08); border-radius:12px; padding:0.7rem 1rem; }
.lq-sk { font-family:'Archivo',sans-serif; font-weight:600; font-size:12.5px; color:rgba(255,255,255,0.45); text-transform:uppercase; letter-spacing:0.06em; }
.lq-sv { font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; color:#fff; text-align:right; }

@keyframes lqUp { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){ .lq-card2, .lq-ans, .lq-cta, .lq-optbtn { animation:none !important; transition:none !important; } .lq-cta:hover, .lq-optbtn:hover { transform:none; } }

/* === Hero Rework === */
.hero-kw { display: inline; color: #B85C38; background: none; border: none; box-shadow: none; padding: 0; }
@keyframes heroKwGlow {
  0%, 100% { box-shadow: 0 14px 40px -16px rgba(184,92,56,.45), inset 0 2px 0 rgba(255,255,255,.4); }
  50% { box-shadow: 0 22px 58px -12px rgba(184,92,56,.72), inset 0 2px 0 rgba(255,255,255,.5); }
}
.sw-hero__lead { font-family: 'Inter', system-ui, sans-serif; font-weight: 500; color: rgba(255,255,255,.88); font-size: clamp(1.15rem, 1.5vw, 1.32rem); line-height: 1.55; max-width: 33rem; margin: 0 0 1.8rem; text-shadow: 0 1px 14px rgba(0,0,0,.45); }
.hero-services { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; width: 100%; max-width: 25rem; margin-top: 1.15rem; }
@media (min-width: 560px) { .hero-services { grid-template-columns: repeat(4, 1fr); } }
.hero-srv { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; padding: .65rem .8rem .7rem; border-radius: .85rem; background: rgba(22,26,31,.55); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 18px 40px -28px rgba(0,0,0,.7); transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .35s ease, box-shadow .35s ease, background .35s ease; }
.hero-srv:hover { transform: translateY(-5px); border-color: rgba(184,92,56,.5); background: rgba(28,33,40,.72); box-shadow: 0 26px 52px -24px rgba(184,92,56,.4); }
.hero-srv__ic { width: 36px; height: 36px; border-radius: 11px; display: flex; align-items: center; justify-content: center; color: #FFFFFF; background: linear-gradient(145deg,#C9714A,#B85C38); box-shadow: 0 8px 18px -8px rgba(184,92,56,.6); transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.hero-srv__ic svg { width: 16px; height: 16px; }
.hero-srv:hover .hero-srv__ic { transform: rotate(-6deg) scale(1.06); }
.hero-srv__t { font-family: 'Archivo', system-ui, sans-serif; font-weight: 700; font-size: 13px; color: #fff; letter-spacing: -.01em; }
@media (prefers-reduced-motion: reduce) { .hero-kw, .hero-srv, .hero-srv__ic { animation: none !important; transition: none !important; } }


/* === Hero Buttons fresh === */
.sw-cta { position: relative; overflow: hidden; background: linear-gradient(180deg,#ffffff,#f1efe7); box-shadow: 0 12px 30px -14px rgba(0,0,0,.55); transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease; }
.sw-cta::after { content: ""; position: absolute; top: 0; left: -130%; width: 55%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.9), transparent); transform: skewX(-18deg); transition: left .6s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.sw-cta:hover { transform: translateY(-3px) scale(1.01); box-shadow: 0 24px 50px -16px rgba(184,92,56,.55), 0 0 0 1px rgba(184,92,56,.3); }
.sw-cta:hover::after { left: 150%; }
.sw-cta__ico { transition: transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease; }
.sw-cta:hover .sw-cta__ico { transform: translateX(4px); box-shadow: 0 0 0 8px rgba(184,92,56,.12); }

.sw-cta-ghost { position: relative; overflow: hidden; z-index: 0; background: rgba(255,255,255,.06); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: color .35s ease, border-color .35s ease, transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease; }
.sw-cta-ghost::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,#C9714A,#B85C38); transform: translateY(101%); transition: transform .42s cubic-bezier(.16,1,.3,1); }
.sw-cta-ghost:hover { color: #FFFFFF; border-color: transparent; transform: translateY(-3px); box-shadow: 0 20px 44px -16px rgba(184,92,56,.6); }
.sw-cta-ghost:hover::before { transform: translateY(0); }
.sw-cta-ghost svg { transition: transform .35s ease; }
.sw-cta-ghost:hover svg { animation: ctaRing .6s ease; }
@keyframes ctaRing { 0%,100% { transform: rotate(0); } 20% { transform: rotate(-14deg); } 40% { transform: rotate(11deg); } 60% { transform: rotate(-7deg); } 80% { transform: rotate(4deg); } }
@media (prefers-reduced-motion: reduce) { .sw-cta::after, .sw-cta-ghost::before, .sw-cta-ghost:hover svg, .sw-cta__ico, .sw-cta:hover .sw-cta__ico { transition: none !important; animation: none !important; } }


/* ─── Danke-Screen Animation + Anrede ───────────────────── */
.lq-done { position:relative; overflow:hidden; }
.lq-donedisc { position:relative; animation:lqPop .6s cubic-bezier(.34,1.56,.64,1) both; }
.lq-donedisc::before { content:""; position:absolute; inset:-9px; border-radius:50%; border:2px solid rgba(184,92,56,0.55); animation:lqRing 1s ease-out .15s both; }
.lq-donedisc::after { content:""; position:absolute; inset:-48px; border-radius:50%; z-index:-1; background:radial-gradient(circle, rgba(184,92,56,0.3), transparent 65%); animation:lqGlow 1.4s ease-out both; }
@keyframes lqPop { 0%{transform:scale(.3);opacity:0} 55%{transform:scale(1.12)} 100%{transform:scale(1);opacity:1} }
@keyframes lqRing { 0%{transform:scale(.65);opacity:.85} 100%{transform:scale(2);opacity:0} }
@keyframes lqGlow { 0%{transform:scale(.4);opacity:0} 45%{opacity:1} 100%{transform:scale(1.5);opacity:.55} }
.lq-d-h { animation:lqRise .6s cubic-bezier(.16,1,.3,1) .25s both; }
.lq-d-p { animation:lqRise .6s cubic-bezier(.16,1,.3,1) .4s both; }
.lq-done .lq-summary { animation:lqRise .6s cubic-bezier(.16,1,.3,1) .5s both; }
.lq-done .lq-srow { animation:lqRise .5s cubic-bezier(.16,1,.3,1) both; }
@keyframes lqRise { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.lq-confetti { position:absolute; inset:0; pointer-events:none; z-index:2; }
.lq-confetti span { position:absolute; top:-14px; border-radius:2px; opacity:0; animation:lqFall 2.8s cubic-bezier(.4,0,.7,1) forwards; }
@keyframes lqFall { 0%{opacity:0; transform:translateY(-14px) rotate(0)} 12%{opacity:1} 100%{opacity:0; transform:translateY(460px) rotate(560deg)} }
.lq-anrede { display:flex; gap:0.6rem; margin-bottom:0.8rem; }
.lq-anbtn { flex:1; padding:0.7rem 1rem; border-radius:12px; border:1.5px solid rgba(255,255,255,0.12); background:rgba(255,255,255,0.04); color:rgba(255,255,255,0.75); font-family:'Archivo',sans-serif; font-weight:700; font-size:14.5px; cursor:pointer; transition:all .25s cubic-bezier(.16,1,.3,1); }
.lq-anbtn:hover { border-color:rgba(184,92,56,0.5); }
.lq-anbtn.is-on { background:#B85C38; border-color:#B85C38; color:#FFFFFF; }
@media (prefers-reduced-motion: reduce){
  .lq-donedisc, .lq-donedisc::before, .lq-donedisc::after, .lq-d-h, .lq-d-p, .lq-done .lq-summary, .lq-done .lq-srow { animation:none !important; opacity:1 !important; transform:none !important; }
  .lq-confetti { display:none; }
}


/* ─── Ratgeber-Karten Effekte ───────────────────────────── */
#ratgeber::before { content:""; position:absolute; top:-8%; right:-4%; width:46%; height:62%; pointer-events:none; background:radial-gradient(ellipse, rgba(184,92,56,0.13) 0%, transparent 64%); z-index:0; }
#ratgeber > div { position:relative; z-index:1; }
.rg-card { display:flex; text-decoration:none; }
.rg-inner { flex:1; display:flex; flex-direction:column; background:#fff; border:1px solid rgba(20,23,28,0.06); border-radius:22px; overflow:hidden; box-shadow:0 18px 44px -30px rgba(20,23,28,0.35); transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s ease, border-color .4s ease; }
.rg-card:hover .rg-inner { transform:translateY(-8px); border-color:rgba(184,92,56,0.55); box-shadow:0 34px 66px -28px rgba(20,23,28,0.42); }
.rg-imgwrap { position:relative; flex:1 1 auto; min-height:220px; overflow:hidden; }
.rg-img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.rg-card:hover .rg-img { transform:scale(1.08); }
.rg-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(20,23,28,0.16) 0%, transparent 32%, transparent 62%, rgba(20,23,28,0.42) 100%); }
.rg-cat { position:absolute; top:14px; left:14px; background:#B85C38; color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; font-size:10.5px; padding:0.38rem 0.75rem; border-radius:999px; box-shadow:0 8px 18px -8px rgba(184,92,56,0.8); }
.rg-go { position:absolute; top:12px; right:12px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.95); color:#14171C; display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(-8px) scale(0.7) rotate(-25deg); transition:all .45s cubic-bezier(.34,1.56,.64,1); box-shadow:0 10px 24px -8px rgba(0,0,0,0.45); }
.rg-card:hover .rg-go { opacity:1; transform:translateY(0) scale(1) rotate(0); background:#B85C38; }
.rg-body { padding:1.25rem 1.4rem 1.35rem; display:flex; flex-direction:column; flex:0 0 auto; }
.rg-title { font-weight:800; font-size:1.18rem; color:#14171C; line-height:1.25; letter-spacing:-0.01em; transition:color .3s ease; margin:0; min-height:2.5em; }
.rg-card:hover .rg-title { color:#B85C38; }
.rg-text { color:#525A64; font-size:14.5px; line-height:1.6; margin:0.5rem 0 0; }
.rg-more { margin-top:0.85rem; color:#B85C38; display:inline-flex; align-items:center; gap:0.45rem; font-weight:700; font-size:14px; }
.rg-arr { display:inline-flex; transition:transform .3s cubic-bezier(.16,1,.3,1); }
.rg-card:hover .rg-arr { transform:translateX(6px); }
@media (prefers-reduced-motion: reduce){ .rg-inner, .rg-img, .rg-go, .rg-arr { transition:none !important; } .rg-card:hover .rg-inner, .rg-card:hover .rg-img, .rg-card:hover .rg-go, .rg-card:hover .rg-arr { transform:none !important; } .rg-go { opacity:1; } }


/* ─── Mobile-Hero-Optimierung ───────────────────────────── */
@media (max-width: 767px) {
  /* Logo überall gleich (mobil): jede Seite, jeder Zustand = 90px */
  .sw-navlogo,
  .sw-navwrap.scrolled .sw-navlogo,
  body.nav-solid .sw-navlogo,
  .sw-navwrap--home .sw-navlogo { height: 90px; }
  .sw-navwrap { padding-top: 12px; }                             /* Logo etwas höher */
  .sw-hero__inner { padding-top: 7.5rem; }                       /* mehr Luft zwischen Header und Textblock */
  .sw-hero__sub { font-size: 2.3rem; text-align: left; }         /* Headline größer, linksbündig */
  .sw-cta { font-size: 1rem; padding: .5rem .5rem .5rem 1.7rem; }      /* weißer Button (wie vorher) */
  .sw-cta__ico { width: 2.55rem; height: 2.55rem; }
  .sw-cta-ghost { font-size: .9rem; padding: .72rem 1.35rem; }         /* Anrufen (wie vorher) */
  .sw-hero__right { margin-top: 2.75rem; }                       /* Inhaber-Karte runter -> Kopf berührt die Widgets nicht */
}


/* === Anfrage-Rechner hell === */
.nq-section { background:#EFE7DD; padding:3.5rem 1.25rem 4rem; }
@media (min-width:768px){ .nq-section { padding:4.5rem 1.5rem 5rem; } }
.nq-wrap { max-width:680px; margin:0 auto; }
.nq-head { text-align:center; margin-bottom:1.5rem; }
.nq-eyebrow { display:inline-flex; align-items:center; gap:.5rem; font-family:'Archivo',sans-serif; font-weight:800; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-deep); margin-bottom:.7rem; }
.nq-dot { width:7px; height:7px; border-radius:50%; background:var(--accent); }
.nq-title { font-weight:900; color:var(--ink); font-size:clamp(1.7rem,4vw,2.5rem); line-height:1.08; letter-spacing:-.02em; margin:0 0 .7rem; }
.nq-title span { color:var(--accent); }
.nq-lead { color:var(--body); font-size:1rem; line-height:1.55; max-width:26rem; margin:0 auto; }
.nq-card { background:#fff; border:1px solid rgba(20,23,28,.08); border-radius:22px; padding:1.25rem 1.5rem 1.2rem; box-shadow:0 30px 70px -40px rgba(20,23,28,.4); }
@media (min-width:768px){ .nq-card { padding:1.5rem 1.9rem 1.4rem; } }
.nq-prog { height:5px; border-radius:999px; background:#EFEAD9; overflow:hidden; margin-bottom:1.4rem; }
.nq-prog span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#C9714A,#B85C38); transition:width .5s cubic-bezier(.16,1,.3,1); }
.nq-steplbl { font-family:'Archivo',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.5rem; }
.nq-q { font-weight:900; color:var(--ink); font-size:clamp(1.25rem,2.3vw,1.55rem); line-height:1.15; letter-spacing:-.02em; margin:0 0 .25rem; }
.nq-q span { color:var(--accent); }
.nq-sub { color:var(--body); font-size:13.5px; line-height:1.45; margin:0 0 .85rem; }
.nq-opts { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.8rem; }
.nq-opt { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; text-align:left; padding:1.1rem 1.1rem 1.2rem; border-radius:16px; border:1.5px solid rgba(20,23,28,.1); background:#fff; cursor:pointer; transition:border-color .25s, box-shadow .25s, transform .25s, background .25s; }
.nq-opt:hover { border-color:rgba(184,92,56,.55); transform:translateY(-3px); box-shadow:0 16px 30px -20px rgba(20,23,28,.35); }
.nq-opt.is-on { border-color:var(--accent); background:rgba(184,92,56,.07); box-shadow:0 0 0 3px rgba(184,92,56,.18); }
.nq-opt__ic { width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; color:var(--accent-deep); background:rgba(184,92,56,.13); transition:background .25s,color .25s; }
.nq-opt.is-on .nq-opt__ic { background:linear-gradient(145deg,#C9714A,#B85C38); color:#FFFFFF; }
.nq-opt__t { font-weight:800; font-size:15.5px; color:var(--ink); line-height:1.2; }
.nq-opt__d { font-size:12.5px; color:var(--muted); line-height:1.3; }
.nq-input { width:100%; background:#FBFAF6; border:1.5px solid rgba(20,23,28,.1); border-radius:13px; padding:13px 15px; font-size:15px; color:var(--ink); transition:border-color .2s,box-shadow .2s,background .2s; }
.nq-input::placeholder { color:var(--muted); }
.nq-input:focus { outline:none; border-color:var(--accent); background:#fff; box-shadow:0 0 0 4px rgba(184,92,56,.18); }
.nq-input--c { text-align:center; letter-spacing:.3em; font-weight:700; font-size:18px; }
.nq-fields { display:flex; flex-direction:column; gap:.7rem; }
.nq-anrede { display:flex; gap:.6rem; }
.nq-anbtn { flex:1; padding:11px; border-radius:12px; border:1.5px solid rgba(20,23,28,.1); background:#fff; font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; color:var(--body); cursor:pointer; transition:all .2s; }
.nq-anbtn.is-on { border-color:var(--accent); background:rgba(184,92,56,.1); color:var(--ink); }
.nq-nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; }
.nq-back { display:inline-flex; align-items:center; gap:.4rem; background:none; border:0; color:var(--body); font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; cursor:pointer; transition:color .2s; padding:.5rem .2rem; }
.nq-back:hover { color:var(--ink); }
.nq-next { display:inline-flex; align-items:center; gap:.5rem; background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; border:0; border-radius:999px; padding:.72rem 1.5rem; font-family:'Archivo',sans-serif; font-weight:800; font-size:15px; cursor:pointer; box-shadow:0 12px 26px -12px rgba(184,92,56,.7); transition:transform .25s,box-shadow .25s,opacity .25s; }
.nq-next:hover { transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(184,92,56,.8); }
.nq-next.is-off { opacity:.45; pointer-events:none; box-shadow:none; filter:grayscale(.3); }
.nq-trust { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.4rem; margin-top:1.6rem; }
.nq-trust__i { display:inline-flex; align-items:center; gap:.4rem; font-family:'Archivo',sans-serif; font-weight:600; font-size:13px; color:var(--body); }
.nq-trust__ic { color:var(--accent-deep); display:flex; }
.nq-done { text-align:center; padding:2.5rem 1.5rem; }
.nq-done__disc { width:72px; height:72px; margin:0 auto 1.2rem; border-radius:50%; background:linear-gradient(145deg,#C9714A,#B85C38); color:#FFFFFF; display:flex; align-items:center; justify-content:center; box-shadow:0 16px 34px -12px rgba(184,92,56,.7); animation:popIn .5s cubic-bezier(.34,1.56,.64,1); }
.nq-done__h { font-weight:900; color:var(--ink); font-size:clamp(1.6rem,3.4vw,2.3rem); margin:0 0 .6rem; }
.nq-done__h span { color:var(--accent); }
.nq-done__p { color:var(--body); max-width:26rem; line-height:1.6; margin:0 auto; }
@media (prefers-reduced-motion: reduce){ .nq-opt, .nq-next, .nq-prog span { transition:none !important; } .nq-done__disc { animation:none !important; } }

/* ─── Ratgeber-Artikel ────────────────────────────────── */
.rg-hero { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; min-height:clamp(420px, 56vh, 640px); padding:7rem 1.25rem 4rem; background:linear-gradient(180deg,#23272F 0%,#181B21 100%); color:#fff; }
@media (min-width:768px){ .rg-hero { padding:7.5rem 2rem 4.5rem; min-height:clamp(460px, 60vh, 700px); } }
.rg-hero__glow { position:absolute; top:-15%; left:-10%; width:520px; height:520px; background:radial-gradient(circle,rgba(184,92,56,0.14) 0%,transparent 65%); pointer-events:none; }
.rg-hero__wrap { max-width:52rem; margin:0 auto; position:relative; }
.rg-hero__eyebrow { display:inline-flex; align-items:center; gap:.55rem; font-family:'Archivo',sans-serif; font-weight:800; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#B85C38; margin-bottom:1rem; }
.rg-hero__eyebrow .dot { width:7px; height:7px; border-radius:50%; background:#B85C38; display:inline-block; }
.rg-hero__h1 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(2.1rem,4.4vw,3.5rem); line-height:1.06; letter-spacing:-.02em; margin:.6rem 0 1.1rem; }
.rg-hero__h1 .accent { color:#B85C38; }
.rg-hero__lead { color:rgba(255,255,255,.74); font-size:clamp(1.02rem,1.4vw,1.18rem); line-height:1.6; max-width:42rem; }
.rg-hero__meta { display:flex; flex-wrap:wrap; gap:1rem 1.6rem; margin-top:1.6rem; font-size:13.5px; color:rgba(255,255,255,.58); }
.rg-hero__meta span { display:inline-flex; align-items:center; gap:.4rem; }
.rg-hero__meta svg { color:#B85C38; }

.rg-body { background:#FFFFFF; padding:clamp(2.5rem,5vw,4.5rem) 1.25rem clamp(3rem,5vw,5rem); }
@media (min-width:768px){ .rg-body { padding-left:2rem; padding-right:2rem; } }
.rg-body__wrap { max-width:48rem; margin:0 auto; }
.rg-body__wrap h2 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.5rem,2.5vw,1.95rem); line-height:1.15; letter-spacing:-.015em; color:#14171C; margin:2.5rem 0 1rem; }
.rg-body__wrap h2:first-child { margin-top:0; }
.rg-body__wrap h3 { font-family:'Archivo',sans-serif; font-weight:800; font-size:1.18rem; color:#14171C; margin:1.8rem 0 .65rem; }
.rg-body__wrap p { font-family:'Inter',sans-serif; font-size:1.04rem; line-height:1.7; color:#3D444E; margin:0 0 1.1rem; }
.rg-body__wrap ul { margin:0 0 1.3rem; padding:0; list-style:none; }
.rg-body__wrap li { position:relative; padding-left:1.7rem; margin:0 0 .55rem; font-size:1.02rem; line-height:1.65; color:#3D444E; }
.rg-body__wrap li::before { content:''; position:absolute; left:0; top:.55rem; width:8px; height:8px; border-radius:50%; background:#B85C38; }
.rg-body__wrap strong { color:#14171C; font-weight:700; }
.rg-pull { background:var(--accent); border-radius:18px; padding:1.4rem 1.6rem; margin:2rem 0; font-family:'Archivo',sans-serif; font-weight:700; font-size:1.05rem; line-height:1.45; color:#FFFFFF; border:1px solid rgba(26,20,2,.18); }
.rg-cta { display:flex; flex-direction:column; gap:1rem; align-items:flex-start; margin:2.5rem 0 0; padding:1.5rem 1.6rem; border-radius:20px; background:#15181D; color:#fff; }
@media (min-width:640px){ .rg-cta { flex-direction:row; align-items:center; justify-content:space-between; } }
.rg-cta__t { font-family:'Archivo',sans-serif; font-weight:900; font-size:1.15rem; }
.rg-cta__btn { display:inline-flex; align-items:center; gap:.55rem; padding:.7rem 1.3rem; border-radius:999px; background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.08rem; transition:transform .25s ease; flex-shrink:0; }
.rg-cta__btn:hover { transform:translateY(-2px); }

/* ─── Ratgeber-Artikel: Breadcrumb, FAQ, Related, Back ── */
.rg-crumbs { font-family:'Archivo',sans-serif; font-weight:600; font-size:13px; color:rgba(255,255,255,.5); display:flex; gap:.5rem; align-items:center; margin-bottom:1.2rem; }
.rg-crumbs a { color:rgba(255,255,255,.5); transition:color .2s ease; }
.rg-crumbs a:hover { color:#B85C38; }
.rg-crumbs svg { opacity:.4; }

.rg-faq { margin-top:3rem; padding-top:2.5rem; border-top:1px solid rgba(20,23,28,.1); }
.rg-faq__h2 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.5rem,2.5vw,1.95rem); line-height:1.15; color:#14171C; margin-bottom:1.2rem; letter-spacing:-.015em; }
.rg-faq__item { border-top:1px solid rgba(20,23,28,.08); }
.rg-faq__item:first-of-type { border-top:none; }
.rg-faq__item[open] { padding-bottom:.25rem; }
.rg-faq__sum { display:flex; align-items:center; gap:1rem; padding:1.05rem 0; cursor:pointer; list-style:none; }
.rg-faq__sum::-webkit-details-marker { display:none; }
.rg-faq__q { flex:1; font-family:'Archivo',sans-serif; font-weight:800; font-size:1rem; line-height:1.3; color:#14171C; transition:color .25s ease; }
.rg-faq__ic { flex-shrink:0; color:#B85C38; transition:transform .35s cubic-bezier(.16,1,.3,1); }
.rg-faq__item[open] .rg-faq__ic { transform:rotate(45deg); }
.rg-faq__item:hover .rg-faq__q { color:#8A5E00; }
.rg-faq__a { padding:0 0 1.25rem; font-family:'Inter',sans-serif; font-size:14.5px; line-height:1.65; color:#3D444E; }

.rg-related { background:#FBF6E9; padding:clamp(2.75rem,5.5vw,4.5rem) 1.25rem; }
@media (min-width:768px){ .rg-related { padding-left:2rem; padding-right:2rem; } }
.rg-related__wrap { max-width:80rem; margin:0 auto; }
.rg-related__head { display:flex; align-items:baseline; gap:.85rem; margin-bottom:1.75rem; padding-bottom:1.05rem; border-bottom:2px solid rgba(20,23,28,.12); }
.rg-related__h { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.4rem,2.2vw,1.8rem); color:#14171C; letter-spacing:-.015em; }
.rg-related__count { font-family:'Archivo',sans-serif; font-weight:600; font-size:13.5px; color:rgba(20,23,28,.55); }
.rg-related__grid { display:grid; grid-template-columns:1fr; gap:1.25rem; max-width:34rem; margin:0 auto; }
@media (min-width:768px){ .rg-related__grid { grid-template-columns:repeat(2,1fr); max-width:none; } }
@media (min-width:1024px){ .rg-related__grid { grid-template-columns:repeat(3,1fr); } }
.rg-rel { display:block; background:#fff; border:1px solid rgba(20,23,28,.08); border-radius:18px; overflow:hidden; box-shadow:0 18px 40px -28px rgba(20,23,28,.3); transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease; }
.rg-rel:hover { transform:translateY(-4px); border-color:rgba(184,92,56,.4); box-shadow:0 30px 60px -28px rgba(20,23,28,.4); }
.rg-rel__imgwrap { position:relative; aspect-ratio:16/9; overflow:hidden; }
.rg-rel__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.rg-rel:hover .rg-rel__img { transform:scale(1.05); }
.rg-rel__cat { position:absolute; top:.7rem; left:.7rem; padding:.28rem .6rem; border-radius:999px; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); font-family:'Archivo',sans-serif; font-weight:800; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:#8A5E00; }
.rg-rel__body { padding:1rem 1.15rem 1.1rem; }
.rg-rel__t { font-family:'Archivo',sans-serif; font-weight:900; font-size:1rem; line-height:1.25; color:#14171C; margin-bottom:.4rem; letter-spacing:-.01em; }
.rg-rel__s { font-family:'Inter',sans-serif; font-size:13px; line-height:1.5; color:#525A64; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

.rg-back { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.8rem; font-family:'Archivo',sans-serif; font-weight:700; font-size:14px; color:#8A5E00; transition:color .2s ease; }
.rg-back:hover { color:#B85C38; }
.rg-back svg { transition:transform .25s ease; }
.rg-back:hover svg { transform:translateX(-3px); }

/* ─── Page-Transitions: View Transitions API (sauberes Cross-Fade, KEIN Zwischenbildschirm) ── */
html { background:#15181D; }
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; animation-timing-function: cubic-bezier(.16,1,.3,1); }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }

/* ─── MOBILE PERFORMANCE OVERRIDES ───
   backdrop-filter ist GPU-killer auf mobile (besonders bei sticky/scroll).
   Wir ersetzen es durch deckendere hintergruende → kein visueller verlust,
   massive performance-gewinne. plus reveal-animations entschaerfen (kein blur). */
@media (max-width:640px){
  /* Backdrop-blur komplett aus */
  .sw-navwrap.scrolled .sw-navpill2 { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(20,23,28,.92) !important; }
  body.nav-solid .sw-navpill2 { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(20,23,28,.94) !important; }
  .sw-dropdown { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:#181B21 !important; }
  .sw-navlink.active { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .sw-pill { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(255,255,255,.18) !important; }
  .sw-card { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(22,26,31,.92) !important; }
  .sw-founder { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(22,26,31,.96) !important; }
  .sw-glass-chip { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .hero-srv { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; background:rgba(22,26,31,.88) !important; }
  .sw-mobilemenu { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }

  /* Reveal-animations ohne blur (blur in transitions ist sehr teuer auf mobile) */
  .reveal { filter:none !important; transition:opacity .4s ease, transform .4s cubic-bezier(.16,1,.3,1) !important; }
  .reveal-left, .reveal-right { filter:none !important; transition:opacity .4s ease, transform .4s cubic-bezier(.16,1,.3,1) !important; }
  .reveal-scale { filter:none !important; transition:opacity .4s ease, transform .4s cubic-bezier(.16,1,.3,1) !important; }

  /* Will-change reset auf scroll-statische elemente (befreit gpu-layers) */
  .sw-card, .sw-founder, .hero-srv { will-change:auto !important; }
}

/* ── Ratgeber-Article 2-Spalten-Layout (linke Sticky-Sidebar) ── */
.rg-2col { background:#fff; padding:0 1.25rem 4rem; }
@media (min-width:768px){ .rg-2col { padding:0 2rem 5.5rem; } }
.rg-2col__wrap { max-width:80rem; margin:0 auto; display:grid; grid-template-columns:1fr; gap:2.5rem; align-items:start; justify-items:center; padding-top:2.5rem; }
.rg-2col__wrap > * { width:100%; max-width:42rem; }
@media (min-width:1024px){ .rg-2col__wrap { grid-template-columns:280px 1fr; gap:3rem; padding-top:3rem; justify-items:stretch; } .rg-2col__wrap > * { max-width:none; } }
.rg-side-stack { display:flex; flex-direction:column; gap:1.25rem; }
@media (min-width:1024px){ .rg-side-stack { position:sticky; top:6.5rem; align-self:start; } }
.rg-toc { background:#fff; border:1px solid rgba(20,23,28,.08); border-radius:18px; padding:1.1rem 1rem 1.15rem; }
.rg-toc__h { font-family:'Archivo',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:rgba(20,23,28,.45); padding:0 .35rem .85rem; border-bottom:1px solid rgba(20,23,28,.07); margin:0 0 .5rem; }
.rg-toc__link { display:block; padding:.55rem .8rem; border-radius:10px; font-family:'Archivo',sans-serif; font-weight:600; font-size:13.5px; line-height:1.35; color:rgba(20,23,28,.7); transition:background .15s ease, color .15s ease; }
.rg-toc__link:hover { background:rgba(184,92,56,.1); color:#8A5E00; }
.rg-toc__link.is-on { background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; }
.rg-side-cta { position:relative; overflow:hidden; padding:1.4rem 1.3rem 1.5rem; border-radius:18px; background:linear-gradient(150deg,#22262F 0%,#181B21 70%); color:#fff; border:1px solid rgba(184,92,56,.22); box-shadow:0 24px 50px -30px rgba(0,0,0,.55); }
.rg-side-cta::after { content:''; position:absolute; top:-50%; right:-30%; width:220px; height:220px; background:radial-gradient(circle,rgba(184,92,56,.22) 0%,transparent 70%); pointer-events:none; }
.rg-side-cta__lbl { font-family:'Archivo',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:#B85C38; margin-bottom:.55rem; position:relative; }
.rg-side-cta__t { font-family:'Archivo',sans-serif; font-weight:900; font-size:1.15rem; line-height:1.2; margin-bottom:.45rem; position:relative; }
.rg-side-cta__s { font-family:'Inter',sans-serif; font-size:13px; line-height:1.5; color:rgba(255,255,255,.65); margin-bottom:1rem; position:relative; }
.rg-side-cta__btn { display:inline-flex; align-items:center; gap:.45rem; padding:.65rem 1.15rem; border-radius:999px; background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; font-size:13.5px; transition:transform .25s ease; position:relative; }
.rg-side-cta__btn:hover { transform:translateY(-2px); }
.rg-author { background:#fff; border:1px solid rgba(20,23,28,.08); border-radius:18px; padding:1.25rem 1.25rem 1.35rem; display:flex; flex-direction:column; gap:.85rem; }
.rg-author__top { display:flex; align-items:center; gap:.85rem; }
.rg-author__img { width:48px; height:48px; border-radius:50%; object-fit:cover; flex-shrink:0; background:#FBF6E9; }
.rg-author__name { font-family:'Archivo',sans-serif; font-weight:800; font-size:15px; color:#14171C; line-height:1.2; }
.rg-author__role { font-family:'Inter',sans-serif; font-size:12px; color:rgba(20,23,28,.55); margin-top:2px; }
.rg-author__quote { font-family:'Inter',sans-serif; font-size:13.5px; line-height:1.55; color:#3D444E; font-style:italic; border-left:2px solid #B85C38; padding-left:.85rem; }
.rg-art-col { min-width:0; }
.rg-art-col h2 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.5rem,2.5vw,1.95rem); line-height:1.15; letter-spacing:-.015em; color:#14171C; margin:2.5rem 0 1rem; scroll-margin-top:7rem; }
.rg-art-col h2:first-child { margin-top:0; }
.rg-art-col p { font-family:'Inter',sans-serif; font-size:1.04rem; line-height:1.7; color:#3D444E; margin:0 0 1.1rem; }
.rg-art-col ul { margin:0 0 1.3rem; padding:0; list-style:none; }
.rg-art-col li { position:relative; padding-left:1.7rem; margin:0 0 .55rem; font-size:1.02rem; line-height:1.65; color:#3D444E; }
.rg-art-col li::before { content:''; position:absolute; left:0; top:.55rem; width:8px; height:8px; border-radius:50%; background:#B85C38; }
.rg-art-col strong { color:#14171C; font-weight:700; }

/* === Fullscreen CTA (Ratgeber-Artikel, vor Formular) === */
.rh-fullcta { position:relative; background:#14171C; color:#fff; padding:4.5rem 1.1rem 5rem; overflow:hidden; border-top:1px solid rgba(255,255,255,.06); }
@media (min-width:480px){ .rh-fullcta { padding:5.5rem 1.5rem 6rem; } }
@media (min-width:768px){ .rh-fullcta { padding:7.5rem 2rem 8rem; } }
.rh-fullcta__glow1 { position:absolute; top:-180px; left:-160px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(184,92,56,.18) 0%, rgba(184,92,56,0) 65%); pointer-events:none; }
.rh-fullcta__glow2 { position:absolute; bottom:-220px; right:-180px; width:620px; height:620px; border-radius:50%; background:radial-gradient(circle, rgba(184,92,56,.13) 0%, rgba(184,92,56,0) 65%); pointer-events:none; }
.rh-fullcta__wrap { position:relative; z-index:1; max-width:54rem; margin:0 auto; text-align:center; }
.rh-fullcta__eyebrow { display:inline-flex; align-items:center; gap:.55rem; padding:.45rem 1rem; border-radius:999px; background:rgba(184,92,56,.12); border:1px solid rgba(184,92,56,.28); color:#C9714A; font-family:'Inter',sans-serif; font-size:13px; font-weight:600; letter-spacing:.02em; margin-bottom:1.5rem; }
.rh-fullcta__eyebrow .dot { width:7px; height:7px; border-radius:50%; background:#B85C38; box-shadow:0 0 0 0 rgba(184,92,56,.65); animation:rhPulse 1.8s ease-out infinite; }
@keyframes rhPulse { 0%{box-shadow:0 0 0 0 rgba(184,92,56,.6);} 70%{box-shadow:0 0 0 10px rgba(184,92,56,0);} 100%{box-shadow:0 0 0 0 rgba(184,92,56,0);} }
.rh-fullcta__h { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.06; letter-spacing:-.025em; margin:0 0 1.1rem; color:#fff; }
.rh-fullcta__h .accent { background:linear-gradient(180deg,#C9714A 0%,#B85C38 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.rh-fullcta__s { font-family:'Inter',sans-serif; font-size:clamp(1rem,1.3vw,1.15rem); line-height:1.6; color:rgba(255,255,255,.72); max-width:38rem; margin:0 auto 2.2rem; }
.rh-fullcta__btns { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; align-items:center; }
.rh-fullcta__primary { display:inline-flex; align-items:center; gap:.65rem; background:linear-gradient(180deg,#C9714A 0%,#B85C38 100%); color:#FFFFFF; border-radius:999px; padding:1.05rem 1.75rem; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.05rem; box-shadow:0 14px 36px -14px rgba(184,92,56,.6); transition:transform .25s ease, box-shadow .25s ease; }
.rh-fullcta__primary:hover { transform:translateY(-2px); box-shadow:0 20px 44px -14px rgba(184,92,56,.75); }
.rh-fullcta__primary svg { transition:transform .25s ease; }
.rh-fullcta__primary:hover svg { transform:translateX(3px); }
.rh-fullcta__ghost { display:inline-flex; align-items:center; gap:.55rem; padding:1.02rem 1.55rem; border-radius:999px; border:1px solid rgba(255,255,255,.25); color:#fff; font-family:'Archivo',sans-serif; font-weight:700; font-size:1.02rem; transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.rh-fullcta__ghost:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5); transform:translateY(-2px); }

/* === Standortseiten-Sections (st-faq + st-finalcta, global) === */
.st-faq { position:relative; overflow:hidden; padding:4rem 1.25rem; background:#14171C; color:#fff; }
@media (min-width:768px){ .st-faq { padding:5.5rem 2rem; } }
.st-faq__glow { position:absolute; top:-180px; right:-180px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(184,92,56,.13) 0%, rgba(184,92,56,0) 65%); pointer-events:none; }
.st-faq__wrap { position:relative; z-index:1; max-width:72rem; margin:0 auto; display:grid; grid-template-columns:1fr; gap:2.2rem; align-items:start; }
@media (min-width:900px){ .st-faq__wrap { grid-template-columns:.85fr 1.15fr; gap:3.2rem; } }
.st-faq__eyebrow { font-family:'Archivo',sans-serif; font-weight:800; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#C9714A; margin-bottom:.85rem; }
.st-faq__h2 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.15; letter-spacing:-.02em; color:#fff; margin:0 0 1rem; }
.st-faq__lead { font-family:'Inter',sans-serif; font-size:.98rem; line-height:1.6; color:rgba(255,255,255,.65); margin:0 0 1.6rem; max-width:24rem; }
.st-faq__phone { display:inline-flex; align-items:center; gap:.55rem; padding:.95rem 1.6rem; border-radius:999px; background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.08rem; box-shadow:0 14px 34px -14px rgba(184,92,56,.55); transition:transform .25s ease, box-shadow .25s ease; }
.st-faq__phone:hover { transform:translateY(-2px); box-shadow:0 20px 42px -14px rgba(184,92,56,.7); }
.st-faq__phone svg { color:#FFFFFF; }
.st-faq__list { display:grid; gap:.85rem; }
.st-faq__item { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; transition:border-color .25s ease, background .25s ease; }
.st-faq__item[open] { border-color:rgba(184,92,56,.4); background:rgba(255,255,255,.06); }
.st-faq__item summary { list-style:none; cursor:pointer; padding:1.05rem 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.st-faq__item summary::-webkit-details-marker { display:none; }
.st-faq__q { font-family:'Archivo',sans-serif; font-weight:800; font-size:.97rem; line-height:1.35; color:#fff; }
.st-faq__ic { width:28px; height:28px; flex-shrink:0; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(184,92,56,.15); color:#C9714A; transition:transform .25s ease, background .25s ease; }
.st-faq__item[open] .st-faq__ic { transform:rotate(45deg); background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; }
.st-faq__a { padding:0 1.25rem 1.15rem; font-family:'Inter',sans-serif; font-size:14px; line-height:1.65; color:rgba(255,255,255,.7); }

.st-finalcta { position:relative; overflow:hidden; padding:5.5rem 1.25rem; background:#14171C; color:#fff; text-align:center; }
@media (min-width:768px){ .st-finalcta { padding:7rem 2rem; } }
.st-finalcta__glow { position:absolute; top:-200px; left:50%; transform:translateX(-50%); width:780px; height:520px; border-radius:50%; background:radial-gradient(ellipse, rgba(184,92,56,.18) 0%, rgba(184,92,56,0) 60%); pointer-events:none; }
.st-finalcta__wrap { position:relative; z-index:2; max-width:46rem; margin:0 auto; }
.st-finalcta__h2 { font-family:'Archivo',sans-serif; font-weight:900; font-size:clamp(1.8rem,3.4vw,2.6rem); line-height:1.1; letter-spacing:-.02em; margin:0 0 .9rem; color:#fff; }
.st-finalcta__h2 .accent { background:linear-gradient(180deg,#C9714A 0%,#B85C38 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.st-finalcta__sub { font-family:'Inter',sans-serif; font-size:1.05rem; line-height:1.65; color:rgba(255,255,255,.75); margin:0 0 2rem; }
.st-finalcta__btns { display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; }
.st-finalcta__primary { display:inline-flex; align-items:center; gap:.55rem; padding:1.1rem 1.85rem; border-radius:999px; background:linear-gradient(180deg,#C9714A,#B85C38); color:#FFFFFF; font-family:'Archivo',sans-serif; font-weight:800; font-size:1.06rem; box-shadow:0 14px 36px -14px rgba(184,92,56,.6); transition:transform .25s ease, box-shadow .25s ease; }
.st-finalcta__primary:hover { transform:translateY(-2px); box-shadow:0 20px 44px -14px rgba(184,92,56,.75); }
.st-finalcta__ghost { display:inline-flex; align-items:center; gap:.5rem; padding:1.05rem 1.6rem; border-radius:999px; border:1px solid rgba(255,255,255,.25); color:#fff; font-family:'Archivo',sans-serif; font-weight:700; font-size:1.02rem; transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.st-finalcta__ghost:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5); transform:translateY(-2px); }

/* ===== Einsatzgebiet  lokale 2-Widget-Section (rb-) ===== */
.rb-section{position:relative;background:#13161B;padding:4.5rem 1.25rem 5rem;overflow:hidden}
.rb-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(700px 380px at 80% -10%,rgba(184,92,56,.12),transparent 62%)}
.rb-wrap{max-width:1060px;margin:0 auto;position:relative;z-index:1}
.rb-head{text-align:center;max-width:600px;margin:0 auto 2.4rem}
.rb-eyebrow{display:inline-block;font-family:'Archivo',sans-serif;font-weight:800;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#DA8C5F;margin-bottom:.9rem}
.rb-title{font-family:'Archivo',sans-serif;font-weight:900;color:#fff;font-size:clamp(1.7rem,3.2vw,2.4rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 1rem}
.rb-title span{color:#B85C38}
.rb-sub{color:#fff;font-size:1rem;line-height:1.6;margin:0;font-weight:500}
.rb-bento{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.rb-card{border-radius:22px;border:1px solid rgba(255,255,255,.08);overflow:hidden}
.rb-orte{background:rgba(255,255,255,.035);padding:1.6rem 1.5rem}
.rb-orte-h{font-family:'Archivo',sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:1rem}
.rb-orte-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}
.rb-ort{display:flex;align-items:center;gap:.85rem;padding:.55rem .6rem;border-radius:12px;transition:background .25s ease}
.rb-ort:hover{background:rgba(255,255,255,.04)}
.rb-ort-ic{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);color:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.08)}
.rb-ort-ic svg{width:17px;height:17px}
.rb-ort.is-main .rb-ort-ic{background:linear-gradient(160deg,#DA8C5F,#B85C38);color:#fff;border-color:transparent}
.rb-ort-tx{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.rb-ort-n{font-family:'Archivo',sans-serif;font-weight:700;font-size:15px;color:#fff}
.rb-ort.is-main .rb-ort-n{color:#DA8C5F}
.rb-ort-m{font-size:12px;color:rgba(255,255,255,.42);margin-top:1px}
.rb-ort-t{flex-shrink:0;font-family:'Inter',sans-serif;font-weight:600;font-size:12px;color:rgba(255,255,255,.55)}
.rb-contact{background:linear-gradient(160deg,#B85C38 0%,#6E3320 100%);padding:1.8rem 1.7rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.6rem}
.rb-contact-k{font-family:'Archivo',sans-serif;font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.rb-contact-h{font-family:'Archivo',sans-serif;font-weight:900;font-size:1.5rem;color:#fff;line-height:1.15;margin:.5rem 0 .6rem}
.rb-contact-p{font-family:'Inter',sans-serif;font-size:1.08rem;line-height:1.6;color:rgba(255,255,255,.78);margin:0}
.rb-contact-act{display:flex;flex-direction:column;gap:.7rem}
.rb-phone{display:flex;align-items:center;gap:.85rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:.7rem .9rem;text-decoration:none;transition:background .25s ease}
.rb-phone:hover{background:rgba(255,255,255,.18)}
.rb-phone-ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:#fff;color:#B85C38;display:flex;align-items:center;justify-content:center}
.rb-phone-ic svg{width:19px;height:19px}
.rb-phone-tx{display:flex;flex-direction:column;line-height:1.2}
.rb-phone-l{font-family:'Inter',sans-serif;font-size:11.5px;color:rgba(255,255,255,.65)}
.rb-phone-n{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.15rem;color:#fff}
.rb-cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;background:#fff;color:#13161B;font-family:'Archivo',sans-serif;font-weight:800;font-size:1.08rem;padding:.85rem 1.2rem;border-radius:999px;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.rb-cta-btn span{display:inline-flex}.rb-cta-btn svg{width:17px;height:17px}
.rb-cta-btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(0,0,0,.5)}
.rb-contact-meta{display:flex;align-items:center;gap:.5rem;font-family:'Inter',sans-serif;font-size:13px;color:rgba(255,255,255,.7)}
.rb-contact-meta svg{width:16px;height:16px;flex-shrink:0}
@media(max-width:760px){.rb-bento{grid-template-columns:1fr}.rb-contact-h{font-size:1.35rem}}
/* ── Unsere Standorte: Karten-Grid + Kontakt-Band ── */
.rb-locs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:1.3rem}
.rb-loc{position:relative;display:flex;flex-direction:column;padding:1.45rem 1.4rem 1.25rem;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);text-decoration:none;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .3s ease,background .3s ease,box-shadow .3s ease}
.rb-loc:hover{transform:translateY(-4px);border-color:rgba(218,140,95,.5);background:rgba(255,255,255,.06);box-shadow:0 26px 52px -28px rgba(0,0,0,.75)}
.rb-loc__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}
.rb-loc__ic{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);color:#DA8C5F;border:1px solid rgba(255,255,255,.08)}
.rb-loc__ic svg{width:19px;height:19px}
.rb-loc__pill{font-family:'Inter',sans-serif;font-size:11px;font-weight:600;color:rgba(255,255,255,.5);padding:.26rem .6rem;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07);white-space:nowrap}
.rb-loc__name{font-family:'Archivo',sans-serif;font-weight:900;font-size:1.4rem;letter-spacing:-.02em;color:#fff;line-height:1.05}
.rb-loc__meta{font-family:'Inter',sans-serif;font-size:13.5px;color:rgba(255,255,255,.5);margin-top:.3rem}
.rb-loc__go{margin-top:1rem;display:inline-flex;align-items:center;gap:.4rem;font-family:'Archivo',sans-serif;font-weight:800;font-size:13px;color:#DA8C5F}
.rb-loc__go svg{width:15px;height:15px;transition:transform .3s ease}
.rb-loc:hover .rb-loc__go svg{transform:translateX(4px)}
.rb-loc--main{background:linear-gradient(160deg,#B85C38 0%,#6E3320 100%);border-color:transparent}
.rb-loc--main .rb-loc__ic{background:rgba(255,255,255,.18);color:#fff;border-color:transparent}
.rb-loc--main .rb-loc__pill{background:rgba(255,255,255,.2);color:#fff;border-color:rgba(255,255,255,.2)}
.rb-loc--main .rb-loc__meta{color:rgba(255,255,255,.82)}
.rb-loc--main .rb-loc__go{color:#fff}
.rb-loc--main:hover{border-color:rgba(255,255,255,.35)}
.rb-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.3rem 2rem;padding:1.6rem 1.8rem;border-radius:20px;background:linear-gradient(160deg,#B85C38 0%,#6E3320 100%)}
.rb-band__tx{flex:1;min-width:240px}
.rb-band__h{font-family:'Archivo',sans-serif;font-weight:900;font-size:1.4rem;color:#fff;line-height:1.15;margin:.4rem 0 .45rem}
.rb-band__p{font-family:'Inter',sans-serif;font-size:.98rem;line-height:1.55;color:rgba(255,255,255,.82);margin:0;max-width:40rem}
.rb-band__act{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
@media(max-width:980px){.rb-locs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rb-locs{grid-template-columns:1fr}.rb-band{flex-direction:column;align-items:flex-start}}
/* ── Karte: Einsatzgebiet Baden ── */
.rb-map{position:relative;margin:0 0 1.3rem;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 30px 60px -34px rgba(0,0,0,.7)}
.rb-map iframe{display:block;width:100%;height:380px;border:0;filter:grayscale(.25) contrast(1.04) brightness(.96)}
.rb-map__chip{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1rem;border-radius:999px;background:rgba(19,22,27,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);font-family:'Archivo',sans-serif;font-weight:800;font-size:12px;letter-spacing:.04em;color:#fff;box-shadow:0 8px 20px -8px rgba(0,0,0,.6)}
.rb-map__chip .dot{width:8px;height:8px;border-radius:50%;background:#DA8C5F;box-shadow:0 0 0 4px rgba(218,140,95,.25)}
@media(max-width:560px){.rb-map iframe{height:300px}}


/* ===== Founder-Card Breakout (Silas ragt aus der Karte) ===== */
.sw-founder{ position:relative; margin-top:5rem; }
.sw-founder__top{ overflow:hidden !important; border-radius:1.6rem !important; background:linear-gradient(180deg, rgba(15,18,22,.18) 0%, rgba(15,18,22,.10) 32%, rgba(18,14,12,.5) 72%, rgba(13,11,10,.92) 100%), url('img/hero-poster.jpg') center 28% / cover no-repeat !important; }
.sw-founder__top img{ position:absolute !important; left:50% !important; bottom:0 !important; transform:translateX(-50%) !important; height:104% !important; width:auto !important; max-height:none !important; max-width:120% !important; object-fit:contain !important; object-position:center bottom !important; z-index:3 !important; filter:drop-shadow(0 22px 30px rgba(0,0,0,.55)) !important; }
@media (min-width:1024px){ .sw-hero__right{ margin-top:4rem; } }
@media (max-width:640px){ .sw-founder{ margin-top:5.5rem; } }

/* Hero: Card + Textblock vertikal zentrieren (Breakout ohne margin-Versatz) */
@media (min-width:1024px){
  .sw-hero__right{ margin-top:2.5rem !important; align-self:center !important; }
  .sw-founder{ margin-top:0 !important; }
  .sw-hero__bottom{ align-items:center !important; }
}

/* Hero: Häkchen-Vorteilsliste (statt Icon-Kacheln) */
.hero-checks{ display:flex; flex-direction:column; gap:1rem; margin-top:1.9rem; margin-bottom:2rem; }
.hero-chk{ display:flex; align-items:center; gap:.75rem; }
.hero-chk__ic{ flex-shrink:0; width:1.85rem; height:1.85rem; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#B85C38; color:#fff; box-shadow:0 5px 12px -4px rgba(184,92,56,.7); }
.hero-chk__t{ font-family:'Inter',system-ui,sans-serif; font-weight:600; font-size:1.2rem; color:#fff; letter-spacing:-.005em; text-shadow:0 1px 12px rgba(0,0,0,.45); }
@media (max-width:640px){ .hero-checks{ margin-top:1.2rem; gap:.7rem; } .hero-chk__t{ font-size:1.2rem; } }

/* Quiz: Datenschutz-Hinweis */
.nq-privacy{ text-align:center; font-family:'Inter',system-ui,sans-serif; font-size:12.5px; color:#525A64; margin:1.1rem auto .2rem; max-width:34rem; line-height:1.5; }
.nq-privacy a{ color:#B85C38; text-decoration:underline; text-underline-offset:2px; }
/* Quiz: Success-Animation */
.nq-done{ text-align:center; }
.nq-done__fx{ position:relative; width:96px; height:96px; margin:.5rem auto 1.5rem; display:flex; align-items:center; justify-content:center; }
.nq-done__disc{ position:relative; z-index:3; width:72px; height:72px; border-radius:50%; background:linear-gradient(150deg,#C9714A,#B85C38); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 16px 32px -8px rgba(184,92,56,.7); animation:nq-pop .55s cubic-bezier(.34,1.56,.64,1) both; }
.nq-check{ overflow:visible; }
.nq-check__path{ stroke-dasharray:40; stroke-dashoffset:40; animation:nq-draw .45s .4s cubic-bezier(.65,0,.45,1) forwards; }
.nq-done__ring{ position:absolute; top:50%; left:50%; width:72px; height:72px; margin:-36px 0 0 -36px; border-radius:50%; border:2px solid rgba(184,92,56,.55); transform:scale(.55); opacity:0; animation:nq-ring 1.1s .2s ease-out forwards; z-index:1; }
.nq-done__ring2{ animation-delay:.42s; border-color:rgba(184,92,56,.4); }
.nq-spark{ position:absolute; top:50%; left:50%; width:7px; height:7px; border-radius:2px; background:#B85C38; opacity:0; animation:nq-spark .6s .36s ease-out forwards; z-index:2; }
.nq-done__h{ animation:nq-up .55s .48s both; }
.nq-done__p{ animation:nq-up .55s .62s both; }
@keyframes nq-pop{ 0%{transform:scale(0) rotate(-25deg); opacity:0} 55%{opacity:1} 100%{transform:scale(1) rotate(0); opacity:1} }
@keyframes nq-draw{ to{ stroke-dashoffset:0 } }
@keyframes nq-ring{ 0%{transform:scale(.55); opacity:.85} 100%{transform:scale(2.5); opacity:0} }
@keyframes nq-spark{ 0%{ transform:translate(-50%,-50%) rotate(var(--a)) translateY(-4px) scale(.2); opacity:0 } 28%{opacity:1} 100%{ transform:translate(-50%,-50%) rotate(var(--a)) translateY(-48px) scale(1); opacity:0 } }
@keyframes nq-up{ 0%{opacity:0; transform:translateY(16px)} 100%{opacity:1; transform:translateY(0)} }
@media (prefers-reduced-motion: reduce){ .nq-done__disc,.nq-check__path,.nq-done__ring,.nq-spark,.nq-done__h,.nq-done__p{ animation:none !important; opacity:1 !important; transform:none !important; stroke-dashoffset:0 !important; } }

/* Quiz: zweispaltiges Layout (Text links, Card rechts) */
.nq-grid{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.18fr; gap:2.8rem; align-items:center; }
.nq-grid .nq-eyebrow{ margin-bottom:1rem; }
.nq-grid .nq-title{ text-align:left; font-size:clamp(1.9rem,3vw,2.7rem); margin:0 0 1rem; }
.nq-grid .nq-lead{ text-align:left; max-width:30rem; margin:0 0 1.7rem; font-size:1.05rem; }
.nq-benefits{ list-style:none; margin:0 0 1.7rem; padding:0; display:flex; flex-direction:column; gap:.75rem; }
.nq-benefit{ display:flex; align-items:center; gap:.7rem; font-family:'Inter',system-ui,sans-serif; font-size:1rem; color:#2A2E36; font-weight:500; }
.nq-benefit__ic{ flex-shrink:0; width:1.55rem; height:1.55rem; border-radius:50%; background:rgba(184,92,56,.14); border:1px solid rgba(184,92,56,.4); color:#B85C38; display:flex; align-items:center; justify-content:center; }
.nq-google{ display:inline-flex; align-items:center; gap:.8rem; background:linear-gradient(180deg,#ffffff 0%,#F5F8FA 100%); border:1px solid rgba(20,23,28,.10); border-radius:16px; padding:.8rem 1.25rem; box-shadow:0 16px 38px -18px rgba(20,23,28,.34), inset 0 1px 0 rgba(255,255,255,.75); transition:transform .28s cubic-bezier(.16,1,.3,1), box-shadow .28s ease; }
.nq-google:hover{ transform:translateY(-2px); box-shadow:0 24px 48px -18px rgba(20,23,28,.42), inset 0 1px 0 rgba(255,255,255,.75); }
.nq-google__t{ font-family:'Inter',system-ui,sans-serif; font-size:13.5px; color:#525A64; line-height:1.25; }
.nq-google__t b{ color:#14171C; font-family:'Archivo',system-ui,sans-serif; font-weight:900; font-size:17px; margin-right:.14em; }
.nq-right{ min-width:0; }
.nq-right .nq-privacy{ text-align:center; margin-top:.9rem; }
@media (max-width:900px){
  .nq-grid{ grid-template-columns:1fr; gap:2rem; max-width:560px; }
  .nq-left{ text-align:center; }
  .nq-grid .nq-title, .nq-grid .nq-lead{ text-align:center; margin-left:auto; margin-right:auto; }
  .nq-benefits{ max-width:24rem; margin-left:auto; margin-right:auto; }
  .nq-google{ display:inline-flex; }
}

/* Quiz: lange Optionstitel umbrechen + Card-Spalte etwas breiter (nur Desktop, sonst überschreibt es den Mobile-Kollaps) */
@media (min-width:901px){ .nq-grid{ grid-template-columns:1fr 1.28fr; } }
.nq-opt__t{ overflow-wrap:break-word; word-break:break-word; hyphens:auto; }
.nq-opts{ grid-template-columns:repeat(3,1fr); }
@media (max-width:520px){ .nq-opts{ grid-template-columns:1fr 1fr; } }

/* Quiz-Titel: "2 Minuten" zusammenhalten */
.nq-grid .nq-title span{ white-space:nowrap; }

/* Ratgeber-Cards: Body-Padding fixen (Kollision mit Artikel-.rg-body), kein weisser Leerraum */
.rg-card .rg-body{ padding:1.3rem 1.5rem 1.6rem; }

/* Kontakt: Form links, Text rechts (Desktop) */
@media (min-width:1024px){
  #kontakt .reveal-left{ order:2; }
  #kontakt .reveal-right{ order:1; }
}

/* Hero-Höhe 1:1 wie jj-rohrreinigung (812px Desktop) */
/* min-height entfernt: verursachte leeren Balken unter dem Content */
@media (min-width:1024px){ .sw-hero{ min-height:892px; } .sw-hero__card{ min-height:892px; } }

/* ============ 3-Step LeadForm (Anliegen -> Fotos -> Kontakt) ============ */
.nq-steps{ display:flex; align-items:flex-start; justify-content:center; gap:0; margin:.1rem 0 1.05rem; }
.nq-steps__item{ display:flex; flex-direction:column; align-items:center; gap:.5rem; flex:0 0 auto; width:82px; }
.nq-steps__line{ flex:1 1 auto; height:2px; background:#E4E0D5; margin-top:17px; border-radius:2px; transition:background .4s ease; }
.nq-steps__line.is-done{ background:var(--accent); }
.nq-steps__dot{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Archivo',sans-serif; font-weight:800; font-size:15px; transition:all .3s ease; }
.nq-steps__dot.is-todo{ background:#F0ECE2; color:var(--muted); }
.nq-steps__dot.is-active{ background:linear-gradient(180deg,#C9714A,#B85C38); color:#fff; box-shadow:0 0 0 4px rgba(184,92,56,.18); }
.nq-steps__dot.is-done{ background:var(--accent-deep); color:#fff; }
.nq-steps__lbl{ font-family:'Archivo',sans-serif; font-weight:700; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); transition:color .3s ease; }
.nq-steps__lbl.is-active, .nq-steps__lbl.is-done{ color:var(--ink); }
.nq-q__opt{ color:var(--muted); font-weight:600; font-size:.62em; }

/* Mehrfachauswahl-Karten */
.nq-mopts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:.55rem; margin-bottom:.7rem; }
.nq-mopt{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; text-align:left; padding:.85rem .95rem .9rem; border-radius:14px; border:1.5px solid rgba(20,23,28,.1); background:#fff; cursor:pointer; transition:border-color .22s, box-shadow .22s, transform .22s, background .22s; }
.nq-mopt:hover{ border-color:rgba(184,92,56,.55); transform:translateY(-2px); box-shadow:0 14px 28px -20px rgba(20,23,28,.35); }
.nq-mopt.is-on{ border-color:var(--accent); background:rgba(184,92,56,.07); box-shadow:0 0 0 3px rgba(184,92,56,.16); }
.nq-mopt__ic{ width:38px; height:38px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:var(--accent-deep); background:rgba(184,92,56,.13); transition:background .22s, color .22s; }
.nq-mopt.is-on .nq-mopt__ic{ background:linear-gradient(145deg,#C9714A,#B85C38); color:#fff; }
.nq-mopt__chk{ position:absolute; top:.8rem; right:.8rem; width:20px; height:20px; border-radius:50%; border:1.5px solid rgba(20,23,28,.2); display:flex; align-items:center; justify-content:center; color:#fff; transition:background .2s, border-color .2s; }
.nq-mopt__chk.is-on{ background:var(--accent); border-color:var(--accent); }
.nq-mopt__t{ font-weight:800; font-size:15.5px; color:var(--ink); line-height:1.22; word-break:normal; overflow-wrap:break-word; hyphens:none; padding-right:1.6rem; min-height:2.44em; display:flex; align-items:center; }

.nq-textarea{ resize:vertical; min-height:44px; font-family:inherit; line-height:1.45; }

/* Foto-Dropzone */
.nq-drop{ display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center; padding:1.8rem 1.25rem; border:2px dashed rgba(184,92,56,.35); border-radius:16px; background:#FBFAF6; cursor:pointer; transition:border-color .2s, background .2s; }
.nq-drop:hover, .nq-drop.is-drag{ border-color:var(--accent); background:rgba(184,92,56,.05); }
.nq-drop__ic{ color:var(--accent-deep); margin-bottom:.25rem; }
.nq-drop__t{ font-weight:800; font-size:15px; color:var(--ink); }
.nq-drop__h{ font-family:'Archivo',sans-serif; font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.nq-files{ list-style:none; margin:.9rem 0 0; padding:0; display:flex; flex-direction:column; gap:.45rem; }
.nq-file{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; padding:.5rem .6rem .5rem .85rem; border-radius:10px; background:#F4F1EA; border:1px solid rgba(20,23,28,.07); }
.nq-file__n{ font-size:13px; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nq-file__x{ flex-shrink:0; width:24px; height:24px; border-radius:50%; border:0; background:rgba(20,23,28,.07); color:var(--body); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, color .2s; }
.nq-file__x:hover{ background:rgba(184,92,56,.15); color:var(--accent-deep); }

/* Kontakt-Felder */
.nq-row2{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
@media (max-width:520px){ .nq-row2{ grid-template-columns:1fr; } }
.nq-field{ display:flex; flex-direction:column; gap:.35rem; }
.nq-flbl{ font-family:'Archivo',sans-serif; font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.nq-consent{ position:relative; display:flex; align-items:flex-start; gap:.65rem; padding:.85rem .9rem; border-radius:12px; background:#FBFAF6; border:1px solid rgba(20,23,28,.08); cursor:pointer; transition:border-color .2s, background .2s; }
.nq-consent.is-on{ border-color:rgba(184,92,56,.4); background:rgba(184,92,56,.05); }
.nq-consent__cb{ position:absolute; opacity:0; width:0; height:0; }
.nq-consent__box{ flex-shrink:0; width:20px; height:20px; margin-top:1px; border-radius:6px; border:1.5px solid rgba(20,23,28,.25); background:#fff; display:flex; align-items:center; justify-content:center; color:#fff; transition:background .2s, border-color .2s; }
.nq-consent.is-on .nq-consent__box{ background:var(--accent); border-color:var(--accent); }
.nq-consent__t{ font-size:12.5px; line-height:1.5; color:var(--body); }
.nq-consent__t a{ color:var(--accent-ink); text-decoration:underline; text-underline-offset:2px; }
@media (prefers-reduced-motion: reduce){ .nq-mopt, .nq-steps__dot, .nq-steps__line, .nq-drop{ transition:none !important; } }

/* ===== Inhaber-Glas-Card (1:1 von EB Entrümpelung, in Terrakotta) ===== */
.hero-stage { position: relative; width: min(100%, 420px); margin-inline: auto; height: 580px; }
@media (max-width: 480px) { .hero-stage { height: 500px; } }
.hero-stage__bg {
  position: absolute; inset: 0; z-index: 0; border-radius: 32px; overflow: hidden;
  background:
    radial-gradient(80% 75% at 100% 42%, rgba(206,104,62,.55) 0%, rgba(184,92,56,.20) 34%, transparent 64%),
    radial-gradient(48% 42% at 92% 6%, rgba(255,255,255,.06) 0%, transparent 55%),
    linear-gradient(160deg, rgba(28,28,30,.50) 0%, rgba(12,12,14,.66) 60%, rgba(6,6,8,.82) 100%);
  -webkit-backdrop-filter: blur(10px) saturate(135%);
  backdrop-filter: blur(10px) saturate(135%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 0 0 1px rgba(255,255,255,.12),
    0 34px 70px -30px rgba(0,0,0,.6);
}
.hero-stage__bg::after {
  content: ""; position: absolute; inset: 0; border-radius: 32px; pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,0) 32%);
}
.hero-stage__fig {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  height: 100%; width: auto; max-width: none; object-fit: contain; object-position: bottom;
  z-index: 1; filter: drop-shadow(0 18px 26px rgba(0,0,0,.5));
}
.hero-card {
  position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 2;
  border-radius: 24px; padding: 17px 20px 19px;
  background: linear-gradient(160deg, rgba(26,26,28,.55) 0%, rgba(8,8,10,.64) 100%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
  backdrop-filter: blur(28px) saturate(140%);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), inset 0 0 28px rgba(255,255,255,.03), 0 24px 50px -22px rgba(0,0,0,.7);
}
.hero-card__name { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 1.35rem; color: #fff; line-height: 1.1; }
.hero-card__role { font-size: .85rem; color: rgba(255,255,255,.72); margin-top: .2rem; }
.hero-card__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.12); }
.hero-card__stat { text-align: center; }
.hero-card__num { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 1.15rem; color: var(--accent); line-height: 1; }
.hero-card__lbl { font-family: 'Archivo', sans-serif; font-size: .61rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.5); margin-top: .35rem; }
.hero-card__rating { display: flex; align-items: center; gap: .5rem; margin-top: .9rem; padding-top: .85rem; border-top: 1px solid rgba(255,255,255,.12); }
.hero-card__g { width: 18px; height: 18px; flex: none; }
.hero-card__score { font-family: 'Archivo', sans-serif; font-weight: 800; color: #fff; font-size: .95rem; }
.hero-card__reviews { font-size: .72rem; color: rgba(255,255,255,.55); margin-left: auto; }

/* 3-Step LeadForm – Mobile: Multi-Select als kompakte horizontale Zeilen */
@media (max-width:560px){
  .nq-mopts{ grid-template-columns:1fr; gap:.55rem; margin-bottom:.8rem; }
  .nq-mopt{ flex-direction:row; align-items:center; gap:.75rem; padding:.7rem .85rem; }
  .nq-mopt__ic{ width:34px; height:34px; border-radius:10px; flex-shrink:0; }
  .nq-mopt__t{ padding-right:1.7rem; font-size:14px; min-height:0; display:block; }
  .nq-mopt__chk{ top:50%; transform:translateY(-50%); }
  .nq-steps__item{ width:72px; }
  .nq-steps__lbl{ font-size:9.5px; }
  .nq-card{ padding:1.3rem 1.15rem 1.25rem; }
}

/* ===================== FAQ: smoothes Auf-/Zuklappen (nativ, modern) =====================
   Standard-Weg fuer animierte <details> (Chrome 129+, Safari 18.2+): das ::details-content-Pseudo
   von block-size:0 auf auto animieren, mit interpolate-size fuers auto-Keyword. overflow:clip am
   Pseudo schneidet auch das Padding sauber mit ab -> kein Sliver. Reines CSS, kein JS noetig. */
details[class*="faq"]::details-content{
  block-size: 0;
  overflow: clip;
  transition: block-size .42s cubic-bezier(.22,1,.36,1), content-visibility .42s allow-discrete;
}
details[class*="faq"][open]::details-content{ block-size: auto; }
details[class*="faq"] summary{ cursor: pointer; }
details[class*="faq"] summary svg{ transition: transform .4s cubic-bezier(.22,1,.36,1); }
