/* Solarte Büroreinigung Hamburg – Hauptseite
   Grundregeln aus dem Design-Export, Hover-Klassen (ersetzen style-hover),
   Formular-Bausteine, Barrierefreiheit. Inline-Styles im HTML haben Vorrang,
   darum tragen Hover-/Zustandsregeln !important. */

/* ---------- Basis (aus dem Original übernommen) ---------- */
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:#0f1b2b;font-family:Manrope,'Manrope Fallback',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#0f4c81;text-decoration:none}
a:hover{color:#0c3d68}
button,input,select,textarea{font-family:inherit}
input::placeholder,textarea::placeholder{color:#8a96a3}
[data-dark]::placeholder{color:rgba(255,255,255,.5)}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* hidden muss auch gegen Inline-display gewinnen */
[hidden]{display:none !important}

/* Sprungziele nicht unter dem Sticky-Header verstecken */
#top,#inhalt{scroll-margin-top:68px}
main:focus{outline:none}

/* ---------- Hover-Klassen (ehemals style-hover) ---------- */
.hv-primary:hover,.hv-primary:focus-visible{background:#0c3d68 !important;color:#fff !important}
.hv-hero-cta:hover,.hv-hero-cta:focus-visible{transform:translateY(-2px) !important;box-shadow:0 12px 32px rgba(0,0,0,.25) !important;color:#0b1a2c !important}
.hv-hero-ghost:hover,.hv-hero-ghost:focus-visible{background:rgba(255,255,255,.06) !important;border-color:rgba(255,255,255,.5) !important;color:#fff !important}
.hv-quick-submit:hover,.hv-quick-submit:focus-visible{transform:translateY(-1px) !important;box-shadow:0 12px 28px rgba(0,0,0,.25) !important}
.hv-card:hover{transform:translateY(-3px) !important;box-shadow:0 16px 40px rgba(15,27,43,.08) !important;border-color:#0f4c81 !important}
.hv-outline:hover,.hv-outline:focus-visible{border-color:#0f4c81 !important;background:#f5f7fa !important;color:#0f1b2b !important}
.hv-outline-white:hover,.hv-outline-white:focus-visible{border-color:#0f4c81 !important;background:#fff !important;color:#0f1b2b !important}
.hv-main-submit:hover,.hv-main-submit:focus-visible{background:#0c3d68 !important;transform:translateY(-1px) !important}
.hv-foot:hover,.hv-foot:focus-visible{color:#fff !important}
button[disabled]{cursor:progress !important;opacity:.75;transform:none !important;box-shadow:none !important}

/* ---------- Fokus ---------- */
:focus-visible{outline:2px solid #0f4c81;outline-offset:2px}
#top :focus-visible,#angebot :focus-visible,footer :focus-visible,.brand-panel :focus-visible{outline-color:#7fb3e6}
#angebot form :focus-visible,#angebot [data-form-success] :focus-visible{outline-color:#0f4c81}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px}
[data-form-success]:focus{outline:none}

/* Skip-Link */
.skip-link{position:absolute;left:16px;top:-120px;z-index:100;padding:12px 16px;border-radius:10px;background:#0f4c81;color:#fff;font-size:14px;font-weight:700;box-shadow:0 12px 32px rgba(15,27,43,.25)}
.skip-link:focus,.skip-link:focus-visible{top:12px;color:#fff;outline:2px solid #7fb3e6;outline-offset:2px}

/* ---------- Kopfleiste ----------
   Liegt über dem Hero (margin-bottom:-68px, dafür #top padding-top:68px) und nimmt den Ton
   des Abschnitts darunter an: site.js setzt data-tone="dark|light" (Abschnitte mit
   data-hdr-dark), ganz oben data-top (dann durchsichtig) und bei offenem Menü data-menu
   (dann dunkel wie das Menü). Ohne JS bleibt sie dunkles Milchglas – auch über hellen
   Abschnitten lesbar. Das Glas sitzt auf ::before: Ein backdrop-filter am Header selbst
   würde ihn zum Bezugsrahmen des fixierten Menüs machen.
   Ab 1180 px volle Navigation, darunter Menü-Button mit Vollbild-Menü. */
.site-header{
  --hdr-glass:rgba(255,255,255,.96);--hdr-line:rgba(15,27,43,.08);--hdr-shadow:0 4px 20px rgba(15,27,43,.06);
  --hdr-text:#0f1b2b;--hdr-muted:#667281;--hdr-nav:#4b5766;
  --hdr-hover:rgba(15,76,129,.07);--hdr-accent:#0f4c81;--hdr-ring:#0f4c81;
  --hdr-btn-bg:#fff;--hdr-btn-line:#dfe6ee;
  --hdr-cta-bg:#0f4c81;--hdr-cta-text:#fff;--hdr-cta-hover:#0c3d68;--hdr-cta-shadow:0 6px 16px rgba(15,76,129,.26);
  position:sticky;top:0;z-index:50;margin-bottom:-68px;color:var(--hdr-text);
}
.site-header:not([data-menu]){
  --hdr-glass:rgba(255,255,255,.96);--hdr-line:rgba(15,27,43,.08);--hdr-shadow:0 4px 20px rgba(15,27,43,.06);
  --hdr-text:#0f1b2b;--hdr-muted:#667281;--hdr-nav:#4b5766;
  --hdr-hover:rgba(15,76,129,.07);--hdr-accent:#0f4c81;--hdr-ring:#0f4c81;
  --hdr-btn-bg:#fff;--hdr-btn-line:#dfe6ee;
  --hdr-cta-bg:#0f4c81;--hdr-cta-text:#fff;--hdr-cta-hover:#0c3d68;--hdr-cta-shadow:0 6px 16px rgba(15,76,129,.26);
}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{--hdr-glass:#ffffff}
  .site-header:not([data-menu]){--hdr-glass:#ffffff}
}
#top{padding-top:68px}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--hdr-glass);border-bottom:1px solid var(--hdr-line);box-shadow:var(--hdr-shadow);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}
.site-header[data-top]:not([data-menu])::before{opacity:1;box-shadow:0 2px 10px rgba(15,27,43,.04)}
.site-header[data-menu]::before{background:#0b1a2c}
.site-header[data-ready]::before{transition:opacity .35s,background-color .35s,border-color .35s,box-shadow .35s}
.site-header[data-ready] .hdr-logo,.site-header[data-ready] .hdr-sub,.site-header[data-ready] .hv-nav,.site-header[data-ready] .hdr-phone,.site-header[data-ready] .lang-dropdown,.site-header[data-ready] .lang-summary,.site-header[data-ready] .hdr-menu-btn{transition:color .3s,background-color .2s,border-color .3s,opacity .2s,visibility .2s}
.site-header[data-ready] .hdr-cta{transition:color .3s,background-color .3s,box-shadow .3s,transform .15s,opacity .2s,visibility .2s}
.site-header :focus-visible{outline:2px solid var(--hdr-ring);outline-offset:2px}

.hdr-inner{max-width:1160px;height:68px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.hdr-logo,.hdr-logo:hover{display:flex;align-items:center;gap:11px;flex:none;border-radius:12px;color:var(--hdr-text);white-space:nowrap}
.hdr-mark{flex:none;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#0f4c81;color:#fff;font:800 19px/1 'Schibsted Grotesk','Schibsted Grotesk Fallback',Manrope,sans-serif;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 4px 12px rgba(15,76,129,.3)}
.hdr-word{display:flex;flex-direction:column;line-height:1.05}
.hdr-name{font:700 17px/1.05 'Schibsted Grotesk','Schibsted Grotesk Fallback',Manrope,sans-serif;letter-spacing:-.01em}
.hdr-sub{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--hdr-muted)}

/* Navigation: Hover als Pille, aktiver Abschnitt (site.js: .is-active) mit kurzem Strich
   wie bei den Abschnitts-Überschriften */
.hdr-nav{display:flex;align-items:center;margin:0 -10px}
.hv-nav,.hv-nav:hover{position:relative;display:inline-flex;align-items:center;height:36px;padding:0 10px;border-radius:999px;color:var(--hdr-nav);font-size:14px;font-weight:600;white-space:nowrap}
.hv-nav:hover,.hv-nav:focus-visible{color:var(--hdr-text);background:var(--hdr-hover)}
.hv-nav::after{content:"";position:absolute;left:50%;bottom:4px;width:16px;height:2px;margin-left:-8px;border-radius:2px;background:var(--hdr-accent);transform:scaleX(0);transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .3s}
.hv-nav.is-active{color:var(--hdr-text)}
.hv-nav.is-active::after{transform:scaleX(1)}

.hdr-actions{display:flex;align-items:center;gap:8px;flex:none}

/* Telefon: Tablet mit Nummer, Desktop als runder Knopf mit Nummer + Zeiten als Hinweis */
.hdr-phone,.hdr-phone:hover{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;height:40px;padding:0 12px 0 10px;border-radius:10px;color:var(--hdr-text);font-size:14px;font-weight:700;white-space:nowrap}
.hdr-phone:hover,.hdr-phone:focus-visible{background:var(--hdr-hover)}
.hdr-phone > svg{flex:none;color:var(--hdr-accent);transition:color .3s}
.hdr-phone-sub{display:none}
.hdr-phone-hours{display:none}

/* Sprachauswahl */
.lang-dropdown{position:relative;flex:none}
.lang-summary{list-style:none;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 10px;border-radius:10px;color:var(--hdr-text);font-size:13px;font-weight:700;letter-spacing:.03em;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.lang-summary::-webkit-details-marker{display:none}
.lang-summary::marker{content:""}
.lang-summary:hover,.lang-dropdown[open] > .lang-summary{background:var(--hdr-hover)}
.lang-globe{flex:none;opacity:.85}
.lang-caret{flex:none;opacity:.6;transition:transform .2s}
.lang-dropdown[open] .lang-caret{transform:rotate(180deg)}
.lang-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:2;min-width:200px;padding:6px;border-radius:14px;background:#fff;border:1px solid rgba(15,27,43,.08);box-shadow:0 20px 44px rgba(11,26,44,.18),0 2px 6px rgba(11,26,44,.06);display:flex;flex-direction:column;gap:2px;transform-origin:top right;animation:popIn .2s cubic-bezier(.2,.8,.2,1) both}
@keyframes popIn{from{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}
.lang-item{display:flex;align-items:center;gap:11px;height:40px;padding:0 10px;border-radius:9px;color:#0f1b2b;font-size:14px;font-weight:600;white-space:nowrap}
.lang-item:hover,.lang-item:focus-visible{background:#f1f5f9;color:#0f4c81}
.lang-item.is-active{background:#eef4fb;color:#0f4c81;cursor:default}
.lang-name{flex:1}
.lang-abbr{font-size:11px;font-weight:700;letter-spacing:.06em;color:#94a0ad}
.lang-check{flex:none;color:#0f4c81}
.site-header .lang-menu :focus-visible{outline-color:#0f4c81;outline-offset:-2px}
.flag-icon{flex:none;display:inline-block;width:18px;height:12px;border-radius:2px;vertical-align:middle;box-shadow:0 0 0 1px rgba(15,27,43,.12)}

.hdr-cta,.hdr-cta:hover{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:10px;background:var(--hdr-cta-bg);color:var(--hdr-cta-text);font-size:14px;font-weight:700;white-space:nowrap;box-shadow:var(--hdr-cta-shadow)}
.hdr-cta:hover,.hdr-cta:focus-visible{background:var(--hdr-cta-hover);transform:translateY(-1px)}
.hdr-cta:active{transform:none}

/* Menü-Button: zwei Striche, die sich zum X drehen */
.hdr-menu-btn{display:inline-flex;align-items:center;gap:9px;height:40px;padding:0 14px 0 12px;border-radius:10px;border:1px solid var(--hdr-btn-line);background:var(--hdr-btn-bg);color:var(--hdr-text);font-size:14px;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hdr-menu-btn:hover{background:var(--hdr-hover)}
.menu-icon{position:relative;flex:none;width:18px;height:12px}
.menu-bar{position:absolute;left:0;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1)}
.menu-bar:first-child{top:2px}
.menu-bar:last-child{top:8px;width:12px}
.hdr-menu-btn[aria-expanded="true"] .menu-bar:first-child{transform:translateY(3px) rotate(45deg)}
.hdr-menu-btn[aria-expanded="true"] .menu-bar:last-child{width:18px;transform:translateY(-3px) rotate(-45deg)}

/* Bei offenem Menü nur Logo und Schließen – Anfrage, Telefon und Sprache stehen im Menü */
.site-header[data-menu] .hdr-cta,.site-header[data-menu] .hdr-phone,.site-header[data-menu] .lang-dropdown{opacity:0;visibility:hidden}

.sr-only{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* Stufen: Desktop ab 1180 px, Tablet mit Nummer ab 768 px, Sprache im Kopf ab 640 px */
@media (min-width:1180px){
  .hdr-menu-btn,.mm{display:none !important}
  .hdr-phone{width:40px;padding:0;border:1px solid var(--hdr-btn-line);background:var(--hdr-btn-bg)}
  .hdr-phone:hover,.hdr-phone:focus-visible{background:var(--hdr-hover)}
  .hdr-phone-text{position:absolute;top:calc(100% + 12px);left:50%;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 14px;border-radius:12px;background:#fff;color:#0f1b2b;border:1px solid rgba(15,27,43,.08);box-shadow:0 18px 40px rgba(11,26,44,.18),0 2px 6px rgba(11,26,44,.06);opacity:0;transform:translate(-50%,-4px);pointer-events:none;transition:opacity .18s,transform .18s}
  .hdr-phone-text::before{content:"";position:absolute;top:-6px;left:50%;width:10px;height:10px;margin-left:-5px;background:#fff;border-left:1px solid rgba(15,27,43,.08);border-top:1px solid rgba(15,27,43,.08);transform:rotate(45deg)}
  .hdr-phone:hover .hdr-phone-text,.hdr-phone:focus-visible .hdr-phone-text{opacity:1;transform:translate(-50%,0)}
  .hdr-phone-num{font-size:15px;font-weight:700;letter-spacing:.01em}
  .hdr-phone-sub{display:block;font-size:13px;font-weight:700;color:#0f4c81;letter-spacing:.01em}
  .hdr-phone-hours{display:block;font-size:12px;font-weight:600;color:#667281}
}
@media (max-width:1179px){.hdr-nav{display:none}}
@media (max-width:767px){.hdr-phone{display:none}}
@media (max-width:639px){
  .lang-dropdown{display:none}
  .hdr-menu-btn{width:40px;padding:0;justify-content:center}
  .menu-text{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
}
@media (max-width:479px){
  .hdr-inner{padding:0 16px;gap:12px}
  .hdr-logo{gap:10px}
  .hdr-sub{display:none}
  .hdr-cta{padding:0 14px}
}
@media (max-width:374px){
  .hdr-inner{padding:0 12px;gap:8px}
  .hdr-actions{gap:6px}
  .hdr-cta{padding:0 12px;font-size:13px}
}
@media (max-width:339px){.hdr-word{display:none}}

/* ---------- Vollbild-Menü (unter 1180 px) ----------
   Dunkel wie der Hero: gleiches 56-px-Raster (auf das Hero-Raster ausgerichtet) und
   Lichtschein. site.js setzt --mm-top (Unterkante der Kopfleiste), sperrt das Scrollen der
   Seite (html[data-menu-open]) und blendet beim Schließen per data-closing aus. */
.mm{
  position:fixed;left:0;right:0;top:var(--mm-top,68px);bottom:0;z-index:1;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;color:#fff;
  background:
    radial-gradient(480px 480px at 100% 0,rgba(15,76,129,.55),rgba(15,76,129,0) 70%),
    radial-gradient(420px 420px at 0 100%,rgba(127,179,230,.1),rgba(127,179,230,0) 70%),
    linear-gradient(rgba(11,26,44,0),#0b1a2c 80%),
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px) 0 -12px/56px 56px,
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0/56px 56px,
    #0b1a2c;
  animation:mmIn .28s cubic-bezier(.2,.8,.2,1) both;
}
.mm[data-closing]{animation:mmOut .2s ease both;pointer-events:none}
@keyframes mmIn{from{opacity:0}to{opacity:1}}
@keyframes mmOut{from{opacity:1}to{opacity:0}}
/* Nur html sperren: overflow am body machte ihn zum Scroll-Container, die Kopfleiste klebte dann nicht mehr */
html[data-menu-open]{overflow:hidden}

.mm-inner{max-width:1160px;margin:0 auto;padding:8px 24px calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:28px}
.mm-list{list-style:none;margin:0;padding:0}
.mm-list li{border-bottom:1px solid rgba(255,255,255,.08);animation:mmItem .5s cubic-bezier(.2,.8,.2,1) both}
.mm-list li:nth-child(2){animation-delay:.03s}
.mm-list li:nth-child(3){animation-delay:.06s}
.mm-list li:nth-child(4){animation-delay:.09s}
.mm-list li:nth-child(5){animation-delay:.12s}
.mm-list li:nth-child(6){animation-delay:.15s}
.mm-list li:nth-child(7){animation-delay:.18s}
@keyframes mmItem{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.mm-link,.mm-link:hover{display:flex;align-items:center;gap:16px;min-height:60px;padding:10px 2px;color:#fff;font:600 clamp(22px,6vw,28px)/1.15 'Schibsted Grotesk','Schibsted Grotesk Fallback',Manrope,sans-serif;letter-spacing:-.02em;-webkit-tap-highlight-color:transparent}
.mm-link:active{background:rgba(255,255,255,.03)}
.mm-link:focus-visible{outline-offset:-2px;border-radius:8px}
.mm-num{flex:none;width:22px;font:700 12px/1 Manrope,'Manrope Fallback',system-ui,sans-serif;letter-spacing:.04em;color:rgba(127,179,230,.7);font-variant-numeric:tabular-nums}
.mm-label{flex:1;min-width:0;transition:color .2s}
.mm-arrow{flex:none;color:rgba(255,255,255,.28);transition:transform .25s cubic-bezier(.2,.8,.2,1),color .2s}
.mm-link:hover .mm-arrow,.mm-link:focus-visible .mm-arrow{color:#7fb3e6;transform:translateX(4px)}
.mm-link.is-active .mm-num,.mm-link.is-active .mm-label,.mm-link.is-active .mm-arrow{color:#7fb3e6}

.mm-side{display:flex;flex-direction:column;gap:12px;animation:mmItem .5s cubic-bezier(.2,.8,.2,1) .18s both}
.mm-cta,.mm-cta:hover{display:flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 20px;border-radius:12px;background:#fff;color:#0b1a2c;font-size:16px;font-weight:700;text-align:center;box-shadow:0 12px 32px rgba(0,0,0,.28)}
.mm-cta:hover,.mm-cta:focus-visible{background:#e8f0f8}
.mm-cta svg{flex:none}
.mm-call,.mm-call:hover{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:#fff}
.mm-call:hover,.mm-call:focus-visible{background:rgba(255,255,255,.07);border-color:rgba(127,179,230,.4)}
.mm-call-icon{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#7fb3e6}
.mm-call-text{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.3}
.mm-call-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.mm-call-num{font-size:18px;font-weight:700;letter-spacing:.01em}
.mm-call-hours{font-size:13px;color:rgba(255,255,255,.62)}
.mm-lang{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 6px 6px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.1)}
.mm-lang-title{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.mm-lang-opts{display:flex;gap:4px}
.mm-lang-opt,.mm-lang-opt:hover{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px;border-radius:10px;color:rgba(255,255,255,.75);font-size:13px;font-weight:700;letter-spacing:.03em}
.mm-lang-opt:hover,.mm-lang-opt:focus-visible{background:rgba(255,255,255,.08);color:#fff}
.mm-lang-opt.is-active{background:#fff;color:#0b1a2c;cursor:default}
.mm-lang-opt .flag-icon{box-shadow:0 0 0 1px rgba(255,255,255,.2)}
.mm-lang-opt.is-active .flag-icon{box-shadow:0 0 0 1px rgba(15,27,43,.12)}

@media (min-width:768px){
  .mm-inner{flex-direction:row;align-items:flex-start;gap:48px;padding-top:36px}
  .mm-list{flex:1.2;min-width:0}
  .mm-side{flex:1;min-width:0;padding-top:10px}
  .mm-link,.mm-link:hover{min-height:66px;font-size:30px}
}
/* Niedrige Handy-Bildschirme: kompakter, damit Anfrage, Telefon und Sprache ohne Scrollen passen */
@media (max-width:767px) and (max-height:760px){
  .mm-inner{gap:20px}
  .mm-link,.mm-link:hover{min-height:50px;padding:7px 2px;font-size:clamp(21px,5.6vw,24px)}
  .mm-side{gap:10px}
  .mm-cta,.mm-cta:hover{min-height:50px;padding:12px 18px}
  .mm-call,.mm-call:hover{padding:10px 14px}
  .mm-call-icon{width:40px;height:40px}
  .mm-call-label{display:none}
}
@media (max-width:374px){
  .mm-inner{padding-left:16px;padding-right:16px}
  .mm-lang{padding-left:12px}
  .mm-lang-opt,.mm-lang-opt:hover{padding:0 9px}
}
@media (max-width:359px){.mm-lang-opt .flag-icon{display:none}}
@media print{.hdr-menu-btn,.mm{display:none !important}}

/* ---------- Hero-Kennzahlen: nie eine Kennzahl allein in einer Zeile ----------
   2 × 2 auf dem Handy und in der schmalen linken Hero-Spalte am Desktop,
   4 nebeneinander nur, solange das Hero einspaltig und breit genug ist. */
.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:700px) and (max-width:911px){.hero-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- Schnellkontakt-Leiste unten (nur Handy) ----------
   Milchglas; site.js setzt data-show zwischen Hero und Anfrageformular und data-ready
   nach dem Laden (erst dann Übergänge). Versteckt per visibility, damit die Links dann
   auch nicht per Tab erreichbar sind. */
.dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;border-radius:18px;background:rgba(255,255,255,.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border:1px solid rgba(15,27,43,.08);box-shadow:0 12px 32px rgba(15,27,43,.16);visibility:hidden;transform:translateY(calc(100% + 48px))}
.dock[data-show]{visibility:visible;transform:none}
.dock[data-ready]{transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s .35s}
.dock[data-ready][data-show]{transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s}
.dock a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:12px;font-size:15px;font-weight:700}
.dock-call,.dock-call:hover{background:#e8f0f8;color:#0f4c81}
.dock-offer,.dock-offer:hover{background:#0f4c81;color:#fff}
@media (min-width:640px){.dock{display:none}}
@media print{.dock{display:none}}

/* ---------- Reinigungsrhythmus (Radio-Gruppe als Segment-Control) ---------- */
.seg-opt{position:relative;flex:1;display:flex}
.seg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.seg-opt span{flex:1;display:flex;align-items:center;justify-content:center;padding:9px 6px;border-radius:7px;background:transparent;color:rgba(255,255,255,.75);font-size:13px;font-weight:600;text-align:center;cursor:pointer}
.seg-opt:hover input:not(:checked)+span{color:#fff}
.seg-opt input:checked+span{background:#fff;color:#0b1a2c;font-weight:700}
.seg-opt input:focus-visible+span{outline:2px solid #7fb3e6;outline-offset:2px}

/* ---------- Gewünschte Leistungen (Checkboxen als Chips) ---------- */
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.chip span{display:block;padding:9px 14px;border-radius:999px;border:1px solid #d5dde6;background:#fff;color:#0f1b2b;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .2s}
.chip:hover input:not(:checked)+span{border-color:#0f4c81}
.chip input:checked+span{border-color:#0f4c81;background:#0f4c81;color:#fff}
.chip input:focus-visible+span{outline:2px solid #0f4c81;outline-offset:2px}

/* ---------- Formulare: Honeypot, Hinweise, Fehlermeldungen ---------- */
.hp{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.hero-privacy{display:block;margin-top:4px;color:rgba(255,255,255,.55);text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:3px}
.hero-privacy:hover,.hero-privacy:focus-visible{color:#fff;text-decoration-color:rgba(255,255,255,.7)}
/* Links im Fließtext nicht nur über die Farbe erkennbar machen (WCAG 1.4.1) */
#angebot form label a{text-decoration:underline;text-underline-offset:2px}
.map-credit a{color:inherit;text-decoration:underline;text-decoration-color:rgba(102,114,129,.45);text-underline-offset:2px}
.map-credit a:hover,.map-credit a:focus-visible{color:#0f4c81;text-decoration-color:currentColor}
.form-error{margin:0;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.5}
.form-error a{font-weight:700;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.form-error--dark{background:rgba(239,68,68,.14);border:1px solid rgba(252,165,165,.45);color:#fecaca}
.form-error--dark a{color:#fff}
.form-error--light{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.form-error--light a{color:#991b1b}
form [aria-invalid="true"]{border-color:#dc2626 !important;box-shadow:0 0 0 1px #dc2626}
#top form [aria-invalid="true"]{border-color:#fca5a5 !important;box-shadow:0 0 0 1px #fca5a5}

/* ---------- Über uns: Markenfläche statt Teamfoto ---------- */
.brand-panel{position:relative;width:100%;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:#0b1a2c;color:#fff;container-type:inline-size;isolation:isolate}
.bp-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(160deg,rgba(0,0,0,.95),transparent 80%);mask-image:linear-gradient(160deg,rgba(0,0,0,.95),transparent 80%);pointer-events:none}
.bp-glow{position:absolute;top:-45%;right:-35%;width:110%;aspect-ratio:1;border-radius:999px;background:radial-gradient(closest-side,rgba(15,76,129,.75),rgba(15,76,129,0));pointer-events:none}
.bp-glow2{position:absolute;bottom:-55%;left:-30%;width:90%;aspect-ratio:1;border-radius:999px;background:radial-gradient(closest-side,rgba(127,179,230,.16),rgba(127,179,230,0));pointer-events:none}
.bp-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:36px 36px 80px}
.bp-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7fb3e6}
.bp-eyebrow span{width:20px;height:2px;background:#7fb3e6;border-radius:2px}
.bp-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.bp-facts li{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}
.bp-facts li:last-child{padding-bottom:0}
.bp-check{flex:none;width:26px;height:26px;margin-top:1px;border-radius:999px;background:rgba(127,179,230,.16);color:#7fb3e6;display:grid;place-items:center}
.bp-facts strong{display:block;font:700 21px/1.2 'Schibsted Grotesk','Schibsted Grotesk Fallback',Manrope,sans-serif;letter-spacing:-.015em}
.bp-facts small{display:block;margin-top:3px;font-size:13px;line-height:1.4;color:rgba(255,255,255,.62)}
@container (min-width:600px){
  .bp-content{padding:48px 48px 92px}
  .bp-facts li{padding:18px 0;gap:16px}
  .bp-check{width:30px;height:30px;margin-top:2px}
  .bp-facts strong{font-size:27px}
  .bp-facts small{margin-top:5px;font-size:14px}
}
@container (max-width:460px){
  .bp-content{padding:24px 24px 66px;gap:14px}
  .bp-facts li{padding:9px 0;gap:12px}
  .bp-check{width:22px;height:22px;margin-top:0}
  .bp-check svg{width:12px;height:12px}
  .bp-facts strong{font-size:16px;line-height:1.3}
  .bp-facts small{display:none}
}

/* ---------- Reduzierte Bewegung ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .hv-hero-cta:hover,.hv-hero-cta:focus-visible,.hv-quick-submit:hover,.hv-quick-submit:focus-visible,.hv-card:hover,.hv-main-submit:hover,.hv-main-submit:focus-visible{transform:none !important}
}

/* Auswahlfelder: einheitlicher Pfeil in Safari/iOS (sonst System-Optik) */
select[name="objektart"]{-webkit-appearance:none;appearance:none;padding-right:40px!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:12px 8px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E")!important}
#angebot select[name="objektart"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230f1b2b' stroke-width='1.6'/%3E%3C/svg%3E")!important}
#top select option{color:#0f1b2b;background:#fff}
/* E-Mail-Adressen nicht mitten im Wort umbrechen */
a[href^="mailto:"]{white-space:nowrap}
