/* =========================================================
   Design-System-Layer — Immobilien-Verkäuferportal
   Globaler Look (Typo, Buttons, Tabellen, Akzente) über Divi.
   ========================================================= */
:root{
  --ds-brand-900:#062a36; --ds-brand-700:#0e5468; --ds-brand-600:#0b8fab;
  --ds-brand-500:#0bb9d9; --ds-brand-400:#3fcce6; --ds-brand-50:#ecfafd;
  --ds-accent:#16c79a; --ds-accent-dark:#0fa982;
  --ds-ink:#33474f; --ds-ink-soft:#5d717a; --ds-line:#e4ebee;
  --ds-font-text:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --ds-font-display:'Sen',var(--ds-font-text);
}

/* ---- Typografie ---- */
body, p, li, td, th, span, input, select, textarea, button,
.et_pb_text, .et_pb_module, .et_pb_post_content, .entry-content{
  font-family:var(--ds-font-text);
}
body{ color:var(--ds-ink); -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4,h5,h6,
.et_pb_module h1,.et_pb_module h2,.et_pb_module h3,.et_pb_module h4,.et_pb_module h5,.et_pb_module h6,
.et_pb_text h1,.et_pb_text h2,.et_pb_text h3,.et_pb_text h4{
  font-family:var(--ds-font-display)!important; font-weight:800; letter-spacing:-.018em;
}
a{ color:var(--ds-brand-600); transition:color .15s ease; }
a:hover{ color:var(--ds-brand-500); }
::selection{ background:var(--ds-brand-500); color:#fff; }

/* ---- CTAs / Buttons (Divi) → grünes Pill mit Hover-Lift ---- */
.et_pb_button, a.et_pb_button, .et_pb_button_module_wrapper a.et_pb_button,
.et_pb_promo_button, .woocommerce a.button{
  background-color:var(--ds-accent)!important; background-image:none!important;
  color:#04241c!important; border:0!important; border-radius:999px!important;
  font-family:var(--ds-font-text)!important; font-weight:600!important; letter-spacing:0!important;
  padding:.82em 1.75em!important;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease!important;
  box-shadow:0 10px 24px -8px rgba(22,199,154,.55);
}
.et_pb_button:hover, a.et_pb_button:hover, .woocommerce a.button:hover{
  background-color:var(--ds-accent-dark)!important; color:#04241c!important;
  transform:translateY(-2px); padding:.82em 1.75em!important;
  box-shadow:0 16px 30px -10px rgba(22,199,154,.6);
}
.et_pb_button:before, .et_pb_button:after{ display:none!important; content:none!important; }

/* ---- Tabellen (Preis-/Datentabellen) ---- */
.et_pb_text table{
  border-radius:12px; overflow:hidden;
  box-shadow:0 14px 40px -20px rgba(10,61,77,.28)!important; border:1px solid var(--ds-line);
}
.et_pb_text table tbody tr:hover td{ background:#f5f9fb!important; }

/* ---- feine Akzente ---- */
blockquote{ border-left:4px solid var(--ds-brand-500)!important; }
hr{ border-color:var(--ds-line)!important; }

/* Accordion/Toggle (FAQ) — dezenter Marken-Akzent */
.et_pb_toggle_title, .et_pb_accordion_item .et_pb_toggle_title{ font-family:var(--ds-font-display)!important; }
.et_pb_toggle.et_pb_toggle_open{ border-top:3px solid var(--ds-brand-500)!important; }

/* ============ HEADER — minimal: Original-MegaMenu bleibt ============ */
/* Nur Homepage-Gap (Fixed-Header-Platzhalter) weg + Inhalt unter dem Menü. */
body.home #page-container{ padding-top:0!important; }
.dlh{ position:relative; z-index:0; }

/* ============ KEY-PAGE HERO (.kp-hero) — Schlüsselseiten ============ */
.kp-hero{position:relative;min-height:clamp(440px,58vh,640px);display:flex;align-items:center;
  justify-content:center;text-align:center;padding:clamp(3rem,7vw,6rem) 1.25rem;
  background:var(--kp-bg) center/cover no-repeat;overflow:hidden}
.kp-hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,42,54,.58) 0%,rgba(6,42,54,.80) 100%)}
.kp-hero::after{content:"";position:absolute;left:50%;top:-30%;width:60vw;height:60vw;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(11,185,217,.28),transparent 62%);pointer-events:none}
.kp-in{position:relative;z-index:2;max-width:880px;margin:0 auto;color:#fff}
.kp-eyebrow{display:inline-block;font-family:var(--ds-font-display);font-weight:800;font-size:.8rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ds-brand-400);margin-bottom:1.1rem}
.kp-hero h1{font-family:var(--ds-font-display)!important;font-weight:800;color:#fff!important;
  font-size:clamp(2.1rem,4.8vw,3.5rem)!important;line-height:1.05;letter-spacing:-.02em;margin:0 0 1.1rem}
.kp-hero .kp-sub{font-size:clamp(1.05rem,1.7vw,1.32rem);color:#dcedf2;max-width:660px;
  margin:0 auto 2rem;line-height:1.55}
.kp-cta{display:flex;gap:.85rem;flex-wrap:wrap;justify-content:center}
.kp-btn{display:inline-flex;align-items:center;gap:.5ch;border-radius:999px;font-family:var(--ds-font-text);
  font-weight:700;font-size:1.02rem;padding:.95em 2em;text-decoration:none;line-height:1;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}
.kp-btn.primary{background:var(--ds-accent);color:#04241c!important;
  box-shadow:0 16px 34px -12px rgba(22,199,154,.65)}
.kp-btn.primary:hover{transform:translateY(-2px);background:var(--ds-accent-dark);color:#04241c!important}
.kp-btn.ghost{background:rgba(255,255,255,.10);color:#fff!important;border:1px solid rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.kp-btn.ghost:hover{background:rgba(255,255,255,.2);color:#fff!important;transform:translateY(-2px)}
.kp-trust{margin-top:1.7rem;display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:center;
  font-size:.93rem;color:#cfe6ec;font-weight:500}
.kp-trust b{color:#ffd36b;letter-spacing:.08em;font-weight:700}
@media(max-width:600px){.kp-trust{gap:.7rem 1.1rem;font-size:.86rem}.kp-hero{min-height:clamp(400px,72vh,560px)}}

/* ============ KEY-PAGE COMPONENT-SYSTEM (.kp-*) — Voll-Rebuild ============ */
.kp-wrap{font-family:var(--ds-font-text);color:var(--ds-ink);background:#fff;overflow-x:hidden}
.kp-wrap *{box-sizing:border-box}
.kp-inner{max-width:1140px;margin:0 auto;width:100%}
.kp-sec{padding:clamp(3rem,6vw,5.5rem) 1.25rem}
.kp-sec.alt{background:#f4f8fa}
.kp-eyebrow2{font-family:var(--ds-font-display);font-weight:800;font-size:.82rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ds-brand-600);margin-bottom:.7rem;display:block;text-align:center}
.kp-h2{font-family:var(--ds-font-display)!important;font-weight:800;font-size:clamp(1.7rem,3.2vw,2.45rem);
  line-height:1.12;letter-spacing:-.02em;text-align:center;margin:0 auto 1rem;max-width:780px;color:var(--ds-brand-900)}
.kp-lead{text-align:center;max-width:680px;margin:0 auto 2.6rem;font-size:1.08rem;color:var(--ds-ink-soft);line-height:1.6}

/* split hero with embedded funnel */
.kp-hero2{position:relative;overflow:hidden;background:linear-gradient(135deg,#062a36,#0e5468 72%)}
.kp-hero2::before{content:"";position:absolute;inset:0;background:var(--kp-bg) center/cover no-repeat;opacity:.20}
.kp-hero2::after{content:"";position:absolute;right:-12%;top:-25%;width:55vw;height:55vw;
  background:radial-gradient(circle,rgba(11,185,217,.30),transparent 60%);pointer-events:none}
.kp-split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;
  position:relative;z-index:2;padding-top:clamp(2.6rem,5vw,4rem);padding-bottom:clamp(2.6rem,5vw,4rem)}
.kp-hl{color:#fff}
.kp-hl .kp-eyebrow{color:var(--ds-brand-400);text-align:left;display:block}
.kp-hl h1{font-family:var(--ds-font-display)!important;color:#fff!important;font-weight:800;
  font-size:clamp(2rem,4vw,3.1rem)!important;line-height:1.06;letter-spacing:-.02em;margin:0 0 1rem;text-align:left}
.kp-hl>p{color:#cfe6ec;font-size:clamp(1.02rem,1.5vw,1.22rem);line-height:1.55;margin:0 0 1.6rem;max-width:36ch}
.kp-hl .kp-cta{justify-content:flex-start}
.kp-hl .kp-trust{justify-content:flex-start;margin-top:1.5rem}
.kp-funnelcard{background:#fff;border-radius:18px;box-shadow:0 30px 70px -25px rgba(0,0,0,.55);
  overflow:hidden;border:1px solid rgba(255,255,255,.4)}
.kp-funnelcard .fh{background:var(--ds-brand-900);color:#fff;padding:.8rem 1.2rem;font-family:var(--ds-font-display);
  font-weight:700;font-size:1rem;display:flex;align-items:center;gap:.5ch}
.kp-funnelcard iframe{display:block;width:100%;border:0;min-height:840px;background:#fff}
@media(max-width:980px){.kp-funnelcard iframe{min-height:780px}}

/* steps */
.kp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.kp-step{text-align:center;padding:1rem}
.kp-step .n{width:56px;height:56px;border-radius:50%;background:var(--ds-brand-50);color:var(--ds-brand-600);
  font-family:var(--ds-font-display);font-weight:800;font-size:1.45rem;display:flex;align-items:center;
  justify-content:center;margin:0 auto 1rem;border:2px solid var(--ds-brand-400)}
.kp-step h3{font-family:var(--ds-font-display);font-weight:800;font-size:1.18rem;margin:0 0 .4rem;color:var(--ds-brand-900)}
.kp-step p{color:var(--ds-ink-soft);font-size:.98rem;line-height:1.5;margin:0}

/* card grid (Bundesländer) */
.kp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.kp-card{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--ds-line);
  border-radius:14px;padding:1rem 1.15rem;text-decoration:none;color:var(--ds-brand-900);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.kp-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(10,61,77,.42);
  border-color:var(--ds-brand-400);color:var(--ds-brand-900)}
.kp-card img{width:52px;height:52px;object-fit:contain;flex:0 0 auto}
.kp-card .tx{display:flex;flex-direction:column;gap:.15rem}
.kp-card .tx .t{font-family:var(--ds-font-display);font-weight:800;font-size:1.06rem;line-height:1.15}
.kp-card .tx .s{font-size:.85rem;color:var(--ds-brand-600);font-weight:600}

/* reference cards */
.kp-refs{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.kp-ref{background:#fff;border:1px solid var(--ds-line);border-radius:14px;overflow:hidden;
  box-shadow:0 12px 30px -20px rgba(10,61,77,.32)}
.kp-ref>img{width:100%;height:148px;object-fit:cover;display:block}
.kp-ref .b{padding:.85rem 1.05rem 1rem}
.kp-ref .b h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.05rem;margin:0 0 .55rem;color:var(--ds-brand-900)}
.kp-ref .b .row{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem;padding:.28rem 0;
  border-top:1px solid var(--ds-line);color:var(--ds-ink-soft)}
.kp-ref .b .row b{color:var(--ds-accent-dark);font-weight:700}

/* cta band */
.kp-band{background:linear-gradient(135deg,#062a36,#0e5468);color:#fff;text-align:center;border-radius:20px;
  padding:clamp(2.2rem,5vw,3.6rem);position:relative;overflow:hidden}
.kp-band::after{content:"";position:absolute;left:50%;top:-45%;width:55vw;height:55vw;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(11,185,217,.26),transparent 60%);pointer-events:none}
.kp-band h2{color:#fff!important;font-family:var(--ds-font-display)!important;font-weight:800;
  font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .7rem;position:relative;z-index:2}
.kp-band p{color:#cfe6ec;margin:0 auto 1.6rem;max-width:600px;position:relative;z-index:2;line-height:1.6}
.kp-band .kp-btn{position:relative;z-index:2}

@media(max-width:980px){.kp-split{grid-template-columns:1fr}
  .kp-hl h1,.kp-hl>p,.kp-hl .kp-eyebrow{text-align:center}
  .kp-hl>p{max-width:none;margin-left:auto;margin-right:auto}
  .kp-hl .kp-cta,.kp-hl .kp-trust{justify-content:center}
  .kp-refs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.kp-steps{grid-template-columns:1fr}.kp-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.kp-grid,.kp-refs{grid-template-columns:1fr}}

/* TOC chip-nav */
.kp-toc{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}
.kp-toc a{display:inline-flex;align-items:center;gap:.5ch;background:#fff;border:1px solid var(--ds-line);
  border-radius:999px;padding:.55rem 1.1rem;font-size:.93rem;font-weight:600;color:var(--ds-brand-700);
  text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.kp-toc a:hover{border-color:var(--ds-brand-400);background:var(--ds-brand-50);transform:translateY(-2px);color:var(--ds-brand-700)}
.kp-toc a b{color:var(--ds-brand-500);font-weight:800}

/* prose */
.kp-prose{max-width:820px;margin:0 auto;font-size:1.06rem;line-height:1.7;color:var(--ds-ink)}
.kp-prose.left{margin:0}
.kp-prose h2{font-family:var(--ds-font-display)!important;color:var(--ds-brand-900)!important;font-weight:800;
  font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.01em;margin:0 0 1rem}
.kp-prose p{margin:0 0 1rem}
.kp-prose ul{list-style:none;padding:0;margin:1rem 0}
.kp-prose ul li{position:relative;padding:.32rem 0 .32rem 1.9rem}
.kp-prose ul li::before{content:"✓";position:absolute;left:0;top:.32rem;color:var(--ds-accent-dark);font-weight:800}
.kp-prose a{color:var(--ds-brand-600);font-weight:600;text-decoration:underline;
  text-decoration-color:var(--ds-brand-400);text-underline-offset:2px}

/* split: text + side checklist card */
.kp-split2{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}
.kp-sidecard{background:#fff;border:1px solid var(--ds-line);border-radius:16px;padding:1.5rem 1.7rem;
  box-shadow:0 18px 44px -26px rgba(10,61,77,.4)}
.kp-sidecard h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.15rem;margin:0 0 .9rem;color:var(--ds-brand-900)}
.kp-sidecard ul{list-style:none;padding:0;margin:0}
.kp-sidecard ul li{position:relative;padding:.5rem 0 .5rem 1.8rem;border-bottom:1px solid var(--ds-line);font-size:.98rem;line-height:1.45}
.kp-sidecard ul li:last-child{border-bottom:0}
.kp-sidecard ul li::before{content:"✓";position:absolute;left:0;top:.5rem;color:var(--ds-accent-dark);font-weight:800}

/* feature cards (image on top) */
.kp-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.kp-feat{background:#fff;border:1px solid var(--ds-line);border-radius:16px;overflow:hidden;
  box-shadow:0 14px 34px -22px rgba(10,61,77,.32);display:flex;flex-direction:column}
.kp-feat>img{width:100%;height:172px;object-fit:cover;display:block}
.kp-feat .b{padding:1.2rem 1.3rem 1.4rem}
.kp-feat .b h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.18rem;margin:0 0 .6rem;color:var(--ds-brand-900)}
.kp-feat .b p{margin:0;color:var(--ds-ink-soft);font-size:.98rem;line-height:1.55}

/* cost / two-column cards */
.kp-cols2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.kp-costcard{background:#fff;border:1px solid var(--ds-line);border-radius:16px;padding:1.5rem 1.6rem;
  box-shadow:0 14px 34px -24px rgba(10,61,77,.3)}
.kp-costcard h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.18rem;margin:0 0 .8rem;
  color:var(--ds-brand-900);display:flex;align-items:center;gap:.5ch}
.kp-costcard ul{list-style:none;padding:0;margin:0}
.kp-costcard ul li{padding:.55rem 0;border-top:1px solid var(--ds-line);font-size:.96rem;line-height:1.5;color:var(--ds-ink)}
.kp-costcard ul li:first-child{border-top:0}
.kp-costcard a{color:var(--ds-brand-600);font-weight:600}

@media(max-width:860px){.kp-split2,.kp-feats,.kp-cols2{grid-template-columns:1fr}}

/* text cards (no image) */
.kp-tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.kp-tcard{background:#fff;border:1px solid var(--ds-line);border-radius:16px;padding:1.5rem 1.6rem;box-shadow:0 14px 34px -24px rgba(10,61,77,.3)}
.kp-tcard h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.12rem;margin:0 0 .7rem;color:var(--ds-brand-900)}
.kp-tcard p{margin:0 0 .7rem;color:var(--ds-ink-soft);font-size:.97rem;line-height:1.55}
.kp-tcard p:last-child{margin-bottom:0}

/* icon points (icon + title + text) */
.kp-points{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem}
.kp-point{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--ds-line);border-radius:14px;padding:1.2rem 1.35rem}
.kp-point img{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.kp-point h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.08rem;margin:0 0 .3rem;color:var(--ds-brand-900)}
.kp-point p{margin:0;color:var(--ds-ink-soft);font-size:.95rem;line-height:1.5}

/* type tiles (icon + label) */
.kp-types{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.kp-type{display:flex;flex-direction:column;align-items:center;gap:.7rem;background:#fff;border:1px solid var(--ds-line);
  border-radius:14px;padding:1.4rem 1rem;text-align:center;transition:transform .18s ease,border-color .18s ease}
.kp-type:hover{transform:translateY(-2px);border-color:var(--ds-brand-400)}
.kp-type img{width:50px;height:50px;object-fit:contain}
.kp-type span{font-family:var(--ds-font-display);font-weight:700;font-size:.98rem;color:var(--ds-brand-900);line-height:1.2}

/* small usp strip */
.kp-usps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:.5rem}
.kp-usp{display:flex;align-items:center;gap:.6ch;font-size:.96rem;font-weight:600;color:var(--ds-brand-900);
  background:#fff;border:1px solid var(--ds-line);border-radius:12px;padding:.85rem 1rem}
.kp-usp::before{content:"✓";color:var(--ds-accent-dark);font-weight:800}

@media(max-width:860px){.kp-tcards{grid-template-columns:1fr}.kp-points{grid-template-columns:1fr}.kp-usps{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.kp-types{grid-template-columns:repeat(2,1fr)}}

/* people / author cards — Portrait, Kopf wird NICHT abgeschnitten */
.kp-people{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.kp-person{background:#fff;border:1px solid var(--ds-line);border-radius:16px;overflow:hidden;
  box-shadow:0 12px 30px -20px rgba(10,61,77,.32);text-align:center}
.kp-person>img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block}
.kp-person .b{padding:1rem 1.1rem 1.2rem}
.kp-person .b h4{font-family:var(--ds-font-display);font-weight:800;font-size:1.08rem;margin:0 0 .2rem;color:var(--ds-brand-900)}
.kp-person .b .role{font-size:.86rem;color:var(--ds-brand-600);font-weight:600;margin:0 0 .6rem}
.kp-person .b p{font-size:.92rem;color:var(--ds-ink-soft);line-height:1.5;margin:0 0 .6rem}
.kp-person .b .links{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;font-size:.86rem}
/* einzelnes Portrait (Team-Bio-Seite) — volle Person, links neben Text */
.kp-portrait{width:260px;max-width:100%;border-radius:18px;overflow:hidden;box-shadow:0 18px 44px -24px rgba(10,61,77,.4);flex:0 0 auto}
.kp-portrait img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover;object-position:center top}
@media(max-width:860px){.kp-people{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.kp-people{grid-template-columns:1fr}}

/* schlanker Hero (Legal/Kontakt/Danke — kurz, kein Funnel) */
.kp-hero.slim{min-height:clamp(220px,28vh,320px)}
.kp-hero.slim h1{font-size:clamp(1.9rem,3.6vw,2.8rem)!important}

/* ============ FOOTER — modern dunkel ============ */
.et-l--footer{ background:var(--ds-brand-900)!important; }
.et-l--footer, .et-l--footer p, .et-l--footer li, .et-l--footer span,
.et-l--footer .et_pb_text, .et-l--footer .et_pb_blurb_description{ color:#9fc0ca!important; }
.et-l--footer h1,.et-l--footer h2,.et-l--footer h3,.et-l--footer h4,.et-l--footer h5,.et-l--footer h6{ color:#fff!important; }
.et-l--footer a{ color:#bcd9e1!important; transition:color .15s ease; }
.et-l--footer a:hover{ color:#fff!important; }
.et-l--footer hr{ border-color:rgba(255,255,255,.12)!important; }
