/* =================================
   Courier Prime — dekorative Monospace-Font
   Lokal gehostet: /mu-plugins/siges-immo/assets/fonts/
   Kein externer Request. Latin-Subset (DE/AT/CH vollständig).
   display=swap: kein FOIT, Fallback auf Courier New.
   ================================= */
/* italic 400 */
@font-face {
  font-family: 'Courier Prime';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/courier-prime-400italic.woff2) format('woff2');
}
/* normal 400 */
@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/courier-prime-400.woff2) format('woff2');
}
/* normal 700 */
@font-face {
  font-family: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/courier-prime-700.woff2) format('woff2');
}

/* =================================
   Ageo — SIGES Brand-Font (Complete Family)
   Lokal gehostet: /mu-plugins/siges-immo/assets/fonts/
   Quelle: 15-Assets/fonts/ageo-complete-family-webfont-full
   display=swap: kein FOIT, Fallback auf Inter → system-ui.
   ================================= */
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 100; font-display: swap; src: url(../fonts/ageo-100.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 100; font-display: swap; src: url(../fonts/ageo-100-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 300; font-display: swap; src: url(../fonts/ageo-300.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 300; font-display: swap; src: url(../fonts/ageo-300-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 400; font-display: swap; src: url(../fonts/ageo-400.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 400; font-display: swap; src: url(../fonts/ageo-400-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 500; font-display: swap; src: url(../fonts/ageo-500.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 500; font-display: swap; src: url(../fonts/ageo-500-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 600; font-display: swap; src: url(../fonts/ageo-600.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 600; font-display: swap; src: url(../fonts/ageo-600-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 700; font-display: swap; src: url(../fonts/ageo-700.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 700; font-display: swap; src: url(../fonts/ageo-700-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 800; font-display: swap; src: url(../fonts/ageo-800.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 800; font-display: swap; src: url(../fonts/ageo-800-italic.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: normal;  font-weight: 900; font-display: swap; src: url(../fonts/ageo-900.woff2) format('woff2'); }
@font-face { font-family: 'Ageo'; font-style: italic;  font-weight: 900; font-display: swap; src: url(../fonts/ageo-900-italic.woff2) format('woff2'); }

/* =================================
   SIGES Brand Colors
   ================================= */
:root {
  --siges-brown:            #513C2D;
  --siges-gold:             #BE9B53;
  --siges-forest-green:     #58886D;
  --siges-highlight-orange: #FF8D5F;

  /* Text / UI */
  --siges-text:             #2C2825;  /* Headlines + Copy — fast schwarz, warm */
  --siges-text-muted:       #6b6357;  /* Sekundärtext, Labels                  */
  --siges-brown-dark:       #3a3028;  /* Hover/Text (legacy, → --siges-text)   */
  --siges-gold-dark:        #a0824a;  /* Hover Gold                            */
  --siges-bg:               #f7f5f1;  /* Page-Background — überschreibt Theme  */
  --siges-bg-light:         #f7f5f1;  /* Off-White Hintergrund                 */
  --siges-cream:            #f7f5f1;  /* Alias                                  */
  --siges-border:           #ECE9E4;  /* Borders                               */

  /* Dekorative Font — Eyebrow-Labels, Nummern (01 —), dekorative Headings */
  --siges-font-deco:        'Courier Prime', 'Courier New', Courier, monospace;

  /* Globale Content-Max-Width */
  --siges-content-max:      1600px;

  /* ── Figma Page Grid — Single Source of Truth ─────────────────────────
     Alle Sections folgen diesem Grid: Outer 16px | Sidebar 384px | Gap 16px | Main 1fr
     ──────────────────────────────────────────────────────────────────── */
  --sg-outer:               16px;   /* Figma: x=16 für alle Edge-Elemente */
  --sg-sidebar:             384px;  /* Figma: Logo-Zone = Sidebar-Breite */
  --sg-gap:                 16px;   /* Figma: Gap zwischen Sidebar + Main */
  --sg-grid:                var(--sg-sidebar) 1fr; /* Shorthand für grid-template-columns */

  /* Section-Padding: fester responsiver Wert für alle Sections */
  --siges-side-pad:         clamp(1.25rem, 2.5vw, 2.5rem); /* 20px → 40px */
  --sg-side-pad:            var(--siges-side-pad);

  /* ── Standard-Breakpoints ─────────────────────────────────────────────
     Eine Quelle der Wahrheit. CSS-Vars können nicht direkt in @media,
     aber wir dokumentieren sie hier, und ALLE neuen @media-Queries nutzen
     diese drei Werte. Damit wird das Wackelchaos aus 8 verschiedenen
     „mobile"-Schwellen (600/768/900/980/1024/1100/1200/1280) aufgelöst.
       sm  = Phone   → max-width: 639px
       md  = Tablet  → max-width: 899px
       lg  = Laptop  → max-width: 1279px   (Desktop-Nav greift ab 1280)
       xl  = Desktop → ab 1280px
     Bestehende Sections bleiben auf ihren alten Schwellen bis sie aktiv
     auf das System umgestellt werden — KEIN Sweeping in Phase 1. */
  --bp-sm: 640px;
  --bp-md: 900px;
  --bp-lg: 1280px;

  /* ── Fluid Type Scale — kontinuierlich 320px → 1600px ─────────────────
     Alle clamps sind so getuned dass Min @ ≤320px und Max @ ≥1600px erreicht
     wird. Dazwischen lineare Skalierung über vw — KEINE @media-Queries für
     Schriftgrößen, KEINE eigenen clamp() in Components.
     Components nutzen ausschließlich diese Tokens (font-size: var(--sg-font-…)). */

  /* Body — Standard-Paragraph (alle Section-Texte, Intro-Copy, Card-Body) */
  --sg-font-body:           clamp(15px, 0.875rem + 0.3vw, 18px);
  --sg-lh-body:             1.55;
  --sg-fw-body:             400;

  /* Lead — Intro-Paragraph (größer als Body, kleiner als Section-Title) */
  --sg-font-lead:           clamp(17px, 1rem + 0.4vw, 22px);
  --sg-lh-lead:             1.45;
  --sg-fw-lead:             500;

  /* Small — Meta-Text, Captions, Karten-Footer */
  --sg-font-small:          clamp(12px, 0.7rem + 0.15vw, 14px);
  --sg-lh-small:            1.4;

  /* Display — Startseite Hero Big-Letters */
  --sg-font-display:        clamp(36px, 1.5rem + 4.5vw, 96px);
  --sg-lh-display:          1.02;
  --sg-ls-display:          0.1px;
  --sg-fw-display:          700;

  /* Hero Title — Seiten-H1 in white card (immo-hero, topic-hero, ug, etc.) */
  --sg-font-hero:           clamp(28px, 1.5rem + 2.25vw, 64px);
  --sg-lh-hero:             1.1;
  --sg-ls-hero:             -0.02em;
  --sg-fw-hero:             700;

  /* Section Title — Abschnitts-Überschriften (acc-scroll, content-split, etc.) */
  --sg-font-section:        clamp(24px, 1.25rem + 1.45vw, 44px);
  --sg-lh-section:          1.15;
  --sg-ls-section:          -0.01em;
  --sg-fw-section:          700;

  /* Sub Title — Card-Titles, kleinere Section-Headings */
  --sg-font-subtitle:       clamp(19px, 1rem + 0.7vw, 28px);
  --sg-lh-subtitle:         1.2;
  --sg-fw-subtitle:         600;

  /* Eyebrow — Courier Prime, klein, uppercase */
  --sg-font-eyebrow:        clamp(11px, 0.62rem + 0.2vw, 13px);
  --sg-lh-eyebrow:          1.3;
  --sg-ls-eyebrow:          0.1em;
  --sg-fw-eyebrow:          400;

  /* Nav-Logo-Pille — eigener Token (NICHT --sg-sidebar verwenden, das gehört
     dem Content-Grid). Header-Logo darf unter Desktop kollabieren. */
  --sg-nav-logo-w:          384px;

  /* ── Card Design Tokens ──────────────────────────────────────────────
     Single Source of Truth für alle Cards auf der gesamten Seite.
     Hier ändern → alle Cards updaten sich automatisch.
     ──────────────────────────────────────────────────────────────────── */

  /* Radius */
  --sg-radius-sm:           8px;    /* kleine Elemente: Pills, Tags, Badges */
  --sg-radius:              12px;   /* Standard-Card-Radius */
  --sg-radius-lg:           16px;   /* große Cards, Modals */
  --sg-radius-xl:           24px;   /* Hero-Cards, Topic-Hero-Content */

  /* Padding (innen in Cards) */
  --sg-card-pad-sm:         1rem;         /* kompakte Cards */
  --sg-card-pad:            1.5rem;       /* Standard */
  --sg-card-pad-lg:         2rem;         /* große Cards */

  /* Shadow */
  --sg-shadow-sm:           0 1px 4px rgba(58,48,40,0.06), 0 2px 8px rgba(58,48,40,0.06);
  --sg-shadow:              0 2px 8px rgba(58,48,40,0.08), 0 4px 16px rgba(58,48,40,0.06);
  --sg-shadow-md:           0 4px 16px rgba(58,48,40,0.10), 0 8px 24px rgba(58,48,40,0.06);
  --sg-shadow-lg:           0 8px 32px rgba(58,48,40,0.12), 0 16px 40px rgba(58,48,40,0.06);
  --sg-shadow-hover:        0 6px 20px rgba(58,48,40,0.14), 0 12px 32px rgba(58,48,40,0.08);

  /* Card Background & Border */
  --sg-card-bg:             #ffffff;
  --sg-card-bg-muted:       var(--siges-bg, #F7F5F1);
  --sg-card-bg-cream:       #E9E3D7;
  --sg-card-border:         1px solid var(--siges-border, #ECE9E4);

  /* Section vertical rhythm */
  --sg-section-pad-y:       clamp(48px, 7vw, 96px);
  --sg-section-gap:         clamp(24px, 3vw, 48px);         /* Gap zwischen Section-Blöcken */
}

/* ── Hello-Elementor reset.css neutralisieren ──────────────────────────────
   Das Theme (hello-elementor/assets/css/reset.css) setzt auf nackten
   a / button / [type=button] / [type=submit] die Farbe #c36 (= #CC3366, das
   „Elementor-Rosa") inkl. pinkem Hover/Focus-Background. filter.css lädt mit
   hello-elementor als Dependency NACH dem Theme → gleiche Spezifität, später
   im Cascade = gewinnt. Wir mappen alle States auf Brand-Farben.
   Elementor-eigene Buttons (.elementor-button etc.) haben höhere Spezifität
   und bleiben unberührt. ─────────────────────────────────────────────────── */
a {
  color: var(--siges-gold, #BE9B53);
}
a:hover,
a:active,
a:focus {
  color: var(--siges-gold-dark, #a0824a);
}
[type="button"],
[type="submit"],
[type="reset"],
button {
  border-color: var(--siges-border, #ECE9E4);
  color: var(--siges-text, #2C2825);
}
[type="button"]:hover,
[type="button"]:focus,
[type="submit"]:hover,
[type="submit"]:focus,
[type="reset"]:hover,
[type="reset"]:focus,
button:hover,
button:focus {
  background-color: transparent;
  color: var(--siges-text, #2C2825);
  border-color: var(--siges-gold, #BE9B53);
}

/* ── Shared Theme Classes ─────────────────────────────────────────────────
   Alle Hero- und Section-Komponenten erben von diesen Klassen.
   Anwendung: class="... sg__hero-title" in PHP-Templates.
   ──────────────────────────────────────────────────────────────────────── */
.sg__eyebrow {
  font-family: var(--siges-font-deco);
  font-size: var(--sg-font-eyebrow);
  font-weight: var(--sg-fw-eyebrow);
  line-height: var(--sg-lh-eyebrow);
  letter-spacing: var(--sg-ls-eyebrow);
  text-transform: uppercase;
  color: var(--siges-text-muted, #6b6357);
  display: block;
  margin: 0 0 0.6rem;
}

.sg__hero-title {
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: var(--sg-font-hero);
  font-weight: var(--sg-fw-hero);
  line-height: var(--sg-lh-hero);
  letter-spacing: var(--sg-ls-hero);
  color: inherit;
  margin: 0;
}

.sg__section-title {
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: var(--sg-font-section);
  font-weight: var(--sg-fw-section);
  line-height: var(--sg-lh-section);
  letter-spacing: var(--sg-ls-section);
  color: inherit;
  margin: 0;
}

/* Theme-Default (#ECE9E4) auf cream überschreiben — Theme setzt
   body { background: var(--siges-bg) } in hello-child/style.css */
body {
  background-color: var(--siges-bg) !important;
  /* GLOBALER fluid Body-Font. Cascade-Default für alle Paragraph-/Inheritance-
     Elemente. Komponenten, die ihre eigene Größe wollen, überschreiben gezielt
     (mit Token, nicht eigene clamp). Elementor-Widgets behalten ihre eigene
     Typo-Kit-Spezifizität — das hier ist nur der Sprung in den fluid Default. */
  font-size: var(--sg-font-body);
  line-height: var(--sg-lh-body);
}

/* Wenn SVG Map aktiv: Body transparent → SVG ist das Seiten-Background */
body.has-siges-map-bg { background: transparent !important; }

/* SVG-Map Stacking: Page-Content über die Fixed-Map heben */
body.has-siges-map-bg > .elementor,
body.has-siges-map-bg > footer.elementor {
  position: relative;
  z-index: 1;
}



/* Alle Elementor Section-Container: kein eigenes BG — SVG Map ist das Seiten-BG */
body.has-siges-map-bg .e-con-boxed,
body.has-siges-map-bg .e-con-full,
body.has-siges-map-bg .elementor-section,
body.has-siges-map-bg .elementor-container {
  background-color: transparent !important;
  background-image: none !important;
}

/* Section Background Fade-In — via --sg-sec-bg CSS-Variable + .bg-visible Klasse */
/* Section-Background direkt anwenden — KEIN Fade-In/Out mehr (auf Wunsch entfernt,
   sah beim Durchscrollen unruhig aus). Default transparent → SVG-Map scheint durch. */
/* background + color via --sg-sec-bg/--sg-sec-text: zentralisiert unten bei "Universal Dark Mode" */

@media (prefers-reduced-motion: reduce) {
  .siges-ij, .siges-acc-scroll, .siges-immo-carousel {
    transition: none;
  }
}

/* SIGES Immo Filter - native, minimal, single-row */

/* Form-Element ist nur Wrapper. Eigentliches Flex-Layout sitzt auf __body damit
   das Mobile-Drawer-Wrapping nicht die display:contents-Kette der Rows bricht. */
.siges-immo-filter {
  background: #f7f5f1;
  border-radius: 8px;
  margin: 0 auto 1.5rem;
  max-width: var(--siges-content-max, 1600px);
  padding: 1.25rem 1.5rem;
}

.siges-immo-filter__body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: center;
  gap: 0.75rem 1rem;
}

.siges-immo-filter__actions {
  margin: 0;
}

/* Text-selection color in brand */
.siges-immo-filter ::selection {
  background: rgba(190, 155, 83, 0.35);
  color: var(--siges-text);
}

/* Kill native blue focus/active styling on all controls */
.siges-immo-filter button,
.siges-immo-filter select,
.siges-immo-filter input,
.siges-immo-filter a {
  -webkit-tap-highlight-color: transparent;
}
.siges-immo-filter button:focus,
.siges-immo-filter select:focus,
.siges-immo-filter input:focus,
.siges-immo-filter a:focus {
  outline: none;
}

.siges-immo-filter__field {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

/* Field-Label (für single inputs UND <legend> der Radio-Gruppe) */
.siges-immo-filter__field > label,
.siges-immo-filter__field > legend,
.siges-immo-filter__field--radio > legend {
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b6357;
  margin-bottom: 0.15rem;
  padding: 0;
  float: none;
}

/* <fieldset> = Box mit Default-Browser-Border/Padding — alles weg */
.siges-immo-filter__field--radio {
  border: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.siges-immo-filter__field select,
.siges-immo-filter__field input[type="number"] {
  padding: 0.75rem 1rem;
  height: 48px;
  border: 1px solid #d9d2c8;
  border-radius: 4px;
  font-size: 0.95rem;
  font-family: inherit;
  color: var(--siges-text);
  background: #fff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.siges-immo-filter__field select {
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2358886D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  background-size: 16px 16px;
  cursor: pointer;
}

.siges-immo-filter__field select:hover,
.siges-immo-filter__field input[type="number"]:hover {
  border-color: #BE9B53;
}

.siges-immo-filter__field select:focus,
.siges-immo-filter__field input[type="number"]:focus {
  outline: none;
  border-color: #BE9B53;
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.18);
}

/* Pill segmented radio — Fieldset = Stack (Legend oben, Pill darunter).
   Pill (.__pill) ist ein flexrow Container für die 3 Labels. */
.siges-immo-filter__field--radio {
  /* erbt display:flex; flex-direction:column vom Base-Field */
}
.siges-immo-filter__pill {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid #d9d2c8;
  border-radius: 999px;
  padding: 4px;
  gap: 2px;
  height: 48px;
  box-sizing: border-box;
}
.siges-immo-filter__pill > label {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  height: 100%;
  font-size: 0.9rem;
  font-weight: 500;
  color: #6b6357;
  cursor: pointer;
  border-radius: 999px;
  transition: background-color 0.18s ease, color 0.18s ease;
  user-select: none;
  white-space: nowrap;
}
.siges-immo-filter__pill > label:hover {
  color: var(--siges-text);
}
.siges-immo-filter__pill input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.siges-immo-filter__pill > label:has(input[type="radio"]:checked) {
  background: var(--siges-forest-green, #58886D);
  color: #fff;
  box-shadow: 0 1px 3px rgba(88, 136, 109, 0.32);
}
.siges-immo-filter__pill > label:has(input[type="radio"]:focus-visible) {
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.35);
}

/* Range-Field — Grid statt Flex damit Stepper horizontal in Row 2 sitzen.
   Row 1: Label (full-width). Row 2: Stepper [Sep Stepper]. */
.siges-immo-filter__field.siges-immo-range {
  display: grid;
  grid-template-columns: 1fr auto 1fr;  /* default: 2 Stepper + Separator */
  align-items: center;
  gap: 0.4rem 0.5rem;
}
.siges-immo-filter__field.siges-immo-range--max_only {
  grid-template-columns: 1fr;          /* nur 1 Stepper */
}
.siges-immo-filter__field.siges-immo-range > label {
  grid-column: 1 / -1;                 /* Label spannt alle Spalten */
}

.siges-immo-range__sep {
  color: #BE9B53;
  font-weight: 600;
  flex-shrink: 0;
}

/* Custom number stepper — hides native spinner, adds branded +/− */
.siges-immo-stepper {
  position: relative;
  display: flex;
  flex: 1;
  min-width: 0;
  height: 48px;
}

.siges-immo-stepper__input {
  width: 100%;
  min-width: 0;
  text-align: center;
  padding-right: 28px !important;
  -moz-appearance: textfield;
}

.siges-immo-stepper__input::-webkit-outer-spin-button,
.siges-immo-stepper__input::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
  display: none !important;
}

/* Belt-and-suspenders: hide spinners on ANY number input in our filter */
.siges-immo-filter input[type="number"]::-webkit-outer-spin-button,
.siges-immo-filter input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
  display: none !important;
}
.siges-immo-filter input[type="number"] {
  -moz-appearance: textfield !important;
}

/* Max-only mode: single stepper takes full width, no sep margin */
.siges-immo-range--max_only .siges-immo-range__inputs {
  gap: 0;
}

.siges-immo-stepper__buttons {
  position: absolute;
  top: 4px;
  right: 4px;
  bottom: 4px;
  width: 22px;
  display: flex;
  flex-direction: column;
  border-left: 1px solid #ECE9E4;
  overflow: hidden;
  border-radius: 0 3px 3px 0;
}

.siges-immo-stepper__btn {
  flex: 1;
  border: none;
  background: transparent;
  color: #6b6357;
  font-size: 8px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.15s ease, color 0.15s ease;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
}

.siges-immo-stepper__btn:hover {
  background: #ECE9E4;
  color: var(--siges-forest-green, #58886D);
}

.siges-immo-stepper__btn:active {
  background: #BE9B53;
  color: #fff;
}

.siges-immo-stepper__btn--up {
  border-bottom: 1px solid #ECE9E4;
}

.siges-immo-filter__actions {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}

.siges-immo-filter__submit {
  background: var(--page-accent, #BE9B53);
  color: var(--page-accent-contrast, white);
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 30px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.2s, filter 0.2s;
}

.siges-immo-filter__submit:hover,
.siges-immo-filter__submit:focus {
  background: var(--page-accent, #a0824a);
  filter: brightness(0.9);
}

.siges-immo-filter__reset {
  color: #6b6357;
  text-decoration: none;
  font-size: 0.875rem;
}

.siges-immo-filter__reset:hover {
  text-decoration: underline;
}

/* Results */

.siges-immo-results__meta {
  margin-bottom: 1rem;
  color: #6b6357;
  font-size: 0.95rem;
}

.siges-immo-results__grid {
  display: grid;
  gap: var(--sg-gap, 16px); /* Figma: 16px Card-Gap */
  margin-bottom: 2rem;
}

/* Infinity Scroll — Sentinel + Loader */
.siges-immo-sentinel {
  height: 1px;
  width: 100%;
  pointer-events: none;
}
.siges-immo-loader {
  display: none;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 2rem 0;
}
.siges-immo-loader__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--siges-gold, #BE9B53);
  animation: siges-loader-bounce 1s infinite ease-in-out;
}
.siges-immo-loader__dot:nth-child(2) { animation-delay: 0.15s; }
.siges-immo-loader__dot:nth-child(3) { animation-delay: 0.30s; }
@keyframes siges-loader-bounce {
  0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
  40%           { transform: scale(1);   opacity: 1; }
}

.siges-immo-results__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.siges-immo-results__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.siges-immo-results__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.siges-immo-results__grid--cols-5 { grid-template-columns: repeat(5, 1fr); }

/* Responsive: Desktop=5/4, Medium=3, Tablet=2, Mobile=1
   cols-4 bleibt bis 1100px bei 4 Spalten (Sidebar 384px frisst Platz, aber
   "4 auf Desktop" ist gewünscht — Laptops 1280-1440 zeigen 4). */
@media (max-width: 1100px) { .siges-immo-results__grid--cols-4 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 1200px) { .siges-immo-results__grid--cols-5 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px)  { .siges-immo-results__grid--cols-5,
                              .siges-immo-results__grid--cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px)  { .siges-immo-results__grid--cols-5,
                              .siges-immo-results__grid--cols-4,
                              .siges-immo-results__grid { grid-template-columns: 1fr; } }

/* Aktuelle-Immobilien: Filter + Grid full-width mit 40px Gutter */
.e-con:has(.siges-immo-carousel),
.e-con-inner:has(.siges-immo-carousel) {
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
.e-con:has(.siges-immo-carousel),
.e-con-inner:has(.siges-immo-carousel) {
  background: var(--siges-cream, #F7F5F1) !important;
  min-height: 100vh;
}
.siges-immo-carousel {
  padding: 40px var(--sg-side-pad, 50px) 60px;
  box-sizing: border-box;
}
/* Filter neben Carousel (Aktuelle-Immobilien-Page) → full-width, white, horizontal */
/* Filter-Wrapper auf Aktuelle-Immobilien — gibt Luft links/rechts für die Pill */
.e-con:has(.siges-immo-carousel) .elementor-widget-shortcode:has(.siges-immo-filter) {
  padding: 0 var(--sg-side-pad, 50px);
  margin-block-end: 0;
  box-sizing: border-box;
  background: transparent;
  z-index: 50;
  position: relative;
  transition: background 0.25s ease;
}
/* Snug an die Nav rücken — Container (mit Filter + Carousel als Kinder)
   bekommt explizit padding-top:0 und der vom Theme/Elementor evtl. gesetzte
   margin-block der ersten Section wird genullt. */
.e-con:has(.siges-immo-carousel),
.e-con-inner:has(.siges-immo-carousel) {
  padding-top: 0 !important;
  margin-top: 0 !important;
}
/* Carousel wiederum braucht weniger Atemluft nach oben weil Filter direkt darüber */
.e-con:has(.siges-immo-carousel) .siges-immo-carousel {
  padding-top: 16px;
}
/* Wenn gepinnt: Hintergrund solid einblenden damit Grid-Content nicht durchscrollt */
.e-con:has(.siges-immo-carousel) .elementor-widget-shortcode:has(.siges-immo-filter).is-pinned {
  background: var(--siges-bg-light, #f7f5f1);
}

/* Filter Pill — weiß, full-rounded */
.e-con:has(.siges-immo-carousel) .siges-immo-filter {
  max-width: none;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  padding: 16px 24px;
  background: #fff;
  border-radius: 999px;
  border: 1px solid var(--siges-border, #ECE9E4);
  box-shadow: 0 2px 12px -4px rgba(58,48,40,0.10);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* Horizontal layout sitzt jetzt am __body */
.e-con:has(.siges-immo-carousel) .siges-immo-filter .siges-immo-filter__body {
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  padding: 0;
}
.e-con:has(.siges-immo-carousel) .siges-immo-filter .siges-immo-filter__row {
  display: contents;
}
.e-con:has(.siges-immo-carousel) .siges-immo-filter .siges-immo-filter__actions {
  margin-left: auto;
}

/* Card — einheitliches Design, identisch mit siges-projekt-card */

.siges-immo-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #ECE9E4;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.siges-immo-card:hover {
  border-color: #BE9B53;
  transform: translateY(-3px);
  box-shadow: 0 18px 40px -20px rgba(81, 60, 45, 0.28);
}

/* Während aktivem horizontalen Pin-Scroll: nur die Transition-Dauer auf 0
   damit der Hover-Effekt beim Vorbeischieben nicht 5× sanft pulst.
   Pointer/Click bleiben unangetastet — die Karte ist weiter klickbar.
   Spezifität via .siges-immo-loop--pin.is-scrolling.is-scrolling Doppelklasse,
   schlägt die einklassigen :hover-Regeln. */
.siges-immo-loop--pin.is-scrolling .siges-immo-card,
.siges-immo-loop--pin.is-scrolling .siges-immo-card:hover,
.siges-immo-loop--pin.is-scrolling .siges-immo-card__image img,
.siges-immo-loop--pin.is-scrolling .siges-immo-card:hover .siges-immo-card__image img,
.siges-immo-loop--pin.is-scrolling .siges-immo-card__cta,
.siges-immo-loop--pin.is-scrolling .siges-immo-card__cta-arrow {
  transition-duration: 0s;
}

.siges-immo-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--siges-text);
  text-decoration: none;
}
.siges-immo-card__link:hover,
.siges-immo-card__link:focus { color: #3a3028; text-decoration: none; }

.siges-immo-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #ECE9E4;
}

.siges-immo-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.siges-immo-card:hover .siges-immo-card__image img {
  transform: scale(1.05);
}

/* Badge: weiß mit dunkler Schrift — barrierefrei, image-unabhängig */
.siges-immo-card__badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.35rem 0.85rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--siges-text);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  z-index: 2;
}
.siges-immo-card__badge--kaufen  { color: #8a6f2f; }
.siges-immo-card__badge--mieten  { color: #3a6b3a; }
.siges-immo-card__badge--verkauft { color: #6b6357; }

.siges-immo-card__body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.4rem;
}

.siges-immo-card__ort {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #BE9B53;
  font-weight: 600;
}

.siges-immo-card__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--siges-text);
  margin: 0;
  line-height: 1.3;
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
  -webkit-hyphens: auto;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.siges-immo-card__specs {
  list-style: none;
  padding: 0;
  margin: 0.25rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: 0.85rem;
  color: #2C2825;
}

.siges-immo-card__specs > div {
  display: flex;
  gap: 0.3rem;
}

.siges-immo-card__specs dt {
  font-weight: 600;
  margin: 0;
}

.siges-immo-card__specs dd {
  margin: 0;
}

.siges-immo-card__preis dd {
  color: var(--siges-text);
  font-weight: 700;
}

.siges-immo-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 1rem;
  font-weight: 600;
  font-size: 0.92rem;
  color: #BE9B53;
  transition: gap 0.25s ease, color 0.25s ease;
}
.siges-immo-card:hover .siges-immo-card__cta {
  gap: 0.7rem;
  color: #2C2825;
}
.siges-immo-card__cta-arrow {
  display: inline-block;
  transition: transform 0.25s ease;
}
.siges-immo-card:hover .siges-immo-card__cta-arrow {
  transform: translateX(3px);
}

.siges-immo-card--verkauft {
  opacity: 0.7;
}
.siges-immo-card--verkauft .siges-immo-card__image img {
  filter: grayscale(0.25);
}

/* =================================
   LOOP (horizontaler Slider mit scroll-snap)
   ================================= */

.siges-immo-loop {
  position: relative;
  --slide-w: 320px;
}

.siges-immo-loop__track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scroll-padding-left: 0;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge */
  padding: 0.5rem 0 1rem;
}

.siges-immo-loop__track::-webkit-scrollbar {
  display: none; /* WebKit */
}

.siges-immo-loop__slide {
  flex: 0 0 var(--slide-w);
  scroll-snap-align: start;
}

.siges-immo-loop__slide .siges-immo-card {
  height: 100%;
}

.siges-immo-loop__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.95);
  color: var(--siges-text);
  font-size: 1.8rem;
  cursor: pointer;
  z-index: 5;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  display: none;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-weight: 700;
  transition: background 0.2s, transform 0.2s;
}

.siges-immo-loop__nav:hover {
  background: #BE9B53;
  color: white;
}

.siges-immo-loop__nav--prev { left: -22px; }
.siges-immo-loop__nav--next { right: -22px; }

@media (min-width: 769px) {
  .siges-immo-loop__nav { display: flex; }
}

@media (min-width: 1024px) {
  .siges-immo-loop { --slide-w: 360px; }
}

/* =================================
   LOOP PIN — pinned horizontal scroll (GSAP, mwg_effect087 pattern)
   Mit sticky Filter-Sidebar links
   ================================= */

.siges-immo-loop--pin {
  overflow: hidden;
  position: relative;
  background: var(--siges-cream, #F7F5F1);
  /* Breakout aus jedem boxed-Container (Elementor 1400px) → echte viewport-Breite.
     overflow-x: hidden auf body verhindert horizontalen Scrollbar. */
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* No sidebar — Filter sitzt am UNTEREN Rand des gepinnten Bereichs */
}

/* Heading-Overlay — oben links, sauber über den Cards, kein Overlap */
.siges-immo-loop--pin .siges-immo-loop__heading {
  position: absolute;
  top: 0;
  left: 40px;
  right: 40px;
  z-index: 20;
  padding-top: 110px;
  pointer-events: none;
  max-height: 38vh;
  overflow: hidden;
}
/* Row: Title links + Eyebrow rechts (same line) */
.siges-immo-loop__heading-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.siges-immo-loop__heading-eyebrow {
  /* White Pill — Brand Design Rules */
  display: inline-block;
  background: #ffffff;
  border-radius: 999px;
  padding: 6px 16px;
  margin: 0 0 0.75rem;
  font-family: var(--siges-font-deco);
  font-size: clamp(0.65rem, 0.8vw, 0.75rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--siges-gold);
  box-shadow: 0 2px 8px rgba(44, 40, 37, 0.08);
  white-space: nowrap;
}
.siges-immo-loop__heading-title {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 2.1rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.022em;
  color: var(--siges-text, #2C2825);
  white-space: normal;
}
/* Copy im Pin-Overlay ausblenden — zu viel Text neben den Cards */
.siges-immo-loop__heading-copy {
  display: none;
}

/* Container: Cards ins untere Drittel schieben */
.siges-immo-loop--has-header .siges-immo-loop__container {
  justify-content: flex-end;
  padding-top: 0;
  padding-bottom: 110px;
}

/* Filter-Bar am unteren Rand — fixed während pinned, exakt gleiche viewport-relative
   Positionierung wie Top-Nav (left:0/right:0 → body-Breite, padding 40px wie Nav).
   Default-Fallback (vor onToggle): position:absolute am Loop-Bottom. */
.siges-immo-loop--pin .siges-immo-loop__filter-bottom {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0 var(--siges-side-pad, 50px) 24px;
  box-sizing: border-box;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.siges-immo-loop--pin .siges-immo-loop__filter-bottom > * {
  pointer-events: auto;
}
/* Während aktiv pinned: viewport-relativ */
.siges-immo-loop--pin.is-pin-active .siges-immo-loop__filter-bottom {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 24px;
  top: auto;
  padding: 0 var(--siges-side-pad, 50px);
}

/* Find-CTA — einfacher Gold-Pill */
.siges-immo-loop__find-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.75rem;
  background: var(--siges-gold, #BE9B53);
  color: var(--siges-bg, #F7F5F1);
  border-radius: 999px;
  font-family: 'Ageo', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: background 0.22s ease, gap 0.22s ease, box-shadow 0.22s ease;
  box-shadow: 0 2px 12px rgba(190, 155, 83, 0.35);
}
.siges-immo-loop__find-cta:hover {
  background: var(--siges-gold-dark, #a0824a);
  color: var(--siges-bg, #F7F5F1);
  gap: 0.75rem;
  box-shadow: 0 6px 20px rgba(190, 155, 83, 0.45);
  text-decoration: none;
}

/* Inner Pill — Glass-Look gespiegelt vom Top-Nav */
.siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter {
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow:
    0 1px 2px rgba(58, 48, 40, 0.04),
    0 6px 20px -8px rgba(58, 48, 40, 0.15);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  padding: 14px 24px;
  border-radius: 999px;
  max-width: none;
  width: 100%;
  min-height: 0;
  box-sizing: border-box;
}
/* Horizontal Layout am __body */
.siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter .siges-immo-filter__body {
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  padding: 0;
}

.siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter__row {
  display: contents;
}

.siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter__actions {
  margin-left: auto;
}

.siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter__field {
  min-width: 0;
}

/* (filter-aside legacy rules removed — use filter-bottom now) */

.siges-immo-loop--pin .siges-immo-loop__container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100vh;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  /* Padding bottom damit Cards nicht unter Filter-Bar verschwinden */
  padding-bottom: 100px;
  box-sizing: border-box;
}
/* Mit Header: Cards in unteres Drittel schieben */
.siges-immo-loop--pin.siges-immo-loop--has-header .siges-immo-loop__container {
  justify-content: flex-end;
  padding-bottom: 150px;
}

.siges-immo-loop--pin .siges-immo-loop__track {
  display: flex;
  width: max-content;
  white-space: nowrap;
  gap: 20px;
  will-change: transform;
  /* Slides starten an --sg-side-pad (matched Top-Nav padding).
     50vw Buffer rechts = sanfter Auslauf während neue Cards von rechts reinkommen. */
  padding: 0 50vw 0 var(--sg-side-pad, 50px);
  /* override existing loop styles */
  overflow: visible;
  scroll-snap-type: none;
}

.siges-immo-loop--pin .siges-immo-loop__slide {
  position: relative;
  flex: 0 0 auto;
  width: 380px;
  aspect-ratio: 0.75;
}

.siges-immo-loop--pin .siges-immo-loop__slide > .siges-immo-card,
.siges-immo-loop--pin .siges-immo-loop__slide > .siges-projekt-card {
  width: 100%;
  height: 100%;
  white-space: initial;
  will-change: transform;
  display: flex;
  flex-direction: column;
}

/* Pin-Loop: Image füllt den Slot, Body bleibt unten fixiert */
.siges-immo-loop--pin .siges-immo-card__image {
  flex: 1 1 auto;
  aspect-ratio: auto;
  min-height: 0;
}

.siges-immo-loop--pin .siges-immo-card__body {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  /* Mobile: gleicher Pin-Effect wie Desktop — horizontaler Scroll innerhalb
     gepinnter Section, Filter zentriert darunter, ausserhalb Section unsichtbar */
  .siges-immo-loop--pin {
    overflow: hidden;
  }
  .siges-immo-loop--pin .siges-immo-loop__container {
    height: 100dvh;
    padding-bottom: 90px; /* Platz für die fixed Filter-Pill unten */
  }
  .siges-immo-loop--pin.siges-immo-loop--has-header .siges-immo-loop__container {
    padding-bottom: 90px;
  }
  /* Slides kleiner für Mobile — ~70vw, Portrait-Aspect */
  .siges-immo-loop--pin .siges-immo-loop__slide {
    width: 70vw;
    aspect-ratio: 0.75;
  }
  .siges-immo-loop--pin .siges-immo-loop__track {
    /* GSAP setzt transform, kein eigener scroll mehr */
    padding: 0 30vw 0 20px;
    gap: 14px;
  }
  /* Heading-Overlay kompakter */
  .siges-immo-loop--pin .siges-immo-loop__heading {
    left: 20px;
    right: 20px;
    padding-top: 90px;
    max-height: 30vh;
  }
  /* Mobile: Row wird Column-reverse — Eyebrow oben, Title drunter */
  .siges-immo-loop__heading-row {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .siges-immo-loop__heading-title {
    font-size: clamp(1.2rem, 5.5vw, 1.8rem) !important;
    white-space: normal !important;
  }
  /* Filter-Bar: kompakter Pill mit Toggle, zentriert über dem Bildschirm-Unten */
  .siges-immo-loop--pin .siges-immo-loop__filter-bottom {
    padding: 0 16px 12px !important;
  }
  .siges-immo-loop--pin.is-pin-active .siges-immo-loop__filter-bottom {
    bottom: 12px;
    padding: 0 16px !important;
  }
}

/* Pagination */

.siges-immo-pagination {
  display: flex;
  justify-content: center;
  gap: 0.3rem;
}

.siges-immo-pagination .page-numbers {
  padding: 0.5rem 0.8rem;
  background: #f0ede8;
  color: var(--siges-text);
  text-decoration: none;
  border-radius: 4px;
  font-size: 0.875rem;
}

.siges-immo-pagination .page-numbers.current {
  background: #BE9B53;
  color: white;
}

.siges-immo-pagination .page-numbers:hover:not(.current) {
  background: #e5dfd6;
}

/* No results */

.siges-immo-no-results {
  text-align: center;
  padding: 3rem 1rem;
  color: #6b6357;
}

/* =================================
   SINGLE PROJECT DETAIL
   ================================= */

/* Container: full viewport breakout + 36px Gutter (matched zur Top-Nav).
   Padding identisch zur .site-header__inner (Top-Nav Outer): 0 36px.
   padding-top: 2rem gibt Luft zwischen Nav-Bottom und Grid-Start. */
.siges-immo-single {
  position: relative;
  /* width:100% (scrollbar-safe) statt 100vw — Sidebar fluchtet mit Logo (16px) */
  width: 100%;
  max-width: 100%;
  padding: 18px var(--sg-outer, 16px) 3rem;
  box-sizing: border-box;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  color: var(--siges-text);
}

/* Single-/Archive-Pages: nutzen den globalen Section-Top (siehe :root oben),
   identisch zu allen anderen Sections. Frühere 86px hardcoded entfernt. */

@media (max-width: 900px) {
  .siges-immo-single { padding: 1.5rem var(--sg-outer, 16px) 2rem; }
}

/* Header lebt jetzt in der Sidebar — kompakter Stil */
.siges-immo-single__header {
  position: relative;
  text-align: left;
  margin: 0;
  padding: 1.5rem;
  padding-right: 56px; /* Platz für den Wishlist-Button top-right */
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 12px;
}

/* Wishlist-Button auf Single-Page — top-right des Sidebar-Headers */
.siges-immo-single__wishlist {
  position: absolute;
  top: -4px;
  right: 0;
  z-index: 5;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid #ECE9E4;
  padding: 0;
  background: #fff;
  color: #6b6357;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(58, 48, 40, 0.08);
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.siges-immo-single__wishlist:hover {
  transform: scale(1.06);
  color: #fff;
  background: var(--siges-forest-green, #58886D);
  border-color: var(--siges-forest-green, #58886D);
  box-shadow: 0 4px 14px rgba(58, 48, 40, 0.14);
}
.siges-immo-single__wishlist:focus-visible {
  outline: 2px solid var(--siges-forest-green, #58886D);
  outline-offset: 2px;
}
.siges-immo-single__wishlist.is-saved {
  color: #fff;
  border-color: var(--siges-forest-green, #58886D);
  background: var(--siges-forest-green, #58886D);
}
.siges-immo-single__wishlist.is-saved .siges-immo-single__wishlist-icon {
  fill: #fff;
  stroke: #fff;
}
.siges-immo-single__wishlist.is-pulsing {
  animation: siges-wishlist-pulse 0.35s ease-out;
}
.siges-immo-single__wishlist-icon {
  display: block;
  width: 22px;
  height: 22px;
  transition: fill 0.2s ease, stroke 0.2s ease;
}

.siges-immo-single__ort {
  color: #BE9B53;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.75rem;
  font-weight: 600;
  margin: 0.75rem 0 0.4rem;
}

.siges-immo-single__header .siges-immo-single__title {
  font-size: clamp(1.2rem, 1.5vw, 1.5rem);
  font-weight: 700;
  margin: 0 0 0.5rem;
  line-height: 1.25;
  color: var(--siges-text);
}

.siges-immo-single__adresse {
  color: #6b6357;
  font-size: 0.9rem;
  line-height: 1.4;
}

.siges-immo-single__projekt-link {
  font-size: 0.8rem;
  color: #6b6357;
  margin-top: 0.6rem;
}
.siges-immo-single__projekt-link a {
  color: #2C2825;
  font-weight: 600;
  text-decoration: none;
}
.siges-immo-single__projekt-link a:hover { color: #BE9B53; }

/* Hero im Content-Bereich, full width der rechten Spalte */
.siges-immo-single__hero {
  position: relative;
  margin: 0 0 2rem;
  border-radius: 12px;
  overflow: hidden;
  aspect-ratio: 16/10;
}

.siges-immo-single__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Badge inline in der Sidebar — solid weiß + dark text (WCAG AA pass) */
.siges-immo-single__badge {
  position: static;
  display: inline-block;
  background: #fff;
  color: #8a6f2f; /* abgedunkeltes Gold */
  border: 1px solid #ECE9E4;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}

.siges-immo-single__badge--mieten {
  color: #3d6b3d; /* dunkleres Grün */
  background: #fff;
}
.siges-immo-single__badge--verkauft {
  color: #6b6357;
  background: #fff;
}

/* Side-by-side Layout: Sticky-Sidebar links (GSAP-pinned), Content rechts.
   Grid startet ohne Top-Margin — Body-Padding + Container-Padding regeln Abstand zur Nav. */
.siges-immo-single__main {
  display: grid;
  /* 3-Spalten: Links Infos | Content | Rechts Map+Makler (wie Term-Archive) */
  grid-template-columns: var(--sg-sidebar, 384px) 1fr var(--sg-sidebar, 384px);
  gap: var(--sg-gap, 16px);
  margin: 0;
  align-items: start;
}

/* Single-Sidebars scrollen normal mit (NICHT sticky/pinned) */
.siges-immo-single__sidebar {
  position: static;
  align-self: start;
}
@media (max-width: 1280px) {
  .siges-immo-single__main { grid-template-columns: var(--sg-sidebar, 384px) 1fr; }
  .siges-immo-single__sidebar--right { grid-column: 1 / -1; position: static; }
  .siges-immo-single__sidebar--right .siges-immo-single__sidebar-inner {
    display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--sg-gap, 16px);
  }
  .siges-immo-single__sidebar--right .siges-immo-single__makler,
  .siges-immo-single__sidebar--right .siges-immo-single__map-sidebar { flex: 1 1 320px; }
}

/* Beide Spalten-Inhalte starten exakt am Row-Top (kein Margin obendrüber) */
.siges-immo-single__sidebar > :first-child,
.siges-immo-single__content > :first-child {
  margin-top: 0;
}

@media (max-width: 1024px) {
  /* ── Projekt-Detail Mobile/Tablet-Reorder ───────────────────────────────
     Gewünschte Reihenfolge: Header-Card → Galerie → Preis → Specs → Parken →
     Beschreibung → Anfrage → Weitere Einheiten → Map → Makler → Newsletter.
     Die Karten liegen in 3 verschiedenen Containern (linke Sidebar, Content,
     rechte Sidebar). Wir lösen diese Container per display:contents auf, sodass
     ALLE Karten direkte Flex-Items von __main werden und per `order` frei
     sortierbar sind. (Galerie-Wrapper = header.siges-immo-single__gallery-header) */
  .siges-immo-single__main {
    display: flex;
    flex-direction: column;
    gap: var(--sg-gap, 16px);
    grid-template-columns: none;
    align-items: stretch; /* Basis-__main hat align-items:start → Cards würden auf Content-Breite schrumpfen */
  }
  /* Höhere Spezifität (__main-Prefix) NÖTIG: die top-level Regel
     `.siges-immo-single__sidebar--left .siges-immo-single__sidebar-inner { display:flex }`
     steht SPÄTER im File → würde bei gleicher Spezifität gewinnen und das Flatten
     der linken Sidebar verhindern. */
  .siges-immo-single__main > .siges-immo-single__sidebar,
  .siges-immo-single__main .siges-immo-single__sidebar--left .siges-immo-single__sidebar-inner,
  .siges-immo-single__main .siges-immo-single__sidebar--right .siges-immo-single__sidebar-inner,
  .siges-immo-single__main > .siges-immo-single__content {
    display: contents;
  }
  .siges-immo-single__header         { order: 1; }
  .siges-immo-single__gallery-header { order: 2; }
  .siges-immo-single__map-sidebar    { order: 3; }  /* Lage direkt unter Galerie, vor Preis */
  .siges-immo-single__preis-box      { order: 4; }
  .siges-immo-single__specs          { order: 5; }
  .siges-immo-single__parken         { order: 6; }
  .siges-immo-single__sections       { order: 7; }
  .siges-immo-single__makler         { order: 8; }  /* Ansprechpartner über die Anfrage-Form */
  .siges-inquiry                     { order: 9; }
  .siges-immo-single__related        { order: 10; }
  .siges-immo-single__newsletter     { order: 11; }

  /* Galerie- & Map-Card: gleiches, gleichmäßiges Padding (16px rundum).
     __main-Prefix nötig, da die Quell-Regeln (.siges-immo-archive__map-card{padding:1.5rem},
     .siges-immo-single__gallery{margin-bottom:2rem}, .siges-immo-single__map-sidebar
     margin/border-top) später im File stehen. */
  .siges-immo-single__main .siges-immo-single__gallery-header .siges-immo-single__gallery {
    margin-bottom: 0; /* war 2rem → unten sonst mehr als oben/seitlich */
  }
  .siges-immo-single__main .siges-immo-single__map-sidebar {
    padding: 16px;    /* war 1.5rem/24px → jetzt wie Galerie-Card */
    margin-top: 0;    /* Desktop-Sidebar-Abstand raus */
    border-top: none; /* Desktop-Sidebar-Trennlinie raus */
  }
  /* WICHTIG: `flex: 1 1 320px` (aus dem ≤1280 Tablet-Row-Layout der rechten
     Sidebar) leakt ins Mobile-Column-Flatten → flex-grow:1 in einer Column lässt
     die Karte VERTIKAL wachsen und den ganzen freien Platz absorbieren (= der
     riesige Abstand unter der Map). Auf Content-Höhe zwingen. */
  .siges-immo-single__main .siges-immo-single__sidebar--right .siges-immo-single__map-sidebar,
  .siges-immo-single__main .siges-immo-single__sidebar--right .siges-immo-single__makler {
    flex: 0 0 auto;
  }
  /* Card-Radien angleichen: Galerie war 14px, Newsletter 0 → alle 12px wie der Rest */
  .siges-immo-single__main .siges-immo-single__gallery-header { border-radius: 12px; }
  .siges-immo-single__main .siges-immo-single__newsletter { border-radius: 12px; }

  /* Inter-Card-Abstand überall gleich: nur die Flex-gap (16px) zählt. Eigene
     Card-Margins (Galerie mb:16, Beschreibung mb:40, Weitere-Einheiten mt:32)
     raus, sonst sind die Abstände ungleich. */
  .siges-immo-single__main .siges-immo-single__gallery-header,
  .siges-immo-single__main .siges-immo-single__sections,
  .siges-immo-single__main .siges-immo-single__related {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/* ── Floating "Immo suchen"-Dock auf Projekt-Detailseiten ───────────────────
   Verlinkt zur Such-/Ergebnis-Seite. Auf Mobil/Tablet (≤1024) immer sichtbar
   (bottom-pinned, zentriert), Desktop versteckt. Gleicher Look wie Filter-Dock. */
.siges-immo-single__search-dock { display: none; }
@media (max-width: 1024px) {
  .siges-immo-single__search-dock {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    position: fixed;
    bottom: max(18px, env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    z-index: 1003;
    padding: 0.85rem 1.5rem;
    background: #fff;
    color: var(--siges-text, #2C2825);
    border: 1px solid var(--siges-border, #ECE9E4);
    border-radius: 999px;
    font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 8px 28px rgba(58, 48, 40, 0.22);
    white-space: nowrap;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.15s ease;
  }
  .siges-immo-single__search-dock:hover,
  .siges-immo-single__search-dock:focus,
  .siges-immo-single__search-dock:focus-visible {
    background: #fff;
    color: var(--siges-text, #2C2825);
    border-color: var(--siges-gold, #BE9B53);
    text-decoration: none;
    outline: none;
  }
  .siges-immo-single__search-dock:active {
    transform: translateX(-50%) scale(0.97);
  }
}

/* Sidebar: scrollt nativ mit Content (kein GSAP-Pin auf Single-Pages).
   Archive-Sidebar bleibt gepinnt via archive-sidebar.js. */
.siges-immo-single__sidebar {
  align-self: start;
}

/* Transparenter Wrapper — jede Sektion ist eine eigene White-Card (identisch zum Term-Archive) */
.siges-immo-single__sidebar--left .siges-immo-single__sidebar-inner,
.siges-immo-single__sidebar--right .siges-immo-single__sidebar-inner {
  background: transparent;
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sg-gap, 16px);
}

/* Mini-Makler-Card in der Sidebar */
.siges-immo-single__makler-sidebar {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #ECE9E4;
}
.siges-immo-single__makler-sidebar h4 {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6b6357;
  margin: 0 0 0.85rem;
  font-weight: 600;
}
.siges-immo-makler-mini {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}
.siges-immo-makler-mini:last-child { margin-bottom: 0; }
.siges-immo-makler-mini__img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.siges-immo-makler-mini__body { min-width: 0; }
.siges-immo-makler-mini__name {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--siges-text);
  line-height: 1.2;
}
.siges-immo-makler-mini__position {
  font-size: 0.75rem;
  color: #6b6357;
  margin: 2px 0 4px;
}
.siges-immo-makler-mini__contact {
  display: block;
  font-size: 0.82rem;
  color: #2C2825;
  text-decoration: none;
  line-height: 1.5;
  word-break: break-word;
}
.siges-immo-makler-mini__contact:hover { color: #BE9B53; }

/* ==== Single-Project Makler-Card (prominent, mit CTA) ==== */
.siges-immo-single__makler-card {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #ECE9E4;
}

.siges-immo-single__makler-eyebrow {
  font-family: var(--siges-font-deco);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #BE9B53;
  font-weight: 700;
  margin-bottom: 0.85rem;
}

.siges-immo-single__makler-primary {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.siges-immo-single__makler-img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(58, 48, 40, 0.12);
}

.siges-immo-single__makler-info { min-width: 0; }

.siges-immo-single__makler-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--siges-text);
  line-height: 1.2;
}

.siges-immo-single__makler-pos {
  font-size: 0.82rem;
  color: #6b6357;
  margin-top: 2px;
}

.siges-immo-single__makler-contacts {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-bottom: 1rem;
  font-size: 0.88rem;
}

.siges-immo-single__makler-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #2C2825;
  text-decoration: none;
  word-break: break-word;
  transition: color 0.15s ease;
}
.siges-immo-single__makler-link svg {
  color: #BE9B53;
  flex-shrink: 0;
}
.siges-immo-single__makler-link:hover { color: #BE9B53; }

/* CTA "Termin anfragen" — prominent gold pill button */
.siges-immo-single__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.9rem 1.25rem;
  background: #BE9B53;
  color: var(--siges-text);
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  border-radius: 999px;
  margin-top: 0.5rem;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 8px rgba(190, 155, 83, 0.25);
}
.siges-immo-single__cta:hover {
  background: #a78440;
  color: var(--siges-text);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(190, 155, 83, 0.35);
  text-decoration: none;
}
.siges-immo-single__cta svg {
  transition: transform 0.2s ease;
}
.siges-immo-single__cta:hover svg {
  transform: translateX(3px);
}

/* Weitere Makler (kompakt) */
.siges-immo-single__makler-more {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid #ECE9E4;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  font-size: 0.82rem;
}
.siges-immo-single__makler-other {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.siges-immo-single__makler-other-name {
  font-weight: 600;
  color: var(--siges-text);
}
.siges-immo-single__makler-other-name span {
  font-weight: 400;
  color: #6b6357;
  font-size: 0.75rem;
}
.siges-immo-single__makler-other a {
  color: #2C2825;
  text-decoration: none;
}
.siges-immo-single__makler-other a:hover { color: #BE9B53; }

/* Section-Cards im Single-Bereich: gleiches Grid wie Archive */
.siges-immo-single__sections {
  margin-top: 0;
}

.siges-immo-single__specs {
  margin: 0;
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 12px;
  padding: 1.5rem;
}

.siges-immo-single__specs > div {
  display: flex;
  justify-content: space-between;
  padding: 0.4rem 0;
  border-bottom: 1px solid #e5dfd6;
}

.siges-immo-single__specs > div:last-child {
  border-bottom: none;
}

.siges-immo-single__specs dt {
  font-weight: 600;
  margin: 0;
}

.siges-immo-single__specs dd {
  margin: 0;
  text-align: right;
}

.siges-immo-single__preis-box {
  margin: 0;
  padding: 1.5rem;
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 12px;
  text-align: center;
}

.siges-immo-single__preis-label {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.75rem;
  font-weight: 600;
  color: #BE9B53;
  margin-bottom: 0.3rem;
}

.siges-immo-single__preis {
  font-size: 2rem;
  font-weight: 700;
}

.siges-immo-single__preis small {
  font-size: 1rem;
  color: #6b6357;
}

.siges-immo-single__tg {
  margin-top: 0.4rem;
  color: #6b6357;
  font-size: 0.875rem;
}

.siges-immo-single__parken {
  margin: 0;
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 12px;
  padding: 1.5rem;
}

.siges-immo-single__parken h4 {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #BE9B53;
}

.siges-immo-single__parken ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.siges-immo-single__parken li {
  display: flex;
  justify-content: space-between;
  padding: 0.3rem 0;
  font-size: 0.95rem;
}

.siges-immo-single__parken-preis {
  color: #6b6357;
  font-weight: 600;
}

/* Plan-Button: lebt innerhalb der Preis-Box als sekundärer CTA */
.siges-immo-single__plan-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1.1rem;
  padding: 0.55rem 1.1rem;
  background: transparent;
  color: #BE9B53;
  text-decoration: none;
  border: 1.5px solid #BE9B53;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  transition: background 0.2s ease, color 0.2s ease;
}
.siges-immo-single__plan-btn:hover {
  background: #BE9B53;
  color: #fff;
}
.siges-immo-single__plan-btn svg {
  flex-shrink: 0;
}

/* Standalone (wenn keine Preis-Box vorhanden, z.B. bei verkauft=ja) */
.siges-immo-single__plan-btn--standalone {
  display: flex;
  justify-content: center;
  background: #BE9B53;
  border-color: #BE9B53;
  color: #fff;
  padding: 0.75rem 1rem;
  margin-top: 1.5rem;
}
.siges-immo-single__plan-btn--standalone:hover {
  background: #a0824a;
  border-color: #a0824a;
  color: #fff;
}

.siges-immo-single__content {
  min-width: 0;
}

.siges-immo-single__beschreibung {
  margin-bottom: 2rem;
  font-size: 1.05rem;
  line-height: 1.65;
}

.siges-immo-single__makler-section,
.siges-immo-single__map-section {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #e5dfd6;
}

.siges-immo-single__makler-section h2,
.siges-immo-single__map-section h2 {
  font-size: 1.5rem;
  margin: 0 0 1.5rem;
}

.siges-immo-single__makler-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.siges-immo-makler-card {
  background: #f7f5f1;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.siges-immo-makler-card__image {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #e5dfd6;
}

.siges-immo-makler-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.siges-immo-makler-card__body {
  padding: 1rem 1.2rem 1.2rem;
}

.siges-immo-makler-card__titel {
  font-size: 0.75rem;
  color: #BE9B53;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
  margin-bottom: 0.2rem;
}

.siges-immo-makler-card__name {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 0.2rem;
}

.siges-immo-makler-card__position {
  color: #6b6357;
  font-size: 0.9rem;
  margin-bottom: 0.6rem;
}

.siges-immo-makler-card__tel,
.siges-immo-makler-card__email {
  font-size: 0.9rem;
}

.siges-immo-makler-card__tel a,
.siges-immo-makler-card__email a {
  color: var(--siges-text);
  text-decoration: none;
}

.siges-immo-makler-card__tel a:hover,
.siges-immo-makler-card__email a:hover {
  text-decoration: underline;
}

.siges-immo-single__adresse-text {
  margin-bottom: 1rem;
  font-size: 1.05rem;
}

.siges-immo-single__map {
  width: 100%;
  height: 220px;
  border: none;
  border-radius: 10px;
  margin-bottom: 0.5rem;
  display: block;
}

.siges-immo-single__map-sidebar {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--siges-border);
}

.siges-immo-single__map-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--siges-text-muted);
  margin-bottom: 0.6rem;
}

.siges-immo-single__map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--siges-text-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}

.siges-immo-single__map-link:hover {
  color: var(--siges-gold);
}

.siges-immo-single--verkauft {
  opacity: 0.85;
}

/* =================================
   HEADER + FOOTER WIDTH ALIGNMENT
   matched zur Hero/Page Content-Width (1400px)
   ================================= */

/* =========================================
   APP-NAV LOOK — schwebende Pill, sticky, compact
   ========================================= */

/* Outer header: fixed (overlay) damit Hero darunter durchscheint */
#siges-header.site-header,
.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  height: auto !important;
  pointer-events: none;
  transition: background 0.35s ease, backdrop-filter 0.35s ease;
}

/* (entfernt) Blur-Nav auf Aktuelle-Immobilien beim Scrollen — User-Wunsch:
   kein blurry Streifen über dem Filter. Nav bleibt transparent, die drei
   Pills (Branding/Nav/Actions) haben ihren eigenen Blur. */
.site-header__inner { pointer-events: auto; }

/* Admin-Bar wird ignoriert — Nav bleibt 10px vom viewport-Top.
   Admin-Bar overlappt (z-index 99999 > 1000) damit Admin-Funktionen erreichbar bleiben. */
body.admin-bar .site-header { top: 0 !important; }

/* GLOBAL: kein horizontal scroll auf body/html (verhindert 100vw-vs-scrollbar Bug
   bei breakout-Sections wie Hero / FH-Ticker / Acc-Scroll).
   `clip` statt `hidden` — sonst werden html/body zu Scroll-Containern und
   `position: sticky` pinnt nicht mehr gegen den Viewport. */
html, body { overflow-x: clip !important; overflow-y: visible !important; }

/* GLOBAL: 1rem = 16px base, p-Standard auf 16px (Theme/Elementor-Overrides erlaubt) */
html { font-size: 16px; }

/* GLOBAL: Textfarbe — warmes Fast-Schwarz für alle Copy + Headings */
body { color: var(--siges-text); }
h1, h2, h3, h4, h5, h6 { color: var(--siges-text); }

/* GLOBAL: Page-Content respektiert Nav-Bereich — 110px min vom Top.
   Exception: Hero-Pages (body.has-siges-hero) → Hero darf hinter Nav überlappen. */
/* ============================================================================
   GLOBAL SECTION-TOP SYSTEM (Source of Truth)
   ----------------------------------------------------------------------------
   --siges-section-top   = JS-gemessener Bottom der sichtbaren Nav-Pille,
                           inkl. Admin-Bar-Shift. Fallback 82px wenn JS nicht
                           geladen / DOM-Element fehlt.
   --siges-section-gap   = Gewollter Abstand zwischen Nav-Pille und Section
                           (User-Wunsch 2px). Hier global anpassbar.
   --siges-section-spacing = Extra Vertikal-Spacing für Sektionen, die zusätzlich
                           Atemluft brauchen (Bauweise, etc.). Desktop/Mobile.

   Alle Sections/Shortcodes sollten diese Vars nutzen statt Magic-Numbers.
   Body-Padding ergibt sich aus section-top + section-gap.
   Hero-Pages bekommen 0 (Hero darf hinter die Nav überlappen).
   ============================================================================ */
:root {
  --siges-section-top: 82px;          /* JS: viewport-y der sichtbaren Nav-Pille */
  --siges-section-gap: 2px;           /* Globaler Abstand Nav → Section          */
  --siges-body-pad-top: 84px;         /* JS: Body-padding-top inkl. Admin-Bar-Komp. */
  --siges-section-spacing: 32px;
  --siges-section-spacing-mobile: 46px;
}

body { padding-top: var(--siges-body-pad-top, 84px) !important; }
body.has-siges-hero,
body:has(.siges-immo-hero),
body.is-landing-page { padding-top: 0 !important; } /* LP-Canvas: Hero-Image flush top:0, hinter der Bar */

/* Nav-Inner: Flex mit space-between für ALLE Breiten.
   Layout: [Logo] ……… [Nav-Pille] ……… [Actions-Pille]
   - 3 Flex-Kinder + justify-content:space-between → Logo am Anfang, Actions
     am Ende, Nav-Pille mathematisch genau in der Mitte. KEINE auto-Margins,
     kein Grid → ein einziges Layoutsystem für alle Breiten.
   - Unter --bp-lg ist .primary-nav als Drawer position:fixed (aus dem Flow).
     Dann nur 2 In-Flow-Kinder → Logo links, Actions rechts. space-between
     funktioniert in beiden Fällen identisch. */
.site-header__inner {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 var(--sg-outer, 16px) !important;
  height: auto !important;
  box-sizing: border-box !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: var(--sg-gap, 16px) !important;
  grid-template-columns: none !important;
}

/* Gemeinsamer Pill-Stil: Logo + Actions (Nav-Pill NUR Desktop, siehe unten) */
.site-header__branding,
.site-header__actions {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  border-radius: 999px !important;
  box-shadow:
    0 1px 2px rgba(58, 48, 40, 0.04),
    0 6px 20px -8px rgba(58, 48, 40, 0.15) !important;
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  transition: box-shadow 0.25s ease, background 0.25s ease;
  min-height: 56px;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box;
}

/* Logo-Pill (links) */
.site-header__branding {
  flex: 0 0 auto !important;
  padding: 8px 22px !important;
}

/* ── Nav-Pill — NUR Desktop (≥1280px = --bp-lg) ────────────────────────────
   Auf Mobile/Tablet/Laptop ist .primary-nav der Card-Drawer (siehe @media unten).
   Der Pill-Stil (999px-Oval, flex-center) darf dort NICHT greifen. */
@media (min-width: 1280px) {
  .site-header .primary-nav {
    background: rgba(255, 255, 255, 0.92) !important;
    border: 1px solid rgba(255, 255, 255, 0.6) !important;
    border-radius: 999px !important;
    box-shadow:
      0 1px 2px rgba(58, 48, 40, 0.04),
      0 6px 20px -8px rgba(58, 48, 40, 0.15) !important;
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    transition: box-shadow 0.25s ease, background 0.25s ease;
    min-height: 56px;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box;
    /* Nav-Pille content-width — sitzt rechts neben den Actions, NICHT gestretcht.
       Header-Inner ist Flex, Logo hat margin-right:auto → schiebt Nav+Actions
       als Gruppe nach rechts. */
    flex: 0 1 auto !important;
    padding: 6px 18px !important;
    justify-content: center !important;
    margin: 0 !important;
    gap: 4px;
  }
  .site-header.is-scrolled .primary-nav {
    background: rgba(255, 255, 255, 0.98) !important;
    box-shadow:
      0 2px 4px rgba(58, 48, 40, 0.06),
      0 12px 36px -10px rgba(58, 48, 40, 0.22) !important;
  }
}

/* Drill-Down-Panel-Elemente (Zurück-Header + "Alle anzeigen") existieren NUR
   im Mobile-Drawer — auf Desktop ausblenden falls per JS injiziert. */
.nav__subhead,
.nav__item--all { display: none; }

/* ── Nav-Drawer als Card (≤1279px = unter --bp-lg) ─────────────────────────
   Öffnet als floating Card UNTER dem Header — kein Oval, kein Full-Bleed.
   Design-Sprache identisch zum Submenu-Card (14–18px Radius + soft shadow). */
@media (max-width: 1279px) {
  .site-header .primary-nav .nav__item--all { display: block !important; }
  .site-header .primary-nav {
    position: fixed;
    top: calc(var(--nav-h-mobile, 64px) + 16px);
    left: 10px;
    right: 10px;
    bottom: auto;
    width: auto !important;
    max-height: calc(100vh - var(--nav-h-mobile, 64px) - 26px);
    overflow-y: auto;
    z-index: 900;
    background: rgba(255, 255, 255, 0.92) !important; /* wie Nav-Pills (frosted), nicht voll weiß */
    border: 1px solid rgba(255, 255, 255, 0.6) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 40px -8px rgba(58, 48, 40, 0.22) !important;
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    padding: 8px !important;
    display: block !important;
    /* hidden state */
    opacity: 0;
    transform: translateY(-12px);
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s ease;
  }
  .admin-bar .site-header .primary-nav {
    top: calc(var(--nav-h-mobile, 64px) + var(--admin-top-offset, 46px) + 16px);
  }
  .site-header .primary-nav.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    visibility: visible;
  }
  /* Drawer klippt die seitlich rausgeschobenen Sub-Panels */
  .site-header .primary-nav { overflow: hidden !important; }
  /* nav__item static → Submenu-Panel positioniert sich am Drawer, nicht am li */
  .site-header .primary-nav .nav__item { position: static !important; }

  /* Vertikale Liste = Basis-Panel (Ebene 0) */
  .site-header .primary-nav .nav__list {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 2px !important;
    padding: 0 !important;
  }
  .site-header .primary-nav .nav__item { border-bottom: 1px solid rgba(58, 48, 40, 0.06); }
  .site-header .primary-nav .nav__item:last-child { border-bottom: none; }
  .site-header .primary-nav .nav__link {
    justify-content: space-between !important;
    padding: 14px 14px !important;
    font-size: 0.95rem !important;
    border-radius: 12px !important;
    letter-spacing: 0 !important;
  }
  /* Chevron zeigt nach rechts = "tiefer gehen" (Drill-Indikator) */
  .site-header .primary-nav .nav__item--has-children > .nav__link .nav__chevron {
    transform: rotate(-90deg) !important;
  }

  /* ── Sub-Panel: slidet von rechts über den Drawer (App-Style Drill-Down) ── */
  .site-header .primary-nav .nav__submenu {
    position: absolute !important;
    inset: 0 !important;
    margin: 0 !important;
    padding: 8px !important;
    background: rgba(255, 255, 255, 0.99) !important;
    border: none !important;
    border-radius: 18px !important;
    box-shadow: none !important;
    min-width: 0 !important;
    list-style: none !important;
    display: block !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 3;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  .site-header .primary-nav .nav__item--has-children.is-open > .nav__submenu {
    transform: translateX(0);
  }

  /* Panel-Header: Zurück-Button + Kategorie-Titel (sticky oben) */
  .site-header .primary-nav .nav__subhead {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 4px 4px 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid rgba(58, 48, 40, 0.08);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
    border-radius: 0;
  }
  .site-header .primary-nav .nav__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #ECE9E4;
    border: none;
    border-radius: 999px;
    padding: 9px 15px 9px 12px;
    cursor: pointer;
    color: #3a3028;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
    transition: background 0.18s ease;
  }
  .site-header .primary-nav .nav__back:active { background: #e0dccf; }
  .site-header .primary-nav .nav__subhead-title {
    font-weight: 700;
    font-size: 0.95rem;
    color: #3a3028;
  }
  .site-header .primary-nav .nav__sublink {
    display: block;
    padding: 12px 12px !important;
    font-size: 0.92rem !important;
    border-radius: 10px !important;
  }
  .site-header .primary-nav .nav__sublink:active { background: #ECE9E4; }
  .site-header .primary-nav .nav__sublink--all {
    font-weight: 600 !important;
    color: var(--page-accent, #513C2D) !important;
  }
}

/* Actions-Pill (rechts) — Search + Icons */
.site-header__actions {
  flex: 0 0 auto !important;
  padding: 6px 8px !important;
  gap: 4px !important;
}

/* Icon-Buttons im Actions-Pill: round mit hover-fill */
.site-header__actions .btn-search,
.site-header__actions .btn-nav-toggle {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: transparent !important;
  border: none !important;
  color: #3a3028 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0 !important;
  transition: background 0.18s ease, color 0.18s ease;
}
.site-header__actions .btn-search:hover,
.site-header__actions .btn-nav-toggle:hover,
.site-header__actions .btn-search:focus-visible,
.site-header__actions .btn-nav-toggle:focus-visible {
  background: #ECE9E4 !important;
  color: #2C2825 !important;
  outline: none;
}

/* ── Primär-CTA „Immobilien finden" in den Header-Actions (aus dem Hero verschoben) ── */
.site-header__actions .btn-immo-cta {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  height: 40px;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: var(--siges-forest-green, #58886D) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-decoration: none;
  white-space: nowrap;
  transition: filter 0.18s ease, transform 0.18s ease;
}
.site-header__actions .btn-immo-cta:hover,
.site-header__actions .btn-immo-cta:focus-visible {
  filter: brightness(0.9);
  transform: translateY(-1px);
  color: #fff !important;
  outline: none;
}
.btn-immo-cta__arrow { transition: transform 0.2s ease; }
.site-header__actions .btn-immo-cta:hover .btn-immo-cta__arrow { transform: translateX(3px); }
/* Unter Desktop (--bp-lg): CTA ausblenden — kompakter Header, Nav im Drawer */
@media (max-width: 1279px) {
  .site-header__actions .btn-immo-cta { display: none !important; }
}

/* Hamburger NUR ab Desktop ausblenden. Unter --bp-lg ist die Nav im Drawer →
   Hamburger MUSS sichtbar sein, sonst gibt es im Laptop/Tablet-Bereich gar
   keinen Menü-Zugang. */
@media (min-width: 1280px) {
  .site-header__actions .btn-nav-toggle { display: none !important; }
}

/* Stärkerer Shadow beim Scrollen — alle 3 Pills */
.site-header.is-scrolled .site-header__branding,
.site-header.is-scrolled .site-header__actions {
  background: rgba(255, 255, 255, 0.98) !important;
  box-shadow:
    0 2px 4px rgba(58, 48, 40, 0.06),
    0 12px 36px -10px rgba(58, 48, 40, 0.22) !important;
}

/* Logo etwas kompakter */
.site-header .site-logo__img {
  height: 36px !important;
  width: auto !important;
}

/* Nav-Links — pill-style hover */
.site-header .nav__link {
  padding: 8px 14px !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.04em !important;
  border-radius: 999px !important;
  transition: background 0.18s ease, color 0.18s ease !important;
}
.site-header .nav__link:hover,
.site-header .nav__link:focus-visible {
  background: #ECE9E4 !important;
  color: #3a3028 !important;
}
/* Top-Level aktiver Menüpunkt (Pill in der Hauptnav) */
.site-header .nav__list > .nav__item--current > .nav__link {
  background: var(--page-accent, #3a3028) !important;
  color: var(--page-accent-contrast, #fff) !important;
}
.site-header .nav__list > .nav__item--current > .nav__link:hover {
  background: var(--page-accent, #513C2D) !important;
  color: var(--page-accent-contrast, #fff) !important;
  filter: brightness(0.92);
}

/* Aktives Submenu-Item Hintergrund (Tint).
   Border-left wird via Theme-CSS gesetzt (siges-nav.css), Text-Farbe ebenfalls. */
.site-header .nav__submenu .nav__item--current {
  background: var(--page-accent-soft, transparent) !important;
}

/* Submenu: floating card unter dem Pill.
   WICHTIG: kein margin-top — sonst entsteht ein hover-toter Bereich zwischen
   Parent-Link und Submenu, und das Dropdown schließt sich beim Übergang.
   Visuelle Lücke wird stattdessen via padding-top realisiert (Teil der Hitbox). */
.site-header .nav__submenu {
  margin-top: 0 !important;
  border: 1px solid rgba(58, 48, 40, 0.08) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 40px -8px rgba(58, 48, 40, 0.22) !important;
  padding: 14px 6px 6px 6px !important; /* 14px top = Hover-Bridge zur Pill */
  background-clip: padding-box !important;
  min-width: 240px !important;
  background: #fff !important;
}
.site-header .nav__sublink {
  padding: 8px 14px !important;
  border-radius: 8px !important;
  font-size: 0.85rem !important;
  transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease !important;
}
.site-header .nav__sublink:hover,
.site-header .nav__sublink:focus-visible {
  background: #ECE9E4 !important;
  color: #3a3028 !important;
  padding-left: 14px !important;
}

/* =================================
   FOOTER: matched zur Header-Breite (full viewport, 36px Gutter wie Top-Nav)
   ================================= */
/* Outer Elementor location wrapper auf full viewport */
.elementor-location-footer {
  width: 100% !important;
  max-width: 100% !important;
}

/* Alle e-con Boxed-Container in Footer → full content-width + --sg-side-pad */
.elementor-location-footer .e-con-boxed,
.elementor-location-footer .e-con-boxed.e-con {
  --content-width: 100% !important;
  --padding-left: var(--sg-side-pad, 40px) !important;
  --padding-right: var(--sg-side-pad, 40px) !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* e-con-inner: zwingt inneren Box-Container auf 100% statt max 1250px */
.elementor-location-footer .e-con-boxed > .e-con-inner {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Spezifisch für die zwei Footer-Sections (Haupt + Bottom-Bar) — überschreibt Elementor-Inline */
.elementor-1558 .elementor-element-8bd144f,
.elementor-1558 .elementor-element-9b20de4 {
  --content-width: 100% !important;
  --padding-left: var(--sg-side-pad, 40px) !important;
  --padding-right: var(--sg-side-pad, 40px) !important;
  max-width: 100% !important;
  padding-left: var(--sg-side-pad, 40px) !important;
  padding-right: var(--sg-side-pad, 40px) !important;
}

@media (max-width: 1024px) {
  .elementor-location-footer .e-con-boxed,
  .elementor-1558 .elementor-element-8bd144f,
  .elementor-1558 .elementor-element-9b20de4 {
    --padding-left: var(--sg-side-pad, 1.25rem) !important;
    --padding-right: var(--sg-side-pad, 1.25rem) !important;
    padding-left: var(--sg-side-pad, 1.25rem) !important;
    padding-right: var(--sg-side-pad, 1.25rem) !important;
  }
  /* Hamburger-/Drawer-Bereich (≤1024): Desktop-Grid (fixe 384px-Logo-Spalte)
     aufheben → Logo-Pill links (content-width), Actions-Pill rechts. Sonst Pill
     gestreckt + Hamburger läuft unter ~535px off-screen. */
  .site-header__inner {
    display: flex !important;
    justify-content: space-between !important;
    grid-template-columns: none !important;
  }
  .site-header__actions { margin-left: auto !important; }
}

/* Mobile: compact, einheitliches Side-Padding (14px) — matched zum Hero + Pills */
@media (max-width: 768px) {
  .site-header__inner {
    width: 100% !important;
    padding: 0 !important;
    margin: 8px 0 !important;
  }
  .site-header__branding,
  .site-header__actions {
    min-height: 52px !important;
  }
  .site-header .site-logo__img { height: 32px !important; }
}
@media (max-width: 480px) {
  .site-header__inner {
    padding: 0 !important;
  }
}

/* Footer-Layout: siehe Footer-Section weiter oben (~Zeile 1330). */

/* Body / Page Content — neue Container-API (e-con-boxed) */
.elementor[data-elementor-type="wp-page"] .e-con-boxed > .e-con-inner,
.elementor[data-elementor-type="wp-page"] > .e-con.e-parent.e-con-boxed > .e-con-inner {
  max-width: var(--siges-content-max, 1600px) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* --container-max-width Variable für neue API überschreiben */
.elementor[data-elementor-type="wp-page"] .e-con {
  --container-max-width: var(--siges-content-max, 1600px);
}
/* Alte Section-API (elementor-section-boxed > elementor-container) */
.elementor[data-elementor-type="wp-page"] .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: var(--siges-content-max, 1600px) !important;
}

/* Full-Width Container behalten ihre full-width — aber Inner-Padding sorgt für sichtbares Atmen */
.elementor[data-elementor-type="wp-page"] > .e-con-full {
  max-width: 100% !important;
  /* Optional: padding für lesbares Atmen wenn full-width überall reichen würde */
}

/* =================================
   HERO
   ================================= */

/* Nav transparent über Hero-Pages — wird solid wenn gescrollt (.is-scrolled via JS) */
body:has(.siges-immo-hero) .site-header:not(.is-scrolled) {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
}
body:has(.siges-immo-hero) .site-header {
  transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.siges-immo-hero {
  position: relative;
  width: 100%;
  /* Mobile-Fix: 100vh inkludiert den Bereich hinter der Address-Bar
     → Hero ragt 60-80px nach unten raus. 100dvh = echter sichtbarer
     Viewport. Doppelte Deklaration als Browser-Fallback. */
  min-height: 100vh;
  min-height: 100dvh;
  /* body padding-top:0 auf Hero-Pages → kein negativer Offset nötig */
  margin-top: 0;
  overflow: hidden;
  /* Kein --sg-sec-bg hier — Hintergrund kommt von den Slides selbst
     (rh_bg_color für Classic, rh_split_bg für Split-Marquee) */
}

.siges-immo-hero__slide {
  position: relative;
  width: 100%;
  min-height: inherit;
  display: flex;
  align-items: flex-end; /* Text-Card sitzt unten links statt mittig */
  /* Brand-konform + BARRIEREFREI: Text NICHT direkt auf Bild (negativ),
     sondern in solid white Card am unteren Rand. */
  --hero-text-color: #3a3028;
  --hero-overlay-color: transparent; /* kein dunkler Overlay mehr nötig */
}

.siges-immo-hero__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.siges-immo-hero__image,
.siges-immo-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

.siges-immo-hero__overlay {
  position: absolute;
  inset: 0;
  background: var(--hero-overlay-color);
  mix-blend-mode: multiply;
  opacity: 0.55;
}

.siges-immo-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--sg-side-pad, 50px) 40px var(--sg-side-pad, 50px);
  color: var(--hero-text-color);
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .siges-immo-hero__content {
    padding: 0 var(--sg-side-pad, 20px) 20px var(--sg-side-pad, 20px);
  }
}

/* Text-Card: solid white pill mit glass blur, links unten — barrierefrei */
.siges-immo-hero__inner {
  max-width: 720px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 16px;
  padding: 2rem 2.25rem;
  box-shadow:
    0 1px 2px rgba(58, 48, 40, 0.04),
    0 12px 32px -10px rgba(58, 48, 40, 0.25);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  /* Text im weißen Card immer siges-brown, egal was --hero-text-color ist */
  color: var(--siges-text, #2C2825);
}

@media (max-width: 768px) {
  .siges-immo-hero__inner {
    padding: 1.25rem 1.5rem;
    border-radius: 12px;
  }
}

.siges-immo-hero__title {
  font-size: var(--sg-font-hero);
  font-weight: var(--sg-fw-hero);
  line-height: var(--sg-lh-hero);
  letter-spacing: var(--sg-ls-hero);
  margin: 0 0 1.5rem;
  color: inherit;
}

/* Color-Only Hero (kein Bild + rh_bg_color gesetzt) — Inner-Card transparent
   damit die ACF-Hintergrund-Farbe durchscheint. */
.siges-immo-hero__slide--color .siges-immo-hero__media {
  display: none;
}
.siges-immo-hero__slide--color .siges-immo-hero__inner {
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  color: var(--hero-text-color, #fff);
}

/* Hero Icon (rh_icon) — oberhalb des Titels */
.siges-immo-hero__icon {
  display: block;
  width: clamp(60px, 8vw, 120px);
  height: auto;
  margin: 0 0 1.25rem;
}

.siges-immo-hero__title br {
  display: block;
  content: '';
  margin-top: 0.2em;
}

.siges-immo-hero__text {
  font-size: 1.15rem;
  line-height: 1.5;
  margin-bottom: 2rem;
  opacity: 0.95;
}

.siges-immo-hero__text p {
  margin: 0 0 0.8rem;
}

.siges-immo-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  background: #BE9B53;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.95rem;
  border-radius: 30px;
  transition: background 0.2s, transform 0.2s;
}

.siges-immo-hero__cta:hover {
  background: #a0824a;
  transform: translateY(-2px);
  color: #fff;
}

.siges-immo-hero__cta::after {
  content: '→';
}

@media (max-width: 1024px) {
  .siges-immo-hero {
    /* Mobile: nav ist position:fixed → nimmt keinen Platz ein, margin-top nicht nötig */
    margin-top: 0;
    min-height: 70vh;
  }
  .siges-immo-hero__content {
    padding: 2rem 1.5rem;
  }
  .siges-immo-hero__title {
    font-size: 2rem;
  }
}

/* ── Elementor-Wrapper rund um den Hero neutralisieren ────────────────
   Sicherheitsnetz: Elementor setzt responsive margin-top-Variablen auf
   dem äußersten Container. Wir nullen alle Ebenen global,
   damit margin-top: calc(-1 * var(--nav-h)) auf der Section greift. */
.elementor:has(.siges-immo-hero) .e-con:has(.siges-immo-hero),
.elementor:has(.siges-immo-hero) .e-con-full:has(.siges-immo-hero) {
  --margin-top: 0px;
  --margin-block-start: 0px;
  margin-block-start: 0;
}

.elementor-widget-shortcode:has(.siges-immo-hero),
.elementor-widget-shortcode:has(.siges-immo-hero) .elementor-widget-container,
.elementor-widget-shortcode:has(.siges-immo-hero) .elementor-shortcode {
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: none;
}

/* Breadcrumb auf Single */
.siges-immo-single__breadcrumb {
  margin: 1rem 0 1.5rem;
  font-size: 0.875rem;
  color: #6b6357;
}

.siges-immo-single__breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.8rem;
  padding: 0;
  margin: 0;
}

.siges-immo-single__breadcrumb li {
  display: flex;
  align-items: center;
}

.siges-immo-single__breadcrumb li:not(:last-child)::after {
  content: '›';
  margin-left: 0.8rem;
  color: #BE9B53;
}

.siges-immo-single__breadcrumb a {
  color: #6b6357;
  text-decoration: none;
}

.siges-immo-single__breadcrumb a:hover {
  color: #BE9B53;
  text-decoration: underline;
}

.siges-immo-single__breadcrumb span[aria-current="page"] {
  color: var(--siges-text);
  font-weight: 600;
}

/* Bottom-Variante: über dem Footer mit Top-Border + Atem */
.siges-immo-single__breadcrumb--bottom {
  margin: 3rem 0 0;
  padding: 1.25rem 0 5px;
  border-top: 1px solid #ECE9E4;
}

/* Link zum Projekt im Header */
.siges-immo-single__projekt-link {
  margin-top: 0.8rem;
  font-size: 0.95rem;
  color: #6b6357;
}

.siges-immo-single__projekt-link a {
  color: #BE9B53;
  font-weight: 600;
  text-decoration: none;
  margin-left: 0.3rem;
}

.siges-immo-single__projekt-link a:hover {
  text-decoration: underline;
}

/* Related Units am Ende */
.siges-immo-single__related {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e5dfd6;
}

.siges-immo-single__related-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* h3 statt h2 — kleines Label-Heading */
.siges-immo-single__related-title {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--siges-text-muted, #6b6357);
  margin: 0;
}

/* Legacy h2 (falls noch vorhanden) */
.siges-immo-single__related-header h2 {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--siges-text-muted, #6b6357);
  margin: 0;
}

.siges-immo-single__related-all {
  color: #BE9B53;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.95rem;
}

.siges-immo-single__related-all:hover {
  text-decoration: underline;
}

/* =================================
   ARCHIVE (taxonomy term)
   ================================= */

/* Container: full viewport breakout — padding matched zu .siges-immo-single (18px 36px) */
.siges-immo-archive {
  position: relative;
  /* width:100% statt 100vw — Parent (.elementor-shortcode) ist bereits
     volle Content-Breite (scrollbar-safe). 100vw überschießt um die
     Scrollbar-Breite → Sidebar fluchtete nicht mit dem Logo. */
  width: 100%;
  max-width: 100%;
  /* Figma-Grid: Outer 16px (= --sg-outer) damit Sidebar mit Logo fluchtet */
  padding: 18px var(--sg-outer, 16px) 3rem;
  box-sizing: border-box;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  color: var(--siges-text);
}

/* Default (--all Overview/Search): 2-Spalten Filter-Sidebar + Content */
.siges-immo-archive__main {
  display: grid;
  grid-template-columns: var(--sg-sidebar, 384px) 1fr;
  gap: var(--sg-gap, 16px);
  padding: 0;
  align-items: start;
}

/* Term-Archive (Projekt, OHNE --all): 3-Spalten mit rechter Sidebar (Map+Makler) */
.siges-immo-archive:not(.siges-immo-archive--all) .siges-immo-archive__main {
  grid-template-columns: var(--sg-sidebar, 384px) 1fr var(--sg-sidebar, 384px);
}

/* Center-Cards NUR im 3-Spalten-Term-Archive: auto-fit für die schmalere
   Mittelspalte. --all behält sein cols-N (volle Breite). */
.siges-immo-archive:not(.siges-immo-archive--all) .siges-immo-archive__content .siges-immo-results__grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* Tablet: rechte Sidebar unter den Content, links bleibt */
@media (max-width: 1280px) {
  .siges-immo-archive:not(.siges-immo-archive--all) .siges-immo-archive__main {
    grid-template-columns: var(--sg-sidebar, 384px) 1fr;
  }
  .siges-immo-archive__sidebar--right {
    grid-column: 1 / -1;
  }
  .siges-immo-archive__sidebar--right .siges-immo-archive__sidebar-inner {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .siges-immo-archive__sidebar--right .siges-immo-archive__map-card,
  .siges-immo-archive__sidebar--right .siges-immo-archive__makler {
    flex: 1 1 320px;
  }
}

@media (max-width: 900px) {
  /* Weniger Top-Spacing unter der Nav (war 1.5rem) */
  .siges-immo-archive { padding: 0.75rem var(--sg-outer, 16px) 2rem; }
  /* gap + padding raus → Ergebnisse rücken direkt unter die Nav */
  .siges-immo-archive__main { grid-template-columns: 1fr; gap: 0; padding: 0; }
  /* --all Filter-Sidebar auf Mobile raus — der Filter läuft hier über den Dock,
     die Sidebar-Shell ist redundant und würde nur Platz fressen. */
  .siges-immo-archive--all .siges-immo-archive__sidebar { display: none; }
  /* Term-Archive (mit Sidebar): Abstand zwischen gestackter Sidebar und Content behalten */
  .siges-immo-archive:not(.siges-immo-archive--all) .siges-immo-archive__main { grid-template-columns: 1fr; gap: 1.5rem; }
  .siges-immo-archive__sidebar--right .siges-immo-archive__sidebar-inner { flex-direction: column; }
  .siges-immo-archive__title { font-size: 1.8rem; }
}

/* Header lebt jetzt INNERHALB der Content-Spalte (rechts neben Sidebar) — white card */
/* Header = White-Card um die Galerie. Gleichmäßiges Padding rundum
   (vorher: padding-top 24px + Galerie margin-top 24px = 48px oben → ungleich). */
.siges-immo-archive__header {
  width: 100%;
  margin: 0 0 var(--sg-gap, 16px);
  padding: 1rem;
  background: #fff;
  border: 1px solid var(--siges-border);
  border-radius: 14px;
  box-sizing: border-box;
}

.siges-immo-archive__ort {
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #BE9B53;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.siges-immo-archive .siges-immo-archive__title {
  font-size: clamp(1.4rem, 1.8vw, 1.8rem);
  font-weight: 700;
  margin: 0 0 0.5rem;
  line-height: 1.25;
  color: var(--siges-text);
  letter-spacing: -0.005em;
  display: block;
}

/* title-word Spans nicht mehr im Output — CSS entfernt */

.siges-immo-archive__adresse {
  font-size: 1.05rem;
  color: #2C2825;
  margin-bottom: 1.5rem;
}

/* Header-Gallery: full Content-Spalte breit, fixe Höhe (responsive) */
.siges-immo-archive__gallery {
  width: 100%;
  margin: 0; /* kein Top-Margin mehr — Galerie flush am Content-Top */
  display: flex;
  flex-direction: column;
  gap: 14px; /* Abstand Bild → Dots-Reihe */
  box-sizing: border-box;
}

/* Bild-Bühne — rundet & clippt die Slides; Dots liegen DARUNTER (außerhalb) */
.siges-immo-archive__gallery-stage {
  position: relative;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #ECE9E4;
  /* Niedriger = landschaftlicheres Seitenverhältnis (Content-Spalte schmaler durch rechte Sidebar) */
  height: clamp(260px, 26vw, 420px);
}

.siges-immo-archive__gallery-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.siges-immo-archive__gallery-slide.is-active {
  opacity: 1;
  z-index: 1;
}

/* Single-Page Gallery: Margin-Top weg (kein Header darüber), Bottom für Atem */
.siges-immo-single__gallery.siges-immo-archive__gallery {
  margin-top: 0;
  margin-bottom: 2rem;
}
.siges-immo-archive__gallery-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 2 Bilder nebeneinander (50/50) auf Desktop */
.siges-immo-archive__gallery-slide--duo {
  display: flex !important;
  gap: 3px;
}
.siges-immo-archive__gallery-slide--duo img {
  flex: 1 1 50%;
  width: 50%;
  height: 100%;
  object-fit: cover;
  min-width: 0;
}
@media (max-width: 600px) {
  /* Mobile: nur erstes Bild */
  .siges-immo-archive__gallery-slide--duo {
    display: block !important;
  }
  .siges-immo-archive__gallery-slide--duo img:nth-child(2) {
    display: none;
  }
}

/* Slider Controls — !important gegen Elementor global button styles */
.siges-immo-archive__gallery-nav {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18) !important;
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  color: var(--siges-text, #2C2825) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 3 !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.siges-immo-archive__gallery-nav:hover,
.siges-immo-archive__gallery-nav:focus-visible {
  background: var(--siges-brown, #513C2D) !important;
  border-color: var(--siges-brown, #513C2D) !important;
  color: var(--siges-gold, #BE9B53) !important;
  outline: none !important;
  transform: translateY(-50%) scale(1.08) !important;
}
.siges-immo-archive__gallery-nav:active {
  background: #3a2a1e !important;
  border-color: #3a2a1e !important;
  color: var(--siges-gold, #BE9B53) !important;
  transform: translateY(-50%) scale(1.02) !important;
}
.siges-immo-archive__gallery-nav--prev { left: 16px; }
.siges-immo-archive__gallery-nav--next { right: 16px; }
.siges-immo-archive__gallery-nav svg { width: 26px; height: 26px; }

/* Dots — unter dem Bild (außerhalb), zentriert, größer */
.siges-immo-archive__gallery-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 2px 0;
}
.siges-immo-archive__gallery-dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: #D9D2C8;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.siges-immo-archive__gallery-dot:hover { background: #BFB6A8; }
.siges-immo-archive__gallery-dot.is-active {
  background: var(--siges-gold, #BE9B53);
  transform: scale(1.35);
}
.siges-immo-archive__gallery-dot:focus-visible {
  outline: 2px solid #BE9B53;
  outline-offset: 2px;
}

@media (max-width: 900px) {
  .siges-immo-archive__gallery-stage { height: clamp(240px, 50vw, 360px); }
  .siges-immo-archive__gallery-nav { width: 36px; height: 36px; }
  .siges-immo-archive__gallery-nav--prev { left: 10px; }
  .siges-immo-archive__gallery-nav--next { right: 10px; }
}

/* All-Immobilien Archiv: Filter in Sidebar — neutralisiert Filter-Pill-Styling.
   padding-top wird per JS (archive-sidebar.js alignSidebarWithGrid) dynamisch gesetzt. */
.siges-immo-archive--all .siges-immo-archive__sidebar {
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 0;
}
.siges-immo-archive--all .siges-immo-archive__sidebar .siges-immo-filter {
  max-width: none;
  margin: 0;
  background: transparent;
  padding: 0;
  border-radius: 0;
  border: none;
  box-shadow: none;
}
.siges-immo-archive--all .siges-immo-archive__sidebar .siges-immo-filter__body {
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}
.siges-immo-archive--all .siges-immo-archive__sidebar .siges-immo-filter__row {
  flex-direction: column;
  gap: 0.5rem;
}
.siges-immo-archive--all .siges-immo-archive__sidebar .siges-immo-filter__actions {
  margin-left: 0;
  width: 100%;
}
.siges-immo-archive--all .siges-immo-archive__sidebar .siges-immo-filter__submit {
  width: 100%;
  justify-content: center;
}

/* ALLE Archive-Sidebars scrollen nativ mit dem Content — kein Sticky, kein GSAP-Pin
   (GSAP-Pin in archive-sidebar.js ist deaktiviert). User-Wunsch: Term-Archive UND
   --all Filter-Sidebar (/immobilien-finden/) verhalten sich wie die Projekt-Detailseiten.
   Sonst würde die rechte Sidebar (Map+Makler+Newsletter) höher als der Viewport und der
   Newsletter-Submit unerreichbar. */
.siges-immo-archive__sidebar {
  align-self: start;
  position: static;
}

/* Default (z.B. --all Filter-Sidebar): EIN White-Card */
.siges-immo-archive__sidebar-inner {
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  padding: 1.75rem;
  border-radius: 12px;
}

/* Term-Archive (links Infos+Heading / rechts Map+Makler): transparenter Stack,
   jede Sektion eigene White-Card. NICHT auf --all anwenden. */
.siges-immo-archive__sidebar--left .siges-immo-archive__sidebar-inner,
.siges-immo-archive__sidebar--right .siges-immo-archive__sidebar-inner {
  background: transparent;
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sg-gap, 16px);
}

/* Gemeinsames White-Card-Styling für alle Sidebar-Sektionen */
.siges-immo-archive__heading-card,
.siges-immo-archive__specs,
.siges-immo-archive__map-card,
.siges-immo-archive__klima,
.siges-immo-archive__makler {
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 12px;
  padding: 1.5rem;
  margin: 0;
}

/* Heading-Card in der linken Sidebar (Ort, Titel, Adresse — wie Single-Detail) */
.siges-immo-archive__heading-card .siges-immo-archive__title {
  font-size: clamp(1.4rem, 1.6vw, 1.5rem);
  font-weight: 600;
  margin: 0;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.siges-immo-archive__heading-card .siges-immo-archive__ort {
  margin-bottom: 0.4rem;
}
.siges-immo-archive__heading-card .siges-immo-archive__adresse {
  margin: 0.6rem 0 0;
  font-size: 0.95rem;
}

.siges-immo-archive__specs {
  margin: 0;
}

/* Map-Card: kompakt in der Sidebar, Map füllt die Card-Breite */
.siges-immo-archive__map-card {
  padding: 1.5rem; /* einheitlich mit Makler-/Specs-/Heading-Cards (war 1rem) */
}
.siges-immo-archive__map-card .siges-osm-wrap {
  margin: 0;
}
/* Map-Höhe in der Sidebar begrenzen (war ~560px → zu hoch).
   margin:0 — die Basis-.siges-osm bringt margin:48px 0 24px mit → das war der große
   Gap über (und unter) der Karte. Jetzt umgibt nur das gleichmäßige Card-Padding die Karte. */
.siges-immo-archive__map-card .siges-osm {
  height: 340px !important;
  min-height: 340px !important;
  border-radius: 8px;
  width: 100%;
  margin: 0;
}
/* Single-Detail: Karte landschaftlicher (flacher) statt quadratisch */
.siges-immo-single__map-sidebar .siges-osm {
  height: 200px !important;
  min-height: 200px !important;
}

.siges-immo-archive__specs > div {
  display: flex;
  justify-content: space-between;
  padding: 0.4rem 0;
  border-bottom: 1px solid #e5dfd6;
}

.siges-immo-archive__specs > div:last-child { border-bottom: none; }

.siges-immo-archive__specs dt {
  font-weight: 600;
  margin: 0;
  font-size: 0.95rem;
}

.siges-immo-archive__specs dd {
  margin: 0;
  font-size: 0.95rem;
}

/* Klima/Makler sind eigene White-Cards → keine alten Divider/Margins */
.siges-immo-archive__klima h4,
.siges-immo-archive__makler h4 {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #BE9B53;
}

.siges-immo-archive__klima p {
  margin: 0.3rem 0;
  font-size: 0.95rem;
  line-height: 1.5;
}

.siges-immo-archive__makler-item {
  margin-bottom: 1rem;
  font-size: 0.95rem;
  line-height: 1.4;
}

.siges-immo-archive__makler-item a {
  color: var(--siges-text);
  text-decoration: none;
}

.siges-immo-archive__makler-item a:hover {
  text-decoration: underline;
}

.siges-immo-archive__content {
  min-width: 0;
}

.siges-immo-archive__beschreibung {
  margin-bottom: 2rem;
  font-size: 1.05rem;
  line-height: 1.65;
}

.siges-immo-archive__beschreibung p {
  margin: 0 0 1rem;
}

/* 2-Col Grid für gesplittete Section-Cards (an h5 getrennt)
   Gap = sitewide --sg-gap (16px) — vertikal === horizontal, bündig mit Card-Grid */
.siges-immo-archive__beschreibung--grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sg-gap, 16px);
  margin-bottom: 2.5rem;
}

@media (max-width: 900px) {
  .siges-immo-archive__beschreibung--grid {
    grid-template-columns: 1fr;
    gap: var(--sg-gap, 16px);
  }
}

.siges-immo-archive__sec {
  background: #fff;
  border: 1px solid #ECE9E4;
  border-radius: 14px;
  padding: 1.5rem 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.siges-immo-archive__sec:hover {
  border-color: #d9d2c8;
  box-shadow: 0 8px 24px -12px rgba(58, 48, 40, 0.18);
}

.siges-immo-archive__sec-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #f7f5f1;
  color: #BE9B53;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.25rem;
}

.siges-immo-archive__sec-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.siges-immo-archive__sec-title {
  font-family: 'Ageo', 'Inter', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--siges-text);
  line-height: 1.25;
  margin: 0 0 0.25rem;
  letter-spacing: -0.005em;
}

.siges-immo-archive__sec-body {
  font-size: 0.98rem;
  line-height: 1.6;
  color: #2C2825;
}

.siges-immo-archive__sec-body p {
  margin: 0 0 0.7em;
}
.siges-immo-archive__sec-body p:last-child {
  margin-bottom: 0;
}

.siges-immo-archive__sec-body ul {
  margin: 0.4em 0 0.7em;
  padding-left: 1.1em;
}

.siges-immo-archive__sec-body ul li {
  margin: 0.25em 0;
  line-height: 1.5;
}

.siges-immo-archive__sec-body ul li::marker {
  color: #BE9B53;
}

.siges-immo-archive__listings h2 {
  font-size: 1.5rem;
  margin: 0 0 1.5rem;
}

.siges-immo-archive__count {
  color: #6b6357;
  font-weight: 400;
  font-size: 1.1rem;
}

.siges-immo-cpt-archive {
  max-width: var(--siges-content-max, 1600px);
  margin: 0 auto;
  padding: 2rem 1.5rem;
}

.siges-immo-cpt-archive__header h1 {
  font-size: 2.5rem;
  margin: 0 0 1.5rem;
}

/* ============================================
   Team Grid — [siges_team_grid]
   MWG-087 exact: solid color card, large role top, small avatar+name bottom
   ============================================ */

/* ── Full-width breakout: Elementor-Container stripped + viewport-relative grid
   Pattern identisch zu .siges-immo-archive / .siges-immo-single (funktioniert
   gegen Elementor-Inline-Styles, deshalb !important — Standard für Container-Overrides). ── */
.e-con:has(.siges-team),
.e-con-inner:has(.siges-team) {
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --content-width: 100% !important;
}
.elementor-widget-shortcode:has(.siges-team),
.elementor-widget-shortcode:has(.siges-team) .elementor-widget-container,
.elementor-widget-shortcode:has(.siges-team) .elementor-shortcode {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

/* ── Grid: viewport breakout — bricht aus jedem boxed Container aus ── */
.siges-team {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  display: grid;
  gap: 20px;
  padding: 40px var(--sg-side-pad, 50px);
  box-sizing: border-box;
}
.siges-team--cols-2 { grid-template-columns: repeat(2, 1fr); }
.siges-team--cols-3 { grid-template-columns: repeat(3, 1fr); }
.siges-team--cols-4 { grid-template-columns: repeat(4, 1fr); }
.siges-team--cols-5 { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1200px) {
  .siges-team--cols-5 { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 980px) {
  .siges-team--cols-3,
  .siges-team--cols-4,
  .siges-team--cols-5 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .siges-team--cols-2,
  .siges-team--cols-3,
  .siges-team--cols-4,
  .siges-team--cols-5 { grid-template-columns: 1fr; }
}

/* ── Card shell ── */
.siges-team__card {
  aspect-ratio: 0.75;
}

/* ── Inner — matches mwg .card-content exactly:
   solid color bg, border-radius:20px, padding:40px, flex col, space-between ── */
.siges-team__inner {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  padding: 22px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  will-change: transform;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.siges-team__card:hover .siges-team__inner {
  transform: scale(1.02);
}

/* 4 colors — Employee Branding auf "positive" (alle hell, kein invertiertes Dark-Card).
   Klassen werden PHP-seitig per Diagonal-Offset gesetzt → keine zwei Reihen starten mit gleicher Farbe. */
.siges-team__card--c0 .siges-team__inner { background: #BCEFFF; }  /* light blue */
.siges-team__card--c1 .siges-team__inner { background: #F1F1F1; }  /* light gray */
.siges-team__card--c2 .siges-team__inner { background: #C9FE6E; }  /* lime green */
.siges-team__card--c3 .siges-team__inner { background: #F5E6C8; }  /* sand/peach (statt dunkel) */

/* Personal-Branding-Variante — Farbe kommt aus dem _team_personal_color ACF-Feld
   und wird inline als CSS-Variable gesetzt. Optional auch Text-Farbe. */
.siges-team__card--personal .siges-team__inner {
  background: var(--personal-bg, #F1F1F1);
  color: var(--personal-text, #2C2825);
}
.siges-team__card--personal .siges-team__role,
.siges-team__card--personal .siges-team__name,
.siges-team__card--personal .siges-team__titel,
.siges-team__card--personal .siges-team__contact a {
  color: var(--personal-text, inherit);
}

/* ── Role — large text at TOP (like demo .top with 28px) ── */
.siges-team__role {
  font-size: clamp(1.1rem, 2vw, 1.7rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0;
  color: #2C2825;
}
/* Light text on dark-bg card (--c3 = #323232) */

/* ── Person — BOTTOM, image stacked above name ── */
.siges-team__person {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

/* ── Avatar — circular mask, square-locked, theme-override-proof ── */
.siges-team .siges-team__person .siges-team__avatar,
.siges-team__inner .siges-team__avatar {
  width: clamp(110px, 10vw, 150px);
  height: clamp(110px, 10vw, 150px);
  min-width: clamp(110px, 10vw, 150px);
  min-height: clamp(110px, 10vw, 150px);
  max-width: clamp(110px, 10vw, 150px);
  max-height: clamp(110px, 10vw, 150px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  flex-shrink: 0;
  flex-grow: 0;
  display: block;
  overflow: hidden;
  clip-path: circle(50% at 50% 50%);
  -webkit-mask-image: radial-gradient(circle, #000 99%, transparent 100%);
          mask-image: radial-gradient(circle, #000 99%, transparent 100%);
}

/* ── Info block (name + titel + contact) ── */
.siges-team__info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

/* Name — Courier Prime, straight case (theme deco font for names) */
.siges-team__name {
  font-family: 'Ageo', Inter, system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.2;
  margin: 0;
  color: #2C2825;
}

/* Titel (qualification) — theme font, no italic */
.siges-team__titel {
  font-family: inherit;
  font-size: 0.85rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.3;
  margin: 0;
  color: rgba(44, 40, 37, 0.65);
}

/* Contact links */
.siges-team__contact {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-top: 0.35rem;
}
.siges-team__contact a {
  font-size: 0.82rem;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 0.2s;
  color: #2C2825;
}
.siges-team__contact a:hover { opacity: 0.7; }
.siges-team__contact a:focus-visible {
  outline: 2px solid #BE9B53;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ── Horizontale Variante — Avatar links, Text rechts (z.B. Ansprechpartner Single-Detail) ── */
.siges-team__card--horizontal {
  aspect-ratio: auto;
}
.siges-team__card--horizontal .siges-team__inner {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  padding: 18px;
  border-radius: 12px;
}
/* Person = die Zeile: Avatar links | Info-Spalte rechts */
.siges-team__card--horizontal .siges-team__person {
  flex-direction: row;
  align-items: center;
  gap: 16px;
  width: 100%;
}
.siges-team__card--horizontal .siges-team__avatar,
.siges-team__card--horizontal .siges-team__inner .siges-team__avatar {
  width: 84px;  height: 84px;
  min-width: 84px;  min-height: 84px;
  max-width: 84px;  max-height: 84px;
}
.siges-team__card--horizontal .siges-team__info {
  flex: 1 1 auto;
  min-width: 0;
  gap: 2px;
}
/* Role als Eyebrow über dem Namen */
.siges-team__card--horizontal .siges-team__role {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 2px;
}
.siges-team__card--horizontal .siges-team__name {
  font-size: 1.05rem;
}

/* ============================================
   Jobs Grid — [siges_jobs_grid]
   ============================================ */
.siges-jobs {
  display: grid;
  gap: 1.5rem;
  max-width: var(--siges-content-max, 1600px);
  margin: 0 auto;
}
.siges-jobs--cols-1 { grid-template-columns: 1fr; }
.siges-jobs--cols-2 { grid-template-columns: repeat(2, 1fr); }
.siges-jobs--cols-3 { grid-template-columns: repeat(3, 1fr); }
.siges-jobs--cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 980px) {
  .siges-jobs--cols-3,
  .siges-jobs--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .siges-jobs--cols-2,
  .siges-jobs--cols-3,
  .siges-jobs--cols-4 { grid-template-columns: 1fr; }
}

.siges-jobs__card {
  background: #fff;
  border: 1px solid #ECE9E4;
  border-radius: 8px;
  overflow: hidden;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.siges-jobs__card:hover {
  border-color: #BE9B53;
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -16px rgba(81, 60, 45, 0.25);
}

.siges-jobs__card--initiativ {
  background: #f7f5f1;
  border-style: dashed;
}

.siges-jobs__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.5rem 1.5rem 1.25rem;
  color: var(--siges-text);
  text-decoration: none;
  gap: 1rem;
}
.siges-jobs__link:hover,
.siges-jobs__link:focus {
  color: var(--siges-text);
  text-decoration: none;
}

.siges-jobs__body { flex: 1; }

.siges-jobs__title {
  font-size: 1.15rem;
  font-weight: 600;
  margin: 0 0 1rem;
  color: var(--siges-text);
  line-height: 1.35;
}

.siges-jobs__meta {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.5rem;
}
.siges-jobs__meta li {
  font-size: 0.875rem;
  color: #2C2825;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.siges-jobs__meta-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6b6357;
  font-weight: 600;
}

.siges-jobs__footer {
  border-top: 1px solid #ECE9E4;
  padding-top: 1rem;
}
.siges-jobs__card--initiativ .siges-jobs__footer {
  border-top-color: #d9d2c8;
}

.siges-jobs__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.95rem;
  color: #BE9B53;
  transition: gap 0.25s ease, color 0.25s ease;
}
.siges-jobs__card:hover .siges-jobs__cta {
  gap: 0.85rem;
  color: #2C2825;
}
.siges-jobs__arrow {
  display: inline-block;
  transition: transform 0.25s ease;
}
.siges-jobs__card:hover .siges-jobs__arrow {
  transform: translateX(3px);
}

.siges-jobs__empty {
  grid-column: 1 / -1;
  text-align: center;
  color: #6b6357;
  padding: 3rem 1rem;
  font-style: italic;
}

/* ============================================
   Projekt-Card (Term-basiert) — [siges_projekte_carousel]
   ============================================ */
.siges-projekt-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #ECE9E4;
  transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.siges-projekt-card:hover {
  border-color: #BE9B53;
  transform: translateY(-3px);
  box-shadow: 0 18px 40px -20px rgba(81, 60, 45, 0.28);
}

.siges-projekt-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--siges-text);
  text-decoration: none;
}
.siges-projekt-card__link:hover,
.siges-projekt-card__link:focus { color: #3a3028; text-decoration: none; }

.siges-projekt-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #ECE9E4;
}
.siges-projekt-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.siges-projekt-card:hover .siges-projekt-card__image img {
  transform: scale(1.05);
}
.siges-projekt-card__image-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #ECE9E4 0%, #d9d2c8 100%);
}

/* Badge: SOLID weiß mit dunkler Brand-Schrift — barrierefrei (Kontrast ~12:1),
   image-unabhängig. KEIN negativer Text auf Bild (WCAG). */
.siges-projekt-card__badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  padding: 0.35rem 0.85rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--siges-text);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  z-index: 2;
}
.siges-projekt-card__badge--abgeschlossen {
  color: #6b6357;
  background: #fff;
}
.siges-projekt-card__badge--verfuegbar {
  color: #8a6f2f; /* abgedunkeltes Gold für AA-Kontrast (~5.2:1 auf #fff) */
  background: #fff;
}

.siges-projekt-card__tags {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  display: flex;
  gap: 0.4rem;
  z-index: 2;
}
.siges-projekt-card__tag {
  background: #fff;
  color: var(--siges-text);
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  font-family: var(--siges-font-deco);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.siges-projekt-card__body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.4rem;
}

.siges-projekt-card__ort {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #BE9B53;
  font-weight: 600;
}

.siges-projekt-card__name {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
  color: var(--siges-text);
  /* lange Projektnamen sauber umbrechen */
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
  -webkit-hyphens: auto;
  /* max. 3 Zeilen, dann clamp */
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.siges-projekt-card__adresse {
  font-size: 0.85rem;
  color: #6b6357;
  margin: 0;
}

.siges-projekt-card__specs {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  font-size: 0.85rem;
  color: #2C2825;
}
.siges-projekt-card__specs li strong {
  color: var(--siges-text);
  font-weight: 600;
}

.siges-projekt-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: auto;
  padding-top: 1rem;
  font-weight: 600;
  font-size: 0.92rem;
  color: #BE9B53;
  transition: gap 0.25s ease, color 0.25s ease;
}
.siges-projekt-card:hover .siges-projekt-card__cta {
  gap: 0.7rem;
  color: #2C2825;
}
.siges-projekt-card__arrow {
  display: inline-block;
  transition: transform 0.25s ease;
}
.siges-projekt-card:hover .siges-projekt-card__arrow {
  transform: translateX(3px);
}

.siges-projekt-card--abgeschlossen .siges-projekt-card__image img {
  filter: grayscale(0.25);
}

/* Im Pin-Loop: feste Slide-Breite passend zum bestehenden Layout */
.siges-immo-loop--pin .siges-projekt-card {
  height: auto;
}

/* =============================================================================
   SIGES Anfrage-Form (.siges-inquiry)
   ============================================================================= */

.siges-inquiry {
  background: #fff;
  border: 1px solid var(--siges-border);
  border-radius: 14px;
  overflow: hidden;
  margin: 2rem 0;
}

.siges-inquiry__inner {
  padding: 1.75rem;
}

/* Makler-Header */
.siges-inquiry__header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--siges-border);
}

.siges-inquiry__makler-img {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--siges-gold);
  box-shadow: 0 2px 10px rgba(0,0,0,0.10);
}

.siges-inquiry__makler-name {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--siges-text);
  line-height: 1.2;
}

.siges-inquiry__makler-pos {
  font-size: 0.85rem;
  color: var(--siges-text-muted);
  margin: 0.2rem 0 0.35rem;
}

.siges-inquiry__makler-teaser {
  font-size: 0.85rem;
  color: var(--siges-gold);
  font-style: italic;
}

/* Form Rows */
.siges-inquiry__row {
  display: grid;
  gap: 1.25rem 1.5rem; /* row-gap (gestapelt/mobil) | column-gap (2col) */
  margin-bottom: 2rem;
}

.siges-inquiry__row--2col {
  grid-template-columns: 1fr 1fr;
}

.siges-inquiry__field {
  display: flex;
  flex-direction: column;
  gap: 0.7rem; /* Luft zwischen Label und Input */
  margin-bottom: 2rem; /* nackte Felder (Betreff, Nachricht) bekommen vertikalen Abstand */
}
/* Felder INNERHALB eines Rows: kein eigener margin — das Row/Grid regelt den Abstand */
.siges-inquiry__row .siges-inquiry__field {
  margin-bottom: 0;
}

.siges-inquiry__label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--siges-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.siges-inquiry__optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

.siges-inquiry__field input,
.siges-inquiry__field textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1.5px solid var(--siges-border);
  border-radius: 8px;
  font-size: 1.05rem;
  color: var(--siges-text);
  background: #faf9f7;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  font-family: inherit;
  box-sizing: border-box;
}

.siges-inquiry__field input:focus,
.siges-inquiry__field textarea:focus {
  outline: none;
  border-color: var(--siges-gold);
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.12);
  background: #fff;
}

.siges-inquiry__field textarea {
  resize: vertical;
  min-height: 120px;
  margin-bottom: 0; /* Abstand regelt jetzt der Field-Wrapper */
}

/* Consent */
.siges-inquiry__consent {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: 0.75rem 0 1.5rem;
  font-size: 0.9rem;
  color: var(--siges-text-muted);
  line-height: 1.55;
  cursor: pointer;
}

.siges-inquiry__consent input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  accent-color: var(--siges-gold);
  cursor: pointer;
}

.siges-inquiry__consent a {
  color: var(--siges-gold);
}

/* Submit */
.siges-inquiry__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.siges-inquiry__submit {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  background: var(--page-accent, var(--siges-brown));
  color: var(--page-accent-contrast, #fff);
  border: none;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, filter 0.2s ease, transform 0.15s ease;
  font-family: inherit;
}

.siges-inquiry__submit:hover,
.siges-inquiry__submit:focus {
  background: var(--page-accent, var(--siges-gold));
  filter: brightness(0.9);
}

.siges-inquiry__submit:active {
  background: var(--page-accent, var(--siges-gold-dark));
  transform: scale(0.98);
  filter: brightness(0.85);
}

.siges-inquiry__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Spinner */
.siges-inquiry__spinner {
  width: 20px;
  height: 20px;
  border: 2px solid var(--siges-border);
  border-top-color: var(--siges-gold);
  border-radius: 50%;
  animation: siges-spin 0.7s linear infinite;
}

@keyframes siges-spin {
  to { transform: rotate(360deg); }
}

/* Feedback (inline errors) */
.siges-inquiry__feedback {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  min-height: 1.2em;
}

.siges-inquiry__feedback--error {
  color: #c0392b;
}

/* Honeypot */
.siges-inquiry__hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
  height: 0;
  overflow: hidden;
}

/* Success State */
.siges-inquiry__success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 1rem;
  gap: 0.75rem;
}

/* hidden-Attribut respektieren — Autor-display:flex würde sonst das UA [hidden] schlagen */
.siges-inquiry__success[hidden],
.siges-inquiry__form[hidden] {
  display: none;
}

.siges-inquiry__success-img {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  object-fit: cover;
  border: 3px solid var(--siges-gold);
}

.siges-inquiry__success-icon {
  color: var(--siges-forest-green);
}

.siges-inquiry__success-msg {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--siges-text);
  margin: 0;
  line-height: 1.35;
}

.siges-inquiry__success-sub {
  font-size: 0.83rem;
  color: var(--siges-text-muted);
  margin: 0;
}

.siges-inquiry__meeting-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.5rem;
  padding: 0.6rem 1.25rem;
  background: var(--siges-gold);
  color: #fff;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease;
}

.siges-inquiry__meeting-btn:hover {
  background: var(--siges-gold-dark);
  color: #fff;
}

/* Standalone mode (full-width page) */
.siges-inquiry--standalone {
  max-width: 680px;
  margin: 2rem auto;
}

/* Mobile */
@media (max-width: 680px) {
  .siges-inquiry__row--2col {
    grid-template-columns: 1fr;
  }
  .siges-inquiry__inner {
    padding: 1.25rem;
  }
}

/* Cloudflare Turnstile Widget */
.siges-inquiry__turnstile {
  margin: 0.25rem 0 1rem;
}

/* Select — Optik wie input (Verkäufer-/Kontaktformular) */
.siges-inquiry__field select {
  width: 100%;
  padding: 0.85rem 2.25rem 0.85rem 1rem;
  border: 1.5px solid var(--siges-border);
  border-radius: 8px;
  font-size: 1.05rem;
  color: var(--siges-text);
  background-color: #faf9f7;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B5E54' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  font-family: inherit;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}

.siges-inquiry__field select:focus {
  outline: none;
  border-color: var(--siges-gold);
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.12);
  background-color: #fff;
}

/* Intro-Block über Verkäufer-/Kontaktformular */
.siges-inquiry__intro {
  margin-bottom: 1.5rem;
}

.siges-inquiry__intro-title {
  font-size: 1.5rem;
  color: var(--siges-text);
  margin: 0 0 0.5rem;
}

.siges-inquiry__intro-copy {
  font-size: 0.95rem;
  color: var(--siges-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* Intro-Text als kleiner „Heading"-Ersatz — etwas größer, aber bewusst klein
   (NICHT die Brand-Heading-Größe). Per Span-Class steuerbar. */
.siges-inquiry__intro-copy-text {
  font-size: 1.15rem;
}

/* Standalone Meeting-/Termin-Buchung Button (außerhalb der Anfrage-Form) */
.siges-meeting-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.6rem;
  padding: 0.6rem 1.25rem;
  background: var(--siges-gold);
  color: #fff;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease;
}

.siges-meeting-btn:hover {
  background: var(--siges-gold-dark);
  color: #fff;
}

.siges-meeting-btn--center {
  margin-left: auto;
  margin-right: auto;
}

/* Embedded Brevo-Meetings Kalender */
.siges-meeting-embed {
  position: relative;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--siges-border);
}

.siges-meeting-embed iframe {
  width: 100%;
  min-height: 640px;
  border: 0;
  display: block;
}

/* Inquiry Form — Makler-Kontaktlinks im Header */
.siges-inquiry__makler-contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin-top: 0.4rem;
}

.siges-inquiry__makler-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.82rem;
  color: var(--siges-text-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}

.siges-inquiry__makler-contact-link:hover {
  color: var(--siges-gold);
}

/* Weitere Makler im Header */
.siges-inquiry__makler-other {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.75rem;
  margin-top: 0.75rem;
  border-top: 1px solid var(--siges-border);
}

.siges-inquiry__makler-other img {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  border: 1.5px solid var(--siges-border);
}

/* =============================================================================
   Sidebar Makler-Anker (kompakt, scrollt zur Anfrage-Form)
   ============================================================================= */

.siges-immo-single__makler-anchor {
  background: #fff;
  border: 1px solid var(--siges-border);
  border-radius: 12px;
  padding: 1rem 1.1rem 1rem;
  margin-top: 2rem;
  margin-bottom: 1.25rem;
}

.siges-immo-single__makler-anchor-eyebrow {
  font-family: var(--siges-font-deco);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--siges-gold);
  margin-bottom: 0.65rem;
}

.siges-immo-single__makler-anchor-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.9rem;
}

.siges-immo-single__makler-anchor-img {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--siges-gold);
}

.siges-immo-single__makler-anchor-name {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--siges-text);
  line-height: 1.2;
}

.siges-immo-single__makler-anchor-pos {
  font-size: 0.75rem;
  color: var(--siges-text-muted);
  margin: 0.1rem 0 0.3rem;
}

.siges-immo-single__makler-anchor-contacts {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.siges-immo-single__makler-anchor-contacts a {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--siges-text-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}

.siges-immo-single__makler-anchor-contacts a:hover {
  color: var(--siges-gold);
}

.siges-immo-single__makler-anchor-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  margin-top: 0.85rem; /* Abstand zur Ansprechpartner-Karte darüber */
  padding: 0.6rem 1rem;
  background: var(--siges-highlight-orange, #FF8D5F);
  color: #fff;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease;
  scroll-behavior: smooth;
}

.siges-immo-single__makler-anchor-cta:hover {
  background: #F0743D; /* dunkleres siges-orange */
  color: #fff;
}

/* =============================================================================
   Inquiry Form — Multi-Makler Auswahl
   ============================================================================= */

.siges-inquiry__header--select {
  display: block; /* überschreibt .siges-inquiry__header flex → Label drüber, Choices full-width */
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--siges-border);
}

/* Einzel-Makler als horizontale Team-Karte (statt flacher Header-Zeile) */
.siges-inquiry__header--card {
  display: block;
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 1.5rem;
}
.siges-inquiry__header--card .siges-team__card {
  width: 100%;
}

.siges-inquiry__contact-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--siges-text-muted);
  margin-bottom: 0.75rem;
}

.siges-inquiry__contact-choices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.6rem;
}

.siges-inquiry__contact-choice {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border: 1.5px solid var(--siges-border);
  border-radius: 10px;
  cursor: pointer;
  background: #faf9f7;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.siges-inquiry__contact-choice input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.siges-inquiry__contact-choice img {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid var(--siges-border);
  transition: border-color 0.15s ease;
}

.siges-inquiry__contact-choice-avatar {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: var(--siges-brown);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.siges-inquiry__contact-choice-name {
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--choice-text, var(--siges-text));
  line-height: 1.2;
}

.siges-inquiry__contact-choice-pos {
  font-size: 0.75rem;
  color: var(--choice-text-muted, var(--siges-text-muted));
  margin: 0.1rem 0 0.25rem;
}

/* Hover */
.siges-inquiry__contact-choice:hover {
  border-color: var(--siges-gold);
  background: #fff;
}

/* Selected */
.siges-inquiry__contact-choice.is-selected,
.siges-inquiry__contact-choice:has(input:checked) {
  border-color: var(--siges-gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.12);
}

.siges-inquiry__contact-choice.is-selected img,
.siges-inquiry__contact-choice:has(input:checked) img {
  border-color: var(--siges-gold);
}

@media (max-width: 600px) {
  .siges-inquiry__contact-choices {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   Kundenstimmen — MWG-025 Fan-Effect
   ============================================================================= */

.siges-ks {
  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  /* background via --sg-sec-bg (universal rule) */
}

/* Pin-Trigger — 3× Viewport:
   Phase 1 (0→33%): Heading fährt von unten bis Mitte ein
   Phase 2 (33→66%): Karten erscheinen, Heading in Mitte
   Phase 3 (66→100%): Heading fährt nach oben raus */
.siges-ks__pin {
  height: 220vh;
  position: relative;
}

/* Der Bereich der gepinnt wird — 1× Viewport, bleibt im Viewport während __pin scrollt */
.siges-ks__scroll-area {
  height: 100vh;
  position: relative;
  overflow: hidden; /* clippt Heading beim Ein-/Ausfahren */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Elementor-Container der Kundenstimmen enthält → full-width, kein Padding.
   (Gleiches Pattern wie Ticker — Elementor-Container-Defaults aushebeln) */
.e-con:has(.siges-ks),
.e-con-inner:has(.siges-ks) {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
.elementor-widget-shortcode:has(.siges-ks),
.elementor-widget-shortcode:has(.siges-ks) .elementor-widget-container,
.elementor-widget-shortcode:has(.siges-ks) .elementor-shortcode {
  padding: 0 !important;
  margin: 0 !important;
}

.siges-ks__header {
  /* Scrollt per GSAP von unten nach oben durch den gepinnten Viewport */
  position: absolute;
  left: 0;
  right: 0;
  /* Links ausgerichtet — Figma: x=18px */
  padding-left: clamp(12px, 1.5vw, 24px);
  padding-right: clamp(12px, 1.5vw, 24px);
  text-align: left;
  z-index: 10; /* unter den Karten */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  pointer-events: none;
  will-change: transform;
  transform: translateY(100vh); /* GSAP übernimmt — verhindert Flash */
}

/* Eyebrow — weiße Pill, GEPINNT oben über den großen Buchstaben.
   Liegt in der gepinnten .siges-ks__scroll-area → bleibt fix während der Header scrollt. */
.siges-ks__eyebrow {
  display: inline-block;
  background: #ffffff;
  color: #BE9B53;
  border-radius: 999px;
  padding: 5px 16px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 0;
  position: absolute;
  /* Unter der fixen Nav-Pille positionieren (sonst verdeckt) + etwas mehr Abstand oben. */
  top: calc(var(--siges-section-top, 72px) + clamp(18px, 2.5vh, 36px));
  left: clamp(12px, 1.5vw, 24px);
  z-index: 30; /* über Header + Karten */
  pointer-events: none;
}

/* Große Copy unter den Deko-Buchstaben — Schriftgröße wie Content-Split-Heading,
   Farbe = Deko-Farbe (volle Deckkraft). Scrollt mit dem Header mit. */
.siges-ks__big-copy {
  margin: clamp(8px, 1.5vh, 20px) 0 0;
  max-width: 30ch;
  font-family: 'Ageo', 'Inter', system-ui, sans-serif;
  font-size: clamp(1.5rem, 2.6vw, 2.4rem); /* identisch zu .siges-content-split__heading */
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--ks-deco-color, var(--sg-sec-text, currentColor));
}

/* Visually-hidden Utility (Screenreader-only) — fehlte global, dadurch erschien der
   A11y-Heading als sichtbarer schwarzer Duplikat-Text. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* siges-ks__deco — rein dekoratives Display-Element (<p> statt Heading).
   Vollständiger Reset + explizite Font-Werte damit weder Theme-Heading-Resets
   noch Elementor-Typography-Overrides die Display-Größe kapern. */
.siges-ks__deco {
  /* Heading-Resets neutralisieren */
  margin: 0 !important;
  padding: 0;
  border: none;
  /* Explicit font-stack — Ageo über Elementor geladen, Inter als Fallback */
  font-family: 'Ageo', 'Inter', system-ui, sans-serif !important;
  font-size: clamp(4rem, 18vw, 22rem) !important;
  font-weight: 800 !important;
  font-style: normal !important;
  line-height: 0.71 !important; /* Figma: 205px / 290px */
  letter-spacing: 0.02em !important; /* Figma: 5.8px */
  /* Deko-Farbkette: dediziertes ks_deco_color → Section-Textfarbe → currentColor */
  color: var(--ks-deco-color, var(--sg-sec-text, currentColor)) !important;
  text-transform: uppercase !important;
  word-break: break-word;
  display: block;
  /* Volle Breite — damit der Glyph-Spread über die gesamte Section-Breite läuft
     (wie der Hero-Deko-Text). Flex-Item würde sonst auf Inhaltsbreite schrumpfen. */
  width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}

/* Copy-Block bottom-right — 40vw breit (matched zur Hero __container Gallery-Breite) */
.siges-ks__copy-block {
  position: absolute;
  bottom: 80px;
  right: 50px;
  width: 40vw;
  max-width: 480px;
  z-index: 20;
  pointer-events: none;
  text-align: right;
}

.siges-ks__copy {
  margin: 0;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  line-height: 1.55;
  color: var(--siges-text-muted);
  pointer-events: auto;
}

.siges-ks__container {
  display: flex;
  align-items: center;
  justify-content: center;
  /* Karten: zentriert im gepinnten Bereich, z-index über Heading */
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  padding: 0 var(--sg-side-pad, 40px);
  z-index: 20;
}

.siges-ks__card {
  width: 19.5vw; /* +15% (war 17vw) */
  aspect-ratio: 0.75;
  min-width: 173px; /* +15% (war 150px) */
  cursor: pointer;
  flex-shrink: 0;
  will-change: transform;
}

.siges-ks__card:not(:first-child) {
  margin-left: -9.8vw; /* proportional zur +15% Kartenbreite (war -8.5vw) */
}

.siges-ks__card-content {
  width: 100%;
  height: 100%;
  border-radius: 0.75em;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.5rem;
  box-sizing: border-box;
  will-change: transform;
}

.siges-ks__quote {
  font-size: clamp(0.88rem, 1.4vw, 1.35rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.siges-ks__bottom {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  font-weight: 500;
  border-top: 1px dashed;
  padding-top: 1rem;
}

.siges-ks__avatar {
  width: clamp(34px, 2.8vw, 46px);
  height: clamp(34px, 2.8vw, 46px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: clamp(0.7rem, 0.9vw, 1rem);
  flex-shrink: 0;
  letter-spacing: 0;
}

.siges-ks__name {
  font-weight: 700;
  font-size: clamp(0.78rem, 0.95vw, 1rem);
  line-height: 1.2;
}

.siges-ks__proj {
  font-size: clamp(0.62rem, 0.75vw, 0.8rem);
  font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 0.25em;
  opacity: 0.7;
}

/* ── MOBILE (≤900px): GLEICHE Pin- + Background-Typo-Animation wie Desktop.
   kundenstimmen.js pinnt jetzt auch mobil und scrubbt das Deko-Heading durch
   den Viewport. Pin / Scroll-Area / Header / Eyebrow bleiben deshalb wie Desktop
   (absolut, 100vh, overflow-hidden) — NICHT in Fluss überführen. Hier nur:
   Deko-Größe an den schmalen Viewport anpassen + Karten als horizontalen
   Swipe-Slider statt Desktop-Fächer (Rotation ist in der JS mobil deaktiviert). ── */
@media (max-width: 900px) {
  .siges-ks__header {
    max-width: 100%;
    padding-left: var(--sg-side-pad, 20px);
    padding-right: var(--sg-side-pad, 20px);
  }
  .siges-ks__eyebrow {
    left: var(--sg-side-pad, 20px);
  }
  /* Deko kleiner, damit der Glyph-Spread in den Viewport passt */
  .siges-ks__deco {
    font-size: clamp(2.5rem, 13vw, 4.5rem) !important;
    line-height: 0.95 !important;
    letter-spacing: 0 !important;
  }
  .siges-ks__big-copy {
    font-size: clamp(1.05rem, 4.4vw, 1.5rem);
    max-width: 100%;
  }
  /* Karten: horizontaler Swipe-Slider. Container bleibt absolut im gepinnten
     Bereich zentriert, scrollt aber horizontal statt zu fächern. */
  .siges-ks__container {
    justify-content: flex-start;
    gap: clamp(14px, 4vw, 20px);
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-padding-left: var(--sg-side-pad, 20px);
    padding: 0 var(--sg-side-pad, 20px);
  }
  .siges-ks__container::-webkit-scrollbar { display: none; }
  .siges-ks__card,
  .siges-ks__card:not(:first-child) {
    flex: 0 0 78%;
    width: 78%;
    max-width: 340px;
    min-width: 0;
    margin: 0 !important;        /* Fächer-Negativmargins weg */
    aspect-ratio: 0.82;
    scroll-snap-align: center;
  }
  /* Karten-Text sichtbar (Desktop versteckte ihn <600px im Fächer) */
  .siges-ks__quote,
  .siges-ks__bottom {
    opacity: 1 !important;
  }
  .siges-ks__quote {
    font-size: 1.05rem;
  }
}

@media (max-width: 600px) {
  .siges-ks__deco {
    font-size: clamp(2rem, 12vw, 3.5rem) !important;
  }
  .siges-ks__quote {
    font-size: 1rem;
  }
}

/* ── DE-CLUTTER Tablet / kleiner Desktop (901–1599px) ──────────────────────
   Fächer + Hintergrund-Deko-Typo bleiben. Unter ~1600px (Design-Zielbreite)
   kollidieren aber Deko + Big-Copy mit den Karten. Hier entschärfen:
   - Deko etwas kompakter + klar als Hintergrund (niedrigere Deckkraft), damit
     der Glyph-Spread die Karten nicht „überlagert".
   - Big-Copy kleiner + schmaler → lesbarer Absatz statt riesig-justiertem Block. */
@media (min-width: 901px) and (max-width: 1599px) {
  .siges-ks__deco {
    font-size: clamp(4rem, 14vw, 13rem) !important;
    opacity: 0.45 !important;
  }
  .siges-ks__big-copy {
    font-size: clamp(1rem, 1.5vw, 1.4rem);
    max-width: 36ch;
    line-height: 1.45;
  }
}

/* ===== Body-Text (unten rechts, absolut positioniert — wie beim Ticker) ===== */
.siges-ks__body {
  position: absolute;
  bottom: 80px;
  right: 50px;
  max-width: 380px;
  text-align: right;
  z-index: 20;
  pointer-events: none;
}
.siges-ks__body-text {
  margin: 0;
  font-family: 'Ageo', 'Inter', sans-serif;
  font-size: clamp(13px, 1vw, 16px);
  font-weight: 500;
  line-height: 1.6;
  color: var(--siges-text-muted);
  pointer-events: auto;
}
@media (max-width: 900px) {
  .siges-ks__body {
    bottom: 24px;
    left: 20px;
    right: 20px;
    max-width: none;
    text-align: left;
  }
}

/* ===== Footer-Stats — dashed Top-Border, monospace, uppercase (Ticker-Pattern) ===== */
.siges-ks__footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem var(--sg-side-pad, 50px);
  border-top: 1px dashed rgba(58, 48, 40, 0.35);
  font-family: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;
  font-size: clamp(0.7rem, 0.85vw, 0.9rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--siges-text, #2C2825);
  z-index: 20;
  pointer-events: none;
}
.siges-ks__footer p {
  margin: 0;
  pointer-events: auto;
}

/* Wenn Footer da → Body etwas anheben damit nichts kollidiert */
.siges-ks:has(.siges-ks__footer) .siges-ks__body,
.siges-ks:has(.siges-ks__footer) .siges-ks__copy-block {
  bottom: 80px;
}

@media (max-width: 768px) {
  .siges-ks__footer {
    padding: 12px 20px;
    font-size: 10px;
    gap: 0.5rem;
    flex-wrap: wrap;
  }
}

/* =============================================================================
   Projekte-Section Header (über dem Projekt-Carousel)
   ============================================================================= */

.siges-projekte-header {
  max-width: var(--siges-content-max, 1600px);
  margin: 0 0 2.5rem;
  padding: 100px 2.5rem 0;
  box-sizing: border-box;
}

.siges-projekte-header--center {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Row: Title links + Eyebrow rechts (same line, baseline-aligned) */
.siges-projekte-header__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.siges-projekte-header--center .siges-projekte-header__row {
  justify-content: center;
}

.siges-projekte-header__eyebrow {
  /* White Pill — Brand Design Rules */
  display: inline-block;
  background: #ffffff;
  border-radius: 999px;
  padding: 6px 16px;
  margin: 0 0 0.75rem;
  font-family: var(--siges-font-deco);
  font-size: clamp(0.7rem, 0.85vw, 0.8rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--siges-gold);
  box-shadow: 0 2px 8px rgba(44, 40, 37, 0.08);
}

.siges-projekte-header__title {
  margin: 0;
  font-size: clamp(1.2rem, 2vw, 2.1rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.022em;
  color: var(--siges-text, #2C2825);
  white-space: normal;
}

.siges-projekte-header__copy {
  margin: 1rem 0 0;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  line-height: 1.55;
  color: var(--siges-text-muted);
  max-width: 56ch;
}

.siges-projekte-header--center .siges-projekte-header__copy {
  margin-left: auto;
  margin-right: auto;
}

/* Team-Cards im Section-Header — Grid mit 1-3 Karten, max-width 320px je Card */
.siges-projekte-header__team {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 320px));
  gap: 16px;
  margin-top: 28px;
}
.siges-projekte-header--center .siges-projekte-header__team {
  justify-content: center;
}
.siges-projekte-header__team-card {
  /* Erbt die Team-Card-Styles aus filter.css (.siges-team__card),
     hier nur Container-Width-Anpassung */
  width: 100%;
}

@media (max-width: 900px) {
  .siges-projekte-header {
    padding: 0 1.5rem;
    margin-bottom: 1.75rem;
  }
  .siges-projekte-header__row {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 0.6rem;
  }
  .siges-projekte-header--center .siges-projekte-header__row {
    align-items: center;
  }
  .siges-projekte-header__team {
    grid-template-columns: 1fr;
    max-width: 320px;
  }
}

/* =============================================================================
   Wishlist / Merkliste
   ============================================================================= */

/* Card-Herz: oben rechts, schwebend über Image. Eigener Klick-Hitbereich. */
.siges-immo-card {
  position: relative; /* für absoluten Heart-Button */
}
.siges-immo-card__wishlist {
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 5;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: rgba(255, 255, 255, 0.92);
  color: #6b6357;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 2px 6px rgba(58, 48, 40, 0.10),
    0 1px 2px rgba(58, 48, 40, 0.06);
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.siges-immo-card__wishlist:hover {
  transform: scale(1.08);
  color: #fff;
  background: var(--siges-forest-green, #58886D);
  box-shadow:
    0 4px 12px rgba(58, 48, 40, 0.14),
    0 2px 4px rgba(58, 48, 40, 0.08);
}
.siges-immo-card__wishlist:focus-visible {
  outline: 2px solid var(--siges-forest-green, #58886D);
  outline-offset: 2px;
}
.siges-immo-card__wishlist.is-saved {
  color: #fff;
  background: var(--siges-forest-green, #58886D);
}
.siges-immo-card__wishlist.is-saved .siges-immo-card__wishlist-icon {
  fill: #fff;
  stroke: #fff;
}
.siges-immo-card__wishlist.is-pulsing {
  animation: siges-wishlist-pulse 0.35s ease-out;
}
@keyframes siges-wishlist-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.22); }
  100% { transform: scale(1); }
}
.siges-immo-card__wishlist-icon {
  display: block;
  width: 20px;
  height: 20px;
  transition: fill 0.2s ease, stroke 0.2s ease;
}

/* Nav-Counter (Header-Pill) */
.site-header__actions .btn-wishlist {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: #3a3028;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
  transition: background 0.18s ease, color 0.18s ease;
}
.site-header__actions .btn-wishlist:hover,
.site-header__actions .btn-wishlist:focus-visible {
  background: #ECE9E4;
  color: #2C2825;
  outline: none;
}
.btn-wishlist__icon {
  display: block;
  width: 20px;
  height: 20px;
  transition: fill 0.2s ease, stroke 0.2s ease;
}
.btn-wishlist.has-items {
  color: var(--siges-forest-green);
}
.btn-wishlist.has-items .btn-wishlist__icon {
  fill: var(--siges-forest-green);
  stroke: var(--siges-forest-green);
}
.btn-wishlist__count {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--siges-forest-green);
  color: #fff;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  pointer-events: none;
  transform: scale(0);
  transform-origin: 50% 50%;
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 1px 4px rgba(58, 48, 40, 0.16);
}
.btn-wishlist.has-items .btn-wishlist__count {
  transform: scale(1);
}

/* Toast / Snackbar */
.siges-wishlist-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 20px);
  z-index: 9999;
  padding: 0.85rem 1.4rem;
  background: rgba(44, 40, 37, 0.94);
  color: #fff;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(58, 48, 40, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
}
.siges-wishlist-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

/* /merkliste/ Page — Full-Width Breakout (bricht aus Theme-Container aus) */
.siges-wishlist {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: 2rem var(--sg-side-pad, 50px) 4rem;
  box-sizing: border-box;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Theme-Heading (WordPress entry-title) auf der Merkliste-Page ausblenden —
   Shortcode rendert eigenes styled H1, kein Duplikat. */
body:has(.siges-wishlist) .entry-title,
body:has(.siges-wishlist) .page__header,
body:has(.siges-wishlist) .elementor-widget-theme-post-title {
  display: none !important;
}
.siges-wishlist__header {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #ECE9E4;
}
/* Dekoratives „Heading" — kein H-Tag, dezent, klein. */
.siges-wishlist__title {
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.3;
  text-transform: none;
  margin: 0 0 0.4rem;
  color: #2C2825;
}
.siges-wishlist__meta {
  margin: 0;
  font-size: 0.95rem;
  color: #6b6357;
}
.siges-wishlist__meta [data-siges-wishlist-count] {
  font-weight: 700;
  color: #2C2825;
}
/* Card-Grid: 5 desktop / 4 laptop / 3 medium / 1 mobile */
.siges-wishlist__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(5, 1fr);   /* Desktop ≥1400px */
  margin-bottom: 2rem;
}
@media (max-width: 1399px) {
  .siges-wishlist__grid { grid-template-columns: repeat(4, 1fr); }  /* Laptop */
}
@media (max-width: 1024px) {
  .siges-wishlist__grid { grid-template-columns: repeat(3, 1fr); }  /* Medium tablet */
}
@media (max-width: 600px) {
  .siges-wishlist__grid { grid-template-columns: 1fr; }              /* Mobile */
}

.siges-wishlist__loading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 3rem 0;
}
.siges-wishlist__loading[hidden] { display: none; }
.siges-wishlist__empty {
  text-align: center;
  padding: 4rem 1rem;
  color: #6b6357;
}
.siges-wishlist__empty-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #2C2825;
  margin: 0 0 0.5rem;
}
.siges-wishlist__empty-text {
  margin: 0 0 1.5rem;
}
.siges-wishlist__empty-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1.5rem;
  background: #BE9B53;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.15s ease;
}
.siges-wishlist__empty-cta:hover {
  background: #a0824a;
  color: #fff;
  transform: translateY(-2px);
  text-decoration: none;
}
.siges-wishlist__footer {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #ECE9E4;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-end;
  align-items: center;
}
.siges-wishlist__send {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.85rem 1.5rem;
  background: #FF8D5F;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.15s ease;
  box-shadow: 0 2px 8px rgba(255, 141, 95, 0.28);
}
.siges-wishlist__send:hover {
  background: #e8703f;
  color: #fff;
  transform: translateY(-2px);
  text-decoration: none;
}
.siges-wishlist__clear {
  padding: 0.85rem 1.4rem;
  background: transparent;
  color: #6b6357;
  border: 1px solid #d9d2c8;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.9rem;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.siges-wishlist__clear:hover {
  border-color: #BE9B53;
  color: #2C2825;
  background: #f7f5f1;
}

@media (max-width: 720px) {
  .siges-wishlist { padding: 1.5rem 20px 3rem; }
  .siges-wishlist__footer { justify-content: stretch; flex-direction: column; }
  .siges-wishlist__send,
  .siges-wishlist__clear { width: 100%; justify-content: center; text-align: center; }
}

/* =============================================================================
   Wishlist Anfrage-Form (inline, klappt aus)
   ============================================================================= */

.siges-wishlist__form-wrap {
  margin-top: 2.5rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 16px;
  box-shadow:
    0 1px 2px rgba(58, 48, 40, 0.04),
    0 12px 32px -16px rgba(58, 48, 40, 0.15);
  overflow: hidden;
}
.siges-wishlist__form-wrap[hidden] {
  display: none;
}

.siges-wishlist__form-head {
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--siges-border, #ECE9E4);
}
.siges-wishlist__form-eyebrow {
  font-family: var(--siges-font-deco);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--siges-gold, #BE9B53);
  margin: 0 0 0.5rem;
}
.siges-wishlist__form-title {
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--siges-text, #2C2825);
  margin: 0 0 0.5rem;
  line-height: 1.2;
}
.siges-wishlist__form-sub {
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--siges-text-muted, #6b6357);
  margin: 0;
  max-width: 60ch;
}

.siges-wishlist__form-row {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}
.siges-wishlist__form-row--2col {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 600px) {
  .siges-wishlist__form-row--2col { grid-template-columns: 1fr; }
}

.siges-wishlist__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 1rem;
}
.siges-wishlist__field-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--siges-text-muted, #6b6357);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.siges-wishlist__optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.siges-wishlist__field input,
.siges-wishlist__field textarea {
  width: 100%;
  padding: 0.7rem 0.9rem;
  border: 1.5px solid var(--siges-border, #ECE9E4);
  border-radius: 8px;
  font-size: 0.95rem;
  font-family: inherit;
  color: var(--siges-text, #2C2825);
  background: #faf9f7;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  box-sizing: border-box;
}
.siges-wishlist__field input:focus,
.siges-wishlist__field textarea:focus {
  outline: none;
  border-color: var(--siges-gold, #BE9B53);
  box-shadow: 0 0 0 3px rgba(190, 155, 83, 0.12);
  background: #fff;
}
.siges-wishlist__field textarea {
  resize: vertical;
  min-height: 96px;
  font-family: inherit;
}

.siges-wishlist__consent {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0.5rem 0 1.25rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--siges-text-muted, #6b6357);
  cursor: pointer;
}
.siges-wishlist__consent input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--siges-gold, #BE9B53);
  cursor: pointer;
}
.siges-wishlist__consent a {
  color: var(--siges-gold, #BE9B53);
  text-decoration: underline;
  text-decoration-color: rgba(190, 155, 83, 0.4);
  text-underline-offset: 2px;
}
.siges-wishlist__consent a:hover {
  text-decoration-color: var(--siges-gold, #BE9B53);
}

.siges-wishlist__hp {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
  height: 0;
}

.siges-wishlist__form-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}
.siges-wishlist__form-submit {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.95rem 1.6rem;
  background: var(--siges-highlight-orange, #FF8D5F);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  box-shadow: 0 2px 10px rgba(255, 141, 95, 0.28);
}
.siges-wishlist__form-submit:hover:not(:disabled) {
  background: #e8703f;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 141, 95, 0.42);
}
.siges-wishlist__form-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.siges-wishlist__form-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: siges-wishlist-spin 0.7s linear infinite;
}
@keyframes siges-wishlist-spin {
  to { transform: rotate(360deg); }
}
.siges-wishlist__form-cancel {
  padding: 0.7rem 1.2rem;
  background: transparent;
  color: var(--siges-text-muted, #6b6357);
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 999px;
  font-family: inherit;
  font-size: 0.88rem;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.siges-wishlist__form-cancel:hover {
  border-color: var(--siges-gold, #BE9B53);
  color: var(--siges-text, #2C2825);
  background: #f7f5f1;
}

.siges-wishlist__form-feedback {
  margin-top: 1rem;
  font-size: 0.9rem;
  line-height: 1.4;
  min-height: 1.2em;
}
.siges-wishlist__form-feedback--error {
  color: #c0392b;
}
.siges-wishlist__form-feedback--success {
  color: #2D5A3D;
}

/* Success-State (replaces form after successful submit) */
.siges-wishlist__success {
  margin-top: 2.5rem;
  padding: 2.5rem 1.5rem;
  background: #fff;
  border: 1px solid var(--siges-border, #ECE9E4);
  border-radius: 16px;
  text-align: center;
}
.siges-wishlist__success[hidden] {
  display: none;
}
.siges-wishlist__success-icon {
  color: var(--siges-forest-green, #58886D);
  margin-bottom: 0.75rem;
}
.siges-wishlist__success-title {
  font-family: 'Ageo', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--siges-text, #2C2825);
  margin: 0 0 0.5rem;
}
.siges-wishlist__success-msg {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--siges-text-muted, #6b6357);
  max-width: 48ch;
  margin: 0 auto;
}

/* =============================================================================
   Filter — Mobile (Bottom-Sheet Drawer + Toggle)
   ============================================================================= */

/* Desktop: Toggle + Drawer-Head + Backdrop ausgeblendet, Body immer offen */
.siges-immo-filter__mobile-toggle,
.siges-immo-filter__drawer-head,
.siges-immo-filter__backdrop {
  display: none;
}

@media (max-width: 900px) {

  /* ── Toggle = Bottom-pinned, zentriertes Dock (weiße Bubble) ── */
  .siges-immo-filter__mobile-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    position: fixed;
    bottom: max(18px, env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    z-index: 1003;
    padding: 0.85rem 1.5rem;
    background: #fff;
    color: var(--siges-text, #2C2825);
    border: 1px solid var(--siges-border, #ECE9E4);
    border-radius: 999px;
    font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 8px 28px rgba(58, 48, 40, 0.22);
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease,
                transform 0.32s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.25s ease;
    white-space: nowrap;
  }
  /* Hover/Focus: Brand halten — Hello-Elementor reset.css setzt sonst
     button:hover/:focus { background:#c36 } (pink). Höhere Spezifität gewinnt. */
  .siges-immo-filter__mobile-toggle:hover,
  .siges-immo-filter__mobile-toggle:focus,
  .siges-immo-filter__mobile-toggle:focus-visible {
    background: #fff;
    color: var(--siges-text, #2C2825);
    border-color: var(--siges-gold, #BE9B53);
    outline: none;
  }
  .siges-immo-filter__mobile-toggle:active {
    transform: translateX(-50%) scale(0.97);
  }

  /* Dock-Icon (Such-Lupe) */
  .siges-immo-filter__mobile-toggle-ico {
    display: inline-flex;
    align-items: center;
  }
  .siges-immo-filter__mobile-toggle-ico--close { display: none; }

  /* Drawer offen → Dock ausblenden (Panel hat eigenen Close-X oben rechts) */
  body.siges-filter-open .siges-immo-filter__mobile-toggle {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(180%);
  }
  .siges-immo-filter__mobile-toggle-count {
    display: none; /* Counter im Dock-Button ausgeblendet (User-Wunsch) */
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 999px;
    background: #FF8D5F;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
  }

  /* ── Filter-Wrapper: nur Toggle-Button sichtbar, zentriert ── */
  .siges-immo-filter {
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding: 0;
    background: transparent;
    border-radius: 0;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    min-height: 0;
    width: auto;
  }

  /* ── Drawer-Body: standardmäßig versteckt, sliden von unten rein ── */
  .siges-immo-filter__body {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1001;
    max-height: 90dvh;
    overflow-y: auto;
    background: #fff;
    border-radius: 24px 24px 0 0;
    padding: 0 20px 24px;
    box-shadow: 0 -8px 32px rgba(58, 48, 40, 0.22);
    transform: translateY(100%);
    transition: transform 0.32s cubic-bezier(0.32, 0.72, 0, 1);
    -webkit-overflow-scrolling: touch;
    /* Override Desktop-Flex → Block flow im Drawer für vertikale Rows */
    display: block;
  }
  /* Mehr vertikaler Abstand zwischen den Filter-Feldern im Drawer */
  .siges-immo-filter__body .siges-immo-filter__field {
    margin-bottom: 1.5rem;
  }
  /* Body-State-Class (Drawer + Backdrop sind ins <body> portiert) */
  body.siges-filter-open .siges-immo-filter__body {
    transform: translateY(0);
  }
  /* Pull-Handle als Header-Indikator */
  .siges-immo-filter__body::before {
    content: "";
    display: block;
    width: 36px;
    height: 4px;
    border-radius: 2px;
    background: #d9d2c8;
    margin: 12px auto 4px;
  }

  /* ── Drawer-Head: Titel + Schließen ── */
  .siges-immo-filter__drawer-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0 1rem;
    border-bottom: 1px solid var(--siges-border, #ECE9E4);
    margin-bottom: 1.25rem;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2;
  }
  .siges-immo-filter__drawer-title {
    font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--siges-text, #2C2825);
  }
  .siges-immo-filter__drawer-close {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 999px;
    color: #6b6357;
    display: inline-flex;
    transition: background 0.15s ease, color 0.15s ease;
  }
  .siges-immo-filter__drawer-close:hover,
  .siges-immo-filter__drawer-close:focus-visible {
    background: #ECE9E4;
    color: var(--siges-text, #2C2825);
    outline: none;
  }

  /* ── Backdrop ── */
  .siges-immo-filter__backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(44, 40, 37, 0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.32s ease;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  body.siges-filter-open .siges-immo-filter__backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  /* ── Felder: stacked vertical, full-width ── */
  .siges-immo-filter__row {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    margin-bottom: 1.1rem;
  }
  .siges-immo-filter__field {
    width: 100%;
  }
  .siges-immo-filter__field > label {
    font-size: 0.78rem;
    margin-bottom: 0.4rem;
  }

  /* Stepper / Range Inputs etwas größer für Touch */
  .siges-immo-filter__field select,
  .siges-immo-filter__field input[type="number"],
  .siges-immo-filter__field input[type="text"] {
    height: 52px;
    font-size: 1rem;
  }
  .siges-immo-stepper { height: 52px; }
  .siges-immo-stepper__buttons { width: 28px; }
  .siges-immo-stepper__btn { font-size: 11px; }

  /* Radio-Pills bleiben, höher */
  .siges-immo-radio { height: 52px; }

  /* ── Actions: Submit full-width prominent, Reset darunter als Text-Link ── */
  .siges-immo-filter__actions {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--siges-border, #ECE9E4);
    position: sticky;
    bottom: -24px; /* matched zur drawer-padding-bottom */
    background: #fff;
    padding-bottom: 0.5rem;
    margin-bottom: -0.5rem;
  }
  .siges-immo-filter__submit {
    width: 100%;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    border-radius: 999px;
  }
  .siges-immo-filter__reset {
    text-align: center;
    padding: 0.5rem 0;
  }

  /* ── Body-Scroll-Lock wenn Drawer offen ── */
  body.siges-filter-open {
    overflow: hidden;
  }

  /* ── Carousel-Page Pill-Variante überschreiben:
        statt Glass-Pill fixiert unten → nur Toggle-Pill sichtbar, zentriert ── */
  .e-con:has(.siges-immo-carousel) .siges-immo-filter,
  .siges-immo-loop--pin .siges-immo-loop__filter-bottom .siges-immo-filter {
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    min-height: 0;
    width: auto;
    max-width: none;
  }
  .siges-immo-loop--pin .siges-immo-loop__filter-bottom {
    position: fixed;
    bottom: 16px;
    left: 0;
    right: 0;
    padding: 0 !important;
    display: flex;
    justify-content: center;
    z-index: 50;
    pointer-events: none;
  }
  .siges-immo-loop--pin .siges-immo-loop__filter-bottom > * {
    pointer-events: auto;
  }
}

/* Sehr kleine Bildschirme: Drawer hat etwas mehr Innen-Atem unten weg */
@media (max-width: 480px) {
  .siges-immo-filter__body {
    max-height: 92dvh;
    padding-bottom: 16px;
  }
}

/* =============================================================================
   GLOBAL HEADING WEIGHTS
   H3-H6 nicht mehr Bold — Medium (500). H1+H2 bleiben prominent (Theme-Default).
   Elementor-Kit-Selektoren (.elementor-kit-N hX) müssen mit-überschrieben werden
   da sie höhere Specificity haben als plain `h3`.
   ============================================================================= */

body h2,
body h3,
body h4,
body h5,
body h6,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title,
[class*="elementor-kit-"] h2,
[class*="elementor-kit-"] h3,
[class*="elementor-kit-"] h4,
[class*="elementor-kit-"] h5,
[class*="elementor-kit-"] h6 {
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
  font-weight: 600;
}

/* H2 site-wide — Brand-Guide H2: clamp(28px, 3.2vw, 44px), weight 600
   (vorher kaputt: clamp(1.4rem, 2.2vw, 1rem) → max < min → fror bei ~22px ein). */
body h2,
.elementor-widget-heading h2.elementor-heading-title,
[class*="elementor-kit-"] h2 {
  font-size: clamp(28px, 3.2vw, 44px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

/* ── Section-Headings: einheitlich auf Brand-Guide-H2 (Ageo, clamp(28px,3.2vw,44px),
   weight 600). !important schlägt die per-Komponente-CSS (gleiche Specificity, lädt
   später). NUR Typo — Farbe bleibt pro Section (Gold/Dark/etc.) erhalten. */
.siges-acc-scroll__title,
.siges-acc-split__title,
.siges-immo-compact__heading-title,
.siges-immo-loop__heading-title,
.siges-klima__title,
.siges-content-split__heading,
.siges-story__title,
.siges-factor-chart__title,
.siges-contact__title,
.siges-ansprechpartner__title,
.siges-intro-split__title,
.siges-inquiry__intro-title,
.siges-bw__title,
.siges-bw-fs__title,
.siges-lp-3d__title,
.siges-lp__download-title {
  font-family: 'Ageo', 'Inter', sans-serif !important;
  font-size: clamp(28px, 3.2vw, 44px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
}

/* Eigene siges-immo-Komponenten — falls wir spezifisch Bold setzen wollen, hier whitelisten.
   Default: alles im Plugin auch auf 500. Statement-Hero-Title (.siges-hero-split__title)
   und Big-CTA-Buttons behalten ihre eigene weight via ihre eigenen Klassen. */

/* ===================================================================== */
/* siges-immo-compact — Responsive Grid statt Pin-Loop                    */
/* Desktop ≥1280px:    5 Cards in Reihe                                   */
/* Laptop  1024-1279:  4 Cards                                            */
/* Tablet  768-1023:   3 Cards                                            */
/* Mobile  <768:       horizontal-scroll (snap), 4 Cards ≈ ~85% Breite je */
/* ===================================================================== */
.siges-immo-carousel--compact {
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* Section-Farbe direkt (kein Fade). Default transparent → SVG-Map scheint durch. */
  background: var(--sg-sec-bg, transparent);
}
/* Elementor-Container der Compact-Carousel-Section transparent — sonst überlagert
   sein statischer Cream-BG die globale SVG-Map-Animation dahinter. */
.e-con:has(.siges-immo-carousel--compact),
.e-con-inner:has(.siges-immo-carousel--compact) {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* BG-Spalt zwischen Intro und Projekte schließen:
   Der Elementor-Container hat einen Flex-Gap (20px) + einen auf der Startseite
   ungenutzten Phantom-Filter (40px) ÜBER dem Carousel — beide transparent →
   weißes Band (Map auf Weiß). Flex-Gap nullen + Phantom-Filter ausblenden,
   damit die Projekte-Section direkt unter die Intro-Section rückt. */
.e-con:has(.siges-immo-carousel--compact) {
  row-gap: 0 !important;
  gap: 0 !important;
}
.e-con:has(.siges-immo-carousel--compact) > .e-con:has(.siges-immo-filter) {
  display: none !important;
}
.siges-immo-compact {
  box-sizing: border-box;
  position: relative;
  padding-bottom: 88px; /* Platz für absolut positionierten Find-CTA */
}

/* Desktop: Section füllt exakt die sichtbare Pin-Höhe (Viewport minus Header-Offset,
   bei dem GSAP die Section pinnt → start 'top top+=headerHeight'). Dadurch sitzt der
   Deko-Text mit bottom:0 am unteren Viewport-Rand — unabhängig vom Pin-Typ
   (fixed/transform). Funktioniert weil der pin-Trigger genau diese Section ist. */
@media (min-width: 1024px) {
  .siges-immo-compact {
    /* EXAKT die sichtbare Pin-Höhe erzwingen (nicht min-height — Content ist sonst
       höher und schiebt den Deko-Text unter den Viewport-Rand). border-box → der
       Boden der Box (= deco bottom:0) liegt damit genau am Viewport-Boden. */
    height: calc(100vh - var(--siges-pin-offset, 108px));
    min-height: 0;
  }
}
/* Full-Width Layout: Heading oben mit großzügigem Platz, Cards darunter */
.siges-immo-compact__top {
  display: block;
  margin: 0 0 clamp(40px, 6vw, 80px);
}
.siges-immo-compact__top-left {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 22px;
  margin: 0 auto clamp(48px, 6vw, 80px);
  max-width: var(--siges-content-max, 1600px);
  padding: clamp(16px, 3vw, 32px) 0;
}
.siges-immo-compact__top-right {
  min-width: 0;
  width: 100%;
}

/* Dekorativer BIG-Letters Hintergrundtext — hinter den Cards, 100vw */
.siges-immo-compact__deco-text {
  position: absolute;
  bottom: 0; /* ganz unten, hinter dem „Immobilien finden"-Button (z-index 0 < 40) */
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  text-align: center;
  font-family: 'Ageo', sans-serif;
  font-size: 20vw; /* wird per JS auf exakt 100vw-Fit korrigiert */
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1;
  white-space: nowrap;
  color: var(--siges-border, #ECE9E4);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.siges-immo-compact__heading-title {
  margin: 0;
  font-family: 'Ageo', sans-serif;
  font-size: var(--sg-font-hero, clamp(1.75rem, 2.8vw, 3.2rem));
  font-weight: var(--sg-fw-hero, 700);
  line-height: var(--sg-lh-hero, 1.1);
  letter-spacing: var(--sg-ls-hero, -0.02em);
  color: var(--siges-text, #2C2825);
  max-width: 22ch;
  text-align: center;
}
.siges-immo-compact__heading-eyebrow {
  /* White Pill — Brand Design Rules */
  display: inline-block;
  background: #ffffff;
  border-radius: 999px;
  padding: 6px 16px;
  margin: 0 0 0.35rem;
  box-shadow: 0 2px 8px rgba(44, 40, 37, 0.08);
  font-family: var(--siges-font-deco, 'Courier Prime', monospace);
  font-size: clamp(0.65rem, 0.8vw, 0.78rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--siges-gold, #BE9B53);
}
.siges-immo-compact__heading-copy {
  margin: 0;
  font-size: clamp(1.05rem, 1.3vw, 1.25rem);
  line-height: 1.6;
  color: var(--siges-text-muted, #6b6357);
  max-width: 64ch;
}

/* Team-Cards unter dem Header in der linken Spalte */
.siges-immo-compact__team {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 240px));
  gap: 14px;
  margin-top: 8px;
}
.siges-immo-compact__team-card { width: 100%; }

/* Mobile/Tablet: Top wird zu Single-Column-Stack */
@media (max-width: 1023px) {
  .siges-immo-compact__top {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

/* Track = Horizontal Slider in einer Row, alle Slides scrollbar */
.siges-immo-compact__track {
  display: flex;
  gap: clamp(14px, 1.5vw, 20px);
  overflow-x: auto;
  overflow-y: visible;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--siges-border, #ECE9E4) transparent;
  padding-bottom: 96px;
  /* Touch-friendly */
  scroll-padding-left: 4px;
  /* Negative margin damit Cards bis zum Viewport-Rand scrollbar sind */
  margin-left: -4px;
  margin-right: -4px;
}

.siges-immo-compact__track::-webkit-scrollbar {
  height: 6px;
}
.siges-immo-compact__track::-webkit-scrollbar-thumb {
  background: var(--siges-border, #ECE9E4);
  border-radius: 999px;
}
.siges-immo-compact__track::-webkit-scrollbar-track {
  background: transparent;
}

.siges-immo-compact__slide {
  /* 5 Cards sichtbar Desktop, 4 Tablet, ~2 Small-Tablet, ~1 Mobile (kleinere Cards) */
  flex: 0 0 calc((100% - 4px - 4 * clamp(14px, 1.5vw, 20px)) / 5);
  min-width: 220px;
  scroll-snap-align: start;
  margin-left: 4px;
}

@media (max-width: 1279px) {
  .siges-immo-compact__slide {
    flex-basis: calc((100% - 4px - 3 * clamp(14px, 1.5vw, 20px)) / 4);
  }
}

@media (max-width: 980px) {
  .siges-immo-compact__slide {
    flex-basis: calc((100% - 4px - 14px) / 2);
  }
}

@media (max-width: 640px) {
  .siges-immo-compact__slide {
    flex-basis: 80%;
  }
}

/* === Pinned-Variante (Desktop, via JS class) ===
   Track wird horizontal über GSAP translatiert; kein native scroll mehr. */
.siges-immo-compact--pinned .siges-immo-compact__track {
  will-change: transform;
}
.siges-immo-compact--pinned .siges-immo-compact__track::-webkit-scrollbar {
  display: none;
}

/* Filter-Bottom: full-width Pill, sticky am Viewport-Boden während die ganze
   Compact-Section in View ist. Damit sticky greift muss `.siges-immo-compact`
   tall genug sein (Cards + Heading scrollen vorbei). */
.siges-immo-compact__filter-bottom {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  pointer-events: none;
}
.siges-immo-compact__filter-bottom > * {
  pointer-events: auto;
}

/* ── Navigation Arrows ───────────────────────────────────────────── */
.siges-immo-compact__nav {
  display: flex;
  gap: 8px;
}
.siges-immo-compact__nav-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  border: none !important;
  /* Kein Pink — Brand-White-Button */
  background: rgba(255, 255, 255, 0.92) !important;
  color: var(--siges-text, #2C2825) !important;
  cursor: pointer !important;
  box-shadow: 0 2px 10px rgba(44, 40, 37, 0.15) !important;
  backdrop-filter: saturate(180%) blur(8px);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}
.siges-immo-compact__nav-btn:hover,
.siges-immo-compact__nav-btn:focus {
  background: var(--siges-brown, #513C2D) !important;
  color: var(--siges-gold, #BE9B53) !important;
  transform: scale(1.06) !important;
  outline: none !important;
}
.siges-immo-compact__nav-btn:active {
  transform: scale(0.96) !important;
}

/* Find-CTA in compact view — forest green, center */
.siges-immo-compact__filter-bottom .siges-immo-loop__find-cta {
  background: var(--siges-forest-green, #58886D);
  box-shadow: 0 4px 20px rgba(88, 136, 109, 0.4);
}
.siges-immo-compact__filter-bottom .siges-immo-loop__find-cta:hover {
  background: var(--siges-forest-green, #58886D);
  filter: brightness(0.88);
}

/* Mobile (≤--bp-md 900px): „Immobilie finden"-Button ausblenden — die fixed
   „Immo suchen"-Pille am unteren Viewport-Rand erfüllt dieselbe Funktion,
   beide nebeneinander = doppelt. Carousel-Pfeile bleiben sichtbar. */
@media (max-width: 899px) {
  .siges-immo-compact__filter-bottom .siges-immo-loop__find-cta {
    display: none !important;
  }
}

/* ============================================================================
   SIGES TOPIC-HERO — Component für Topic-Pages (Wohngesundheit, etc.)
   --------------------------------------------------------------------------
   Markup:
     <section.siges-topic-hero[--align-left|--align-center|--align-right]>
       <.__bg>  <.__overlay>  <.__content [.__eyebrow .__title .__copy .__cta]>
   Per-Instance Vars (--th-*) werden vom Shortcode auf style="" gesetzt.
   ============================================================================ */
.siges-topic-hero {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  /* PHP setzt --th-min-h:95vh (oder Custom). Wir setzen die echte min-height
     in dvh-Einheiten weil 100vh auf Mobile = Bereich hinter Address-Bar.
     Custom-vh-Wert aus ACF wird in calc() umgerechnet (95vh → 95dvh).
     Legacy-Fallback bleibt für alte Browser ohne dvh-Support. */
  min-height: var(--th-min-h, 95vh);
  min-height: var(--th-min-h-dvh, 95dvh);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  color: var(--th-text, var(--siges-text, #2C2825));
  isolation: isolate;
}
/* Kein Bild → Solid-BG aus overlay_color + overlay_opacity */
.siges-topic-hero--no-image {
  background: var(--th-solid-bg, var(--page-accent, #E9E3D7));
}
/* WP Admin-Bar (32px Desktop / 46px Mobile) shifted html runter — Hero
   kompensiert mit negativem margin-top damit es echte 100vh ab viewport-top zeigt. */
body.admin-bar .siges-topic-hero {
  margin-top: -32px;
}
@media (max-width: 600px) {
  body.admin-bar .siges-topic-hero {
    margin-top: -46px;
  }
}

.siges-topic-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -2;
}

.siges-topic-hero__overlay {
  position: absolute;
  inset: 0;
  background: var(--th-overlay, #3a3028);
  opacity: var(--th-overlay-opacity, 0);
  z-index: -1;
  pointer-events: none;
}

.siges-topic-hero__content {
  /* User-Setting (--th-content-bg) gewinnt; nur wenn NICHT gesetzt → Auto-Page-Accent-Tint. */
  background: var(--th-content-bg, var(--page-accent-tint-solid, #E9E3D7));
  padding: clamp(16px, 2vw, 28px);
  border-radius: 24px;
  /* 50% des 1600px-Containers — nicht des Viewports */
  max-width: calc(var(--siges-content-max, 1600px) / 2);
  width: 100%;
  margin: clamp(24px, 4vw, 60px);
  /* Dezenter Card-Schatten */
  box-shadow: 0 4px 24px rgba(44, 40, 37, 0.10), 0 1px 4px rgba(44, 40, 37, 0.06);
  /* Parallax-Offset (JS-gesetzt via --th-parallax) — translate3d für GPU */
  transform: translate3d(0, var(--th-parallax-content, 0px), 0);
  will-change: transform;
}

/* Align content-card + team-card mit der 1400px Page-Grid (e-con-inner).
   Links: Card-Kante = Grid-Kante. Gleiche Logik für Team-Card rechts.
   >1400px: Grid-Rand = (100vw - 1400px) / 2. <1400px: --sg-side-pad. */
/* An den Hero-Post (Split-Hero) angeglichen: Content-Card links wie die Hero-Card
   (16px Padding + 176px Margin = 192px ab Viewport), vertikal zentriert, gleiche
   Card-Breite clamp(311,36vw,571). */
.siges-topic-hero--align-left {
  align-items: center;
}
.siges-topic-hero--align-left   .siges-topic-hero__content {
  margin-left: calc(16px + 176px);
  margin-right: auto;
  max-width: clamp(311px, 36vw, 571px);
}
.siges-topic-hero--align-right  .siges-topic-hero__content {
  margin-right: calc(max(0px, (100vw - var(--siges-content-max, 1600px)) / 2) + var(--sg-side-pad, 2.5rem));
  margin-left: auto;
}
.siges-topic-hero--align-center {
  align-items: center;
  justify-content: center;
}
.siges-topic-hero--align-center .siges-topic-hero__content {
  margin: 0 auto;
  text-align: center;
}

.siges-topic-hero__eyebrow {
  /* Weiße Pill */
  display: inline-block;
  margin: 0 0 2rem;
  padding: 6px 16px;
  background: #ffffff;
  border-radius: 999px;
  font-family: var(--siges-font-deco, 'Courier Prime', monospace);
  font-size: clamp(0.72rem, 0.9vw, 0.88rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--siges-gold, #BE9B53);
  box-shadow: 0 2px 8px rgba(44, 40, 37, 0.08);
}

.siges-topic-hero__title {
  margin: 0 0 1.25rem;
  font-family: 'Ageo', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: var(--sg-font-hero);
  font-weight: var(--sg-fw-hero);
  line-height: var(--sg-lh-hero);
  letter-spacing: var(--sg-ls-hero);
  color: inherit;
}

.siges-topic-hero__copy {
  margin: 0;
  font-size: clamp(0.95rem, 1.1vw, 1.1rem);
  line-height: 1.6;
  color: inherit;
  opacity: 0.92;
}

/* CTA — Brand-Guideline Primary Button (gleiches Pattern wie
   .siges-hero-split__pill, Forest-Green-Variante wie „Immobilien finden").
   Font: Ageo (NICHT Courier — Courier ist nur für Eyebrow/Deko). */
.siges-topic-hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1.5rem;
  padding: 0.85rem 1.5rem;
  height: 48px;
  box-sizing: border-box;
  font-family: 'Ageo', 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  color: var(--siges-bg, #F7F5F1);
  background: var(--siges-forest-green, #58886D);
  border: 1px solid transparent;
  border-radius: 999px;
  box-shadow: 0 2px 10px rgba(88, 136, 109, 0.32);
  transition: background 0.22s ease, color 0.22s ease, transform 0.18s ease, box-shadow 0.22s ease, filter 0.22s ease;
}
.siges-topic-hero__cta:hover,
.siges-topic-hero__cta:focus-visible {
  /* 10% heller via color-mix (Mix mit Weiß im sRGB-Raum). KEIN filter:
     brightness — das hätte auch den Cream-Text dunkler/grau erscheinen
     lassen. Hex-Fallback für ältere Browser (≈10% heller als #58886D). */
  background: color-mix(in srgb, var(--siges-forest-green, #58886D) 90%, #ffffff 10%);
  color: var(--siges-bg, #F7F5F1);
  transform: translateY(-2px);
  /* Kein zusätzlicher Hover-Shadow — User-Wunsch: shadow bei hover entfernen. */
  box-shadow: 0 2px 10px rgba(88, 136, 109, 0.32);
  text-decoration: none;
}
.siges-topic-hero__cta-arrow {
  display: inline-block;
  transition: transform 0.22s ease;
  line-height: 1;
}
.siges-topic-hero__cta:hover .siges-topic-hero__cta-arrow,
.siges-topic-hero__cta:focus-visible .siges-topic-hero__cta-arrow {
  transform: translateY(3px);
}

/* Mobile (≤768px = unter --bp-md) — Card volle Viewport-Breite (kein
   horizontaler Margin), nur internes Padding für Text-Atmung. Kleinere
   Heading-/Copy-/CTA-Typografie. */
@media (max-width: 768px) {
  /* Hero-Sektion: Full-Bleed-Trick (100vw + left:50% + margin:-50vw)
     DEAKTIVIEREN. 100vw inkl. Scrollbar → Section ragt ~15px über die
     sichtbare Viewport-Breite hinaus, Card-Innenhalt wird links/rechts
     beschnitten. Auf Mobile ist sowieso alles full-width, kein Full-Bleed nötig. */
  .siges-topic-hero,
  .siges-topic-hero--align-left,
  .siges-topic-hero--align-right,
  .siges-topic-hero--align-center {
    width: 100% !important;
    max-width: 100% !important;
    left: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    /* Padding-Top: schiebt Card unter die fixed Header-Pille (Logo + Hamburger). */
    padding-top: calc(var(--siges-section-top, 82px) + 24px) !important;
  }
  .siges-topic-hero__content {
    /* Card mit horizontalem Spacer vom Viewport-Rand (wie alle anderen Cards
       auf der Seite + die Header-Logo-Pille). Outer-Inset = --sg-outer (16px).
       Card-Innenpadding clamp(20→32px) gibt Text Atmung.
       !important: Basis-Regel + Alignment-Modifier hatten höhere Specificity. */
    margin: 0 var(--sg-outer, 16px) !important;
    width: auto !important;
    max-width: calc(100% - 2 * var(--sg-outer, 16px)) !important;
    padding: clamp(20px, 5vw, 32px) !important;
    border-radius: 20px !important;
    box-sizing: border-box !important;
  }
  /* Alignment-Varianten: gleicher Inset überall, kein margin-left:192px Bug. */
  .siges-topic-hero--align-left   .siges-topic-hero__content,
  .siges-topic-hero--align-right  .siges-topic-hero__content,
  .siges-topic-hero--align-center .siges-topic-hero__content {
    margin: 0 var(--sg-outer, 16px) !important;
    max-width: calc(100% - 2 * var(--sg-outer, 16px)) !important;
    width: auto !important;
  }
  /* Heading nochmal ~10px kleiner (User-Wunsch). 16→22px statt vorher
     22→32px → bleibt im engen Viewport durchgehend lesbar ohne den Card
     zu dominieren. */
  .siges-topic-hero__title {
    font-size: clamp(16px, 5vw, 22px);
    line-height: 1.18;
    margin: 0 0 0.75rem;
  }
  /* Copy etwas kleiner und enger an Heading */
  .siges-topic-hero__copy {
    font-size: clamp(14px, 4vw, 16px);
    line-height: 1.5;
  }
  /* Eyebrow kompakter */
  .siges-topic-hero__eyebrow {
    font-size: clamp(10px, 3vw, 12px);
    padding: 4px 12px;
  }
  /* CTA: kompaktere Höhe für Mobile, aber Brand-Look bleibt */
  .siges-topic-hero__cta {
    height: 44px;
    padding: 0.7rem 1.25rem;
    font-size: 0.9rem;
  }
}

/* ============================================================================
   SIGES FACTOR-CHART — animierter Donut/Bars für N-Faktoren-Stats
   ============================================================================ */
.siges-factor-chart {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding: clamp(60px, 8vw, 120px) clamp(24px, 5vw, 80px);
  color: var(--fc-text, #2C2825);
  overflow: hidden;
  isolation: isolate;
  background: var(--siges-bg-light, #F7F5F1);
}
.siges-factor-chart__bg {
  position: absolute; inset: 0; background-size: cover; background-position: center; z-index: -2;
}
.siges-factor-chart__overlay {
  position: absolute; inset: 0;
  background: var(--fc-overlay, #3a3028);
  opacity: var(--fc-overlay-opacity, 0);
  z-index: -1;
}
.siges-factor-chart__inner { max-width: var(--siges-content-max, 1600px); margin: 0 auto; }
.siges-factor-chart__header { text-align: center; margin: 0 auto clamp(40px, 5vw, 72px); max-width: 720px; }
.siges-factor-chart__eyebrow {
  margin: 0 0 0.75rem;
  font-family: var(--siges-font-deco, 'Courier Prime', monospace);
  font-size: clamp(0.78rem, 0.95vw, 0.95rem);
  font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--siges-gold, #BE9B53);
}
.siges-factor-chart__title {
  margin: 0 0 1rem;
  font-family: 'Ageo', sans-serif;
  font-size: clamp(1.6rem, 2.8vw, 2.6rem);
  font-weight: 600; line-height: 1.1; letter-spacing: -0.02em;
  color: inherit;
}
.siges-factor-chart__subtitle {
  margin: 0;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  line-height: 1.55;
  color: inherit; opacity: 0.85;
}
.siges-factor-chart--donut-side .siges-factor-chart__viz {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
.siges-factor-chart--donut-center .siges-factor-chart__viz {
  display: flex; flex-direction: column; align-items: center;
  gap: clamp(32px, 4vw, 56px);
}
.siges-factor-chart__donut-wrap {
  position: relative; width: 100%; max-width: 420px; margin: 0 auto; aspect-ratio: 1;
}
.siges-factor-chart__donut {
  width: 100%; height: 100%; display: block;
  filter: drop-shadow(0 4px 16px rgba(58, 48, 40, 0.08));
}
.siges-factor-chart__seg {
  transition: stroke-dasharray 1.1s cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: var(--fc-seg-delay, 0s);
  stroke-linecap: butt;
}
.siges-factor-chart__donut-center {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.siges-factor-chart__donut-total {
  font-family: 'Ageo', sans-serif;
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  font-weight: 700; color: inherit;
  opacity: 0;
  transition: opacity 0.6s ease 1.2s;
}
.siges-factor-chart.is-revealed .siges-factor-chart__donut-total { opacity: 1; }

.siges-factor-chart__legend {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 1.25rem;
}
.siges-factor-chart--donut-center .siges-factor-chart__legend {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  max-width: 880px; margin: 0 auto;
}
.siges-factor-chart__legend-item {
  display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: baseline;
  padding: 1rem 1.25rem;
  background: rgba(255, 255, 255, 0.55);
  border-left: 4px solid var(--fc-seg-color, #BE9B53);
  border-radius: 4px;
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 0.55s ease, transform 0.55s ease;
  transition-delay: var(--fc-seg-delay, 0s);
}
.siges-factor-chart.is-revealed .siges-factor-chart__legend-item {
  opacity: 1; transform: translateX(0);
}
.siges-factor-chart__legend-value {
  font-family: 'Ageo', sans-serif;
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  font-weight: 700; color: var(--fc-seg-color, #BE9B53); line-height: 1;
}
.siges-factor-chart__legend-text { display: flex; flex-direction: column; gap: 0.25rem; }
.siges-factor-chart__legend-label { font-weight: 600; font-size: 1rem; color: inherit; }
.siges-factor-chart__legend-desc { font-size: 0.875rem; opacity: 0.75; line-height: 1.45; }

.siges-factor-chart__bars {
  list-style: none; margin: 0 auto; padding: 0; max-width: 720px;
  display: flex; flex-direction: column; gap: 1.5rem;
}
.siges-factor-chart__bar-row { display: flex; flex-direction: column; gap: 0.5rem; }
.siges-factor-chart__bar-head { display: flex; justify-content: space-between; align-items: baseline; }
.siges-factor-chart__bar-label { font-weight: 600; font-size: 1rem; }
.siges-factor-chart__bar-value {
  font-family: 'Ageo', sans-serif; font-size: 1.25rem; font-weight: 700;
  color: var(--fc-bar-color, #BE9B53);
}
.siges-factor-chart__bar-track {
  height: 12px; background: rgba(58, 48, 40, 0.08);
  border-radius: 999px; overflow: hidden;
}
.siges-factor-chart__bar-fill {
  height: 100%; width: 0;
  background: var(--fc-bar-color, #BE9B53);
  border-radius: inherit;
  transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
  transition-delay: var(--fc-seg-delay, 0s);
}
.siges-factor-chart.is-revealed .siges-factor-chart__bar-fill { width: var(--fc-bar-pct, 0%); }
.siges-factor-chart__bar-desc { margin: 0.25rem 0 0; font-size: 0.875rem; opacity: 0.75; line-height: 1.45; }

@media (max-width: 768px) {
  .siges-factor-chart--donut-side .siges-factor-chart__viz { grid-template-columns: 1fr; }
  .siges-factor-chart__donut-wrap { max-width: 320px; }
}
@media (prefers-reduced-motion: reduce) {
  .siges-factor-chart__seg,
  .siges-factor-chart__legend-item,
  .siges-factor-chart__donut-total,
  .siges-factor-chart__bar-fill { transition: none !important; }
}

/* ============================================================================
   SIGES CONTENT-SPLIT — wiederverwendbarer N-Block Section mit Image/Text-Split
   ============================================================================ */
.siges-content-split {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: var(--cs-bg, #F7F5F1);
  padding: clamp(40px, 6vw, 96px) 0;
}
.siges-content-split__inner {
  /* Max-Width 1600px strikt — gleicher Pattern wie intro-justify + word-reveal.
     Outer-Padding 16px sitzt INNERHALB der 1600px → Content-Fläche = 1568px.
     User-Wunsch: alle Sections cappen visuell bei 1600px. */
  max-width: var(--siges-content-max, 1600px);
  margin: 0 auto;
  padding: 0 var(--sg-outer, 16px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: clamp(56px, 8vw, 120px);
}

/* Block = 2-Col Grid (Bild | Content) — alternierend via Modifier-Klasse */
.siges-content-split__block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
  transition-delay: var(--cs-delay, 0s);
}
.siges-content-split.is-revealed .siges-content-split__block { opacity: 1; transform: translateY(0); }

/* Image-Right: Content links → Reverse-Order via Direction */
.siges-content-split__block--image-right .siges-content-split__media   { order: 2; }
.siges-content-split__block--image-right .siges-content-split__content { order: 1; }

/* No-Image: Content full-width, max-width für Lesbarkeit */
.siges-content-split__block--no-image {
  grid-template-columns: 1fr;
}
.siges-content-split__block--no-image .siges-content-split__content {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

.siges-content-split__media {
  min-width: 0;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: rgba(58, 48, 40, 0.08);
}
.siges-content-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.siges-content-split__content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.siges-content-split__eyebrow {
  margin: 0;
  font-family: var(--siges-font-deco, 'Courier Prime', monospace);
  font-size: clamp(0.78rem, 0.95vw, 0.95rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cs-accent, var(--siges-gold, #BE9B53));
}
.siges-content-split__heading {
  margin: 0;
  font-family: 'Ageo', sans-serif;
  font-size: clamp(1.5rem, 2.6vw, 2.4rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--siges-text, #2C2825);
}
.siges-content-split__copy {
  margin: 0;
  font-size: clamp(0.95rem, 1.05vw, 1.05rem);
  line-height: 1.6;
  color: var(--siges-text, #2C2825);
  opacity: 0.88;
}
.siges-content-split__copy p {
  margin: 0 0 0.85em;
}
.siges-content-split__copy p:last-child { margin-bottom: 0; }
.siges-content-split__copy ul,
.siges-content-split__copy ol {
  margin: 0.5em 0 1em;
  padding-left: 1.25em;
}
.siges-content-split__copy li {
  margin: 0.35em 0;
  line-height: 1.5;
}
.siges-content-split__copy a {
  color: var(--cs-accent, var(--siges-gold, #BE9B53));
  text-decoration: underline;
  text-underline-offset: 2px;
}

.siges-content-split__cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin-top: 0.5rem;
  padding: 0.85rem 1.5rem;
  font-family: 'Ageo', Inter, system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  color: var(--page-accent-contrast, #fff);
  background: var(--page-accent, var(--cs-accent, var(--siges-gold, #BE9B53)));
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.18s ease, transform 0.18s ease;
}
.siges-content-split__cta:hover {
  filter: brightness(0.92);
  transform: translateY(-1px);
}
.siges-content-split__block--no-image .siges-content-split__cta {
  align-self: center;
}

@media (max-width: 768px) {
  .siges-content-split__block,
  .siges-content-split__block--image-right {
    grid-template-columns: 1fr;
  }
  .siges-content-split__block--image-right .siges-content-split__media   { order: 0; }
  .siges-content-split__block--image-right .siges-content-split__content { order: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .siges-content-split__block { transition: none !important; opacity: 1; transform: none; }
}

/* Factor-Chart Footer-Columns (unter Donut) */
.siges-factor-chart__columns {
  display: grid;
  gap: clamp(24px, 3vw, 48px);
  margin-top: clamp(48px, 6vw, 80px);
  max-width: var(--siges-content-max, 1600px);
  margin-left: auto;
  margin-right: auto;
}
.siges-factor-chart__columns--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.siges-factor-chart__columns--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.siges-factor-chart__columns--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.siges-factor-chart__column {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  transition-delay: var(--fc-col-delay, 0s);
}
.siges-factor-chart.is-revealed .siges-factor-chart__column {
  opacity: 1; transform: translateY(0);
}
.siges-factor-chart__column-heading {
  margin: 0;
  font-family: 'Ageo', sans-serif;
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--siges-text, #2C2825);
}
.siges-factor-chart__column-copy {
  margin: 0;
  font-size: clamp(0.92rem, 1vw, 1rem);
  line-height: 1.55;
  color: var(--siges-text-muted, #6b6357);
}
.siges-factor-chart__column-copy p { margin: 0 0 0.75em; }
.siges-factor-chart__column-copy p:last-child { margin: 0; }

@media (max-width: 768px) {
  .siges-factor-chart__columns--2,
  .siges-factor-chart__columns--3,
  .siges-factor-chart__columns--4 { grid-template-columns: 1fr; }
}

/* Topic-Hero Team-Card — rechts oberes Drittel, absolute über Hero-Image */
.siges-topic-hero__team {
  position: absolute;
  top: clamp(160px, 16vh, 220px);
  /* Rechts am 1400px-Grid — identisch zur Content-Card links (gutter + side-pad) */
  right: calc(max(0px, (100vw - var(--siges-content-max, 1600px)) / 2) + var(--sg-side-pad, 2.5rem));
  width: clamp(240px, 22vw, 300px);
  z-index: 2;
  pointer-events: auto;
}

/* Card-Overrides für Hero-Kontext — fixe Höhe, unifiziertes Design wie /team/ */
.siges-topic-hero__team-card {
  width: 100%;
  aspect-ratio: auto;
  height: 420px;
  /* Dezenter Schatten — identisch zu Content-Card + Hero-Split-Card */
  filter: drop-shadow(0 4px 16px rgba(44, 40, 37, 0.10))
          drop-shadow(0 1px 4px rgba(44, 40, 37, 0.06));
}
.siges-topic-hero__team-card .siges-team__inner {
  padding: 24px;
  gap: 24px;
}
/* Role (Heading) entspricht dem Team-Design — kein Downscale mehr */
/* .siges-team__role Basis: clamp(1.1rem, 2vw, 1.7rem) — unverändert übernommen */

@media (max-width: 900px) {
  .siges-topic-hero__team {
    top: clamp(70px, 10vh, 100px);
    right: 16px;
    width: clamp(180px, 50vw, 240px);
  }
  .siges-topic-hero__team-card { height: 340px; }
}

/* Topic-Hero Entry-Animation — Pure CSS, getriggert via .is-ready Klasse.
   easeOutExpo (cubic-bezier(0.16, 1, 0.3, 1)) → sehr soft auslaufendes Ende,
   längere Dauer (1.4–2.4s) damit es smooth zur Ruhe kommt. */
.siges-topic-hero__bg {
  opacity: 0;
  /* Reines opacity-Fade — wie auf der Startseite (hero-split). Kein Zoom. */
  transition: opacity 1.2s cubic-bezier(0.32, 0.72, 0, 1);
}
.siges-topic-hero__overlay {
  opacity: 0;
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s;
}

.siges-topic-hero__eyebrow,
.siges-topic-hero__title,
.siges-topic-hero__copy,
.siges-topic-hero__cta {
  opacity: 0; transform: translateY(28px);
  transition: opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.siges-topic-hero__eyebrow { transition-delay: 0.45s; }
.siges-topic-hero__title   { transition-delay: 0.60s; transform: translateY(48px); }
.siges-topic-hero__copy    { transition-delay: 0.85s; transform: translateY(24px); }
.siges-topic-hero__cta     { transition-delay: 1.10s; transform: translateY(18px); }

.siges-topic-hero__team {
  opacity: 0; transform: translate(36px, -20px);
  transition: opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.70s,
              transform 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.70s;
  will-change: opacity, transform;
}

.siges-topic-hero.is-ready .siges-topic-hero__bg      { opacity: 1; transform: scale(1); }
/* Overlay fadet auf das USER-Setting (--th-overlay-opacity), NICHT hart auf 1. */
.siges-topic-hero.is-ready .siges-topic-hero__overlay { opacity: var(--th-overlay-opacity, 0); }
.siges-topic-hero.is-ready .siges-topic-hero__eyebrow,
.siges-topic-hero.is-ready .siges-topic-hero__title,
.siges-topic-hero.is-ready .siges-topic-hero__copy,
.siges-topic-hero.is-ready .siges-topic-hero__cta { opacity: 1; transform: translateY(0); }
.siges-topic-hero.is-ready .siges-topic-hero__team {
  opacity: 1;
  /* Parallax-Y wird vom JS via --th-parallax-team gesetzt — KEINE
     transition auf transform, sonst kommt's beim Direction-Change ins Stocken. */
  transform: translate3d(0, var(--th-parallax-team, 0px), 0);
  transition: opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1) 0.70s;
}
/* BG fade-in + Parallax-Y (vom Scroll-Handler via --th-parallax-bg).
   KEINE transition auf transform — direkter RAF-Update für smooth scroll. */
.siges-topic-hero.is-ready .siges-topic-hero__bg {
  opacity: 1;
  transform: translate3d(0, var(--th-parallax-bg, 0px), 0);
  transition: opacity 1.2s cubic-bezier(0.32, 0.72, 0, 1);
}

@media (prefers-reduced-motion: reduce) {
  .siges-topic-hero.is-ready .siges-topic-hero__bg {
    opacity: 1; transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .siges-topic-hero__bg,
  .siges-topic-hero__eyebrow,
  .siges-topic-hero__title,
  .siges-topic-hero__copy,
  .siges-topic-hero__cta,
  .siges-topic-hero__team {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  /* Overlay behält das User-Opacity-Setting auch bei reduced-motion. */
  .siges-topic-hero__overlay {
    opacity: var(--th-overlay-opacity, 0) !important; transform: none !important; transition: none !important;
  }
}

/* =============================================================================
   GLOBAL BREADCRUMBS
   Sitewide vor dem Footer (siges_before_footer hook). Einheitliches Styling
   für alle Seiten und CPTs — inklusive siges-projekte Detail und Tax-Archive.
   ============================================================================= */
.siges-breadcrumbs {
  display: block;
  width: 100%;
  padding: 1rem var(--siges-side-pad, 50px) 0;
  border-top: 1px solid var(--siges-border, #ECE9E4);
  box-sizing: border-box;
  font-size: 0.8125rem;        /* 13px */
  color: var(--siges-text-muted, #6b6357);
  letter-spacing: 0.01em;
  margin-bottom: 42px;
}

.siges-breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.siges-breadcrumbs__item {
  display: flex;
  align-items: center;
}

.siges-breadcrumbs__item:not(:last-child)::after {
  content: '›';
  margin-left: 0.5rem;
  color: var(--siges-gold, #BE9B53);
  font-size: 1em;
  line-height: 1;
}

.siges-breadcrumbs__item a {
  color: var(--siges-text-muted, #6b6357);
  text-decoration: none;
  transition: color 0.18s;
}
.siges-breadcrumbs__item a:hover {
  color: var(--siges-gold, #BE9B53);
}

.siges-breadcrumbs__item--current span {
  color: var(--siges-text, #2C2825);
  font-weight: 500;
}

/* Detail-Page Alias — identisches Styling */
.siges-immo-single__breadcrumb--bottom {
  padding: 1rem 0 1.25rem;
  border-top: 1px solid var(--siges-border, #ECE9E4);
  font-size: 0.8125rem;
  color: var(--siges-text-muted, #6b6357);
  margin-top: 2.5rem;
}
.siges-immo-single__breadcrumb--bottom ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.siges-immo-single__breadcrumb--bottom li {
  display: flex;
  align-items: center;
}
.siges-immo-single__breadcrumb--bottom li:not(:last-child)::after {
  content: '›';
  margin-left: 0.5rem;
  color: var(--siges-gold, #BE9B53);
}
.siges-immo-single__breadcrumb--bottom a {
  color: var(--siges-text-muted, #6b6357);
  text-decoration: none;
  transition: color 0.18s;
}
.siges-immo-single__breadcrumb--bottom a:hover {
  color: var(--siges-gold, #BE9B53);
}
.siges-immo-single__breadcrumb--bottom span[aria-current="page"] {
  color: var(--siges-text, #2C2825);
  font-weight: 500;
}

@media (max-width: 600px) {
  .siges-breadcrumbs,
  .siges-immo-single__breadcrumb--bottom {
    font-size: 0.72rem;
    padding-left: var(--siges-side-pad, 20px);
    padding-right: var(--siges-side-pad, 20px);
  }
}

/* =============================================================================
   ELEMENTOR BRAND-OVERRIDE — SIGES Global Colors
   Überschreibt Elementor-Standard-Farben (Cyan, Grün, Pink) mit SIGES Brand-Colors.
   Lädt nach Elementor CSS (Priority 999) → gewinnt ohne !important.
   ============================================================================= */

/* Elementor Kit Global Colors */
.elementor-kit-5 {
  --e-global-color-primary:   var(--siges-brown, #513C2D);
  --e-global-color-secondary: var(--siges-forest-green, #58886D);
  --e-global-color-text:      var(--siges-text, #2C2825);
  --e-global-color-accent:    var(--siges-gold, #BE9B53);
}

/* Elementor interne UI-Vars (--e-a-color-*) — Pink/Magenta überschreiben */
:root {
  --e-a-color-accent:       var(--siges-gold, #BE9B53);
  --e-a-color-primary:      var(--siges-gold, #BE9B53);
  --e-a-color-primary-bold: var(--siges-brown, #513C2D);
  --e-a-border-color-focus: var(--siges-gold, #BE9B53);
}

/* Focus-Ring: immer SIGES Gold, sitewide */
:focus-visible {
  outline: 2px solid var(--siges-gold, #BE9B53);
  outline-offset: 2px;
}

/* Bauweise Fullscreen Close-Button — explizit kein pink outline */
.siges-bw-fs__close:hover,
.siges-bw-fs__close:focus,
.siges-bw__open-fs:focus {
  outline: none;
}
.siges-bw-fs__close:focus-visible,
.siges-bw__open-fs:focus-visible {
  outline: 2px solid var(--siges-gold, #BE9B53);
  outline-offset: 3px;
}

/* Elementor Buttons — Brand-Color Hover statt Standard-Grün */
.elementor-button:hover,
.elementor-button:focus {
  background-color: var(--siges-gold-dark, #8B6E35);
  border-color: var(--siges-gold-dark, #8B6E35);
  color: #fff;
}

/* Links sitewide: keine Elementor-Cyan-Farbe */
a { color: inherit; }
a:hover { color: var(--siges-gold, #BE9B53); }

/* =============================================================================
   UNIVERSELLER SECTION DARK MODE + TEXT COLOR
   Gilt für alle siges-Shortcodes die .siges-section--dark oder
   eine sectionspezifische --dark Klasse nutzen.
   --sg-sec-text überschreibt die Textfarbe wenn gesetzt.
   ============================================================================= */

/* Background + Text via CSS-Variablen — werden via siges_section_bg_build() als
   Inline-Style auf dem Element gesetzt. Alle Shortcode-Sections hier aufgeführt. */
.siges-ks,
.siges-klima,
.siges-fh-ticker,
.siges-acc-scroll,
.siges-immo-carousel,
.siges-ij {
  background: var(--sg-sec-bg, transparent);
  color: var(--sg-sec-text, inherit);
}

/* Universal Dark Mode — gilt wenn section_mode="dark" */
.siges-section--dark,
.siges-ks--dark,
.siges-klima--dark,
.siges-fh-ticker--dark {
  color: var(--sg-sec-text, var(--siges-border, #ECE9E4));
}

/* Headings + Text in dark sections */
.siges-section--dark h1, .siges-section--dark h2, .siges-section--dark h3,
.siges-section--dark h4, .siges-section--dark h5, .siges-section--dark h6,
.siges-section--dark p, .siges-section--dark span, .siges-section--dark li,
.siges-ks--dark .siges-ks__title,
.siges-ks--dark .siges-ks__body-text,
.siges-ks--dark .siges-ks__tag,
.siges-klima--dark .siges-klima__title,
.siges-klima--dark .siges-klima__subtitle,
.siges-klima--dark .siges-klima__eyebrow,
.siges-klima--dark .siges-klima__label,
.siges-klima--dark .siges-klima__value {
  color: var(--sg-sec-text, var(--siges-border, #ECE9E4));
}

/* Eyebrow / Labels in dark: Gold */
.siges-ks--dark .siges-ks__copy-eyebrow,
.siges-klima--dark .siges-klima__eyebrow {
  color: var(--siges-gold, #BE9B53);
}

/* Borders / Dividers in dark */
.siges-ks--dark .siges-ks__card,
.siges-klima--dark .siges-klima__item {
  border-color: rgba(236, 233, 228, 0.15);
}

/* ============================================================================
   [siges_team_contact] — Große Team-Card(s) + Kontakt-Form in einer Section.
   Typo (Heading/Intro) wie UG-Content (.siges-ug__title-small / .siges-ug__content).
   ============================================================================ */
.siges-team-contact { width: 100%; }
.siges-team-contact__inner {
  max-width: calc(var(--siges-content-max, 1600px) + 2 * var(--sg-outer, 16px));
  margin: 0 auto;
  padding: clamp(48px, 6vw, 96px) var(--sg-outer, 16px);
}
.siges-team-contact__header { margin: 0 0 clamp(32px, 4vw, 56px); max-width: 60ch; }
.siges-team-contact__heading {
  font-family: 'Ageo', 'Inter', system-ui, sans-serif;
  font-size: clamp(26px, 2.8vw, 40px);
  line-height: 1.05;
  font-weight: 600;
  margin: 0;
}
.siges-team-contact__intro {
  font-size: 24px;
  line-height: 30px;
  margin: 18px 0 0;
}
/* Oben: Text links, große Team-Card rechts. Form full-width darunter. */
.siges-team-contact__top {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 72px);
  align-items: start;
  margin-bottom: clamp(40px, 5vw, 72px);
}
.siges-team-contact__text { min-width: 0; }
.siges-team-contact__cards { display: flex; flex-direction: column; gap: 24px; align-items: flex-end; }
.siges-team-contact__cards .siges-team__card {
  width: 100%;
  max-width: 420px;
  aspect-ratio: 0.75;
}
.siges-team-contact__form { min-width: 0; width: 100%; }
/* Eingebettete Kontakt-Form: standalone-Constraints aufheben, Form füllt ihre Spalte.
   WICHTIG: internes Card-Padding (1.75rem) NICHT entfernen — sonst kleben die Felder
   am Card-Rand. Nur max-width/margin aufheben, damit die Form ihre Spalte füllt. */
.siges-team-contact__form .siges-inquiry { max-width: none; margin: 0; }
.siges-team-contact__form .siges-inquiry__inner { display: block; padding: clamp(1.75rem, 2.4vw, 2.5rem); }
@media (max-width: 900px) {
  .siges-team-contact__top { grid-template-columns: 1fr; }
  .siges-team-contact__cards { align-items: flex-start; }
  .siges-team-contact__cards .siges-team__card { max-width: 340px; }
}

/* team-contact full-bleed (Override) + Elementor-Container-Padding aushebeln + full-height */
.siges-team-contact {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  min-height: 100vh;
  display: flex;
  align-items: center;
}
.siges-team-contact__inner { width: 100%; }
.e-con:has(.siges-team-contact),
.e-con-inner:has(.siges-team-contact) {
  padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important;
  --padding-top: 0 !important; --padding-right: 0 !important; --padding-bottom: 0 !important; --padding-left: 0 !important;
}
