/* =========================================================
   Vergleichsportal-Engine – Basis-Stylesheet (Fassung 09.09.2026)
   Struktur, Typografie und alle Bausteine. Farben und Radien kommen
   aus dem Theme (themes/<name>/theme.css) und sind dort überschreibbar.
   Keine externen Schriften, Skripte oder Bilder (DSGVO, CSP).
   ========================================================= */

:root{
  --schrift:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --weiss:#fff; --nebel:#F3F6FA; --nebel2:#E9EFF6; --linie:#DCE4EE;
  --tief:#0B2E4F; --primaer:#15558F; --primaer-dunkel:#0F457A; --primaer-hell:#EAF2FB;
  --signal:#F5B301; --signal-text:#2B1F00; --signal-dunkel:#E2A300;
  --gruen:#0E7A54; --gruen-hell:#EEF9F3; --rot:#A32B22; --rot-hell:#FDF3F2;
  --grau:#5A6B7D; --grau2:#3B4E62; --text:#17324D;
  --r-s:10px; --r-m:16px; --r-l:22px;
  --schatten-s:0 1px 2px rgb(11 46 79 / .06), 0 4px 14px -6px rgb(11 46 79 / .12);
  --schatten-m:0 12px 32px -20px rgb(11 46 79 / .45);
  --schatten-l:0 34px 70px -36px rgb(7 32 58 / .62);
  --breite:1160px;
  --held-bild:none;
}

/* -------- Grundlagen -------- */
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,h4,p,ul,ol,dl,dd,figure,fieldset,legend{margin:0;padding:0}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{font-family:var(--schrift);font-size:1.0625rem;line-height:1.62;color:var(--text);background:var(--weiss);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-bottom:env(safe-area-inset-bottom)}
h1,h2,h3,h4{line-height:1.12;letter-spacing:-.022em;font-weight:800;color:var(--tief);text-wrap:balance}
h1{font-size:clamp(2.05rem,4.8vw,3.25rem)}
h2{font-size:clamp(1.5rem,3.2vw,2.15rem)}
h3{font-size:1.15rem}
p{text-wrap:pretty}
a{color:var(--primaer);text-underline-offset:.15em}
a:hover{color:var(--primaer-dunkel)}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;background:#fff;padding:.75rem 1.25rem;z-index:99}
.skip:focus{left:.75rem;top:.75rem}
.wrap{max-width:var(--breite);margin-inline:auto;padding-inline:1.25rem}
@media(min-width:48rem){.wrap{padding-inline:1.75rem}}
.abschnitt{padding-block:3.25rem}
@media(min-width:60rem){.abschnitt{padding-block:4.25rem}}
.abschnitt.hell{background:var(--nebel);border-block:1px solid var(--linie)}
.schmal{max-width:52rem}
.vorspann{margin-top:.85rem;max-width:62ch;color:var(--grau2);font-size:1.08rem}
.meta{margin-top:.6rem;font-size:.95rem;color:var(--grau)}
.klein{font-size:.92rem;color:var(--grau)}
.mt{margin-top:1.25rem}

/* -------- Servicezeile -------- */
.band{background:#0A2743;color:#B7CCE0;font-size:.9rem}
.band-innen{display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;align-items:center;padding-block:.55rem;min-height:2.6rem}
.band-zeit{display:inline-flex;align-items:center;gap:.4rem}
.band-tel{color:#fff;font-weight:700;text-decoration:none}
.band-bewertung{margin-left:auto;display:inline-flex;align-items:center;gap:.45rem;color:#fff}
.sterne{color:#FFC44D;letter-spacing:1.5px}
@media(max-width:47.9rem){.band-zeit{display:none}.band-bewertung{margin-left:auto;font-size:.85rem}}

/* -------- Kopfzeile -------- */
.kopf{background:rgb(255 255 255 / .96);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--linie);position:sticky;top:0;z-index:40}
.kopf-reihe{display:flex;align-items:center;gap:1rem;min-height:4.5rem;flex-wrap:nowrap}
.wortmarke{height:30px;width:auto;max-width:250px;object-fit:contain;display:block}
.wortmarke-fuss{height:26px}
.logo{flex:none;display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.18rem;letter-spacing:-.04em;color:var(--tief);text-decoration:none}
.logo .emblem{width:2.4rem;height:2.4rem;flex:none}
.logo-text{white-space:nowrap}
.haupt{display:none;align-items:center;gap:1.05rem;margin-left:auto;font-size:1.02rem;font-weight:600;flex-wrap:nowrap;min-width:0;overflow:hidden}
.haupt a{white-space:nowrap;flex:none;color:var(--grau2);text-decoration:none;padding-block:.35rem;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.haupt a:hover,.haupt a[aria-current]{color:var(--primaer);border-color:var(--primaer)}
.tel-knopf{margin-left:auto;display:none;align-items:center;gap:.5rem;background:var(--tief);color:#fff;text-decoration:none;font-weight:700;
  padding:.68rem 1rem;border-radius:var(--r-s);font-size:.97rem;transition:background .15s;white-space:nowrap;flex:none}
.tel-knopf:hover{background:var(--primaer-dunkel);color:#fff}
.burger{margin-left:auto;width:2.9rem;height:2.9rem;border:1px solid var(--linie);border-radius:var(--r-s);background:#fff;color:var(--tief);display:grid;place-items:center;cursor:pointer}
.burger .burger-zu{display:none}
.burger[aria-expanded="true"] .burger-auf{display:none}
.burger[aria-expanded="true"] .burger-zu{display:block}
@media(min-width:48rem){.tel-knopf{display:inline-flex}}
@media(min-width:66rem) and (max-width:81rem){.haupt{gap:.75rem;font-size:.94rem}}
@media(min-width:66rem){.haupt{display:flex}.tel-knopf{margin-left:0}.burger{display:none}}
.mobilmenue{border-top:1px solid var(--linie);background:#fff;box-shadow:var(--schatten-m)}
.mobilmenue .wrap{padding-block:.5rem .9rem}
.mobilmenue a{display:block;padding:.85rem 0;font-size:1.06rem;font-weight:600;color:var(--tief);text-decoration:none;border-bottom:1px solid var(--linie)}
.mobilmenue a[aria-current]{color:var(--primaer)}
.mobilmenue-tel{color:var(--primaer)!important;border-bottom:0!important}

/* -------- Held -------- */
.held{position:relative;isolation:isolate;overflow:hidden;background:#08243E;color:#fff}
.held-bild{position:absolute;inset:0;z-index:-1;
  background-image:var(--held-bild),
    radial-gradient(60rem 30rem at 85% 20%, rgb(240 120 0 / .28), transparent 60%),
    radial-gradient(40rem 26rem at 20% 100%, rgb(0 144 208 / .35), transparent 60%),
    linear-gradient(118deg,#071F38,#0B3157 50%,#134469);
  background-size:cover;background-position:center}
.held-bild::before{content:"";position:absolute;inset:0;opacity:.35;
  background-image:linear-gradient(rgb(255 255 255 / .06) 1px, transparent 1px),linear-gradient(90deg, rgb(255 255 255 / .06) 1px, transparent 1px);
  background-size:3.25rem 3.25rem;mask-image:linear-gradient(180deg, rgb(0 0 0 / .8), transparent 85%)}
.held-zeichen{display:none}
@media(min-width:66rem){.held-zeichen{display:block;position:absolute;right:2rem;top:50%;transform:translateY(-58%);width:26rem;height:26rem;opacity:.12;pointer-events:none}}
.held-innen{position:relative;padding-block:3.25rem 7rem}
@media(min-width:60rem){.held-innen{padding-block:4.5rem 8.25rem}}
.held-text{max-width:44rem}
@media(max-width:47.9rem){.held-kicker{font-size:.78rem}}
.held-kicker{display:inline-flex;align-items:center;gap:.55rem;font-size:.88rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#CFE0F2;
  background:rgb(255 255 255 / .09);border:1px solid rgb(255 255 255 / .18);border-radius:999px;padding:.4rem .9rem .4rem .6rem;margin-bottom:1.25rem}
.punkt-klein{width:.45rem;height:.45rem;display:inline-block;margin-right:.15rem;vertical-align:middle}
.fuss-zeiten{color:#8FA6BC}
.punkt{width:.55rem;height:.55rem;border-radius:50%;background:#59D39A;box-shadow:0 0 0 4px rgb(89 211 154 / .25)}
.held h1{color:#fff;max-width:18ch;font-size:clamp(2.15rem,5.4vw,3.6rem)}
.held h1 em{font-style:normal;color:#FFD166}
.held-vorspann{margin-top:1.1rem;max-width:46ch;color:#D3E2F0;font-size:1.12rem;line-height:1.55}
.haken-liste{margin-top:1.6rem;display:grid;gap:.7rem;max-width:46ch}
.haken-liste li{display:flex;gap:.75rem;align-items:flex-start;font-size:1.04rem;font-weight:500;color:#EAF1F8}
.haken-liste li::before{content:"";flex:none;width:1.55rem;height:1.55rem;border-radius:50%;margin-top:.1rem;
  background:var(--gruen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4'%3E%3Cpath d='m20 6-11 11-5-5'/%3E%3C/svg%3E") center/62% no-repeat}
.held-berater{margin-top:1.75rem;display:inline-flex;align-items:center;gap:.8rem;font-size:.98rem;color:#EAF1F8;
  background:rgb(255 255 255 / .1);border:1px solid rgb(255 255 255 / .2);border-radius:999px;padding:.45rem 1.2rem .45rem .45rem}
.held-berater a{color:#fff;font-weight:700}

/* -------- Rechner -------- */
.rechner{position:relative;z-index:6;margin-top:1.5rem;background:#fff;border:1px solid var(--linie);border-radius:var(--r-l);
  padding:1.25rem;box-shadow:var(--schatten-l)}
@media(min-width:48rem){.rechner{padding:1.75rem 1.75rem 1.4rem}}
.held+.wrap>.rechner{margin-top:-4.9rem}
.seiten-kopf+.wrap>.rechner{margin-top:-1.75rem}
.rechner-kopf{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:baseline;margin-bottom:.9rem}
.rechner-kopf h2{font-size:1.3rem}
.rechner-kopf span{font-size:.9rem;color:var(--grau)}
.arten{display:flex;gap:.45rem;overflow-x:auto;padding:0 .1rem 1.1rem;scrollbar-width:none;margin-inline:-.1rem}
.arten::-webkit-scrollbar{display:none}
.art{border:1.5px solid var(--linie);background:#fff;border-radius:999px;padding:.55rem 1rem;font:inherit;font-size:.95rem;font-weight:600;
  color:var(--grau2);white-space:nowrap;cursor:pointer;min-height:2.8rem;transition:all .15s}
.art:hover{border-color:#B9CBDD;color:var(--tief)}
.art.aktiv{border-color:var(--primaer);background:var(--primaer);color:#fff}
.rechner-raster{display:grid;gap:1rem}
@media(min-width:62rem){.rechner-raster{grid-template-columns:1.45fr 1fr .85fr auto;align-items:start;gap:1.1rem}.rechner-raster>.knopf{margin-top:1.85rem}.rechner-raster>.feld:first-child .feld-titel{margin-bottom:0}}
.personen{display:flex;border:1.5px solid #C3D0DE;border-radius:12px;overflow:hidden;height:3.5rem;background:#fff}
.personen button{flex:1;background:#fff;border:0;border-right:1px solid #E4EAF2;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.1rem;font:inherit;font-size:.8rem;font-weight:700;color:var(--grau);transition:background .15s,color .15s}
.personen button:last-child{border-right:0}
.personen button:hover{background:var(--nebel)}
.personen button.aktiv{background:var(--primaer);color:#fff}
.knopf-gross{min-height:3.5rem;font-size:1.08rem;padding-inline:1.6rem}
.rechner-fuss{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.35rem 1.15rem;font-size:.9rem;color:var(--grau)}
.rechner-fuss li::before{content:"✓";color:var(--gruen);font-weight:800;margin-right:.4rem}

/* -------- Vertrauensleiste, Schritte -------- */
.vertrauen{padding-block:2.25rem 0}
.vertrauen-liste{display:grid;gap:.9rem}
@media(min-width:48rem){.vertrauen-liste{grid-template-columns:repeat(2,1fr)}}
@media(min-width:66rem){.vertrauen-liste{grid-template-columns:repeat(4,1fr)}}
.vertrauen-liste li{display:flex;gap:.85rem;align-items:flex-start;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1rem 1.1rem;box-shadow:var(--schatten-s)}
.vertrauen-liste svg{width:1.75rem;height:1.75rem;flex:none;color:var(--primaer);background:var(--primaer-hell);padding:.35rem;border-radius:10px;box-sizing:content-box}
.vertrauen-liste strong{display:block;color:var(--tief);font-size:1rem;line-height:1.3}
.vertrauen-liste span{font-size:.9rem;color:var(--grau)}
.schritte-abschnitt{margin-top:2.5rem}
.schritte{display:grid;gap:1rem;margin-top:1.75rem}
@media(min-width:48rem){.schritte{grid-template-columns:repeat(2,1fr)}}
@media(min-width:66rem){.schritte{grid-template-columns:repeat(4,1fr)}}
.schritte li{position:relative;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.4rem 1.25rem 1.3rem;box-shadow:var(--schatten-s)}
.schritt-nr{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--tief);color:#fff;font-weight:800;margin-bottom:.9rem}
.schritte h3{margin-bottom:.35rem}
.schritte p{font-size:.97rem;color:var(--grau2)}
@media(min-width:66rem){.schritte li:not(:last-child)::after{content:"";position:absolute;right:-1rem;top:2.2rem;width:1rem;height:2px;background:var(--linie)}}

/* -------- Formularfelder -------- */
.felder{display:grid;gap:1rem}
@media(min-width:39rem){.felder.zwei{grid-template-columns:1fr 1fr}}
.feld{display:flex;flex-direction:column;gap:.4rem;position:relative}
.feld.voll{grid-column:1/-1}
label,.feld-titel{font-size:.95rem;font-weight:700;color:var(--grau2)}
.optional{font-weight:400;color:var(--grau)}
input,select,textarea{font:inherit;font-size:1.05rem;min-height:3.4rem;padding:.8rem .95rem;border:1.5px solid #C3D0DE;border-radius:12px;background:#fff;color:var(--tief);width:100%;transition:border-color .15s,box-shadow .15s}
textarea{min-height:6rem}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--primaer);box-shadow:0 0 0 4px rgb(21 85 143 / .14)}
.feld.fehler input,.feld.fehler select{border-color:var(--rot);background:var(--rot-hell)}
input.gesperrt{background:var(--nebel);color:var(--grau2);cursor:not-allowed}
.feld-fehler{font-size:.92rem;color:var(--rot);font-weight:700}
.feld-hinweis{font-size:.88rem;color:var(--grau)}
.einheit-zeichen{position:absolute;right:.95rem;top:2.35rem;color:var(--grau);font-weight:700;pointer-events:none}
.wahl{display:grid;gap:.6rem}
.wahl-reihe{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr))}
.option{display:flex;gap:.75rem;align-items:flex-start;border:1.5px solid var(--linie);border-radius:12px;padding:.85rem 1rem;cursor:pointer;font-weight:400;color:var(--text);background:#fff;transition:border-color .15s,background .15s}
.option:hover{border-color:#B9CBDD}
.option:has(input:checked){border-color:var(--primaer);background:var(--primaer-hell);box-shadow:inset 0 0 0 1px var(--primaer)}
.option input{width:1.35rem;height:1.35rem;min-height:0;flex:none;margin-top:.15rem;accent-color:var(--primaer)}
.zustimmung{display:flex;gap:.75rem;align-items:flex-start;font-weight:400;color:var(--text);line-height:1.5;font-size:.97rem}
.zustimmung input{width:1.5rem;height:1.5rem;min-height:0;flex:none;margin-top:.1rem;padding:0;accent-color:var(--primaer)}
.honigtopf{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* -------- Schaltflächen -------- */
.knopf{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--primaer);color:#fff;border:0;text-decoration:none;font:inherit;font-weight:700;font-size:1.02rem;
  padding:.9rem 1.45rem;border-radius:12px;cursor:pointer;min-height:3.3rem;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 2px 0 rgb(0 0 0 / .08)}
.knopf:hover{background:var(--primaer-dunkel);color:#fff;transform:translateY(-1px)}
.knopf:active{transform:translateY(0)}
.knopf-signal{background:var(--signal);color:var(--signal-text);box-shadow:0 6px 18px -8px rgb(245 179 1 / .8)}
.knopf-signal:hover{background:var(--signal-dunkel);color:var(--signal-text)}
.knopf-dunkel{background:var(--tief)}
.knopf-hell{background:#fff;color:var(--tief);border:1.5px solid var(--linie);box-shadow:none}
.knopf-hell:hover{background:var(--nebel);color:var(--tief)}
.knopf-breit{width:100%}
.text-knopf{background:none;border:0;font:inherit;font-size:.97rem;font-weight:600;color:var(--primaer);text-decoration:underline;text-underline-offset:.2em;cursor:pointer;padding:0;min-height:2.75rem}

/* -------- Seitenkopf, Krumen, Fortschritt -------- */
.seiten-kopf{background:var(--nebel);border-bottom:1px solid var(--linie);padding-block:1.9rem 2.2rem}
.krumen{font-size:.9rem;color:var(--grau);margin-bottom:.75rem}
.krumen ol{display:flex;flex-wrap:wrap;gap:.4rem}
.krumen li+li::before{content:"›";margin-right:.4rem;color:var(--grau)}
.krumen a{color:var(--grau)}
.fortschritt{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-bottom:1.2rem;font-size:.9rem;font-weight:600;color:var(--grau)}
.fortschritt li{display:inline-flex;align-items:center;gap:.5rem}
.fortschritt span{display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid var(--linie);background:#fff;font-size:.8rem;color:var(--grau)}
.fortschritt .erledigt span{background:var(--gruen);border-color:var(--gruen);color:#fff}
.fortschritt .aktiv{color:var(--tief)}
.fortschritt .aktiv span{background:var(--primaer);border-color:var(--primaer);color:#fff}

/* -------- Fließtext -------- */
.fliesstext{max-width:72ch}
.wrap.fliesstext{max-width:var(--breite)}
.wrap.fliesstext>*{max-width:72ch}
.fliesstext h2{font-size:1.55rem;margin:2.1rem 0 .75rem}
.fliesstext h2:first-child{margin-top:0}
.fliesstext h3{font-size:1.18rem;margin:1.5rem 0 .5rem}
.fliesstext p+p{margin-top:.9rem}
.fliesstext ul,.fliesstext ol{margin:.85rem 0 .85rem 1.4rem;display:grid;gap:.55rem}
.fliesstext ul li{list-style:disc}
.fliesstext ol li{list-style:decimal}
.fliesstext img{border-radius:var(--r-m);margin:1rem 0}
.fliesstext table,.fakten{width:100%;border-collapse:collapse;margin:1.1rem 0;font-size:1rem;background:#fff;border:1px solid var(--linie);border-radius:var(--r-s);overflow:hidden}
.fliesstext th,.fliesstext td,.fakten th,.fakten td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid var(--linie)}
.fliesstext th,.fakten th{background:var(--nebel);font-weight:700;font-size:.95rem}
.fliesstext blockquote{background:var(--primaer-hell);border-left:4px solid var(--primaer);border-radius:0 var(--r-s) var(--r-s) 0;padding:1.1rem 1.25rem;margin:1.4rem 0}

/* -------- Tarifliste -------- */
.ergebnis-raster{display:grid;gap:1.5rem}
@media(min-width:66rem){.ergebnis-raster{grid-template-columns:1fr 18rem;align-items:start}.ergebnis-seite{position:sticky;top:5.5rem}}
.ergebnis-seite{display:grid;gap:1rem}
.ergebnis-beratung{display:grid;gap:1.25rem}
@media(min-width:60rem){.ergebnis-beratung{grid-template-columns:1.6fr 1fr;align-items:start}}
.tarifliste{display:grid;gap:1rem}
.tarif{border:1px solid var(--linie);border-radius:var(--r-m);background:#fff;overflow:hidden;box-shadow:var(--schatten-s);transition:box-shadow .15s}
.tarif:hover{box-shadow:var(--schatten-m)}
.tarif.empfehlung{border-color:#9FCDB8;box-shadow:0 0 0 3px rgb(14 122 84 / .12)}
.empfehlung-leiste{display:flex;align-items:center;gap:.45rem;background:var(--gruen);color:#fff;font-size:.9rem;font-weight:700;padding:.45rem 1.15rem}
.tarif-innen{padding:1.25rem;display:grid;gap:1rem}
@media(min-width:55rem){.tarif-innen{grid-template-columns:1.35fr 1.35fr auto;align-items:center;gap:1.5rem;padding:1.4rem 1.5rem}}
.anbieter-logo{height:34px;width:auto;max-width:130px;object-fit:contain;margin-bottom:.45rem}
.anbieter{font-size:1.15rem}
.tarif-hinweis{border-top:1px solid var(--linie);padding:.75rem 1.25rem;font-size:.92rem;color:var(--grau2);background:#fff}
.tarifname{font-size:.95rem;color:var(--grau);margin-top:.15rem}
.tarif-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}
.tag{font-size:.74rem;font-weight:700;color:var(--grau2);background:var(--nebel);border:1px solid var(--linie);border-radius:999px;padding:.15rem .55rem;white-space:nowrap}
.tag-gruen{color:var(--gruen);background:var(--gruen-hell);border-color:#BFE3D0}
.merkmale{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.1rem;font-size:.95rem}
.merkmale dt{color:var(--grau);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.merkmale dd{font-weight:600;color:var(--tief)}
.preisblock{min-width:13rem;border-top:1px solid var(--linie);padding-top:1rem}
@media(min-width:55rem){.preisblock{text-align:right;border-top:0;padding-top:0}}
.jahrespreis{font-size:1.85rem;font-weight:800;letter-spacing:-.035em;color:var(--tief);line-height:1}
.jahrespreis-einheit{display:block;font-size:.8rem;font-weight:600;color:var(--grau);letter-spacing:0;margin-top:.3rem}
.monatspreis{margin:.35rem 0 .1rem;font-size:1.22rem;font-weight:800;color:var(--tief);letter-spacing:-.02em}
.monatspreis span{display:block;font-size:.78rem;font-weight:600;color:var(--grau);letter-spacing:0}
.abschlag-hinweis{margin:.15rem 0 .35rem;font-size:.8rem;color:var(--grau);line-height:1.35}
.jahr2{font-size:.88rem;color:var(--grau2);margin-top:.5rem}
.ersparnis{display:inline-block;color:var(--gruen);background:var(--gruen-hell);font-weight:700;font-size:.85rem;border-radius:999px;padding:.2rem .65rem;margin-top:.5rem}
.tarif-aktion{margin-top:.8rem}
.tarif-aktion .knopf{width:100%}
.beleg{border-top:1px solid var(--linie);background:var(--nebel);padding:1.1rem 1.25rem;font-size:.97rem}
.beleg dl{display:grid;grid-template-columns:1fr auto;gap:.5rem 1.1rem;max-width:36rem}
.beleg dt{color:var(--grau2)} .beleg dd{text-align:right;font-weight:600}
.beleg .summe{border-top:1px solid var(--linie);padding-top:.55rem;margin-top:.25rem;font-weight:800;color:var(--tief)}
.empfehlung-text{border-top:1px solid var(--linie);background:var(--gruen-hell);padding:1rem 1.25rem;font-size:.98rem}

/* -------- Sortierleiste über der Liste -------- */
.sortierleiste{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;padding:.6rem .85rem;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);box-shadow:var(--schatten-s)}
.sortier-text{font-size:.92rem;color:var(--grau2);margin-right:.35rem}
.sortier-knopf{display:inline-flex;align-items:center;min-height:2.3rem;padding:.35rem .85rem;border-radius:999px;border:1.5px solid var(--linie);background:#fff;color:var(--grau2);font-size:.9rem;font-weight:600;text-decoration:none;transition:all .15s}
.sortier-knopf:hover{border-color:#B9CBDD;color:var(--tief)}
.sortier-knopf.aktiv{background:var(--tief);border-color:var(--tief);color:#fff}
@media(max-width:47.9rem){.sortierleiste{padding:.6rem .7rem}.sortier-text{flex:1 1 100%}}

/* -------- Bonus, Partner-Marke, Kundenbereich -------- */
.bonus-badge{display:inline-block;margin-top:.4rem;background:var(--signal);color:var(--signal-text);font-weight:700;font-size:.85rem;border-radius:999px;padding:.2rem .7rem}
.beleg .zwischensumme{border-top:1px solid var(--linie);padding-top:.5rem;color:var(--grau2)}
.bonus-zeile{background:#FFF8E6;border:1px solid #F3DFA8;border-radius:12px;padding:.85rem 1rem;margin:.9rem 0;font-size:.97rem}
/* Partner-Marke im Kopf: eigenes Schild rechts neben unserer Marke - Vorspann klein, Logo darunter.
   Negativfassungen (weiße Schrift) stehen auf dunklem Feld. Wird ausgeblendet, wenn der Platz nicht reicht. */
.partner-marke{display:none;flex:none;flex-direction:column;justify-content:center;gap:.2rem;
  margin-left:.9rem;padding-left:.9rem;border-left:1px solid var(--linie);
  font-size:.7rem;line-height:1.15;color:var(--grau);max-width:10rem}
.partner-text{display:block;max-width:8.6rem;font-size:.68rem}
.partner-logo{height:22px;width:auto;max-width:118px;object-fit:contain;object-position:left center;display:block}
.partner-logo-link{display:block;line-height:0}
.partner-name{color:var(--tief);font-size:.95rem;line-height:1.1}
.partner-marke.partner-dunkel{background:var(--tief);border-left:0;border-radius:12px;padding:.45rem .8rem;color:#B8C2DE;margin-left:1rem}
.partner-marke.partner-dunkel .partner-logo{height:20px}
@media(min-width:76rem){.partner-marke{display:inline-flex}}
/* Zwischen 66rem und 92rem ist der Platz knapp: Telefonknopf ausblenden, die Nummer steht bereits im Band darüber. */
/* Enger Bereich: Telefonknopf ausblenden, die Nummer steht bereits im Band darüber - so bleibt "Anmelden" sichtbar. */
@media(min-width:66rem) and (max-width:75.9rem){.tel-knopf{display:none}}
/* Portale mit Partnerschild: Telefonknopf im Kopf entfällt - die Nummer steht bereits im Band darüber. */
@media(min-width:66rem){body:has(.partner-marke) .tel-knopf{display:none}}
@media(max-width:75.9rem){.mobilmenue .partner-marke{display:inline-flex;margin:0 0 1.1rem;padding-left:0;border-left:0}}
.konto-knopf{display:none;white-space:nowrap;align-items:center;gap:.45rem;margin-left:.75rem;padding:.6rem .9rem;border:1.5px solid var(--linie);border-radius:var(--r-s);color:var(--tief);text-decoration:none;font-weight:700;font-size:.94rem}
.konto-knopf:hover{border-color:#B9CBDD;color:var(--primaer)}
@media(min-width:48rem){.konto-knopf{display:inline-flex}}
.konto-kopf{justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.vertrag{margin-bottom:1rem}
.vertrag-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.vertrag-status{font-size:.85rem;font-weight:700;border-radius:999px;padding:.3rem .8rem;background:var(--nebel2);color:var(--grau2);white-space:nowrap}
.vertrag-status.stufe-2{background:var(--primaer-hell);color:var(--primaer)}
.vertrag-status.stufe-3{background:var(--gruen-hell);color:var(--gruen)}
.vertrag-status.stufe-0{background:var(--rot-hell);color:var(--rot)}
.vertrag-merkmale{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin:1rem 0}
.vertrag-details{margin:.5rem 0}
.vertrag-details summary{cursor:pointer;font-weight:600;color:var(--primaer);padding:.4rem 0}
.beleg-liste{display:grid;gap:.4rem 1.2rem;margin-top:.6rem;font-size:.95rem}
.beleg-liste div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--linie);padding-bottom:.35rem}
.beleg-liste dt{color:var(--grau)} .beleg-liste dd{font-weight:600;text-align:right}

/* -------- Bewertung je Tarif -------- */
.tarif-bewertung{border-top:1px solid var(--linie);padding:.9rem 1.25rem;display:grid;gap:.5rem;font-size:.93rem;background:#fff}
@media(min-width:55rem){.tarif-bewertung{grid-template-columns:1fr 1fr;gap:.5rem 1.5rem}}
.gruende li,.hinweise li{display:flex;gap:.5rem;align-items:flex-start;line-height:1.45;padding:.15rem 0}
.gruende li::before{content:"✓";color:var(--gruen);font-weight:800;flex:none}
.hinweise li::before{content:"!";color:#B7791F;font-weight:800;flex:none;width:.9rem;text-align:center}
.hinweise li{color:var(--grau2)}
.chips-titel{font-size:.85rem;font-weight:700;color:var(--grau);margin-right:.25rem;align-self:center}

/* -------- Rückruf-Zeitfenster -------- */
.fenster-tage{display:grid;gap:.6rem}
.fenster-tag{display:grid;gap:.4rem;padding:.7rem .9rem;border:1px solid var(--linie);border-radius:12px;background:var(--nebel)}
@media(min-width:48rem){.fenster-tag{grid-template-columns:9.5rem 1fr;align-items:center}}
.fenster-datum{font-weight:700;color:var(--tief);font-size:.95rem}
.fenster-liste{display:flex;flex-wrap:wrap;gap:.4rem}
.fenster-liste .chip{padding:.4rem .8rem;min-height:2.4rem;font-size:.9rem}
.chip:has(input:disabled){opacity:.45;cursor:not-allowed}

.partner-hinweis-gross{display:inline-flex;align-items:center;gap:.7rem;margin:0 0 1rem;font-size:.85rem;color:var(--grau)}
.partner-hinweis-gross img{height:26px;width:auto;max-width:150px;object-fit:contain}
.partner-hinweis-gross.partner-dunkel{background:var(--tief);color:#B8C2DE;border-radius:12px;padding:.5rem .9rem}

/* -------- Infoseite geschlossener Portale -------- */
.info-held{background:var(--held-verlauf,linear-gradient(135deg,#171A3A,#4338CA));color:#fff;padding-block:clamp(3rem,9vw,6rem);position:relative;overflow:hidden}
.info-held::after{content:"";position:absolute;inset:auto -12% -55% auto;width:48rem;height:48rem;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgb(255 176 32 / .25),transparent 62%);pointer-events:none}
.info-held-innen{position:relative;z-index:1;max-width:52rem}
.info-held h1,.info-held h2{color:#fff}
.info-held h1{font-size:clamp(2rem,5.2vw,3.4rem);line-height:1.08;letter-spacing:-.025em;margin:.9rem 0 1rem}
.info-vorspann{font-size:clamp(1.02rem,2vw,1.2rem);color:#DCE3F7;max-width:44ch}
.info-knoepfe{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.info-siegel{margin-top:1.4rem;font-size:.92rem;color:#DCE3F7}
.info-siegel strong{color:var(--signal)}
.info-vorteile{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.info-vorteile li{display:block;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.2rem 1.3rem;box-shadow:var(--schatten-s)}
.info-vorteile strong{display:block;color:var(--tief);margin-bottom:.35rem}
.info-vorteile span{color:var(--grau);font-size:.95rem;line-height:1.55}
.info-band{background:var(--nebel);padding-block:clamp(2.4rem,6vw,4rem)}
.info-schritte{margin-top:1.4rem}
.info-hinweis{margin-top:1.4rem;font-size:.95rem;color:var(--grau)}

.info-fakten{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1rem 1.6rem;margin:2rem 0 0;padding:1.4rem 0 0;border-top:1px solid rgb(255 255 255 / .18);max-width:46rem}
.info-fakten strong{display:block;color:#fff;font-size:1.02rem;letter-spacing:-.01em}
.info-fakten span{color:#C3CCEA;font-size:.86rem;line-height:1.35}
.info-gegen{display:grid;gap:1rem;margin-top:1.4rem}
@media(min-width:48rem){.info-gegen{grid-template-columns:1fr 1fr;gap:1.4rem}}
.info-gegen-spalte{border-radius:var(--r-m);padding:1.3rem 1.4rem;border:1px solid var(--linie);background:#fff}
.info-gegen-titel{font-weight:800;margin:0 0 .7rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em}
.info-gegen-spalte ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.info-gegen-spalte li{position:relative;padding-left:1.6rem;color:var(--grau2);line-height:1.5}
.info-gegen-spalte li::before{position:absolute;left:0;top:-.05rem;font-weight:800}
.info-gegen-schlecht{background:var(--nebel)}
.info-gegen-schlecht .info-gegen-titel{color:var(--grau)}
.info-gegen-schlecht li::before{content:"×";color:var(--rot);font-size:1.15rem}
.info-gegen-gut{border-color:#BFE3D0;box-shadow:var(--schatten-s)}
.info-gegen-gut .info-gegen-titel{color:var(--gruen)}
.info-gegen-gut li::before{content:"✓";color:var(--gruen)}
.info-gegen-gut em{font-style:normal;font-weight:700;color:var(--tief)}

.zugang-hinweis{background:var(--primaer-hell);border:1px solid #C9DCF3;border-radius:var(--r-s);padding:.9rem 1.1rem;margin-bottom:.4rem}
.zugang-hinweis p{margin:0;font-size:.94rem;line-height:1.55;color:var(--grau2)}

/* -------- Lange Texte: Inhaltsverzeichnis in der Seitenspalte -------- */
.text-raster{display:grid;gap:1.6rem}
@media(min-width:62rem){.text-raster{grid-template-columns:17rem minmax(0,1fr);gap:3rem;align-items:start}}
.text-verzeichnis{background:var(--nebel);border:1px solid var(--linie);border-radius:var(--r-m);padding:1.2rem 1.3rem}
@media(min-width:62rem){.text-verzeichnis{position:sticky;top:6rem;max-height:calc(100vh - 8rem);overflow:auto}}
.text-verzeichnis-titel{margin:0 0 .7rem;font-weight:800;color:var(--tief);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}
.text-verzeichnis ol{list-style:none;margin:0;padding:0;counter-reset:tv;display:grid;gap:.45rem}
.text-verzeichnis li{counter-increment:tv;font-size:.92rem;line-height:1.4}
.text-verzeichnis a{color:var(--grau2);text-decoration:none;display:block;padding-left:1.5rem;position:relative}
.text-verzeichnis a::before{content:counter(tv) ".";position:absolute;left:0;color:var(--grau);font-variant-numeric:tabular-nums}
.text-verzeichnis a:hover{color:var(--primaer)}
.text-stand{margin:1rem 0 0;padding-top:.8rem;border-top:1px solid var(--linie);font-size:.82rem;color:var(--grau)}
.text-inhalt{max-width:76ch}
.text-inhalt h2{scroll-margin-top:6rem}
@media(min-width:62rem){.text-raster .fliesstext{max-width:none}.text-raster .fliesstext>*{max-width:76ch}}

/* Straße und Hausnummer nebeneinander - so, wie man eine Adresse schreibt */
.feld-paar{display:grid;grid-template-columns:1fr 6.5rem;gap:.5rem}
.feld-hausnummer{text-align:left}
@media(max-width:30rem){.feld-paar{grid-template-columns:1fr 5rem}}

.stimme-antwort{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--linie);font-size:.92rem;color:var(--grau2)}
.stimme-antwort p{margin:0;line-height:1.55}

/* -------- Ortsabfrage vor der Tarifsuche (Dialog) -------- */
.ortdialog{position:fixed;inset:0;z-index:70;background:rgb(11 46 79 / .55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1.25rem}
.ortdialog-karte{position:relative;background:#fff;border-radius:var(--r-l);padding:1.6rem 1.6rem 1.3rem;max-width:34rem;width:100%;box-shadow:var(--schatten-l);text-align:left}
.ortdialog-karte h2{margin:0 0 .5rem;font-size:1.3rem}
.ortdialog-karte p{margin:0 0 .9rem;color:var(--grau)}
.ortdialog-liste{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:.9rem}
.ortdialog-liste .knopf{min-width:9rem;justify-content:center}
.ortdialog-zu{position:absolute;top:.6rem;right:.7rem;width:2.2rem;height:2.2rem;border:0;background:transparent;font-size:1.5rem;line-height:1;color:var(--grau);cursor:pointer;border-radius:50%}
.ortdialog-zu:hover{background:var(--nebel);color:var(--tief)}

/* -------- Ortsauswahl bei mehrdeutiger Postleitzahl -------- */
.ortwahl-liste{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 .6rem;padding:0}
.ortwahl-liste .knopf{min-width:10rem;justify-content:center}

/* -------- Auftragsstatus -------- */
.status-stufen{display:grid;gap:.6rem;margin:1.25rem 0}
@media(min-width:48rem){.status-stufen{grid-template-columns:repeat(4,1fr);gap:.75rem}}
.status-stufen li{display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--linie);border-radius:12px;font-weight:600;color:var(--grau);background:#fff}
.status-stufen span{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--nebel2);color:var(--grau);font-size:.85rem;flex:none}
.status-stufen .erledigt{color:var(--tief);border-color:#BFE3D0}
.status-stufen .erledigt span{background:var(--gruen);color:#fff}
.status-stufen .aktiv{border-color:var(--primaer);box-shadow:0 0 0 3px rgb(21 85 143 / .12)}
.status-stufen .beendet{opacity:.55}

/* -------- Ladeanzeige -------- */
.laden{position:fixed;inset:0;z-index:60;background:rgb(11 46 79 / .55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1.25rem}
.laden[hidden]{display:none!important}
.laden-karte{background:#fff;border-radius:var(--r-l);padding:2rem 1.75rem;max-width:26rem;width:100%;text-align:center;box-shadow:var(--schatten-l)}
.laden-spinner{width:3.2rem;height:3.2rem;border-radius:50%;border:5px solid var(--nebel2);border-top-color:var(--primaer);margin:0 auto 1rem;animation:drehen .9s linear infinite}
.laden-titel{font-weight:800;color:var(--tief);font-size:1.15rem}
.laden-schritt{margin-top:.35rem;color:var(--grau2);font-size:.98rem;min-height:1.5rem}
.laden-balken{height:.55rem;background:var(--nebel2);border-radius:999px;overflow:hidden;margin:1rem 0 .75rem}
.laden-balken span{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--primaer),var(--signal));border-radius:999px;animation:laufen 1.6s ease-in-out infinite}
.laden-hinweis{font-size:.85rem;color:var(--grau)}
body.laedt{overflow:hidden}
@keyframes drehen{to{transform:rotate(360deg)}}
@keyframes laufen{0%{transform:translateX(-120%)}100%{transform:translateX(280%)}}

/* -------- Preisleiter -------- */
.preisleiter{margin-top:1.4rem;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.35rem;max-width:44rem}
.balken-zeile+.balken-zeile{margin-top:1rem}
.balken-zeile p{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.4rem;font-size:.97rem}
.spur{height:1.7rem;background:#E7EEF7;border-radius:6px;overflow:hidden}
.balken{height:100%;background:var(--gruen);border-radius:6px}
.balken.voll{width:100%;background:var(--grau)}
.leiter-fuss{margin-top:.75rem;font-size:.88rem;color:var(--grau)}

/* -------- Raster, Kacheln, Stimmen, Karten -------- */
.raster{display:grid;gap:1rem;margin-top:1.5rem}
@media(min-width:48rem){.raster.drei{grid-template-columns:repeat(3,1fr)}.raster.zwei{grid-template-columns:repeat(2,1fr)}.raster.vier{grid-template-columns:repeat(2,1fr)}}
@media(min-width:60rem){.raster.vier{grid-template-columns:repeat(4,1fr)}}
.kachel{border:1px solid var(--linie);border-radius:var(--r-m);padding:1.2rem 1.25rem;background:#fff;text-decoration:none;color:var(--tief);display:block;transition:border-color .15s,box-shadow .15s,transform .15s}
.kachel h3{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.kachel h3::after{content:"→";color:var(--primaer);font-weight:400}
.kachel p{font-size:.92rem;color:var(--grau);margin-top:.25rem}
.kachel:hover{border-color:#B9CBDD;box-shadow:var(--schatten-m);transform:translateY(-2px)}
.stimme{background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.35rem;box-shadow:var(--schatten-s)}
.stimme .sterne{font-size:1.05rem}
.stimme blockquote{margin:0}
.stimme blockquote p{margin:.6rem 0 .9rem;color:var(--text)}
.stimme figcaption{font-size:.9rem;color:var(--grau)}
.karte{background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.5rem;box-shadow:var(--schatten-s)}
fieldset{min-width:0;border:0}
.karte legend{float:left;width:100%;padding:0;margin-bottom:.4rem}
.karte legend+*{clear:both}
.karte legend h2{font-size:1.3rem;display:flex;align-items:center;gap:.6rem}
.karten-hinweis{font-size:.95rem;color:var(--grau);margin-bottom:1.1rem}
.karte-akzent{display:grid;gap:1rem;align-items:center;background:linear-gradient(120deg,var(--primaer-hell),#fff);border-color:#C9DBEE}
@media(min-width:48rem){.karte-akzent{grid-template-columns:1fr auto;gap:2rem}}
.karte-akzent h2{font-size:1.35rem;margin-bottom:.35rem}
.karte-akzent p{color:var(--grau2);font-size:1rem}

/* -------- FAQ -------- */
.faq-block h2{margin-bottom:.25rem}
.faq{border-top:1px solid var(--linie);margin-top:1.25rem}
.faq-eintrag{border-bottom:1px solid var(--linie)}
.faq-frage{width:100%;background:none;border:0;font:inherit;font-size:1.06rem;font-weight:700;text-align:left;color:var(--tief);padding:1.05rem 2.6rem 1.05rem 0;cursor:pointer;position:relative;min-height:3.4rem}
.faq-frage::after{content:"";position:absolute;right:.5rem;top:50%;width:.6rem;height:.6rem;border-right:2px solid var(--primaer);border-bottom:2px solid var(--primaer);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq-frage[aria-expanded="true"]::after{transform:translateY(-30%) rotate(-135deg)}
.faq-antwort{padding-bottom:1.25rem;font-size:1rem;color:var(--grau2);max-width:70ch}

/* -------- Auftrag / Kontakt -------- */
.auftrag-raster{display:grid;gap:1.4rem}
@media(min-width:62rem){.auftrag-raster{grid-template-columns:1.35fr .65fr;gap:2.2rem;align-items:start}}
.auftrag-spalte{display:grid;gap:1.25rem}
.auftrag-seitenspalte{display:grid;gap:1rem}
@media(min-width:62rem){.auftrag-seitenspalte{position:sticky;top:5.5rem}}
.zusammenfassung{background:var(--nebel);border-radius:var(--r-m);padding:1.25rem;border:1px solid var(--linie)}
.zusammenfassung h2{font-size:1.15rem;margin-bottom:.5rem}
.zusammenfassung dl div{display:flex;justify-content:space-between;gap:.9rem;padding:.35rem 0;font-size:.97rem}
.zusammenfassung dt{color:var(--grau)} .zusammenfassung dd{font-weight:700;text-align:right}
.zusammenfassung .gross{border-top:1px solid var(--linie);margin-top:.5rem;padding-top:.75rem;font-size:1.12rem}
.sicherheitsliste{background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1.15rem 1.25rem;display:grid;gap:.5rem;font-size:.95rem;color:var(--grau2)}
.sicherheitsliste li::before{content:"✓";color:var(--gruen);font-weight:800;margin-right:.5rem}
.hinweis{background:var(--nebel);border-left:4px solid var(--primaer);border-radius:0 var(--r-s) var(--r-s) 0;padding:1.05rem 1.25rem;margin-block:1rem}
.hinweis.klein{font-size:.92rem;color:var(--grau2)}
.hinweis.fehler{border-color:var(--rot);background:var(--rot-hell)}
.hinweis.erfolgreich{border-color:var(--gruen);background:var(--gruen-hell)}
.erfolg{text-align:center;padding:2.5rem 1.5rem;border:1px solid #B7D4C7;background:var(--gruen-hell);border-radius:var(--r-l);margin-bottom:1.4rem}
.erfolg-haken{width:4rem;height:4rem;border-radius:50%;background:var(--gruen);color:#fff;display:grid;place-items:center;margin:0 auto 1rem;font-size:1.8rem}
.erfolg-nummer{margin-top:.6rem;color:var(--grau2)}
.ergebnis-filter{margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:end;background:#fff;border:1px solid var(--linie);border-radius:var(--r-m);padding:1rem;box-shadow:var(--schatten-s)}
.ergebnis-filter .feld{min-width:9rem;flex:1 1 9rem}
.ergebnis-filter .knopf{flex:1 1 100%}
@media(min-width:48rem){.ergebnis-filter .knopf{flex:0 0 auto}}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;border:0;flex:1 1 100%}
.chip{display:flex;align-items:center;gap:.5rem;border:1.5px solid var(--linie);background:#fff;border-radius:999px;padding:.55rem 1rem;font-size:.92rem;font-weight:600;cursor:pointer;min-height:2.8rem;color:var(--grau2)}
.chip:has(input:checked){border-color:var(--tief);background:var(--tief);color:#fff}
.chip input{width:1.05rem;height:1.05rem;min-height:0;accent-color:var(--tief)}
.orte-suche{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;background:var(--nebel);border:1px solid var(--linie);border-radius:var(--r-m);padding:1rem}
.orte-suche label{flex:1 1 100%}
.orte-suche input{flex:1 1 12rem;max-width:16rem}

/* -------- Berater -------- */
.portraet{display:inline-block;width:3.9rem;height:3.9rem;border-radius:50%;flex:none;position:relative;object-fit:cover;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Ccircle cx='12' cy='8.5' r='4'/%3E%3Cpath d='M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1z'/%3E%3C/svg%3E") center/58% no-repeat, linear-gradient(135deg,#B8CCE2,#8FAAC9)}
.portraet.klein{width:2.6rem;height:2.6rem}
img.portraet{object-fit:cover;background-size:cover}
.portraet::after{content:"";position:absolute;right:.05rem;bottom:.1rem;width:.85rem;height:.85rem;border-radius:50%;background:var(--gruen);border:2.5px solid #fff}
img.portraet::after{display:none}
.berater-karte{border:1px solid var(--linie);border-radius:var(--r-m);padding:1.25rem;display:grid;gap:.8rem;background:#fff;box-shadow:var(--schatten-s)}
.berater-kopf{display:flex;gap:.85rem;align-items:center}
.berater-name{font-weight:800;color:var(--tief)} .berater-rolle{font-size:.92rem;color:var(--grau)}
.berater-zitat{font-size:.98rem;color:var(--text);font-style:italic}
.berater-streifen{background:var(--nebel);border-block:1px solid var(--linie);padding-block:1.6rem}
.streifen-innen{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.streifen-text{flex:1;min-width:16rem}
.streifen-titel{font-weight:800;font-size:1.08rem;color:var(--tief)}
.team .berater-karte{align-content:start}

/* -------- Fuß -------- */
.fuss{background:var(--tief);color:#A8BCCE;padding-block:2.8rem 2.4rem;font-size:1rem}
.fuss a{color:#fff;text-decoration:none}
.fuss a:hover{text-decoration:underline;color:#fff}
.fuss-raster{display:grid;gap:1.6rem}
@media(min-width:52rem){.fuss-raster{grid-template-columns:1.6fr 1fr 1fr 1fr}}
.fuss-logo{display:flex;align-items:center;gap:.6rem;color:#fff;font-weight:800;font-size:1.15rem;letter-spacing:-.03em;margin-bottom:.8rem}
.fuss-adresse{font-size:.97rem}
.fuss .fuss-siegel{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.fuss-siegel li{font-size:.78rem;font-weight:600;color:#DCE7F1;background:rgb(255 255 255 / .09);border:1px solid rgb(255 255 255 / .16);border-radius:999px;padding:.2rem .6rem;white-space:nowrap}
.fuss-titel{color:#fff;font-size:1rem;margin-bottom:.7rem}
.fuss ul{display:grid;gap:.45rem}
.fuss-unten{border-top:1px solid rgb(255 255 255 / .16);margin-top:1.9rem;padding-top:1.25rem;font-size:.86rem;color:#8FA6BC;max-width:none;line-height:1.6}
.fuss-unten a{text-decoration:underline}
.linkliste{display:grid;gap:.5rem;margin:1rem 0}

/* -------- Mobile Schnellleiste -------- */
.mobil-leiste{display:none}
@media(max-width:47.9rem){
  body{padding-bottom:calc(4.4rem + env(safe-area-inset-bottom))}
  .mobil-leiste{display:grid;grid-template-columns:1fr 1.4fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:45;padding:.6rem .75rem;
    background:rgb(255 255 255 / .96);backdrop-filter:blur(10px);border-top:1px solid var(--linie);box-shadow:0 -10px 30px -20px rgb(11 46 79 / .5)}
  .mobil-leiste a{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:3rem;border-radius:12px;font-weight:700;text-decoration:none;font-size:.98rem}
  .mobil-leiste-tel{background:var(--tief);color:#fff}
  .mobil-leiste-vergleich{background:var(--signal);color:var(--signal-text)}
  @supports (-webkit-touch-callout: none){.mobil-leiste{padding-bottom:max(.6rem, env(safe-area-inset-bottom))}}  /* nur iOS: Home-Indikator */
  .held-kicker{font-size:.74rem;letter-spacing:.04em}
}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.band,.kopf,.berater-streifen,.arten,.rechner,.mobil-leiste,.fortschritt{display:none}.tarif{break-inside:avoid}}
