/**
 * Immobiliengalerie – Themenseiten (Kaufen, Verkaufen, Mieten) und eigene Elementor-Widgets.
 * Farben ausschließlich aus der CI: Navy, Hellblau, helle Blautöne, Weiß.
 * Maße nach der Startseite: Inhalt 1300 px, Abschnitte 100 px, Kacheln 16 px Radius,
 * Raster-Abstand 30 px, Buttons wie .theme-btn.btn-style-one.
 */

:root {
    --ig-navy: #00445b;
    --ig-blue: #00b2e3;
    --ig-sky: #e7f8fd;
    --ig-sky-soft: #f3fafd;
    --ig-muted: rgba(0, 68, 91, 0.72);
    --ig-line: rgba(0, 68, 91, 0.12);
    --ig-radius: 16px;
    --ig-gap: 30px;
    --ig-shadow: 0 18px 44px rgba(0, 68, 91, 0.10);
    --ig-sticky-top: 0px;
}


/* Elementor-Standardabstände in unseren Containern neutralisieren – Abstände
   kommen ausschließlich aus diesem Stylesheet. */
.ig-ci .e-con[class*="igp-"] {
    --padding-top: 0px;
    --padding-right: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --gap: 0px;
    --row-gap: 0px;
    --column-gap: 0px;
    --container-max-width: none;
}

.ig-ci .e-con.igp-section,
.ig-ci .e-con.igp-hero {
    --flex-direction: column;
}

.ig-ci .e-con.igp-inner,
.ig-ci .e-con.igp-copy,
.ig-ci .e-con.igp-head {
    --flex-direction: column;
    --align-items: stretch;
}

.ig-ci .igp-pagenav-wrap {
    --padding-top: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    --padding-right: 0px;
}

/* --------------------------------------------------------------------- */
/* Grundgerüst                                                             */
/* --------------------------------------------------------------------- */

.ig-ci .elementor-widget-heading .elementor-heading-title,
.ig-ci .elementor-widget-text-editor,
.ig-ci .elementor-button {
    font-family: "Plus Jakarta Sans", sans-serif;
}

/* Theme-Regel ".text, p { color: navy }" aushebeln: Farbe kommt vom Widget. */
.ig-ci .elementor-widget-text-editor p,
.ig-ci .elementor-widget-text-editor li {
    color: inherit;
}

.ig-ci .elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

.ig-ci .igp-section {
    position: relative;
    padding: 100px 0;
    background: #fff;
    color: var(--ig-navy);
    scroll-margin-top: calc(var(--ig-sticky-top) + 70px);
}

.ig-ci .igp-section--sky { background: var(--ig-sky-soft); }

.ig-ci .igp-section--navy {
    background: var(--ig-navy);
    color: #fff;
}

.ig-ci .igp-inner {
    width: min(1300px, calc(100% - 30px));
    margin-inline: auto;
}

.ig-ci .igp-head {
    max-width: 780px;
    margin-bottom: 50px;
}

.ig-ci .igp-head--center {
    margin-inline: auto;
    text-align: center;
}

/* Eyebrow wie auf der Startseite: "// TEXT" */
.ig-ci .igp-eyebrow .elementor-heading-title {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.3;
    letter-spacing: 1px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ig-blue);
}

.ig-ci .igp-eyebrow .elementor-heading-title::before {
    content: "//";
    margin-right: 0.4em;
}

.ig-ci .igp-title .elementor-heading-title {
    margin: 0;
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.28;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ig-navy);
}

.ig-ci .igp-intro {
    margin-top: 18px;
    font-size: 17px;
    line-height: 1.7;
    color: var(--ig-muted);
}

.ig-ci .igp-section--navy .igp-title .elementor-heading-title { color: #fff; }
.ig-ci .igp-section--navy .igp-intro { color: rgba(255, 255, 255, 0.78); }
.ig-ci .igp-section--navy .igp-eyebrow .elementor-heading-title { color: #7fdcf5; }

.ig-ci .igp-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 70px;
    align-items: center;
}

.ig-ci .igp-split--wide-right { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
.ig-ci .igp-split--top { align-items: start; }

/* Buttons exakt wie .theme-btn.btn-style-one */
.ig-ci .igp-actions {
    --flex-direction: row;
    --flex-wrap: wrap;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 15px;
    margin-top: 34px;
}

.ig-ci .igp-actions > .elementor-widget { width: auto; }

.ig-ci .igp-btn .elementor-button {
    display: inline-flex;
    align-items: center;
    padding: 15px 35px;
    border: 0;
    border-radius: 50px;
    background: var(--ig-blue);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    box-shadow: none;
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.ig-ci .igp-btn .elementor-button:hover,
.ig-ci .igp-btn .elementor-button:focus-visible {
    background: var(--ig-navy);
    color: #fff;
}

.ig-ci .igp-btn--ghost .elementor-button {
    padding: 14px 34px;
    border: 1px solid var(--ig-navy);
    background: transparent;
    color: var(--ig-navy);
}

.ig-ci .igp-btn--ghost .elementor-button:hover,
.ig-ci .igp-btn--ghost .elementor-button:focus-visible {
    background: var(--ig-navy);
    color: #fff;
}

.ig-ci .igp-section--navy .igp-btn--ghost .elementor-button {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.ig-ci .igp-section--navy .igp-btn--ghost .elementor-button:hover {
    background: #fff;
    color: var(--ig-navy);
}

/* Bild im Galerie-Rahmen: weißer Passepartout, leicht schräg dahinter eine Fläche */
.ig-ci .igp-frame {
    position: relative;
    isolation: isolate;
}

.ig-ci .igp-frame::before {
    content: "";
    position: absolute;
    inset: 26px -18px -18px 26px;
    z-index: -1;
    border-radius: 22px;
    background: var(--ig-sky);
    transform: rotate(2deg);
}

.ig-ci .igp-section--sky .igp-frame::before { background: #fff; }
.ig-ci .igp-section--navy .igp-frame::before { background: rgba(255, 255, 255, 0.10); }

.ig-ci .igp-frame img,
.ig-ci .elementor .igp-frame img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 10px solid #fff;
    border-radius: 22px;
    box-shadow: var(--ig-shadow);
}

.ig-ci .igp-frame--tall img { aspect-ratio: 4 / 5; }

/* --------------------------------------------------------------------- */
/* Hero                                                                    */
/* --------------------------------------------------------------------- */

.ig-ci .igp-hero {
    position: relative;
    overflow: hidden;
    /* Der Theme-Kopf liegt auf großen Bildschirmen transparent über dem Hero;
       die Überlappung misst ig-pages.js (Fallback ohne JS: 100 px). */
    padding: calc(50px + var(--ig-header-overlap, 100px)) 0 100px;
    background: linear-gradient(180deg, #fff 0%, var(--ig-sky-soft) 55%, var(--ig-sky) 100%);
}

.ig-ci .igp-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 70px;
    align-items: center;
}

.ig-ci .igp-h1 .elementor-heading-title {
    margin: 0;
    font-size: clamp(40px, 4.6vw, 64px);
    line-height: 1.1;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ig-navy);
}

/* Hervorhebung wie "GALERIE" auf der Startseite */
.ig-ci .igp-h1 .elementor-heading-title span {
    position: relative;
    display: inline-block;
    color: var(--ig-blue);
}

.ig-ci .igp-h1 .elementor-heading-title span::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -0.16em;
    height: 0.24em;
    background: url(/wp-content/themes/palace-child/assets/images/shape.png) no-repeat center / 100% 100%;
    pointer-events: none;
}

.ig-ci .igp-lead {
    margin-top: 26px;
    max-width: 560px;
    font-size: 18px;
    line-height: 1.7;
    color: var(--ig-muted);
}

/* --------------------------------------------------------------------- */
/* Widget: Themen-Umschalter                                               */
/* --------------------------------------------------------------------- */

.ig-topics {
    display: inline-flex;
    gap: 4px;
    padding: 5px;
    margin-bottom: 30px;
    border-radius: 50px;
    background: #fff;
    border: 1px solid var(--ig-line);
    box-shadow: 0 6px 18px rgba(0, 68, 91, 0.06);
}

.ig-topics__item {
    padding: 9px 22px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: var(--ig-navy);
    text-decoration: none;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.ig-topics__item:hover { background: var(--ig-sky); color: var(--ig-navy); }

.ig-topics__item.is-active {
    background: var(--ig-navy);
    color: #fff;
}

/* --------------------------------------------------------------------- */
/* Widget: Kurzfakten                                                      */
/* --------------------------------------------------------------------- */

.ig-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    margin: 34px 0 0;
    padding: 0;
    list-style: none;
}

.ig-facts li {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    font-weight: 600;
    color: var(--ig-navy);
}

.ig-facts .ig-icon {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    padding: 4px;
    border-radius: 50%;
    background: var(--ig-blue);
    color: #fff;
    stroke-width: 3;
}

/* --------------------------------------------------------------------- */
/* Widget: Sprungleiste                                                    */
/* --------------------------------------------------------------------- */

.ig-pagenav-slot { min-height: 64px; }

.ig-pagenav {
    position: relative;
    z-index: 900;
    background: #fff;
    border-bottom: 1px solid var(--ig-line);
    transition: box-shadow 0.25s ease;
}

.ig-pagenav.is-fixed {
    position: fixed;
    top: var(--ig-sticky-top);
    left: 0;
    right: 0;
    box-shadow: 0 8px 24px rgba(0, 68, 91, 0.08);
}

.ig-pagenav__inner {
    width: min(1300px, calc(100% - 30px));
    min-height: 64px;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.ig-pagenav__links {
    display: flex;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}

.ig-pagenav__links::-webkit-scrollbar { display: none; }

.ig-pagenav__links a {
    display: block;
    padding: 9px 16px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
    color: var(--ig-muted);
    text-decoration: none;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.ig-pagenav__links a:hover { color: var(--ig-navy); background: var(--ig-sky-soft); }

.ig-pagenav__links a.is-active {
    color: var(--ig-navy);
    background: var(--ig-sky);
}

.ig-pagenav__cta {
    flex: 0 0 auto;
    padding: 10px 24px;
    border-radius: 50px;
    background: var(--ig-blue);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.ig-pagenav__cta:hover,
.ig-pagenav__cta:focus-visible { background: var(--ig-navy); color: #fff; }

/* --------------------------------------------------------------------- */
/* Widget: Ablauf-Zeitleiste                                               */
/* --------------------------------------------------------------------- */

.ig-timeline {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--ig-steps, 4), minmax(0, 1fr));
    gap: var(--ig-gap);
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}

/* Verbindungslinie hinter den Markern, füllt sich beim Einblenden */
.ig-timeline::before,
.ig-timeline::after {
    content: "";
    position: absolute;
    top: 32px;
    left: 32px;
    right: calc((100% - (var(--ig-steps, 4) - 1) * var(--ig-gap)) / var(--ig-steps, 4) - 32px);
    height: 2px;
    background: var(--ig-line);
}

.ig-timeline::after {
    background: var(--ig-blue);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.2s;
}

.ig-timeline.is-visible::after { transform: scaleX(1); }

.ig-timeline__step {
    position: relative;
    padding: 0;
}

.ig-timeline__marker {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 26px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--ig-line);
    color: var(--ig-navy);
    transition: border-color 0.4s ease, background-color 0.4s ease, color 0.4s ease;
    transition-delay: calc(var(--ig-i, 0) * 0.25s + 0.2s);
}

.ig-timeline.is-visible .ig-timeline__marker {
    border-color: var(--ig-blue);
    background: var(--ig-blue);
    color: #fff;
}

.ig-timeline__marker .ig-icon {
    width: 28px;
    height: 28px;
    stroke-width: 1.8;
}

.ig-timeline__num {
    position: absolute;
    top: -6px;
    right: -10px;
    min-width: 30px;
    padding: 3px 6px;
    border-radius: 50px;
    background: var(--ig-navy);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-align: center;
}

.ig-timeline__title {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--ig-navy);
}

.ig-timeline__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: var(--ig-muted);
}

/* --------------------------------------------------------------------- */
/* Widget: Kaufnebenkosten-Rechner                                         */
/* --------------------------------------------------------------------- */

.ig-calc {
    max-width: 1040px;
    margin-inline: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: var(--ig-gap);
    align-items: stretch;
}

.ig-calc__controls,
.ig-calc__result {
    border-radius: var(--ig-radius);
    padding: 28px 30px;
}

.ig-calc__controls {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff;
}

.ig-calc__label,
.ig-calc__commission legend {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.72);
}

.ig-calc__price {
    display: block;
    margin-bottom: 10px;
    font-size: clamp(30px, 3vw, 38px);
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.ig-calc input[type="range"] {
    width: 100%;
    height: 32px;
    accent-color: var(--ig-blue);
    cursor: pointer;
}

.ig-calc__scale {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.6);
}

.ig-calc__commission {
    margin: 22px 0 0;
    padding: 0;
    border: 0;
}

.ig-calc__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.ig-calc__chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ig-calc__chip span {
    display: inline-block;
    padding: 9px 20px;
    border-radius: 50px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ig-calc__chip input:checked + span {
    background: #fff;
    border-color: #fff;
    color: var(--ig-navy);
}

.ig-calc__chip input:focus-visible + span {
    outline: 2px solid var(--ig-blue);
    outline-offset: 2px;
}

.ig-calc__result {
    background: #fff;
    color: var(--ig-navy);
}

.ig-calc__result-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--ig-muted);
}

.ig-calc__total {
    display: block;
    margin: 4px 0 16px;
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.1;
    font-weight: 700;
    color: var(--ig-navy);
    font-variant-numeric: tabular-nums;
}

.ig-calc__bar {
    display: flex;
    height: 14px;
    border-radius: 50px;
    overflow: hidden;
    background: var(--ig-sky);
    gap: 3px;
}

.ig-calc__seg {
    flex-basis: 0;
    transition: flex-grow 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.ig-calc__seg--tax, .ig-calc__dot--tax { background: var(--ig-navy); }
.ig-calc__seg--notary, .ig-calc__dot--notary { background: var(--ig-blue); }
.ig-calc__seg--commission, .ig-calc__dot--commission { background: #7fdcf5; }

.ig-calc__list {
    margin: 16px 0 0;
}

.ig-calc__row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ig-line);
    font-size: 15px;
}

.ig-calc__row dt { font-weight: 600; display: flex; align-items: center; gap: 10px; }
.ig-calc__row dt small { font-weight: 500; color: var(--ig-muted); }
.ig-calc__row dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }

.ig-calc__dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.ig-calc__row--sum { border-bottom: 0; padding-top: 16px; }
.ig-calc__row--sum dt, .ig-calc__row--sum dd { font-size: 17px; }

.ig-calc__note {
    margin: 14px 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--ig-muted);
}

/* --------------------------------------------------------------------- */
/* Widget: Preis-Zeit-Grafik                                               */
/* --------------------------------------------------------------------- */

.ig-chart {
    margin: 0;
    padding: 30px 30px 24px;
    border-radius: var(--ig-radius);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff;
}

.ig-chart__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin-bottom: 14px;
    font-size: 14px;
    font-weight: 600;
}

.ig-chart__key::before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 3px;
    margin-right: 8px;
    vertical-align: middle;
    border-radius: 3px;
}

.ig-chart__key--good::before { background: var(--ig-blue); }
.ig-chart__key--bad::before { background: rgba(255, 255, 255, 0.55); }

.ig-chart__svg { display: block; width: 100%; height: auto; overflow: visible; }

.ig-chart__grid path { fill: none; stroke: rgba(255, 255, 255, 0.35); stroke-width: 1.5; }
.ig-chart__grid .ig-chart__guide { stroke: rgba(255, 255, 255, 0.08); stroke-dasharray: 4 6; }

.ig-chart__axis {
    fill: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    font-weight: 600;
    font-family: "Plus Jakarta Sans", sans-serif;
}

.ig-chart__line {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: stroke-dashoffset 1.6s cubic-bezier(0.45, 0, 0.2, 1);
}

.ig-chart__line--good { stroke: var(--ig-blue); transition-delay: 0.2s; }
.ig-chart__line--bad { stroke: rgba(255, 255, 255, 0.55); transition-duration: 2.4s; transition-delay: 0.5s; }

.ig-chart.is-visible .ig-chart__line { stroke-dashoffset: 0; }

.ig-chart__marks { opacity: 0; transition: opacity 0.6s ease 2.4s; }
.ig-chart.is-visible .ig-chart__marks { opacity: 1; }

.ig-chart__dot--good { fill: var(--ig-blue); stroke: #fff; stroke-width: 3; }
.ig-chart__dot--bad { fill: var(--ig-navy); stroke: rgba(255, 255, 255, 0.7); stroke-width: 3; }

.ig-chart__label {
    fill: rgba(255, 255, 255, 0.75);
    font-size: 13px;
    font-weight: 600;
    font-family: "Plus Jakarta Sans", sans-serif;
}

.ig-chart__label--good { fill: #7fdcf5; }

.ig-chart__caption {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.6);
}

/* --------------------------------------------------------------------- */
/* Widget: Unterlagen-Check                                                */
/* --------------------------------------------------------------------- */

.ig-check {
    padding: 34px;
    border-radius: var(--ig-radius);
    background: #fff;
    border: 1px solid var(--ig-line);
    box-shadow: var(--ig-shadow);
}

.ig-check__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
}

.ig-check__title { font-size: 20px; font-weight: 700; color: var(--ig-navy); }
.ig-check__count { font-size: 14px; font-weight: 600; color: var(--ig-muted); white-space: nowrap; }

.ig-check__progress {
    height: 8px;
    margin: 16px 0 22px;
    border-radius: 50px;
    background: var(--ig-sky);
    overflow: hidden;
}

.ig-check__progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: var(--ig-blue);
    transition: width 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.ig-check__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }

.ig-check__item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid var(--ig-line);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.ig-check__item:hover { border-color: rgba(0, 178, 227, 0.55); }

.ig-check__item input { position: absolute; opacity: 0; pointer-events: none; }

.ig-check__box {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    border: 2px solid var(--ig-line);
    color: transparent;
    transition: all 0.2s ease;
}

.ig-check__box .ig-icon { width: 16px; height: 16px; stroke-width: 3; }

.ig-check__item input:checked ~ .ig-check__box {
    background: var(--ig-blue);
    border-color: var(--ig-blue);
    color: #fff;
}

.ig-check__item input:checked ~ .ig-check__text { color: var(--ig-muted); }
.ig-check__item:has(input:checked) { background: var(--ig-sky-soft); border-color: transparent; }
.ig-check__item input:focus-visible ~ .ig-check__box { outline: 2px solid var(--ig-blue); outline-offset: 2px; }

.ig-check__text { font-size: 16px; line-height: 1.5; font-weight: 600; color: var(--ig-navy); }
.ig-check__text small { display: block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--ig-muted); }

.ig-check__foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px 20px;
    margin-top: 22px;
}

.ig-check__status { margin: 0; font-size: 15px; color: var(--ig-muted); }
.ig-check.is-complete .ig-check__status { color: var(--ig-navy); font-weight: 600; }

.ig-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--ig-blue);
    text-decoration: none;
}

.ig-link-arrow .ig-icon { width: 18px; height: 18px; stroke-width: 2.4; transition: transform 0.25s ease; }
.ig-link-arrow:hover .ig-icon { transform: translateX(4px); }

/* --------------------------------------------------------------------- */
/* Widget: FAQ-Akkordeon (wie die FAQ der Startseite)                      */
/* --------------------------------------------------------------------- */

.ig-faq { border-top: 1px solid var(--ig-line); }

.ig-faq__item { border-bottom: 1px solid var(--ig-line); }

.ig-faq__q {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 24px 0;
    cursor: pointer;
    list-style: none;
}

.ig-faq__q::-webkit-details-marker { display: none; }

.ig-faq__q h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 600;
    text-transform: none;
    color: var(--ig-navy);
}

.ig-faq__icon {
    position: relative;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid var(--ig-line);
    transition: background-color 0.25s ease, border-color 0.25s ease;
}

.ig-faq__icon::before,
.ig-faq__icon::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 2px;
    border-radius: 2px;
    background: var(--ig-navy);
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease, background-color 0.25s ease;
}

.ig-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }

.ig-faq__item[open] .ig-faq__icon { background: var(--ig-blue); border-color: var(--ig-blue); }
.ig-faq__item[open] .ig-faq__icon::before,
.ig-faq__item[open] .ig-faq__icon::after { background: #fff; }
.ig-faq__item[open] .ig-faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }

.ig-faq__q:hover h3 { color: var(--ig-blue); }
.ig-faq__q:focus-visible { outline: 2px solid var(--ig-blue); outline-offset: 4px; border-radius: 4px; }

.ig-faq__a { padding: 0 54px 26px 0; }

.ig-faq__a p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--ig-muted);
}

/* --------------------------------------------------------------------- */
/* Widget: Ansprechpartner                                                 */
/* --------------------------------------------------------------------- */

.ig-person {
    display: flex;
    gap: 22px;
    align-items: center;
    margin-top: 34px;
    padding: 22px;
    border-radius: var(--ig-radius);
    background: #fff;
    border: 1px solid var(--ig-line);
}

.ig-person img.ig-person__photo {
    flex: 0 0 104px;
    width: 104px;
    height: 104px;
    object-fit: cover;
    object-position: center 20%;
    max-width: none;
    border-radius: 50%;
    border: 4px solid var(--ig-sky);
}

.ig-person__name { display: block; font-size: 19px; font-weight: 700; color: var(--ig-navy); }
.ig-person__role { display: block; margin-top: 2px; font-size: 14px; font-weight: 600; color: var(--ig-blue); }
.ig-person__text { margin: 10px 0 0; font-size: 15px; line-height: 1.6; color: var(--ig-muted); }

.ig-person__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-top: 12px;
}

.ig-person__links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: var(--ig-navy);
    text-decoration: none;
}

.ig-person__links a:hover { color: var(--ig-blue); }
.ig-person__links .ig-icon { width: 18px; height: 18px; stroke-width: 2; color: var(--ig-blue); }

/* Finder-/Funnel-Karte im Kontaktbereich: Fläche dahinter passend zum Hintergrund */
.ig-ci .igp-section--sky .igoo-finder--compact::before { background: #fff; }

/* --------------------------------------------------------------------- */
/* Einblenden beim Scrollen (nur mit JS, ohne JS ist alles sichtbar)       */
/* --------------------------------------------------------------------- */

.ig-js [data-ig-reveal]:not(.is-visible) .ig-timeline__step,
.ig-js .ig-timeline[data-ig-reveal]:not(.is-visible) > .ig-timeline__step {
    opacity: 0;
    transform: translateY(14px);
}

.ig-timeline__step {
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--ig-i, 0) * 0.15s);
}

@media (prefers-reduced-motion: reduce) {
    .ig-timeline::after,
    .ig-timeline__marker,
    .ig-timeline__step,
    .ig-chart__line,
    .ig-chart__marks,
    .ig-calc__seg,
    .ig-check__progress span {
        transition: none !important;
    }
}


/* --------------------------------------------------------------------- */
/* Ergänzungen Seitenaufbau                                                */
/* --------------------------------------------------------------------- */

.ig-ci .igp-copy { min-width: 0; }

.ig-ci .igp-split > .igp-head { margin-bottom: 0; }

/* FAQ/Kontakt: Überschrift links läuft beim Scrollen mit */
.ig-ci .igp-split--top > .igp-head {
    position: sticky;
    top: calc(var(--ig-sticky-top) + 96px);
}

.ig-ci .igp-frame--compact { margin-top: 40px; }
.ig-ci .igp-frame--compact img { aspect-ratio: 16 / 10; }

/* Objektliste im Abschnitt: keine doppelten Innenabstände */
.ig-ci .igp-section .igoo-list { padding: 0; }
.ig-ci .igp-section .igoo-list .auto-container { max-width: none; }
/* Kartenabstände kommen aus dem Raster (cards.css), daher hier mehr Luft zum Button */
.ig-ci .igp-section .igoo-list + .igp-actions,
.ig-ci .igp-section .elementor-widget-shortcode + .igp-actions { margin-top: var(--ig-gap); }

@media (max-width: 991px) {
    .ig-ci .igp-split--top > .igp-head { position: static; }
}

/* --------------------------------------------------------------------- */
/* Responsive                                                              */
/* --------------------------------------------------------------------- */

@media (max-width: 1100px) {
    .ig-ci .igp-hero__grid,
    .ig-ci .igp-split,
    .ig-ci .igp-split--wide-right { gap: 48px; }
    .ig-calc { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
    .ig-ci .igp-section { padding: 80px 0; }
    .ig-ci .igp-hero { padding: calc(40px + var(--ig-header-overlap, 0px)) 0 80px; }
    .ig-ci .igp-hero__grid,
    .ig-ci .igp-split,
    .ig-ci .igp-split--wide-right { grid-template-columns: 1fr; }
    .ig-ci .igp-hero__media { max-width: 640px; }

    .ig-timeline {
        grid-template-columns: 1fr;
        gap: 0;
    }

    /* Linie vertikal links an den Markern */
    .ig-timeline::before,
    .ig-timeline::after {
        top: 32px;
        bottom: 32px;
        left: 31px;
        right: auto;
        width: 2px;
        height: auto;
    }

    .ig-timeline::after { transform: scaleY(0); transform-origin: top; }
    .ig-timeline.is-visible::after { transform: scaleY(1); }

    .ig-timeline__step {
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr);
        column-gap: 22px;
        padding-bottom: 34px;
    }

    .ig-timeline__step:last-child { padding-bottom: 0; }
    .ig-timeline__marker { grid-row: span 2; margin-bottom: 0; }
    .ig-timeline__title { align-self: end; margin-top: 8px; }
}

@media (max-width: 767px) {
    :root { --ig-gap: 20px; }
    .ig-ci .igp-section { padding: 64px 0; }
    .ig-ci .igp-hero { padding: calc(28px + var(--ig-header-overlap, 0px)) 0 64px; }
    .ig-ci .igp-inner { width: calc(100% - 32px); }
    .ig-ci .igp-head { margin-bottom: 34px; }
    .ig-ci .igp-h1 .elementor-heading-title { font-size: clamp(34px, 10vw, 44px); }
    .ig-ci .igp-lead { font-size: 16px; margin-top: 20px; }
    .ig-ci .igp-actions { margin-top: 26px; gap: 12px; }
    .ig-ci .igp-actions > .elementor-widget { width: 100%; }
    .ig-ci .igp-actions .elementor-button { width: 100%; justify-content: center; }
    .ig-ci .igp-frame::before { inset: 16px -8px -10px 14px; }
    .ig-ci .igp-frame img { border-width: 6px; border-radius: 18px; }

    .ig-topics { display: flex; margin-bottom: 22px; }
    .ig-topics__item { flex: 1 1 0; text-align: center; padding: 9px 10px; }
    .ig-facts { flex-direction: column; gap: 10px; margin-top: 26px; }

    .ig-pagenav-slot { min-height: 56px; }
    .ig-pagenav__inner { min-height: 56px; width: 100%; padding-left: 16px; gap: 10px; }
    .ig-pagenav__links a { padding: 8px 12px; font-size: 14px; }
    .ig-pagenav__cta { margin-right: 12px; padding: 9px 16px; font-size: 14px; }

    .ig-calc__controls,
    .ig-calc__result,
    .ig-check,
    .ig-chart { padding: 24px 20px; }
    .ig-chart__axis, .ig-chart__label { font-size: 22px; }
    .ig-chart__marks text:not(.ig-chart__label--good):not([text-anchor]) { display: none; }
    .ig-pagenav__links {
        -webkit-mask-image: linear-gradient(to right, #000 82%, transparent);
        mask-image: linear-gradient(to right, #000 82%, transparent);
        padding-right: 24px;
    }

    .ig-faq__q { padding: 20px 0; }
    .ig-faq__q h3 { font-size: 17px; }
    .ig-faq__a { padding-right: 0; }

    .ig-person { flex-direction: column; align-items: flex-start; }
}

/* Leerer Listen-Ausschnitt: "Alle ansehen" ausblenden */
.ig-ci .igp-section:has(.igoo-empty--compact) .igp-actions { display: none; }
.ig-ci .igp-section .igoo-empty--compact { margin: 0 0 10px; }

/* Kompakte Abschnitte (z. B. Nebenkosten-Rechner) */
.ig-ci .igp-section--compact { padding: 76px 0; }
.ig-ci .igp-section--compact .igp-head { margin-bottom: 34px; }

/* --------------------------------------------------------------------- */
/* Widget: Regionskarte                                                    */
/* --------------------------------------------------------------------- */

.ig-map {
    margin: 0;
    padding: 18px 18px 20px;
    border-radius: var(--ig-radius);
    background: radial-gradient(circle at 50% 48%, #fff 0%, var(--ig-sky-soft) 55%, var(--ig-sky) 100%);
    border: 1px solid var(--ig-line);
}

.ig-map__svg { display: block; width: 100%; height: auto; overflow: visible; }

.ig-map__rings circle {
    fill: none;
    stroke: rgba(0, 68, 91, 0.18);
    stroke-width: 1.5;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: stroke-dashoffset 1.4s cubic-bezier(0.45, 0, 0.2, 1);
    transition-delay: calc(var(--i, 0) * 0.25s);
}

.ig-map__rings text {
    fill: rgba(0, 68, 91, 0.45);
    font: 600 12px "Plus Jakarta Sans", sans-serif;
    opacity: 0;
    transition: opacity 0.6s ease;
    transition-delay: calc(var(--i, 0) * 0.25s + 0.8s);
}

.ig-map.is-visible .ig-map__rings circle { stroke-dashoffset: 0; }
.ig-map.is-visible .ig-map__rings text { opacity: 1; }

.ig-map__town {
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(0.6);
    transition: opacity 0.45s ease, transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
    transition-delay: calc(0.9s + var(--i, 0) * 0.07s);
}

.ig-map.is-visible .ig-map__town { opacity: 1; transform: none; }

.ig-map__dot { fill: #fff; stroke: rgba(0, 68, 91, 0.55); stroke-width: 2; }
.ig-map__town.is-active .ig-map__dot { fill: var(--ig-blue); stroke: #fff; stroke-width: 3; }

.ig-map__center { fill: var(--ig-navy); stroke: #fff; stroke-width: 3; }
.ig-map__house { fill: #fff; }

.ig-map__label {
    fill: var(--ig-navy);
    font: 600 14px "Plus Jakarta Sans", sans-serif;
    paint-order: stroke;
    stroke: rgba(255, 255, 255, 0.85);
    stroke-width: 4px;
    stroke-linejoin: round;
}

.ig-map__town.is-center .ig-map__label { font-size: 15px; font-weight: 700; }
.ig-map__town.is-active .ig-map__label { font-weight: 700; fill: var(--ig-navy); }

.ig-map a:hover .ig-map__label,
.ig-map a:focus-visible .ig-map__label { fill: var(--ig-blue); }
.ig-map a:focus-visible { outline: none; }
.ig-map a:focus-visible .ig-map__dot { stroke: var(--ig-navy); stroke-width: 3; }

.ig-map__pulse {
    fill: var(--ig-blue);
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
}

.ig-map.is-visible .ig-map__pulse { animation: ig-map-pulse 2.4s ease-out 2.2s infinite; }

@keyframes ig-map-pulse {
    0% { opacity: 0.45; transform: scale(0.6); }
    100% { opacity: 0; transform: scale(2.6); }
}

.ig-map__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 22px;
    margin-top: 8px;
    padding: 0 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ig-navy);
}

.ig-map__legend small { flex-basis: 100%; font-weight: 500; color: var(--ig-muted); }

.ig-map__key::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 8px;
    border-radius: 50%;
    border: 2px solid rgba(0, 68, 91, 0.55);
    background: #fff;
    vertical-align: -1px;
}

.ig-map__key--active::before { border-color: #fff; background: var(--ig-blue); box-shadow: 0 0 0 2px var(--ig-blue); }

.ig-map__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* --------------------------------------------------------------------- */
/* Widget: Mietrendite-Rechner                                             */
/* --------------------------------------------------------------------- */

.ig-yield {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--ig-gap);
    max-width: 1100px;
    margin-inline: auto;
}

.ig-yield__controls,
.ig-yield__result {
    border-radius: var(--ig-radius);
    padding: 30px;
}

.ig-yield__controls {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff;
}

.ig-yield__field + .ig-yield__field { margin-top: 20px; }

.ig-yield__field label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.78);
}

.ig-yield__field output {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.ig-yield input[type="range"] {
    width: 100%;
    height: 30px;
    accent-color: var(--ig-blue);
    cursor: pointer;
}

.ig-yield__hint {
    margin: 18px 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.6);
}

.ig-yield__result {
    display: flex;
    flex-direction: column;
    background: #fff;
    color: var(--ig-navy);
}

.ig-yield__gauge {
    position: relative;
    max-width: 320px;
    width: 100%;
    margin: 0 auto;
}

.ig-yield__gauge svg { display: block; width: 100%; height: auto; overflow: visible; }

.ig-yield__track,
.ig-yield__fill {
    fill: none;
    stroke-width: 16;
    stroke-linecap: round;
}

.ig-yield__track { stroke: var(--ig-sky); }

.ig-yield__fill {
    stroke: var(--ig-blue);
    stroke-dasharray: 1;
    transition: stroke-dashoffset 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.ig-js .ig-yield:not(.is-ready) .ig-yield__fill { stroke-dashoffset: 1 !important; }

.ig-yield__tick { fill: var(--ig-muted); font: 600 11px "Plus Jakarta Sans", sans-serif; }

.ig-yield__value {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 26px;
    text-align: center;
}

.ig-yield__value strong {
    display: block;
    font-size: clamp(30px, 3.4vw, 40px);
    line-height: 1.1;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ig-yield__value span { font-size: 14px; font-weight: 600; color: var(--ig-muted); }

.ig-yield__kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0 0;
}

.ig-yield__kpis div {
    padding: 14px 12px;
    border-radius: 12px;
    background: var(--ig-sky-soft);
    text-align: center;
}

.ig-yield__kpis dt { font-size: 12.5px; font-weight: 600; color: var(--ig-muted); }
.ig-yield__kpis dd { margin: 4px 0 0; font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }

.ig-yield__note { margin: 18px 0 0; font-size: 13px; line-height: 1.6; color: var(--ig-muted); }

/* Kennzahl-Karten */
.ig-ci .igp-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ig-gap);
}

.ig-ci .igp-card {
    padding: 30px;
    border-radius: var(--ig-radius);
    background: #fff;
    border: 1px solid var(--ig-line);
}

.ig-ci .igp-card-kicker .elementor-heading-title {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--ig-blue);
}

.ig-ci .igp-card-title .elementor-heading-title {
    margin: 0 0 10px;
    font-size: 20px;
    font-weight: 700;
    color: var(--ig-navy);
}

.ig-ci .igp-card-text { font-size: 16px; line-height: 1.65; color: var(--ig-muted); }

.ig-ci .igp-formula {
    display: inline-block;
    margin-top: 16px;
    padding: 8px 14px;
    border-radius: 10px;
    background: var(--ig-sky-soft);
    font-size: 14px;
    font-weight: 600;
    color: var(--ig-navy);
}

@media (max-width: 991px) {
    .ig-yield { grid-template-columns: 1fr; }
    .ig-ci .igp-cards { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
    .ig-ci .igp-section--compact { padding: 60px 0; }
    .ig-yield__controls, .ig-yield__result { padding: 24px 20px; }
    .ig-yield__kpis { grid-template-columns: 1fr; }
    .ig-map { padding: 10px 6px 16px; }
    .ig-map__label { font-size: 17px; }
    .ig-map__town.is-center .ig-map__label { font-size: 19px; }
    .ig-map__rings text { font-size: 15px; }
    .ig-topics__item { flex: 1 1 auto; padding: 9px 8px; font-size: 13px; }
}

/* Liste mit Häkchen (Text-Editor mit <ul>, Klasse igp-list) */
.ig-ci .igp-list { margin-top: 22px; }
.ig-ci .igp-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ig-ci .igp-list li {
    position: relative;
    padding-left: 34px;
    font-size: 16px;
    line-height: 1.55;
    font-weight: 600;
    color: var(--ig-navy);
}
.ig-ci .igp-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--ig-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 13px;
}

/* Abschnitt mit Regionskarte: Karte bekommt mehr Breite */
.ig-ci .igp-split--map { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
@media (max-width: 991px) { .ig-ci .igp-split--map { grid-template-columns: 1fr; } }

/* Kennzahl-Karten: Formel immer am Kartenboden, auf einer Linie */
.ig-ci .igp-card { display: flex; flex-direction: column; }
.ig-ci .igp-card > .igp-card-text { flex: 1 1 auto; display: flex; }
.ig-ci .igp-card-text > .elementor-widget-container { display: flex; flex-direction: column; flex: 1 1 auto; }
.ig-ci .igp-card-text p:last-child { margin-top: auto; padding-top: 6px; }

/* ===================================================================== */
/* Regionsseiten „Immobilie kaufen/verkaufen in …"                        */
/* ===================================================================== */

/* ---------- Brotkrümel ---------- */
.ig-crumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 0;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 500;
    color: var(--ig-muted);
}

.ig-crumbs li { display: inline-flex; align-items: center; }

.ig-crumbs li + li::before {
    content: "";
    width: 6px;
    height: 6px;
    margin: 0 12px 0 10px;
    border-top: 1.5px solid currentColor;
    border-right: 1.5px solid currentColor;
    transform: rotate(45deg);
    opacity: 0.55;
}

.ig-crumbs a {
    color: var(--ig-navy);
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 68, 91, 0.25);
    transition: color 0.2s ease, border-color 0.2s ease;
}

.ig-crumbs a:hover,
.ig-crumbs a:focus-visible { color: var(--ig-blue); border-color: currentColor; }

.ig-crumbs [aria-current] { color: var(--ig-navy); font-weight: 600; }

/* ---------- Steckbrief ---------- */
.ig-keyfacts {
    padding: 30px 32px 26px;
    border: 1px solid var(--ig-line);
    border-radius: var(--ig-radius);
    background: #fff;
    box-shadow: var(--ig-shadow);
    color: var(--ig-navy);
}

.ig-keyfacts__title {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--ig-blue);
}

.ig-keyfacts__title::before { content: "//"; margin-right: 0.4em; }

.ig-keyfacts__list { margin: 0; }

.ig-keyfacts__row {
    display: grid;
    grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1.2fr);
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--ig-line);
}

.ig-keyfacts__row:last-child { border-bottom: 0; }

.ig-keyfacts__row dt {
    font-size: 15px;
    line-height: 1.5;
    font-weight: 500;
    color: var(--ig-muted);
}

.ig-keyfacts__row dd {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    font-weight: 700;
    color: var(--ig-navy);
}

.ig-keyfacts__row dd a {
    color: var(--ig-navy);
    text-decoration: underline;
    text-decoration-color: rgba(0, 178, 227, 0.6);
    text-underline-offset: 3px;
}

.ig-keyfacts__row dd a:hover { color: var(--ig-blue); }

.ig-keyfacts__note {
    margin: 14px 0 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ig-muted);
}

/* ---------- Lagen-Kacheln ---------- */
.ig-areas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ig-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ig-areas--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.ig-area {
    position: relative;
    margin: 0;
    padding: 30px 30px 32px;
    border-radius: var(--ig-radius);
    background: var(--ig-sky-soft);
    border: 1px solid transparent;
}

.igp-section--sky .ig-area {
    background: #fff;
    border-color: var(--ig-line);
}

.ig-area__tag {
    display: inline-block;
    margin-bottom: 14px;
    padding: 5px 12px;
    border-radius: 50px;
    background: var(--ig-sky);
    font-size: 12px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 0.4px;
    color: var(--ig-navy);
}

.igp-section--sky .ig-area__tag { background: var(--ig-sky-soft); }

.ig-ci .ig-area__title {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 700;
    text-transform: none;
    color: var(--ig-navy);
}

.ig-ci .ig-area__text {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--ig-muted);
}

.ig-js .ig-areas[data-ig-reveal]:not(.is-visible) > .ig-area {
    opacity: 0;
    transform: translateY(14px);
}

.ig-areas > .ig-area {
    transition: opacity 0.5s ease, transform 0.5s ease;
    transition-delay: calc(var(--i, 0) * 0.07s);
}

/* ---------- Umliegende Orte ---------- */
.ig-nearby {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ig-nearby li { margin: 0; }

.ig-nearby__item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px 8px 8px 18px;
    border: 1px solid var(--ig-line);
    border-radius: 50px;
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    color: var(--ig-navy);
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.ig-nearby__km {
    padding: 4px 10px;
    border-radius: 50px;
    background: var(--ig-sky);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ig-navy);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

a.ig-nearby__item:hover,
a.ig-nearby__item:focus-visible {
    border-color: var(--ig-navy);
    background: var(--ig-navy);
    color: #fff;
}

a.ig-nearby__item:hover .ig-nearby__km,
a.ig-nearby__item:focus-visible .ig-nearby__km { background: rgba(255, 255, 255, 0.16); color: #fff; }

span.ig-nearby__item { padding-right: 8px; }

/* ---------- Regionen-Links ---------- */
.ig-rlinks {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ig-rlinks--all { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }

.ig-rlinks li { margin: 0; }

.ig-rlinks__card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 22px 60px 22px 24px;
    border: 1px solid var(--ig-line);
    border-radius: var(--ig-radius);
    background: #fff;
    color: var(--ig-navy);
    text-decoration: none;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.ig-rlinks__card:hover,
.ig-rlinks__card:focus-visible {
    border-color: var(--ig-blue);
    box-shadow: var(--ig-shadow);
    transform: translateY(-2px);
    color: var(--ig-navy);
}

.ig-rlinks__kicker {
    font-size: 13px;
    line-height: 1.4;
    font-weight: 500;
    color: var(--ig-muted);
}

.ig-rlinks__name {
    margin-top: 2px;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
}

.ig-rlinks__meta {
    margin-top: 6px;
    font-size: 13.5px;
    line-height: 1.4;
    font-weight: 600;
    color: var(--ig-blue);
}

.ig-rlinks__arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    width: 22px;
    height: 22px;
    margin-top: -11px;
    stroke-width: 1.8;
    color: var(--ig-navy);
    transition: transform 0.2s ease;
}

.ig-rlinks__card:hover .ig-rlinks__arrow { transform: translateX(4px); color: var(--ig-blue); }

.ig-rlinks__card--accent {
    border-color: var(--ig-navy);
    background: var(--ig-navy);
    color: #fff;
}

.ig-rlinks__card--accent:hover,
.ig-rlinks__card--accent:focus-visible { color: #fff; border-color: var(--ig-navy); }
.ig-rlinks__card--accent .ig-rlinks__kicker { color: rgba(255, 255, 255, 0.72); }
.ig-rlinks__card--accent .ig-rlinks__meta { color: #7fdcf5; }
.ig-rlinks__card--accent .ig-rlinks__arrow,
.ig-rlinks__card--accent:hover .ig-rlinks__arrow { color: #fff; }

.igp-section--sky .ig-rlinks__card:not(.ig-rlinks__card--accent) { border-color: rgba(0, 68, 91, 0.1); }

/* ---------- Karte: Büro-Marke und Stadtkarte im Hero ---------- */
.ig-map__office {
    opacity: 0;
    transition: opacity 0.5s ease 2s;
}

.ig-map.is-visible .ig-map__office { opacity: 1; }
.ig-map__arrow { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.ig-map__label--office { font-weight: 700; fill: var(--ig-navy); }
.ig-map__town.is-linked .ig-map__dot { stroke: var(--ig-navy); stroke-width: 2.5; }
.ig-map__town.is-linked .ig-map__label { text-decoration: underline; text-decoration-color: rgba(0, 178, 227, 0.7); }

.igp-citymap .ig-map { background: radial-gradient(circle at 50% 48%, #fff 0%, #fff 40%, var(--ig-sky-soft) 75%, var(--ig-sky) 100%); box-shadow: var(--ig-shadow); }
.igp-citymap .ig-map__label { font-size: 16px; }
.igp-citymap .ig-map__town.is-center .ig-map__label { font-size: 19px; }
.igp-citymap .ig-map__rings text { font-size: 13px; }

/* ---------- Abschnitt „Umgebung" ---------- */
.ig-ci .igp-subhead .elementor-heading-title {
    margin: 46px 0 16px;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 700;
    text-transform: none;
    color: var(--ig-navy);
}

.ig-ci .igp-note {
    margin-top: 18px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--ig-muted);
}

.ig-ci .igp-section--navy .igp-note { color: rgba(255, 255, 255, 0.66); }
.ig-ci .igp-note a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Fließtext-Abschnitte mit mehreren Absätzen */
.ig-ci .igp-prose { font-size: 17px; line-height: 1.75; color: var(--ig-muted); }
.ig-ci .igp-prose p + p { margin-top: 14px; }
.ig-ci .igp-prose strong { color: var(--ig-navy); font-weight: 700; }
.ig-ci .igp-prose a { color: var(--ig-navy); text-decoration: underline; text-decoration-color: var(--ig-blue); text-underline-offset: 3px; }
.ig-ci .igp-section--navy .igp-prose { color: rgba(255, 255, 255, 0.8); }
.ig-ci .igp-section--navy .igp-prose strong { color: #fff; }
.ig-ci .igp-section--navy .igp-prose a { color: #fff; }

@media (max-width: 1100px) {
    .ig-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    /* Lagen als wischbare Reihe: die nächste Kachel schaut an, die Seite wird nicht endlos lang */
    .ig-areas,
    .ig-areas--2 {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 84%;
        gap: 12px;
        margin-inline: -16px;
        padding: 2px 16px 10px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 16px;
        scrollbar-width: none;
    }
    .ig-areas::-webkit-scrollbar { display: none; }
    .ig-area { padding: 22px 20px 24px; scroll-snap-align: start; }
    .ig-areas:focus-visible { outline: 2px solid var(--ig-blue); outline-offset: 2px; }
    .ig-ci .ig-area__title { font-size: 18px; }
    .ig-keyfacts { padding: 22px 20px 18px; }
    .ig-keyfacts__row { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 12px; padding: 11px 0; }
    .ig-keyfacts__row dt, .ig-keyfacts__row dd { font-size: 14.5px; }
    .ig-crumbs ol { font-size: 13px; margin-bottom: 16px; }
    .ig-rlinks, .ig-rlinks--all { grid-template-columns: 1fr; gap: 12px; }
    .ig-rlinks__card { padding: 18px 56px 18px 20px; }
    .ig-rlinks__name { font-size: 18px; }
    .ig-nearby { gap: 8px; }
    .ig-nearby__item { font-size: 14.5px; }
    .ig-ci .igp-prose { font-size: 16px; }
    .ig-ci .igp-subhead .elementor-heading-title { margin-top: 36px; }
    .igp-citymap .ig-map { padding: 10px 6px 12px; }
    .igp-citymap .ig-map__label { font-size: 23px; }
    .igp-citymap .ig-map__town.is-center .ig-map__label { font-size: 26px; }
    .igp-citymap .ig-map__rings text { font-size: 19px; }
    .igp-citymap .ig-map__town:not(.is-center):not(.is-active):not(.is-mobile) .ig-map__label { display: none; }
}

/* Kontaktbereich der Regionsseiten: auf dem Handy erst das Formular, dann die Karte */
@media (max-width: 991px) {
    .ig-ci .igp-split.igp-split--contact {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    .ig-ci .igp-split--contact > .igp-copy { display: contents; }
    .ig-ci .igp-split--contact > .igp-copy > *,
    .ig-ci .igp-split--contact > .elementor-widget-shortcode { width: 100%; max-width: 100%; align-self: stretch; }
    .ig-ci .igp-split--contact > .elementor-widget-shortcode { order: 5; margin-top: 30px; }
    .ig-ci .igp-split--contact .elementor-widget-ig-contact-card { order: 6; margin-top: 30px; }
}

/* Lagen-Kacheln im dunklen Abschnitt (Verkaufsseiten: „Was den Preis bestimmt") */
.igp-section--navy .ig-area {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.14);
}
.igp-section--navy .ig-area__tag { background: rgba(127, 220, 245, 0.16); color: #bfefff; }
.ig-ci .igp-section--navy .ig-area__title { color: #fff; }
.ig-ci .igp-section--navy .ig-area__text { color: rgba(255, 255, 255, 0.78); }

/* ---------- Direktkontakt statt leerer Objektliste (Regionsseiten) ---------- */
.ig-direct {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    overflow: hidden;
    border-radius: 22px;
    background: #fff;
    border: 1px solid var(--ig-line);
    box-shadow: var(--ig-shadow);
    text-align: left;
}

.ig-direct__intro {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 42px 40px;
    background: var(--ig-navy);
    color: #fff;
    isolation: isolate;
}

/* Swoosh aus der CI als ruhiger Akzent unten rechts */
.ig-direct__intro::after {
    content: "";
    position: absolute;
    right: -40px;
    bottom: -30px;
    z-index: -1;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 178, 227, 0.28) 0%, rgba(0, 178, 227, 0) 70%);
}

.ig-ci .ig-direct__eyebrow {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #7fdcf5;
}

.ig-direct__eyebrow::before { content: "//"; margin-right: 0.4em; }

.ig-ci .ig-direct__title {
    margin: 0;
    font-size: clamp(24px, 2.4vw, 30px);
    line-height: 1.25;
    font-weight: 700;
    text-transform: uppercase;
    color: #fff;
}

.ig-ci .ig-direct__text {
    margin: 18px 0 0;
    font-size: 16px;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.8);
}

.ig-direct__person {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: auto;
    padding-top: 30px;
}

/* Steht im Objekt-Raster (.igoo-grid) → über alle Spalten */
.igoo-grid > .ig-direct { grid-column: 1 / -1; }

.ig-direct img.ig-direct__photo {
    width: 64px;
    height: 64px;
    flex: none;
    max-width: none;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(255, 255, 255, 0.9);
}

.ig-direct__person div { display: flex; flex-direction: column; line-height: 1.4; }
.ig-direct__person strong { font-size: 17px; color: #fff; }
.ig-direct__person span { font-size: 14px; color: #7fdcf5; }

.ig-direct__person a {
    margin-top: 4px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    align-self: flex-start;
}

.ig-direct__person a:hover { border-color: #fff; }

.ig-ci .ig-direct__alt {
    margin: 22px 0 0;
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.72);
}

.ig-direct__alt a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

.ig-direct__form.igoo-quick {
    margin: 0;
    padding: 38px 40px 34px;
}

/* „Alle Angebote"-Button ausblenden, wenn statt der Liste der Direktkontakt steht */
.ig-ci .igp-section:has(.ig-direct) .igp-actions { display: none; }

@media (max-width: 991px) {
    .ig-direct { grid-template-columns: 1fr; }
    .ig-direct__intro { padding: 32px 28px; }
    .ig-direct__person { margin-top: 0; padding-top: 24px; }
    .ig-direct__form.igoo-quick { padding: 28px 28px 26px; }
}

@media (max-width: 767px) {
    .ig-direct { border-radius: 18px; }
    .ig-direct__intro { padding: 26px 20px; }
    .ig-direct__form.igoo-quick { padding: 22px 20px 20px; }
    .ig-direct__form .igoo-quick__row { grid-template-columns: 1fr; gap: 0; }
    .ig-direct__form textarea,
    .ig-direct__form input { font-size: 16px; } /* verhindert iOS-Zoom */
}

/* Längere H1 der Regionsseiten („Haus oder Wohnung in … kaufen.") etwas kleiner */
.ig-ci .igp-h1--region .elementor-heading-title {
    font-size: clamp(36px, 3.7vw, 54px);
    line-height: 1.12;
}

@media (max-width: 767px) {
    .ig-ci .igp-h1--region .elementor-heading-title { font-size: clamp(29px, 8.4vw, 38px); }
}


/* ===================================================================== */
/* Leistungsübersicht (/leistungen/)                                      */
/* ===================================================================== */

/* Kennzahl-Karten: Elementor 4 rendert Widgets ohne .elementor-widget-container –
   dann muss der Widget-Knoten selbst spaltenweise stapeln (sonst stehen Text und
   Formel nebeneinander). */
.ig-ci .igp-card > .igp-card-text { flex-direction: column; }

/* ---------- Leistungs-Kacheln ---------- */
.ig-services {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ig-gap);
    margin: 0;
    padding: 0;
    list-style: none;
}

.ig-service {
    position: relative;
    display: flex;
    flex-direction: column;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--ig-line);
    border-radius: var(--ig-radius);
    background: #fff;
    transition: box-shadow 0.3s ease, translate 0.3s ease, border-color 0.3s ease;
}

.ig-service:hover {
    translate: 0 -4px;
    border-color: transparent;
    box-shadow: var(--ig-shadow);
}

.ig-service:has(.ig-service__link:focus-visible) {
    outline: 3px solid var(--ig-blue);
    outline-offset: 3px;
}

.ig-service__media {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--ig-sky);
}

.ig-service__media img.ig-service__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}

.ig-service:hover .ig-service__img { transform: scale(1.04); }

.ig-service__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 30px 32px 32px;
}

.ig-ci .ig-service__kicker {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--ig-blue);
}

/* Theme setzt h3 { position: relative } – dann deckte der Karten-Link nur den Titel ab. */
.ig-ci .ig-service__title {
    position: static;
    margin: 0 0 12px;
    font-size: clamp(21px, 2vw, 26px);
    line-height: 1.25;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--ig-navy);
}

.ig-ci .ig-service__link {
    color: inherit;
    text-decoration: none;
}

.ig-service__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.ig-service__link:focus-visible { outline: none; }

.ig-ci .ig-service__text {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--ig-muted);
}

.ig-service__points {
    display: grid;
    gap: 10px;
    margin: 22px 0 0;
    padding: 20px 0 0;
    border-top: 1px solid var(--ig-line);
    list-style: none;
}

.ig-service__points li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    font-weight: 600;
    color: var(--ig-navy);
}

.ig-service__points .ig-icon {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    padding: 3.5px;
    border-radius: 50%;
    background: var(--ig-blue);
    color: #fff;
    stroke-width: 3.2;
}

.ig-service__more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 26px;
    font-size: 15px;
    font-weight: 700;
    color: var(--ig-navy);
}

.ig-service__more .ig-icon {
    width: 18px;
    height: 18px;
    stroke-width: 2.4;
    color: var(--ig-blue);
    transition: transform 0.25s ease;
}

.ig-service:hover .ig-service__more .ig-icon { transform: translateX(4px); }

/* ---------- Orte als Chips (Regionsseiten verlinken) ---------- */
.ig-rchips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ig-rchips li { margin: 0; }

.ig-rchips a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--ig-line);
    border-radius: 50px;
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    color: var(--ig-navy);
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ig-rchips a:hover,
.ig-rchips a:focus-visible {
    border-color: var(--ig-navy);
    background: var(--ig-navy);
    color: #fff;
}

.ig-rchips a:focus-visible { outline: 2px solid var(--ig-blue); outline-offset: 2px; }

.ig-ci .igp-subhead--first .elementor-heading-title { margin-top: 34px; }

/* ---------- Anfrage-Karte [ig_anfrage] ---------- */
.ig-anfrage {
    position: relative;
    isolation: isolate;
}

.ig-anfrage::before {
    content: "";
    position: absolute;
    inset: 26px -18px -18px 26px;
    z-index: -1;
    border-radius: 22px;
    background: var(--ig-sky);
    transform: rotate(2deg);
}

.igp-section--sky .ig-anfrage::before { background: #fff; }

.ig-anfrage__card {
    padding: 40px;
    border-radius: 22px;
    background: var(--ig-navy);
    color: #fff;
    box-shadow: 0 30px 60px rgba(0, 68, 91, 0.22);
}

.ig-ci .ig-anfrage__eyebrow {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #7fdcf5;
}

.ig-ci .ig-anfrage__title {
    position: static;
    margin: 0;
    font-size: clamp(24px, 2.3vw, 30px);
    line-height: 1.25;
    font-weight: 700;
    text-transform: uppercase;
    color: #fff;
}

@media (max-width: 1100px) {
    .ig-service__body { padding: 26px 26px 28px; }
}

@media (max-width: 767px) {
    .ig-services { grid-template-columns: 1fr; gap: 20px; }
    .ig-service__media { aspect-ratio: 2 / 1; }
    .ig-service__body { padding: 22px 20px 24px; }
    .ig-service__points { margin-top: 18px; padding-top: 16px; }
    .ig-service__more { padding-top: 20px; }
    .ig-rchips { gap: 8px; }
    .ig-rchips a { padding: 0 15px; font-size: 14.5px; }
    .ig-anfrage::before { inset: 16px -8px -10px 14px; }
    .ig-anfrage__card { padding: 28px 20px; border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .ig-service,
    .ig-service__img,
    .ig-service__more .ig-icon { transition: none; }
    .ig-service:hover { translate: none; }
    .ig-service:hover .ig-service__img { transform: none; }
}

.ig-anfrage__card .igoo-quick { margin-top: 26px; }
