/* ============================================================
   EVION – Leistungsseiten Shared Styles
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy: #08162a;
  --navy-700: #162850;
  --navy-500: #1e3a6e;
  --blue-btn: #0d9488;
  --blue-hover: #0f766e;
  --teal: #0f766e;
  --teal-light: #f0fdfa;
  --teal-border: #99f6e4;
  --white: #ffffff;
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-500: #6b7280;
  --gray-700: #374151;
  --gray-900: #111827;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow: 0 4px 24px rgba(0,0,0,.08);
  --shadow-lg: 0 8px 40px rgba(0,0,0,.14);
  --transition: .2s ease;
}
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: var(--gray-900); background: var(--white); line-height: 1.6; }

/* NAV */
.nav { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-bottom: 1px solid var(--gray-100); }
.nav__inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; height: 64px; display: flex; align-items: center; gap: 16px; }
.nav__logo { font-size: 1.1rem; font-weight: 800; color: var(--navy); text-decoration: none; letter-spacing: -.02em; white-space: nowrap; }
.nav__logo span { color: var(--teal); }
.nav__crumb { font-size: .8rem; color: var(--gray-300); }
.nav__crumb-current { font-size: .8rem; color: var(--gray-500); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; }
.nav__crumb-link { font-size: .8rem; color: var(--gray-500); font-weight: 500; text-decoration: none; white-space: nowrap; transition: color var(--transition); }
.nav__crumb-link:hover { color: var(--teal); }
.nav__back { margin-left: auto; flex-shrink: 0; display: flex; align-items: center; gap: 6px; font-size: .875rem; color: var(--gray-500); text-decoration: none; border: 1px solid var(--gray-200); padding: 5px 12px; border-radius: var(--radius-sm); transition: all var(--transition); }
.nav__back:hover { color: var(--gray-900); background: var(--gray-50); border-color: var(--gray-300); }

/* HERO */
.lp-hero { background: var(--navy); padding: 72px 24px 64px; }
.lp-hero__inner { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.lp-hero__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #5eead4; margin-bottom: 14px; }
.lp-hero__title { font-size: clamp(1.8rem,4.5vw,2.8rem); font-weight: 800; letter-spacing: -.03em; color: var(--white); margin-bottom: 18px; line-height: 1.15; }
.lp-hero__lead { font-size: 1rem; color: rgba(255,255,255,.7); line-height: 1.7; margin-bottom: 28px; max-width: 560px; }
.lp-hero__cta { display: inline-flex; align-items: center; gap: 8px; background: var(--blue-btn); color: var(--white); text-decoration: none; padding: 12px 24px; border-radius: var(--radius-sm); font-weight: 600; font-size: .9rem; transition: background var(--transition); }
.lp-hero__cta:hover { background: var(--blue-hover); }
.lp-hero__stats { display: flex; flex-direction: column; gap: 12px; flex-shrink: 0; }
.lp-hero__stat { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-sm); padding: 14px 20px; text-align: center; min-width: 120px; }
.lp-hero__stat-val { font-size: 1.5rem; font-weight: 800; color: #5eead4; display: block; letter-spacing: -.02em; }
.lp-hero__stat-label { font-size: .72rem; color: rgba(255,255,255,.5); margin-top: 2px; }
@media(max-width:700px){ .lp-hero__inner { grid-template-columns: 1fr; } .lp-hero__stats { flex-direction: row; flex-wrap: wrap; } .lp-hero__stat { flex: 1; min-width: 100px; } }

/* CONTENT */
.lp-body { max-width: 900px; margin: 0 auto; padding: 0 24px 80px; }
.lp-section { padding: 56px 0 0; }
.lp-section__eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--teal); margin-bottom: 10px; }
.lp-section__title { font-size: 1.5rem; font-weight: 800; letter-spacing: -.025em; color: var(--gray-900); margin-bottom: 14px; }
.lp-section__sub { font-size: .95rem; color: var(--gray-500); line-height: 1.7; margin-bottom: 32px; max-width: 620px; }
p { font-size: .95rem; color: var(--gray-700); line-height: 1.75; margin-bottom: 16px; }
ul, ol { margin: 0 0 20px 20px; }
li { font-size: .95rem; color: var(--gray-700); line-height: 1.75; margin-bottom: 8px; }
strong { color: var(--gray-900); font-weight: 600; }

/* PROCESS STEPS */
.lp-steps { display: flex; flex-direction: column; gap: 0; margin: 8px 0 0; }
.lp-step { display: flex; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--gray-100); }
.lp-step:last-child { border-bottom: none; }
.lp-step__num { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--navy); color: var(--white); font-size: .85rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.lp-step__body { flex: 1; }
.lp-step__title { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; }
.lp-step__text { font-size: .875rem; color: var(--gray-500); line-height: 1.65; margin: 0; }

/* CHECK ITEMS */
.lp-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 8px 0; }
@media(max-width:580px){ .lp-checks { grid-template-columns: 1fr; } }
.lp-check { display: flex; align-items: flex-start; gap: 10px; background: var(--gray-50); border: 1px solid var(--gray-100); border-radius: var(--radius-sm); padding: 14px 16px; }
.lp-check__icon { width: 20px; height: 20px; border-radius: 50%; background: #dcfce7; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px; }
.lp-check__icon svg { color: #16a34a; }
.lp-check__text { font-size: .875rem; color: var(--gray-700); line-height: 1.55; }
.lp-check__text strong { display: block; font-size: .875rem; color: var(--gray-900); margin-bottom: 2px; }

/* WARNING ITEMS */
.lp-warnings { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lp-warning { display: flex; align-items: flex-start; gap: 12px; background: #fef2f2; border: 1px solid #fecaca; border-radius: var(--radius-sm); padding: 14px 16px; }
.lp-warning svg { color: #dc2626; flex-shrink: 0; margin-top: 1px; }
.lp-warning__text { font-size: .875rem; color: var(--gray-700); line-height: 1.55; }
.lp-warning__text strong { color: #991b1b; display: block; margin-bottom: 2px; }

/* INFO BOX */
.lp-info { background: var(--teal-light); border: 1px solid var(--teal-border); border-radius: var(--radius-sm); padding: 20px 24px; margin: 24px 0; }
.lp-info__title { font-size: .8rem; font-weight: 700; color: var(--teal); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 8px; }
.lp-info p { font-size: .9rem; color: #0e4f5f; margin: 0; }

/* RESULT BOX */
.lp-result { background: var(--navy); border-radius: var(--radius); padding: 32px; margin: 32px 0; display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: start; }
.lp-result__icon { width: 48px; height: 48px; background: rgba(94,234,212,.15); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; color: #5eead4; flex-shrink: 0; }
.lp-result__title { font-size: 1rem; font-weight: 700; color: var(--white); margin-bottom: 10px; }
.lp-result ul { margin: 0 0 0 16px; padding: 0; }
.lp-result li { font-size: .875rem; color: rgba(255,255,255,.65); line-height: 1.6; margin-bottom: 6px; }

/* COMPARE */
.lp-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0 24px; }
@media(max-width:580px){ .lp-compare { grid-template-columns: 1fr; } }
.lp-compare__col { border-radius: var(--radius-sm); padding: 20px; }
.lp-compare__col--bad { background: #fef2f2; border: 1px solid #fecaca; }
.lp-compare__col--good { background: #f0fdf4; border: 1px solid #bbf7d0; }
.lp-compare__col-title { font-size: .85rem; font-weight: 700; margin-bottom: 10px; }
.lp-compare__col--bad .lp-compare__col-title { color: #dc2626; }
.lp-compare__col--good .lp-compare__col-title { color: #16a34a; }
.lp-compare__col li { font-size: .875rem; color: var(--gray-700); margin-bottom: 6px; }

/* CTA BAND */
.lp-cta { background: var(--navy); border-radius: var(--radius); padding: 40px; margin: 56px 0 0; text-align: center; }
.lp-cta h2 { font-size: 1.5rem; font-weight: 800; color: var(--white); margin-bottom: 10px; letter-spacing: -.02em; }
.lp-cta p { font-size: .9rem; color: rgba(255,255,255,.65); margin-bottom: 24px; }
.lp-cta__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.lp-cta__btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: var(--radius-sm); font-weight: 600; font-size: .9rem; text-decoration: none; transition: all var(--transition); }
.lp-cta__btn--primary { background: var(--blue-btn); color: var(--white); }
.lp-cta__btn--primary:hover { background: var(--blue-hover); }
.lp-cta__btn--ghost { background: rgba(255,255,255,.08); color: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.15); }
.lp-cta__btn--ghost:hover { background: rgba(255,255,255,.14); }

/* OTHER SERVICES */
.lp-other { padding: 56px 0 0; }
.lp-other__title { font-size: 1rem; font-weight: 700; color: var(--gray-900); margin-bottom: 20px; }
.lp-other__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
/* Karten im Bento-Design der Startseite */
.lp-other__card {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; gap: 10px;
  min-height: 138px; padding: 18px; border-radius: 16px;
  text-decoration: none; color: #fff;
  background: linear-gradient(135deg, var(--g1, #1f232b), var(--g2, #14171d));
  border: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 4px 14px rgba(15,31,46,.08);
  transition: transform .3s cubic-bezier(.25,1,.5,1), box-shadow .3s ease, border-color .3s ease;
}
.lp-other__card::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  opacity: 0; transition: opacity .4s ease;
  background: radial-gradient(280px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,255,255,.08), transparent 70%);
}
.lp-other__card:hover::before { opacity: 1; }
.lp-other__card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(8,22,42,.22); border-color: rgba(255,255,255,.15); }
.lp-other__card > * { position: relative; z-index: 1; }
.lp-other__card-icon { width: auto; height: auto; background: none; border-radius: 0; display: flex; align-items: center; flex-shrink: 0; }
.lp-other__card-icon svg { width: 24px; height: 24px; stroke: #fff; color: #fff; }
.lp-other__card-name { font-size: 1.02rem; font-weight: 700; color: #fff; line-height: 1.3; letter-spacing: -.01em; }
.lp-other__card-desc { font-size: .82rem; line-height: 1.45; color: rgba(255,255,255,.7); margin-top: auto; }
/* Farbwelten je Leistung (wie Startseite) */
.lp-other__card--sanierungsfahrplan,
.lp-other__card--foerderung { --g1: #107c64; --g2: #0b4e3f; border-color: rgba(16,124,100,.2); }
.lp-other__card--energieausweis { --g1: #1a2f42; --g2: #0f1c28; }
.lp-other__card--heizlast { --g1: #114c4f; --g2: #0b2f32; }
.lp-other__card--baubegleitung,
.lp-other__card--nichtwohn { --g1: #1f232b; --g2: #14171d; }

/* DIVIDER */
.lp-divider { border: none; border-top: 1px solid var(--gray-100); margin: 48px 0 0; }

/* HERO MEDIA (echtes Foto) */
.lp-hero__media { width: 320px; height: 220px; flex-shrink: 0; border-radius: var(--radius); overflow: hidden; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; }
.lp-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lp-hero__media-ph { font-size: .72rem; color: rgba(255,255,255,.4); text-align: center; padding: 0 16px; line-height: 1.5; }
@media(max-width:700px){ .lp-hero__media { width: 100%; height: 180px; } }

/* TIMELINE (Fahrplan-Zeitstrahl) */
.lp-timeline { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0; margin: 28px 0 8px; position: relative; }
.lp-tl-node { position: relative; padding: 0 12px; text-align: center; }
.lp-tl-node::before { content: ""; position: absolute; top: 17px; left: 50%; right: -50%; height: 2px; background: var(--gray-200); z-index: 0; }
.lp-tl-node:last-child::before { display: none; }
.lp-tl-node__dot { position: relative; z-index: 1; width: 36px; height: 36px; margin: 0 auto 14px; border-radius: 50%; background: var(--navy); color: var(--white); font-size: .85rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.lp-tl-node__title { font-size: .9rem; font-weight: 700; color: var(--gray-900); margin-bottom: 8px; line-height: 1.3; }
.lp-tl-node__meta { font-size: .75rem; color: var(--gray-500); line-height: 1.5; }
.lp-tl-node__meta span { display: inline-block; background: var(--teal-light); color: var(--teal); border: 1px solid var(--teal-border); border-radius: 999px; padding: 2px 9px; font-weight: 600; margin-top: 6px; }
@media(max-width:680px){
  .lp-timeline { grid-auto-flow: row; grid-auto-columns: auto; gap: 0; }
  .lp-tl-node { text-align: left; display: grid; grid-template-columns: 36px 1fr; column-gap: 16px; row-gap: 4px; padding: 0 0 28px 0; }
  .lp-tl-node__dot { margin: 0; grid-row: 1 / span 2; align-self: start; }
  .lp-tl-node__title { align-self: center; margin-bottom: 0; }
  .lp-tl-node::before { top: 36px; bottom: -0px; left: 17px; right: auto; width: 2px; height: auto; }
  .lp-tl-node:last-child { padding-bottom: 0; }
}
.lp-tl-note { font-size: .75rem; color: var(--gray-500); font-style: italic; margin-top: 4px; }

/* FUNDING BAR (Förderbalken) */
.lp-fund { margin: 24px 0; }
.lp-fund__bar { display: flex; height: 56px; border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--gray-200); }
.lp-fund__seg { display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); font-weight: 700; }
.lp-fund__seg--bafa { flex: 1; background: var(--teal); }
.lp-fund__seg--own { flex: 1; background: var(--navy); }
.lp-fund__seg-val { font-size: 1.1rem; letter-spacing: -.02em; }
.lp-fund__seg-label { font-size: .7rem; font-weight: 500; opacity: .8; margin-top: 1px; }

/* STAT CARDS (heller Grund) */
.lp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 20px 0; }
@media(max-width:580px){ .lp-stats { grid-template-columns: 1fr; } }
.lp-stat-card { background: var(--gray-50); border: 1px solid var(--gray-100); border-radius: var(--radius-sm); padding: 20px; text-align: center; }
.lp-stat-card__val { font-size: 1.6rem; font-weight: 800; color: var(--teal); letter-spacing: -.02em; }
.lp-stat-card__label { font-size: .8rem; color: var(--gray-500); margin-top: 4px; }

/* LEGAL NOTE */
.lp-legal { font-size: .75rem; color: var(--gray-500); line-height: 1.6; margin-top: 14px; }

/* ABOUT (Wer wir sind) */
.lp-about { display: grid; grid-template-columns: 280px 1fr; gap: 32px; align-items: center; margin: 24px 0; }
@media(max-width:640px){ .lp-about { grid-template-columns: 1fr; } }
.lp-about__photo { width: 100%; aspect-ratio: 4/3; border-radius: var(--radius); overflow: hidden; background: var(--gray-100); border: 1px solid var(--gray-200); display: flex; align-items: center; justify-content: center; }
.lp-about__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Provisorische 3D-Illustration: ganze Figur zeigen statt beschneiden */
.lp-about__photo--illustration { background: #fff; aspect-ratio: 1/1; }
.lp-about__photo--illustration img { object-fit: contain; }
.lp-about__photo-ph { font-size: .72rem; color: var(--gray-500); text-align: center; padding: 0 16px; line-height: 1.5; }
.lp-about__badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.lp-about__badge { display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 600; color: var(--gray-700); background: var(--gray-50); border: 1px solid var(--gray-200); border-radius: var(--radius-sm); padding: 7px 12px; }
.lp-about__badge svg { color: var(--teal); flex-shrink: 0; }

/* FUNNEL BRIDGE CARD */
.lp-funnel { display: flex; align-items: center; gap: 16px; border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 20px 24px; margin: 8px 0 28px; text-decoration: none; transition: all var(--transition); background: var(--white); }
.lp-funnel:hover { border-color: var(--teal-border); background: var(--teal-light); }
.lp-funnel__body { flex: 1; }
.lp-funnel__title { font-size: .95rem; font-weight: 700; color: var(--gray-900); margin-bottom: 3px; }
.lp-funnel__text { font-size: .85rem; color: var(--gray-500); line-height: 1.5; margin: 0; }
.lp-funnel__arrow { color: var(--teal); flex-shrink: 0; }

/* FAQ ACCORDION */
.lp-faq { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lp-faq__item { border: 1px solid var(--gray-200); border-radius: var(--radius-sm); overflow: hidden; }
.lp-faq__item[open] { border-color: var(--teal-border); }
.lp-faq__q { list-style: none; cursor: pointer; padding: 16px 20px; font-size: .92rem; font-weight: 600; color: var(--gray-900); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lp-faq__q::-webkit-details-marker { display: none; }
.lp-faq__q::after { content: "+"; font-size: 1.3rem; font-weight: 400; color: var(--teal); flex-shrink: 0; line-height: 1; transition: transform var(--transition); }
.lp-faq__item[open] .lp-faq__q::after { content: "\2212"; }
.lp-faq__a { padding: 0 20px 18px; font-size: .9rem; color: var(--gray-700); line-height: 1.7; }
.lp-faq__a p { margin: 0; }

/* MICROCOPY unter CTA */
.lp-cta__micro { font-size: .78rem; color: rgba(255,255,255,.5); margin: 14px 0 0; }

/* PRICE NOTE */
.lp-price__val { font-size: 1.4rem; font-weight: 800; color: var(--teal); letter-spacing: -.02em; }

/* ============================================================
   ENERGIEAUSWEIS – seitenspezifische Komponenten
   ============================================================ */

/* A–H Effizienzskala (Hero) */
.ea-scale-wrap { max-width: 852px; margin: 40px auto 0; }
.ea-scale { display: block; width: 100%; height: auto; }
.ea-scale-cap { font-size: .78rem; color: rgba(255,255,255,.55); text-align: center; line-height: 1.6; margin: 12px 0 0; }

/* Wegweiser / Vergleichskarten */
.ea-advisor { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 0; align-items: start; }
@media(max-width:640px){ .ea-advisor { grid-template-columns: 1fr; } }
.ea-type { position: relative; border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 26px 24px; background: var(--white); }
.ea-type--hero { border-color: var(--teal); box-shadow: 0 0 0 1px var(--teal); }
.ea-type__badge { position: absolute; top: -11px; left: 24px; background: var(--teal); color: var(--white); font-size: .66rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.ea-type__name { font-size: 1.15rem; font-weight: 800; color: var(--gray-900); letter-spacing: -.02em; }
.ea-type__tag { font-size: .76rem; font-weight: 600; color: var(--teal); margin: 2px 0 14px; }
.ea-type__desc { font-size: .875rem; color: var(--gray-700); line-height: 1.65; margin: 0 0 18px; }
.ea-type__feats { border-top: 1px solid var(--gray-100); }
.ea-type__feat { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--gray-100); }
.ea-type__feat:last-child { border-bottom: none; }
.ea-type__feat-k { font-size: .82rem; color: var(--gray-500); }
.ea-type__feat-v { font-size: .82rem; color: var(--gray-900); font-weight: 600; text-align: right; }

/* Unsicher?-Block (Mikro-Conversion) */
.ea-unsure { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; background: var(--teal-light); border: 1px solid var(--teal-border); border-radius: var(--radius); padding: 18px 24px; margin-top: 18px; }
.ea-unsure p { flex: 1; min-width: 240px; margin: 0; font-size: .9rem; color: #0e4f5f; line-height: 1.6; }
.ea-unsure a { flex-shrink: 0; display: inline-flex; align-items: center; gap: 7px; background: var(--blue-btn); color: var(--white); text-decoration: none; padding: 11px 20px; border-radius: var(--radius-sm); font-weight: 600; font-size: .85rem; transition: background var(--transition); }
.ea-unsure a:hover { background: var(--blue-hover); }

/* Anlass-Trio (Verkauf / Vermietung / Sanierung) */
.ea-anlass { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 8px 0 20px; }
@media(max-width:580px){ .ea-anlass { grid-template-columns: 1fr; } }
.ea-anlass__item { display: flex; align-items: center; gap: 12px; background: var(--gray-50); border: 1px solid var(--gray-100); border-radius: var(--radius-sm); padding: 14px 16px; }
.ea-anlass__ic { width: 36px; height: 36px; border-radius: 8px; background: var(--navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ea-anlass__ic svg { color: #5eead4; }
.ea-anlass__lbl { font-size: .92rem; font-weight: 700; color: var(--gray-900); }

/* Sachlicher Hinweis (Bußgeld / Verbraucherzentrale) */
.ea-note { display: flex; gap: 12px; align-items: flex-start; background: var(--gray-50); border: 1px solid var(--gray-200); border-left: 3px solid var(--navy); border-radius: var(--radius-sm); padding: 16px 18px; margin: 8px 0; }
.ea-note svg { color: var(--navy); flex-shrink: 0; margin-top: 2px; }
.ea-note p { margin: 0; font-size: .875rem; color: var(--gray-700); line-height: 1.6; }

/* Leistungsumfang zweigeteilt */
.ea-scope { display: grid; grid-template-columns: 1.25fr 1fr; gap: 16px; margin: 8px 0 0; align-items: start; }
@media(max-width:640px){ .ea-scope { grid-template-columns: 1fr; } }
.ea-scope__col { border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 24px; }
.ea-scope__col--hero { border-color: var(--teal-border); background: var(--teal-light); }
.ea-scope__h { font-size: 1rem; font-weight: 800; color: var(--gray-900); letter-spacing: -.01em; margin-bottom: 16px; }
.ea-scope__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.ea-scope__list li { display: flex; gap: 10px; align-items: flex-start; font-size: .875rem; color: var(--gray-700); line-height: 1.5; margin: 0; }
.ea-scope__list li svg { color: #16a34a; flex-shrink: 0; margin-top: 3px; }

/* Ablauf – zwei Stepper mit Bearbeitungsdauer-Badge */
.ea-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 0; align-items: start; }
@media(max-width:640px){ .ea-flow { grid-template-columns: 1fr; } }
.ea-flow__col { border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 24px; }
.ea-flow__col--hero { border-color: var(--teal-border); }
.ea-flow__h { font-size: 1.05rem; font-weight: 800; color: var(--gray-900); letter-spacing: -.02em; margin-bottom: 10px; }
.ea-flow__badge { display: inline-block; background: var(--navy); color: #5eead4; font-size: .74rem; font-weight: 700; padding: 5px 13px; border-radius: 999px; margin-bottom: 20px; }
.ea-flow__steps { list-style: none; margin: 0; padding: 0; counter-reset: eaflow; }
.ea-flow__step { position: relative; padding: 0 0 18px 38px; counter-increment: eaflow; }
.ea-flow__step:last-child { padding-bottom: 0; }
.ea-flow__step::before { content: counter(eaflow); position: absolute; left: 0; top: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--navy); color: var(--white); font-size: .76rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ea-flow__step::after { content: ""; position: absolute; left: 13px; top: 30px; bottom: 4px; width: 2px; background: var(--gray-200); }
.ea-flow__step:last-child::after { display: none; }
.ea-flow__step strong { display: block; font-size: .88rem; color: var(--gray-900); margin-bottom: 2px; }
.ea-flow__step span { font-size: .82rem; color: var(--gray-500); line-height: 1.55; }

/* Preis-Tabelle */
.ea-price { border: 1px solid var(--gray-200); border-radius: var(--radius); overflow: hidden; margin: 8px 0 18px; }
.ea-price__row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 22px; border-bottom: 1px solid var(--gray-100); }
.ea-price__row:last-child { border-bottom: none; }
.ea-price__row--hero { background: var(--teal-light); }
.ea-price__lbl { font-size: .92rem; font-weight: 600; color: var(--gray-900); }
.ea-price__lbl span { display: block; font-size: .78rem; font-weight: 400; color: var(--gray-500); margin-top: 2px; }
.ea-price__val { font-size: 1.05rem; font-weight: 800; color: var(--teal); white-space: nowrap; letter-spacing: -.01em; }

/* ============================================================
   iSFP (sanierungsfahrplan) – Sektions-Bänder & Karten
   Inspiriert vom Übergang ablauf ↔ nachbarschaft (index.html):
   abwechselnd helles (#f9fafb) und weißes (#fff) Band,
   Inhalte als schwebende weiße Karten.
   Komplett unter .lp-isfp gescoped – andere Leistungsseiten bleiben unberührt.
   ============================================================ */
.lp-isfp { max-width: none; margin: 0; padding: 0 0 0; background: var(--gray-50); }

/* Volle-Breite-Band mit zentriertem Inhalt */
.lp-isfp .lp-band { position: relative; overflow: hidden; padding: 76px 0; }
.lp-isfp .lp-band--last { padding-bottom: 88px; }
.lp-isfp .lp-band__inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; padding: 0 24px; }

/* Helles Band (wie .ablauf) */
.lp-isfp .lp-band--light { background: #f9fafb; }

/* Weißes Band (wie der Sektions-Hintergrund von .nachbarschaft) */
.lp-isfp .lp-band--white { background: #ffffff; }

/* Eyebrow: Teal-Verlaufstext mit vorangestelltem Punkt (wie foerder-teaser__eyebrow) */
.lp-isfp .lp-section__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  background: linear-gradient(130deg, #0f766e 0%, #2dd4bf 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.lp-isfp .lp-section__eyebrow::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%; background: #2dd4bf; flex-shrink: 0;
}
.lp-isfp .lp-section__title { color: var(--navy); font-size: clamp(1.5rem, 2.8vw, 1.9rem); line-height: 1.2; }

/* Weiße Panel-Karte (Zeitstrahl / „Wer wir sind") – hebt sich auf Slate ab */
.lp-isfp .lp-panel {
  background: #fff; border: 1px solid rgba(12,26,53,.08); border-radius: 18px;
  padding: 32px; box-shadow: 0 6px 30px rgba(12,26,53,.07);
  margin: 24px 0 0;
}

/* Ablauf-Schritte: weiße Karten mit großer Teal-Verlaufs-Nummer (wie ablauf__card) */
.lp-isfp .lp-steps { gap: 16px; }
.lp-isfp .lp-step {
  align-items: center; gap: 20px; padding: 22px 26px; border-bottom: none;
  background: #fff; border: 1px solid rgba(12,26,53,.08); border-radius: 16px;
  box-shadow: 0 4px 24px rgba(12,26,53,.07);
  transition: box-shadow .25s, transform .25s, border-color .25s;
}
.lp-isfp .lp-step:hover { box-shadow: 0 12px 40px rgba(12,26,53,.12); transform: translateY(-2px); border-color: rgba(15,118,110,.2); }
.lp-isfp .lp-step__num {
  width: auto; height: auto; border-radius: 0; background: none; color: transparent;
  font-size: 2rem; font-weight: 800; line-height: 1;
  background: linear-gradient(130deg, #0f766e 0%, #2dd4bf 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
/* Schritt mit Dropdown: Nummer oben ausrichten, da der Body höher wird */
.lp-isfp .lp-step:has(.lp-step__more) { align-items: flex-start; }
.lp-isfp .lp-step:has(.lp-step__more) .lp-step__num { margin-top: 2px; }

/* Aufklappbarer Leistungsumfang innerhalb des Auswertung-Schritts */
.lp-isfp .lp-step__more {
  margin-top: 14px; border-top: 1px solid var(--gray-100); padding-top: 12px;
}
.lp-isfp .lp-step__more-toggle {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none;
  font-size: .82rem; font-weight: 700; color: var(--teal);
  -webkit-user-select: none; user-select: none;
}
.lp-isfp .lp-step__more-toggle::-webkit-details-marker { display: none; }
.lp-isfp .lp-step__more-toggle::after {
  content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); margin-top: -3px; transition: transform .25s;
}
.lp-isfp .lp-step__more[open] .lp-step__more-toggle::after { transform: rotate(-135deg); margin-top: 2px; }
.lp-isfp .lp-step__more-list {
  list-style: none; margin: 12px 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
  counter-reset: lpmore;
}
.lp-isfp .lp-step__more-list li {
  position: relative; counter-increment: lpmore; padding-left: 34px;
  font-size: .85rem; color: var(--gray-700); line-height: 1.55; margin: 0;
}
.lp-isfp .lp-step__more-list li::before {
  content: counter(lpmore); position: absolute; left: 0; top: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%);
  color: #fff; font-size: .72rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.lp-isfp .lp-step__more-list li strong { color: var(--gray-900); }

/* Zeitstrahl-Punkte als Teal-Verlauf */
.lp-isfp .lp-tl-node__dot { background: linear-gradient(135deg, #0f766e 0%, #0d9488 100%); }

/* Vergleichs-Spalten & Statistik-Karten: gleiche weiche Karten-Optik */
.lp-isfp .lp-compare__col { border-radius: 14px; box-shadow: 0 4px 20px rgba(12,26,53,.05); }
.lp-isfp .lp-stat-card {
  background: #fff; border: 1px solid rgba(12,26,53,.08); border-radius: 16px;
  box-shadow: 0 4px 22px rgba(12,26,53,.07);
}
.lp-isfp .lp-stat-card__val {
  background: linear-gradient(130deg, #0f766e 0%, #2dd4bf 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* Funnel-Brücke & FAQ als Karten */
.lp-isfp .lp-funnel {
  background: #fff; border: 1px solid rgba(12,26,53,.08); border-radius: 16px;
  box-shadow: 0 4px 22px rgba(12,26,53,.07);
}
.lp-isfp .lp-funnel:hover { border-color: rgba(15,118,110,.25); box-shadow: 0 12px 36px rgba(12,26,53,.12); background: #fff; }
.lp-isfp .lp-faq__item {
  background: #fff; border: 1px solid rgba(12,26,53,.08); border-radius: 14px;
  box-shadow: 0 3px 16px rgba(12,26,53,.05);
}

/* Förderbalken leicht angehoben */
.lp-isfp .lp-fund__bar { box-shadow: 0 4px 18px rgba(12,26,53,.08); border: none; }

/* CTA-Karte ohne den alten Außenabstand (Band liefert den Abstand) */
.lp-isfp .lp-cta { margin: 40px 0 0; box-shadow: 0 16px 50px rgba(8,22,42,.22); }

/* ---- Mobile ---- */
@media (max-width: 700px) {
  .lp-isfp .lp-band { padding: 52px 0; }
  .lp-isfp .lp-band--last { padding-bottom: 64px; }
  .lp-isfp .lp-panel { padding: 22px; }

  /* Ablauf-Schritte kompakter, große Nummer etwas kleiner */
  .lp-isfp .lp-step { gap: 16px; padding: 18px 20px; }
  .lp-isfp .lp-step__num { font-size: 1.7rem; }

  /* CTA-Karte: weniger Innenabstand, Button als volle Breite (Tap-Ziel) */
  .lp-isfp .lp-cta { padding: 30px 22px; }
  .lp-isfp .lp-cta h2 { font-size: 1.3rem; }
  .lp-isfp .lp-cta__btns { width: 100%; }
  .lp-isfp .lp-cta__btn { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .lp-isfp .lp-band { padding: 44px 0; }
  .lp-isfp .lp-band__inner { padding: 0 18px; }
  .lp-isfp .lp-panel { padding: 18px; }
  .lp-isfp .lp-section__title { font-size: 1.4rem; }
  .lp-isfp .lp-step { padding: 16px 16px; gap: 14px; }
  .lp-isfp .lp-step__num { font-size: 1.5rem; }
  /* Karten-Hover-Lift auf Touch deaktivieren (kein Hover-Zustand sinnvoll) */
  .lp-isfp .lp-step:hover, .lp-isfp .lp-funnel:hover { transform: none; }
}

/* ============================================================
   iSFP Hero – „Lamp"-Effekt
   Adaption des React/Aceternity-„Lamp"-Heros in reines HTML/CSS
   (statt framer-motion: CSS-@keyframes). Nur via .lp-hero--lamp –
   die Heros der anderen Leistungsseiten bleiben unberührt.
   ============================================================ */
.lp-hero--lamp {
  --lamp-y: 0px;   /* Lichtlinie genau auf der Kante Weiß→Blau (Sektions-Oberkante) */
  position: relative;
  isolation: isolate;
  overflow: hidden;
  /* Inhalt beginnt im Lichtschein unter der Linie; moderater Abstand nach unten */
  padding: calc(var(--lamp-y) + 64px) 24px 44px;
  text-align: center;
  background: radial-gradient(125% 75% at 50% 0%, #0e2746 0%, var(--navy) 60%);
}

/* Licht-Apparatur (dekorativ) */
.lp-hero--lamp .lamp { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.lp-hero--lamp .lamp > span { position: absolute; left: 50%; transform: translateX(-50%); display: block; }

/* Lichtkegel: conic-Gradient, weich, nach unten auslaufend – Spitze auf der Linie */
.lp-hero--lamp .lamp__beam {
  top: var(--lamp-y);
  width: min(64rem, 150%); height: 30rem;
  background: conic-gradient(from 0deg at 50% 0%,
    transparent 150deg,
    rgba(45,212,191,.32) 168deg,
    rgba(94,234,212,.62) 180deg,
    rgba(45,212,191,.32) 192deg,
    transparent 210deg);
  filter: blur(13px);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 72%);
  mask-image: linear-gradient(to bottom, #000 0%, transparent 72%);
  animation: lampBeam 1s cubic-bezier(.22,.61,.36,1) .15s both;
}

/* Heller Glühpunkt – strahlt von der Linie nach unten */
.lp-hero--lamp .lamp__glow {
  top: calc(var(--lamp-y) - 1rem);
  width: 26rem; height: 9rem; border-radius: 50%;
  background: rgba(94,234,212,.5);
  filter: blur(64px);
  animation: lampGlow 1s ease .15s both;
}

/* Scharfe, helle Lichtlinie */
.lp-hero--lamp .lamp__line {
  top: var(--lamp-y);
  height: 2px; width: 30rem; max-width: 88%;
  background: linear-gradient(90deg, transparent, #b8fbf0 20%, #b8fbf0 80%, transparent);
  box-shadow: 0 0 32px 3px rgba(94,234,212,.75), 0 0 10px 1px rgba(184,251,240,.9);
  animation: lampLine 1s cubic-bezier(.22,.61,.36,1) .15s both;
}

/* Inhalt zentriert, fährt sanft in den Schein hinein */
.lp-hero--lamp .lp-hero__content {
  position: relative; z-index: 1;
  max-width: 760px; margin: 0 auto;
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
  animation: heroRise 1s cubic-bezier(.22,.61,.36,1) .3s both;
}
.lp-hero--lamp .lp-hero__eyebrow { color: #5eead4; }
.lp-hero--lamp .lp-hero__title {
  font-size: clamp(2rem, 6vw, 3.4rem);
  line-height: 1.1; margin-bottom: 18px;
  background: linear-gradient(180deg, #ffffff 42%, #aecdc7 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.lp-hero--lamp .lp-hero__lead { margin: 0 auto 30px; max-width: 600px; }
.lp-hero--lamp .lp-hero__actions { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* Inhalte unterhalb des Inhalts-Blocks (z. B. Energieausweis A–H-Skala)
   müssen über der Licht-Ebene liegen, sonst verdeckt .lamp sie */
.lp-hero--lamp .ea-scale-wrap { position: relative; z-index: 1; }

@keyframes lampBeam {
  from { opacity: .4; transform: translateX(-50%) scaleX(.65); }
  to   { opacity: 1;  transform: translateX(-50%) scaleX(1); }
}
@keyframes lampGlow {
  from { opacity: .3; width: 14rem; }
  to   { opacity: 1;  width: 26rem; }
}
@keyframes lampLine {
  from { opacity: .5; width: 8rem; }
  to   { opacity: 1;  width: 30rem; }
}
@keyframes heroRise {
  from { opacity: 0; transform: translateY(46px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 700px) {
  .lp-hero--lamp { --lamp-y: 0px; padding: calc(var(--lamp-y) + 48px) 20px 36px; }
  .lp-hero--lamp .lamp__beam { height: 21rem; }
  .lp-hero--lamp .lamp__glow { width: 18rem; height: 7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .lp-hero--lamp .lamp__beam,
  .lp-hero--lamp .lamp__glow,
  .lp-hero--lamp .lamp__line,
  .lp-hero--lamp .lp-hero__content { animation: none; }
}

/* ============================================================
   Sticky Inhaltsverzeichnis (Seiten-Navigation) – WIEDERVERWENDBAR
   Vanilla-Table-of-Contents: Fortschrittslinie + Punkte mit Scroll-Spy
   (Logik in lp-toc.js). Sitzt links neben der 900px-Inhaltsspalte;
   erscheint erst ab ≥1340px, darunter ausgeblendet.

   Auf einer beliebigen Leistungsseite einsetzbar – siehe Vorlage und
   Anleitung im Kopf von assets/js/lp-toc.js.
   ============================================================ */
/* Abstand zur Sticky-Nav beim Anspringen – gilt für jede Sektion mit id */
.lp-band[id], .lp-section[id], .lp-toc-target { scroll-margin-top: 84px; }

.lp-toc { display: none; }

@media (min-width: 1340px) {
  .lp-toc {
    display: block;
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    /* ganz links am Viewport-Rand; Breite schrumpft mit dem Freiraum,
       damit der Kasten nie in die Inhaltsspalte ragt (900px-Spalte) */
    left: 32px;
    width: min(192px, calc((100vw - 900px) / 2 - 48px));
    z-index: 50;
    padding: 20px 22px;
    background: var(--gray-50);
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    box-shadow: 0 6px 26px rgba(12,26,53,.07);
  }
  .lp-toc__head {
    margin: 0 0 14px;
    font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--gray-500);
  }
  .lp-toc__track { position: relative; }

  /* Spur + Fortschrittsfüllung (Höhe via --toc-fill aus JS) */
  .lp-toc__rail,
  .lp-toc__rail-fill {
    position: absolute; left: 4px; top: 11px; width: 2px; border-radius: 2px;
  }
  .lp-toc__rail { bottom: 11px; background: var(--gray-200); }
  .lp-toc__rail-fill {
    height: var(--toc-fill, 0px);
    background: linear-gradient(180deg, #0f766e 0%, #2dd4bf 100%);
    transition: height .35s cubic-bezier(.22,.61,.36,1);
  }

  .lp-toc__list { list-style: none; margin: 0; padding: 0; position: relative; }
  .lp-toc__link {
    display: flex; align-items: center; gap: 13px;
    padding: 7px 0; text-decoration: none;
    font-size: .82rem; line-height: 1.3; color: var(--gray-500);
    transition: color .2s ease;
  }
  .lp-toc__dot {
    position: relative; z-index: 1; flex-shrink: 0;
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--white); box-shadow: 0 0 0 2px var(--gray-300);
    transition: box-shadow .25s ease, background .25s ease, transform .25s ease;
  }
  .lp-toc__label { transition: transform .2s ease; }
  .lp-toc__link:hover { color: var(--gray-900); }
  .lp-toc__link:hover .lp-toc__label { transform: translateX(2px); }
  .lp-toc__link:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 4px; }

  /* Bereits passierte Punkte (Trail) */
  .lp-toc__link.is-trail { color: var(--gray-700); }
  .lp-toc__link.is-trail .lp-toc__dot {
    background: var(--teal); box-shadow: 0 0 0 2px var(--teal);
  }

  /* Aktiver Punkt */
  .lp-toc__link.is-active { color: var(--navy); font-weight: 700; }
  .lp-toc__link.is-active .lp-toc__dot {
    background: var(--white);
    box-shadow: 0 0 0 2px var(--teal), 0 0 0 5px rgba(15,118,110,.18);
    transform: scale(1.18);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lp-toc__rail-fill,
  .lp-toc__dot,
  .lp-toc__label,
  .lp-toc__link { transition: none; }
}

/* ============================================================
   Heizlast & hydraulischer Abgleich – Hausschnitt-Schema
   (Sektion „Wie es wirkt"). Kombiniertes Diagramm aus Wissen.
   ============================================================ */
.hz-canvas-wrap { margin: 24px 0 36px; }
.hz-canvas { background: var(--navy); border-radius: var(--radius); padding: 24px 16px; display: flex; align-items: center; justify-content: center; overflow-x: auto; box-shadow: 0 6px 30px rgba(8,22,42,.15); }
.hz-canvas svg { width: 100%; max-width: 560px; height: auto; display: block; }
.hz-canvas-caption { font-size: .8rem; color: var(--gray-500); text-align: center; margin-top: 12px; line-height: 1.5; margin-bottom: 0; }
@media (max-width: 600px) {
  .hz-canvas { justify-content: flex-start; }
  .hz-canvas svg { width: 520px; max-width: none; flex-shrink: 0; }
}

/* Verfahren-Vergleich – ruhiger Unabhängigkeits-Block unter den Karten */
.hz-indep { margin-top: 18px; }

/* ============================================================
   Heizlast & hydraulischer Abgleich – Ersparnisrechner
   ============================================================ */
#rechner { position: relative; z-index: 15; overflow: visible !important; }
#rechner .lp-section__sub { max-width: 720px; }
.hz-calc-container { display: grid; grid-template-columns: 1.25fr 1fr; gap: 36px; align-items: stretch; margin-top: 24px; }
.hz-calc-inputs { display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.hz-calc-field { display: flex; flex-direction: column; }
.hz-calc-label { display: flex; justify-content: space-between; align-items: center; font-size: .88rem; font-weight: 600; color: var(--gray-700); margin-bottom: 6px; }
.hz-calc-label strong { font-size: .95rem; color: var(--teal); font-weight: 700; }

/* Custom Range Slider */
.hz-calc-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; background: var(--gray-200); border-radius: 99px; outline: none; margin: 8px 0; }
.hz-calc-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--teal); border: 2px solid var(--white); box-shadow: 0 2px 6px rgba(12,26,53,.18); cursor: pointer; transition: transform .15s ease, background-color .15s ease; }
.hz-calc-slider::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--teal); border: 2px solid var(--white); box-shadow: 0 2px 6px rgba(12,26,53,.18); cursor: pointer; transition: transform .15s ease, background-color .15s ease; }
.hz-calc-slider::-webkit-slider-thumb:hover { transform: scale(1.15); background: var(--blue-hover); }
.hz-calc-slider::-moz-range-thumb:hover { transform: scale(1.15); background: var(--blue-hover); }

/* Custom Select Dropdown - Fallback */
select.hz-calc-select { width: 100%; padding: 11px 14px; font-family: inherit; font-size: .85rem; color: var(--gray-900); background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-sm); outline: none; cursor: pointer; transition: border-color var(--transition), box-shadow var(--transition); }
select.hz-calc-select:focus { border-color: var(--teal-border); box-shadow: 0 0 0 3px rgba(15,118,110,.1); }

/* Nice Select Custom Dropdowns (Admin Portal style) */
.nice-select {
  position: relative;
  width: 100%;
}

.nice-select select {
  display: none !important;
}

.nice-select__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  border: 1.5px solid rgba(13, 148, 136, .25);
  background: rgba(255, 255, 255, .92);
  border-radius: 12px;
  padding: 11px 14px;
  font-size: 0.85rem;
  font-family: inherit;
  color: var(--gray-900);
  text-align: left;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(13, 148, 136, .06);
  transition: border-color .12s ease, box-shadow .12s ease, background .12s ease;
}

.nice-select__trigger svg {
  color: var(--teal);
  flex-shrink: 0;
  transition: transform .12s ease;
}

.nice-select.open .nice-select__trigger svg {
  transform: rotate(180deg);
}

.nice-select__trigger.is-placeholder .nice-select__value {
  color: var(--gray-400);
}

.nice-select__trigger:focus,
.nice-select.open .nice-select__trigger {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(15,118,110,.15);
  background: #ffffff;
  outline: none;
}

.nice-select__list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 9999;
  list-style: none;
  margin: 0;
  padding: 6px;
  background: #ffffff;
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(8,22,42,.12);
  max-height: 250px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--gray-300) transparent;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity .1s ease-out, transform .1s ease-out;
}

.nice-select.open .nice-select__list {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.nice-select__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--gray-700);
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
}

.nice-select__option:hover {
  background: var(--teal-light);
  color: var(--teal);
}

.nice-select__option .nice-select__check {
  opacity: 0;
  color: var(--teal);
  flex-shrink: 0;
}

.nice-select__option.selected {
  color: var(--teal);
  font-weight: 600;
  background: var(--teal-light);
}

.nice-select__option.selected .nice-select__check {
  opacity: 1;
}

.nice-select__list::-webkit-scrollbar {
  width: 6px;
}

.nice-select__list::-webkit-scrollbar-track {
  background: transparent;
  margin: 6px 0;
}

.nice-select__list::-webkit-scrollbar-thumb {
  background: var(--gray-200);
  border-radius: 99px;
}

.nice-select__list::-webkit-scrollbar-thumb:hover {
  background: var(--gray-300);
}

/* Ergebniskarte (Dunkelblau) */
.hz-calc-results { background: var(--navy); border-radius: 14px; padding: 32px 24px; color: var(--white); display: flex; flex-direction: column; justify-content: center; text-align: center; box-shadow: 0 8px 32px rgba(8,22,42,.18); }
.hz-calc-result-card { margin-bottom: 24px; }
.hz-calc-result-val { font-size: 2.6rem; font-weight: 800; color: #5eead4; line-height: 1.1; margin-bottom: 2px; letter-spacing: -.02em; }
.hz-calc-result-lbl { font-size: .76rem; color: rgba(255,255,255,.6); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

/* Sub-Ergebnisse Grid */
.hz-calc-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; }
.hz-calc-result-sub { display: flex; flex-direction: column; align-items: center; }
.hz-calc-result-sub-val { font-size: 1.25rem; font-weight: 700; color: var(--white); letter-spacing: -.01em; }
.hz-calc-result-sub-lbl { font-size: .72rem; color: rgba(255,255,255,.45); margin-top: 2px; line-height: 1.3; }

/* Responsive */
@media (max-width: 768px) {
  .hz-calc-container { grid-template-columns: 1fr; gap: 28px; }
  .hz-calc-results { padding: 28px 20px; }
}

/* ============================================================
   Förderung & Umsetzung – Hub: Maßnahmen-Verteiler (Hub→Spokes)
   ============================================================ */
.lp-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 8px 0 0; }
@media (max-width: 760px) { .lp-hub-grid { grid-template-columns: 1fr; } }
.lp-hub-card { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 20px 20px 20px; background: var(--white); text-decoration: none; transition: all var(--transition); }
.lp-hub-card:hover { border-color: var(--teal-border); background: var(--teal-light); transform: translateY(-2px); }
.lp-hub-card__icon { width: 38px; height: 38px; background: var(--navy); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lp-hub-card__icon svg { color: #5eead4; }
.lp-hub-card__name { font-size: .95rem; font-weight: 800; color: var(--gray-900); letter-spacing: -.01em; }
.lp-hub-card__desc { font-size: .82rem; color: var(--gray-500); line-height: 1.55; margin: 0; }
.lp-hub-card__more { margin-top: auto; font-size: .8rem; font-weight: 700; color: var(--teal); display: inline-flex; align-items: center; gap: 5px; padding-top: 6px; }

/* Reihenfolge-Stepper: Warnhinweis zwischen den Schritten (Signature B.2) */
.lp-warnstep { display: flex; gap: 12px; align-items: flex-start; background: #fff7ed; border: 1px solid #fed7aa; border-left: 3px solid #ea580c; border-radius: var(--radius-sm); padding: 16px 18px; margin: 4px 0 8px; }
.lp-warnstep svg { color: #ea580c; flex-shrink: 0; margin-top: 2px; }
.lp-warnstep p { margin: 0; font-size: .875rem; color: #7c2d12; line-height: 1.6; }
.lp-warnstep strong { color: #7c2d12; }
