:root{
  --paper:#F4F2EC;
  --card:#FFFFFF;
  --sunk:#EAE7DE;
  --ink:#141D1C;
  --muted:#576664;
  --line:#DFDACE;
  --line-strong:#C6BFAE;
  --petrol:#0B4F4A;
  --petrol-hover:#073A36;
  --petrol-soft:#E2EDEB;
  --gold:#8F6410;
  --gold-soft:#F6EEDA;
  --focus:#0B4F4A;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:Sora,"Libre Franklin",sans-serif;letter-spacing:-.025em;text-wrap:balance;margin:0}
h1{font-size:clamp(1.85rem,5.4vw,3.7rem);line-height:1.06;font-weight:700}
h2{font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.12;font-weight:700}
h3{font-size:1.1rem;font-weight:600;line-height:1.3}
p{margin:0}
a{color:var(--petrol)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}

.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--petrol);margin:0}

/* ---------- Hinweisleiste ---------- */
.notice{background:var(--gold-soft);border-bottom:1px solid var(--line-strong);font-size:.83rem;color:#5E4A16}
.notice .wrap{padding-block:.6rem}

/* ---------- Kopf ---------- */
.topbar{border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.05rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:Sora,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:1.05rem;min-height:44px}
.brand svg{flex:none}
.topbar a.jump{font-size:.95rem;font-weight:500;color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding-inline:.35rem}
.topbar a.jump:hover{color:var(--ink)}

/* ---------- Hero ---------- */
.hero{padding-block:clamp(1rem,3vw,5rem) clamp(2rem,5vw,4.5rem)}
.hero-grid{
  display:grid;grid-template-columns:1fr;align-items:center;
  gap:clamp(.85rem,3vw,2rem);
  grid-template-areas:"kopf" "bild" "angebot";
}
@media(min-width:900px){
  .hero-grid{
    grid-template-columns:1.32fr 1fr;
    column-gap:clamp(2rem,5vw,3.5rem);row-gap:1.75rem;
    grid-template-areas:"kopf bild" "angebot bild";
  }
}
.hero-kopf{grid-area:kopf}
.buehne{grid-area:bild}
.hero-angebot{grid-area:angebot}
.hero p.lede{font-size:clamp(1rem,1.9vw,1.24rem);color:var(--muted);max-width:46ch;margin-top:.7rem}
.hero .price-line{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem;margin-top:0;
  font-family:Sora,sans-serif;
}
.hero .price-line .big{font-size:clamp(2.1rem,4.6vw,2.9rem);font-weight:700;letter-spacing:-.03em;line-height:1}
.hero .price-line .per{font-size:1rem;color:var(--muted);font-family:"Libre Franklin",sans-serif}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.15rem;align-items:center}
.hero .cta-row .btn{flex:1 1 auto;min-width:11rem}
@media(min-width:560px){.hero .cta-row .btn{flex:0 0 auto}}
.btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;
  padding:.85rem 1.65rem;font:600 1rem/1 "Libre Franklin",sans-serif;
  border:1px solid transparent;cursor:pointer;text-decoration:none;
  transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s,background-color .2s;
}
.btn-primary{background:var(--petrol);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
@media(hover:hover){
  .btn-primary:hover{background:var(--petrol-hover);transform:translateY(-2px);box-shadow:0 6px 16px rgba(11,79,74,.22)}
  .btn-ghost:hover{border-color:var(--ink)}
}
.hero .reassure{margin-top:.9rem;font-size:.9rem;color:var(--muted)}
.hero .reassure strong{color:var(--ink);font-weight:600}
.hero .lz-hinweis{margin-top:.3rem;font-size:.88rem}
.hero .lz-hinweis a{display:inline-block;min-height:44px;line-height:44px}
.hero-shot{position:relative}
/* Produktfotos haben weissen Hintergrund: multiply loest ihn im warmen Papier auf */
.hero-shot img{width:100%;max-width:460px;margin-inline:auto;mix-blend-mode:multiply}
@media(min-width:900px){.hero-shot img{max-width:none;transform:translateX(6%) scale(1.1)}}

/* ---------- Siegel im Hero: nur nachpruefbare Aussagen, keine erfundenen Bewertungen ---------- */
.siegel{list-style:none;margin:1.35rem 0 0;padding:0;display:grid;gap:.7rem .9rem;grid-template-columns:1fr}
@media(min-width:520px){.siegel{grid-template-columns:1fr 1fr}}
.siegel li{display:grid;grid-template-columns:auto 1fr;gap:.55rem;align-items:start;color:var(--petrol)}
.siegel svg{margin-top:.15rem;flex:none}
.siegel span{font-size:.84rem;color:var(--muted);line-height:1.4}
.siegel b{display:block;color:var(--ink);font-weight:600;font-size:.89rem}

/* ---------- Vertrauensleiste ---------- */
.trust{background:var(--card);border-block:1px solid var(--line)}
.trust .wrap{display:grid;gap:1.4rem;grid-template-columns:1fr;padding-block:1.6rem}
@media(min-width:640px){.trust .wrap{grid-template-columns:repeat(3,1fr)}}
.trust-item{display:flex;gap:.85rem;align-items:baseline}
.trust-item .zahl{
  font-family:Sora,sans-serif;font-weight:700;font-size:clamp(1.4rem,3vw,1.75rem);
  letter-spacing:-.03em;color:var(--petrol);white-space:nowrap;flex:none;
  font-variant-numeric:tabular-nums;
}
.trust-item b{font-weight:600;display:block;font-size:.97rem}
.trust-item span{font-size:.86rem;color:var(--muted);display:block;margin-top:.15rem}

/* ---------- Sections ---------- */
section.block{padding-block:clamp(3rem,7vw,5rem)}
.sec-head{margin-bottom:clamp(1.75rem,4vw,2.5rem);max-width:62ch}
.sec-head p.sub{color:var(--muted);margin-top:.85rem}

/* ---------- Ablauf (echte Sequenz) ---------- */
.steps{display:grid;gap:0;grid-template-columns:1fr}
@media(min-width:780px){.steps{grid-template-columns:repeat(3,1fr)}}
.step{padding:1.5rem 0;border-top:2px solid var(--petrol)}
@media(min-width:780px){.step{padding:1.5rem 2rem 0 0}}
.step .n{font-family:Sora,sans-serif;font-weight:700;font-size:.85rem;color:var(--petrol);letter-spacing:.02em}
.step h3{margin:.5rem 0 .45rem}
.step p{color:var(--muted);font-size:.95rem;max-width:34ch}

/* ---------- Konfigurator ---------- */
.config{background:var(--card);border:1px solid var(--line-strong)}
.config-grid{display:grid;grid-template-columns:1fr}
@media(min-width:880px){.config-grid{grid-template-columns:1.25fr 1fr}}
/* Eine durchgehende weisse Flaeche mit Haarlinien zwischen den Posten.
   Frueher lag hier ein 1px-Gap auf grauem Grund — das liess den grauen Container
   rund um die weissen Kacheln durchscheinen. */
.config-items{padding:clamp(1.4rem,3vw,2.1rem);display:flex;flex-direction:column;background:var(--card)}
.item{background:transparent;padding:1.35rem 0;display:grid;grid-template-columns:auto 1fr auto;gap:1rem 1.15rem;align-items:start}
.config-items > .item{border-bottom:1px solid var(--line)}
.config-items > .item:first-child{padding-top:0}
.config-items > .item:last-child{padding-bottom:0;border-bottom:none}
.item .thumb{width:74px;height:74px;background:var(--sunk);display:grid;place-items:center;flex:none}
.item .thumb img{width:100%;height:100%;object-fit:contain;padding:4px;mix-blend-mode:multiply}
.item .body h3{margin-bottom:.2rem}
.item .body p{font-size:.9rem;color:var(--muted);max-width:40ch}
.item .body .fixed{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:.5rem;display:block}
.item .amount{font-family:Sora,sans-serif;font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.item .amount small{display:block;font-family:"Libre Franklin",sans-serif;font-weight:400;font-size:.8rem;color:var(--muted);margin-top:.15rem}

.toggle{display:flex;align-items:center;gap:.7rem;margin-top:.85rem;cursor:pointer;user-select:none;min-height:44px}
.toggle input{width:22px;height:22px;accent-color:var(--petrol);cursor:pointer;flex:none}
.toggle span{font-size:.92rem;font-weight:500}

.summary{background:var(--petrol);color:#fff;padding:clamp(1.4rem,3vw,2.1rem);display:flex;flex-direction:column;gap:1.15rem}
.summary .line{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem;align-items:baseline}
.summary .line .v{font-family:Sora,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.summary hr{border:none;border-top:1px solid rgba(255,255,255,.25);margin:0}
.summary .total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.summary .total .k{font-size:.95rem}
.summary .total .v{font-family:Sora,sans-serif;font-weight:700;font-size:1.75rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.summary .btn-primary{background:#fff;color:var(--petrol);width:100%}
@media(hover:hover){.summary .btn-primary:hover{background:var(--gold-soft);box-shadow:none}}
.summary .fine{font-size:.82rem;color:rgba(255,255,255,.78);line-height:1.5}

/* ---------- Gerät ---------- */
.device{display:grid;gap:clamp(1.75rem,4vw,3rem);grid-template-columns:1fr;align-items:center}
@media(min-width:860px){.device{grid-template-columns:1fr 1.15fr}}
.device-figs{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr}
.device-figs figure{margin:0;background:var(--card)}
.device-figs img{aspect-ratio:1/1;object-fit:contain;padding:.5rem}
.device-figs figcaption{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600;color:var(--muted);padding:.5rem .8rem .75rem;border-top:1px solid var(--line)}
ul.facts{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}
ul.facts li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:baseline;font-size:.97rem}
ul.facts svg{margin-top:.35rem}
ul.facts b{font-weight:600}
ul.facts span{color:var(--muted)}

/* ---------- Daten ---------- */
.specs{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:1fr}
@media(min-width:620px){.specs{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.specs{grid-template-columns:repeat(4,1fr)}}
.specs div{background:var(--card);padding:1.05rem 1.15rem}
.specs dt{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.specs dd{margin:.3rem 0 0;font-family:Sora,sans-serif;font-weight:600;font-size:1.02rem;letter-spacing:-.01em}
.specs dd small{display:block;font-family:"Libre Franklin",sans-serif;font-weight:400;font-size:.83rem;color:var(--muted);margin-top:.2rem;letter-spacing:0}

/* ---------- FAQ ---------- */
.faq{max-width:44rem}
details{border-bottom:1px solid var(--line);padding:.35rem 0}
details summary{
  cursor:pointer;list-style:none;padding:.95rem 2rem .95rem 0;position:relative;
  font-weight:600;font-size:1.02rem;min-height:44px;display:flex;align-items:center;
}
details summary::-webkit-details-marker{display:none}
details summary::after{
  content:"";position:absolute;right:.35rem;top:50%;width:10px;height:10px;
  border-right:2px solid var(--petrol);border-bottom:2px solid var(--petrol);
  transform:translateY(-70%) rotate(45deg);transition:transform .25s cubic-bezier(.16,1,.3,1);
}
details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
details p{padding:0 0 1.1rem;color:var(--muted);max-width:60ch}
details p+p{padding-top:0;margin-top:-.4rem}

/* ---------- Abschluss ---------- */
.closer{background:var(--petrol);color:#fff}
.closer .wrap{padding-block:clamp(2.75rem,6vw,4.25rem);display:grid;gap:1.75rem;grid-template-columns:1fr;align-items:center}
@media(min-width:820px){.closer .wrap{grid-template-columns:1.4fr auto}}
.closer h2{color:#fff}
.closer p{color:rgba(255,255,255,.82);margin-top:.85rem;max-width:48ch}
.closer .btn-primary{background:#fff;color:var(--petrol)}
@media(hover:hover){.closer .btn-primary:hover{background:var(--gold-soft);box-shadow:none}}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);font-size:.87rem;color:var(--muted)}
footer .wrap{padding-block:2.25rem calc(2.25rem + env(safe-area-inset-bottom))}
footer nav{display:flex;flex-wrap:wrap;gap:.2rem 1.1rem;margin-bottom:1.1rem}
footer nav a{color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding-inline:.3rem}
footer nav a:hover{color:var(--ink);text-decoration:underline}
footer p{max-width:74ch}
footer p+p{margin-top:.6rem}

/* ---------- Sticky CTA mobil ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:var(--card);border-top:1px solid var(--line-strong);
  padding:.7rem clamp(1rem,4vw,1.5rem) calc(.7rem + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:1rem;justify-content:space-between;
  transform:translateY(110%);transition:transform .3s cubic-bezier(.16,1,.3,1);
}
.sticky.visible{transform:translateY(0)}
.sticky .p{font-family:Sora,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}
.sticky .p small{display:block;font-family:"Libre Franklin",sans-serif;font-weight:400;font-size:.8rem;color:var(--muted)}
.sticky .btn{min-height:46px;padding:.7rem 1.2rem;font-size:.95rem}
@media(min-width:900px){.sticky{display:none}}
body{padding-bottom:0}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ================================================================
   Erweiterungen fuer Bestellstrecke, Ident und Portal
   ================================================================ */

/* ---------- Hero: Produktbuehne Router + SIM ---------- */
.buehne{position:relative;display:grid;gap:0}
.buehne .haupt{position:relative}
/* Nur das Routerfoto bekommt multiply — die SIM ist eine SVG-Grafik mit eigenen Farben. */
.buehne .haupt img.router{width:100%;max-width:186px;margin-inline:auto;mix-blend-mode:multiply}
@media(min-width:560px){.buehne .haupt img.router{max-width:340px}
  .buehne .haupt img.sim-karte{right:2%;width:min(38%,168px)}}
@media(min-width:900px){.buehne .haupt img.router{max-width:none;transform:translateX(2%)}}
.buehne .haupt img.sim-karte{
  position:absolute;right:6%;bottom:2%;width:min(40%,132px);height:auto;max-width:none;
  margin:0;mix-blend-mode:normal;transform:rotate(-4deg);
  filter:drop-shadow(0 12px 24px rgba(20,29,28,.24));
}
@media(min-width:900px){.buehne .haupt img.sim-karte{right:-3%;bottom:4%;width:min(40%,190px)}}
.paket-label{
  display:inline-flex;align-items:center;gap:.5rem;background:var(--petrol-soft);
  color:var(--petrol);font-size:.78rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;padding:.4rem .7rem;margin-bottom:1rem;
}
.hero-wahl{
  margin-top:1.15rem;border:1px solid var(--line-strong);background:var(--card);
  padding:.7rem .9rem;display:flex;align-items:center;gap:.75rem;max-width:34rem;
}
.hero-wahl label{display:flex;align-items:center;gap:.7rem;cursor:pointer;min-height:44px;flex:1}
.hero-wahl input{width:22px;height:22px;accent-color:var(--petrol);flex:none;cursor:pointer}
.hero-wahl .txt{font-size:.93rem;font-weight:500;line-height:1.35}
.hero-wahl .txt small{display:block;font-weight:400;color:var(--muted);font-size:.83rem}

/* ---------- Fortschritt ---------- */
.fortschritt{display:flex;gap:0;margin-bottom:2.25rem;flex-wrap:wrap}
.fortschritt li{
  list-style:none;flex:1 1 8rem;border-top:3px solid var(--line-strong);
  padding-top:.6rem;font-size:.82rem;color:var(--muted);font-weight:500;
}
.fortschritt li.aktiv{border-color:var(--petrol);color:var(--ink);font-weight:600}
.fortschritt li.fertig{border-color:var(--petrol);color:var(--petrol)}

/* ---------- Formular ---------- */
.formkarte{background:var(--card);border:1px solid var(--line-strong);padding:clamp(1.35rem,3.5vw,2.25rem)}
.feldgruppe{display:grid;gap:1.15rem;grid-template-columns:1fr}
@media(min-width:620px){.feldgruppe.zwei{grid-template-columns:1fr 1fr}
  .feldgruppe.plz-ort{grid-template-columns:8rem 1fr}}
.feld{display:flex;flex-direction:column;gap:.35rem}
.feld label{font-size:.88rem;font-weight:600}
.feld input,.feld select,.feld textarea{
  font:400 16px/1.5 "Libre Franklin",sans-serif;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-strong);padding:.7rem .8rem;min-height:48px;
}
.feld input:focus,.feld textarea:focus{outline:2px solid var(--petrol);outline-offset:1px;border-color:var(--petrol)}
.feld .hinweis{font-size:.8rem;color:var(--muted)}
.feld .fehler{font-size:.83rem;color:#98261C;font-weight:500}
.feld.hat-fehler input{border-color:#98261C}
.check{display:flex;gap:.75rem;align-items:flex-start;cursor:pointer;min-height:44px}
.check input{width:22px;height:22px;accent-color:var(--petrol);flex:none;margin-top:.15rem}
.check span{font-size:.92rem;line-height:1.5}

/* ---------- Warenkorb-Spalte ---------- */
.bestell-grid{display:grid;gap:1.75rem;grid-template-columns:1fr;align-items:start}
@media(min-width:960px){.bestell-grid{grid-template-columns:1.5fr 1fr}
  .bestell-grid .korb{position:sticky;top:1.5rem}}
.korb{background:var(--card);border:1px solid var(--line-strong)}
.korb h2{font-size:1.05rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line);margin:0}
.korb .zeilen{padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}
.korb .z{display:flex;justify-content:space-between;gap:1rem;font-size:.93rem;align-items:baseline}
.korb .z .v{font-family:Sora,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.korb .z.aus{opacity:.5}
.korb .gesamt{border-top:1px solid var(--line);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem}
.korb .gesamt .g{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.korb .gesamt .g .v{font-family:Sora,sans-serif;font-weight:700;font-size:1.35rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

/* ---------- Statusbanner ---------- */
.banner{padding:1.05rem 1.25rem;border:1px solid;font-size:.93rem;line-height:1.55;margin-bottom:1.75rem}
.banner.info{background:var(--petrol-soft);border-color:#B6D2CE;color:#0A3B37}
.banner.warn{background:var(--gold-soft);border-color:#DDCB9C;color:#5E4A16}
.banner.ok{background:#E4F1E6;border-color:#B3D6B9;color:#1B4523}
.banner b{font-weight:600}

/* ---------- Erfolg ---------- */
.erfolg-kopf{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.5rem}
.erfolg-kopf .haken{flex:none;width:44px;height:44px;background:var(--petrol);display:grid;place-items:center}
.daten-liste{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);grid-template-columns:1fr}
@media(min-width:640px){.daten-liste{grid-template-columns:1fr 1fr}}
.daten-liste div{background:var(--card);padding:.9rem 1.1rem}
.daten-liste dt{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.daten-liste dd{margin:.25rem 0 0;font-weight:500}

/* ---------- Portal ---------- */
.portal-kopf{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:baseline;margin-bottom:2rem}
.vertrag{background:var(--card);border:1px solid var(--line-strong);margin-bottom:1.5rem}
.vertrag-kopf{padding:1.25rem 1.35rem;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:baseline}
.pill{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.22rem .55rem;white-space:nowrap}
.pill.aktiv{background:#E4F1E6;color:#1B4523}
.pill.warten{background:var(--gold-soft);color:#5E4A16}
.pill.gekuendigt{background:#F7E3E0;color:#8A2A1E}
.vertrag-koerper{padding:1.25rem 1.35rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:820px){.vertrag-koerper{grid-template-columns:1fr 1fr}}
.rechnungen{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rechnungen li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.rechnungen li:last-child{border-bottom:none}
.rechnungen a{font-weight:500}
.rechnungen .b{font-family:Sora,sans-serif;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.aktionen{display:flex;flex-wrap:wrap;gap:.7rem;padding:0 1.35rem 1.35rem}
.btn-klein{min-height:44px;padding:.6rem 1.1rem;font-size:.92rem}
.btn-gefahr{background:transparent;color:#8A2A1E;border-color:#D9B4AE}
@media(hover:hover){.btn-gefahr:hover{background:#F7E3E0;border-color:#8A2A1E}}
dialog{border:1px solid var(--line-strong);background:var(--card);padding:0;max-width:32rem;width:calc(100% - 2rem)}
dialog::backdrop{background:rgba(20,29,28,.55)}
dialog .inhalt{padding:clamp(1.35rem,4vw,2rem)}
dialog h3{margin-bottom:.7rem}
dialog p{color:var(--muted);font-size:.94rem;margin-bottom:1.25rem}
dialog .knoepfe{display:flex;flex-wrap:wrap;gap:.7rem}

.leer{background:var(--card);border:1px solid var(--line-strong);padding:clamp(1.5rem,4vw,2.5rem);text-align:left}
.mini{font-size:.86rem;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:1rem}
.zeile-knoepfe{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}

/* ---------- Laufzeitwahl ---------- */
.item--breit{grid-template-columns:1fr}
.item--breit .body{max-width:none}
.laufzeit-wahl{display:grid;gap:.7rem;margin-top:.85rem;grid-template-columns:1fr}
@media(min-width:600px){.laufzeit-wahl{grid-template-columns:1fr 1fr}}
.lz{
  display:grid;grid-template-columns:auto 1fr;gap:.65rem .75rem;align-items:start;
  border:1px solid var(--line-strong);padding:.85rem .9rem;cursor:pointer;min-height:44px;
  transition:border-color .2s,background-color .2s;
}
.lz:has(input:checked){border-color:var(--petrol);background:var(--petrol-soft);border-width:2px;padding:calc(.85rem - 1px) calc(.9rem - 1px)}
.lz input{width:20px;height:20px;accent-color:var(--petrol);margin-top:.15rem;cursor:pointer}
.lz-txt{grid-column:2}
.lz-txt b{display:block;font-size:.95rem;font-weight:600;line-height:1.3}
.lz-txt small{display:block;color:var(--muted);font-size:.83rem;margin-top:.2rem;line-height:1.4}
.lz-preis{
  grid-column:2;font-family:Sora,sans-serif;font-weight:700;font-size:1.15rem;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:.35rem;
}
.spar{
  display:inline-block;background:var(--gold-soft);color:var(--gold);font-size:.78rem;
  font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:.1rem .4rem;
  margin-left:.35rem;vertical-align:middle;
}
@media(hover:hover){.lz:hover{border-color:var(--petrol)}}


/* ================================================================
   Mobile-Feinschliff und Conversion
   ================================================================ */

/* Sticky-Leiste: Preis links, Handlung rechts, Daumen erreicht beides */
.sticky .btn{flex:0 0 auto}
@media(max-width:400px){
  .sticky{padding-inline:.9rem}
  .sticky .p{font-size:.95rem}
  .sticky .btn{padding:.7rem .95rem}
}

/* Dialog auf Mobil als Bottom Sheet statt Modal in der Mitte */
@media(max-width:640px){
  dialog{
    width:100%;max-width:none;margin:0;position:fixed;left:0;right:0;bottom:0;top:auto;
    border-left:none;border-right:none;border-bottom:none;
  }
  dialog .inhalt{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}
  dialog .knoepfe{flex-direction:column-reverse}
  dialog .knoepfe .btn{width:100%}
}

/* Formulare: auf Mobil nie zweispaltig, Felder gross genug fuer den Daumen */
@media(max-width:619px){
  .feldgruppe.zwei,.feldgruppe.plz-ort{grid-template-columns:1fr}
  .zeile-knoepfe .btn{width:100%}
  .zeile-knoepfe{flex-direction:column-reverse}
}

/* Fortschritt auf schmalen Schirmen: kurze Beschriftung, drei Spalten */
@media(max-width:520px){
  .fortschritt li{flex:1 1 0;font-size:.76rem;padding-top:.5rem}
}

/* Warenkorb wandert auf Mobil unter die Auswahl und bleibt am Ende sichtbar */
@media(max-width:959px){
  .bestell-grid{grid-template-columns:1fr}
  .korb{order:2}
}

/* Konfigurator auf Mobil: Betrag unter den Text statt in eine dritte Spalte quetschen */
@media(max-width:560px){
  .item{grid-template-columns:auto 1fr}
  .item .amount{grid-column:2;text-align:left;margin-top:.5rem;font-size:1.1rem}
  .item .amount small{display:inline;margin-left:.4rem}
  .item--breit{grid-template-columns:1fr}
}

/* Abstand fuer die Sticky-Leiste, damit der Fuss nicht darunter verschwindet */
@media(max-width:899px){
  footer .wrap{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}
}

/* Vergleich */
.vergleich{border:1px solid var(--line-strong);background:var(--card);overflow-x:auto}
.vergleich table{width:100%;border-collapse:collapse;min-width:20rem;font-variant-numeric:tabular-nums}
.vergleich th,.vergleich td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--line);font-size:.93rem}
.vergleich thead th{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line-strong)}
.vergleich td.n,.vergleich th.n{text-align:right;white-space:nowrap}
.vergleich tbody tr:last-child td{border-bottom:none}
.vergleich tr.wir{background:var(--petrol-soft)}
.vergleich tr.wir td{font-weight:600}
.vergleich tr.wir td:first-child::before{content:"";display:inline-block;width:8px;height:8px;background:var(--petrol);margin-right:.5rem;vertical-align:middle}


/* Auf schmalen Schirmen zaehlt jeder Pixel bis zum Knopf: Siegel und Router-Wahl
   ruecken unter den CTA, die Buehne wird kompakt. */
@media(max-width:559px){
  .hero-wahl{margin-top:.9rem;padding:.6rem .8rem}
  .hero-wahl .txt small{font-size:.82rem}
  .siegel{margin-top:1.1rem;gap:.55rem}
  .buehne .haupt{max-width:220px;margin-inline:auto}
}


/* Verweise mitten im Text: genug Flaeche fuer den Daumen, ohne den Umbruch zu stoeren */
.mini a,.banner a,details p a{display:inline-block;padding-block:.8rem;line-height:1.2}


/* Die Einschraenkung gehoert zur Aussage: gleiche Zeile, gleiche Groesse, nur ruhiger
   gefaerbt. Nie kleiner setzen — siehe docs/WERBUNG-UNBEGRENZT.md. */
.qual{
  display:inline-block;font-weight:500;font-size:1em;color:var(--muted);
  font-family:"Libre Franklin",sans-serif;letter-spacing:0;white-space:nowrap;
}
.qual::before{content:"· ";color:var(--line-strong)}
@media(max-width:520px){.qual{display:block;white-space:normal}.qual::before{content:""}}
