/* Seitenspezifische Bausteine der H&S-Website (ergänzt components.css) */

/* Anker nicht unter der klebenden Kopfleiste verstecken */
main [id], section[id] { scroll-margin-top: calc(var(--header-h) + var(--sp-4)); }

/* Sloganleiste */
.slogan-bar {
  margin:0; background:var(--ink-800); color:#fff; text-align:center;
  padding:.55rem var(--sp-4); border-bottom:1px solid rgba(255,255,255,.08);
  font-size:var(--fs-sm); font-weight:700; letter-spacing:var(--tracking-wide); text-transform:uppercase;
}
.slogan-bar span { color:#FF8085; display:inline-block; }
@media (max-width:479px){ .slogan-bar { font-size:var(--fs-xs); } }

/* Entwurfsmarkierung – fliegt in der fertigen Seite raus */
.draft-mark {
  display:inline-block; padding:.15em .5em; border:1px dashed var(--ink-300);
  border-radius:var(--r-sm); font-size:var(--fs-xs); font-weight:700; color:var(--ink-400);
  letter-spacing:var(--tracking-wide); text-transform:uppercase;
}

/* Vertrauensleiste */
.trust { border-bottom:1px solid var(--border); background:#fff; }
.trust ul {
  display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-4);
  list-style:none; margin:0; padding:var(--sp-5) 0;
}
@media (min-width:800px){ .trust ul { grid-template-columns:repeat(4,1fr); } }
.trust li { margin:0; display:flex; gap:var(--sp-3); align-items:flex-start; }
.trust svg { flex:none; width:22px; height:22px; color:var(--hs-red); margin-top:2px; }
.trust b { display:block; color:var(--ink-700); font-size:var(--fs-sm); line-height:1.3; }
.trust span { font-size:var(--fs-xs); color:var(--ink-400); }

/* Zweispaltige Bild/Text-Sektion */
.split { display:grid; gap:var(--sp-7); align-items:center; }
@media (min-width:860px){
  .split { grid-template-columns:1fr 1fr; gap:var(--sp-9); }
  .split--rev .split__media { order:2; }
}
.split__media img { width:100%; border-radius:var(--r-lg); box-shadow:var(--shadow-md); }
.split__media--tall img { aspect-ratio:3/4; object-fit:cover; }

/* Inhaberkarten */
.owners { display:grid; gap:var(--sp-6); max-width:880px; margin-inline:auto; }
@media (min-width:640px){ .owners { grid-template-columns:repeat(2,1fr); } }
.owner { margin:0; background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.owner img { width:100%; aspect-ratio:1/1; object-fit:cover; object-position:50% 20%; }
.owner figcaption { padding:var(--sp-5) var(--sp-5) var(--sp-6); border-top:4px solid var(--hs-red); }
.owner h3 { color:var(--ink-700); margin:0 0 .15rem; }
.owner__role { margin:0 0 .5rem; font-size:var(--fs-xs); font-weight:700; letter-spacing:.06em;
               text-transform:uppercase; color:var(--ink-400); }
.owner p:last-child { margin:0; font-size:var(--fs-sm); color:var(--text); }

/* Stellenangebote */
.job { display:flex; flex-direction:column; }
.job .hs-card__body { display:flex; flex-direction:column; flex:1; }
.job__meta { display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-bottom:var(--sp-3); }
.job .link-arrow { margin-top:auto; padding-top:var(--sp-4); }
.job--open { background:var(--ink-50); border-style:dashed; }

/* Formular: Honeypot aus dem Blickfeld, aber nicht display:none (manche Bots prüfen das) */
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.kontakt-wege { gap:var(--sp-5); margin-top:var(--sp-5); }
.kontakt-wege .field + .field { margin-top:0; }
#kontaktformular .field__hint#k-wege-hinweis { margin-bottom:var(--sp-5); }

/* Kontaktspalten */
.contact-grid { display:grid; gap:var(--sp-7); }
@media (min-width:900px){ .contact-grid { grid-template-columns:1fr 1fr; gap:var(--sp-9); } }
/* Anfahrtskarte: statisches Bild, lädt nichts von Dritten */
.map { margin:0; }
.map__link { position:relative; display:block; border-radius:var(--r-lg); overflow:hidden;
             box-shadow:var(--shadow-md); }
.map__link img { width:100%; aspect-ratio:1422/988; object-fit:cover; transition:transform 400ms ease; }
.map__link:hover img { transform:scale(1.03); }
.map__link::after { content:""; position:absolute; inset:0; border-radius:inherit;
                    box-shadow:inset 0 0 0 3px transparent; transition:box-shadow var(--t-base); }
.map__link:hover::after, .map__link:focus-visible::after { box-shadow:inset 0 0 0 3px var(--hs-red); }
.map__cta { position:absolute; right:var(--sp-3); bottom:var(--sp-3); }
.map figcaption { margin-top:var(--sp-2); font-size:var(--fs-xs); color:var(--text-muted); }

/* ---------- Rechtstexte (Impressum, Datenschutz) ---------- */

/* Fehlende Angabe – im Entwurf bewusst auffällig */
.offen {
  display:inline-block; padding:.1em .55em;
  background:var(--red-50); color:var(--red-700);
  border:1px dashed var(--hs-red); border-radius:var(--r-sm);
  font-weight:700; font-size:.94em; white-space:nowrap;
}
.offen::before { content:"? "; }

.imp h2 {
  font-size: var(--fs-h3); color: var(--ink-700);
  margin-top: var(--sp-8); padding-top: var(--sp-5);
  border-top: 1px solid var(--border);
}
.imp h2:first-of-type { margin-top: var(--sp-6); }
.imp h3 { font-size: var(--fs-h4); margin-top: var(--sp-6); }
.imp dl { display:grid; gap:.35rem var(--sp-5); margin:0 0 var(--sp-4); }
@media (min-width:620px){ .imp dl { grid-template-columns: 15rem 1fr; } }
.imp dt { font-weight:700; color:var(--ink-600); }
.imp dd { margin:0; }
.imp address { font-style:normal; }
.hinweis {
  margin-top: var(--sp-8);
  padding: var(--sp-5) var(--sp-6);
  background: var(--ink-50);
  border-left: 4px solid var(--ink-300);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  font-size: var(--fs-sm);
}
.hinweis h3 { margin-top:0; font-size: var(--fs-sm); letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--ink-500); }
.hinweis ul { margin-bottom:0; }

/* Entwurfsbalken auf Seiten, die noch geprüft werden müssen */
.draft-bar {
  background: repeating-linear-gradient(45deg,#23272B 0 12px,#1a1e21 12px 24px);
  color:#fff; font-size:var(--fs-xs); font-weight:700; letter-spacing:var(--tracking-wide);
  text-transform:uppercase; text-align:center; padding:.5rem var(--sp-4);
}
.draft-bar b { color:#FF8085; }

/* ---------- Unterseiten-Hero (niedriger als auf der Startseite) ---------- */
.hs-hero--seite { min-height: clamp(320px, 48vh, 500px); }
.hs-hero .btn svg { vertical-align: -3px; }

/* ---------- Pannenhilfe ---------- */
.erreichbar { background:#fff; border-bottom:1px solid var(--border); }
.erreichbar .container { display:flex; flex-wrap:wrap; gap:var(--sp-2) var(--sp-6); align-items:center;
                         justify-content:space-between; padding-block:var(--sp-4); }
.erreichbar p { margin:0; font-size:var(--fs-sm); display:flex; gap:.5em; align-items:center; }
.erreichbar svg { color:var(--hs-red); flex:none; }
.erreichbar__entwurf { color:var(--text-muted); }
.leistungen { gap:var(--sp-5); }
.panne { display:grid; gap:var(--sp-7); align-items:start; }
@media (min-width:900px){ .panne { grid-template-columns:1.2fr 1fr; gap:var(--sp-9); } }
.schritte { counter-reset:schritt; list-style:none; padding:0; margin:var(--sp-5) 0; }
.schritte li { counter-increment:schritt; position:relative; padding-left:3.2rem; margin-bottom:var(--sp-4); min-height:2.2rem; }
.schritte li::before {
  content:counter(schritt); position:absolute; left:0; top:-.1rem;
  width:2.2rem; height:2.2rem; border-radius:50%; display:grid; place-items:center;
  background:var(--ink-800); color:#fff; font-weight:700;
}
.schritte li:last-child::before { background:var(--hs-red); }
.telefon-liste { border-top:4px solid var(--hs-red); }
.telefon-liste .btn svg { vertical-align:-3px; }

/* ---------- Galerie ---------- */
.galerie-filter { display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-bottom:var(--sp-5); }
.galerie-filter .btn { background:#fff; color:var(--ink-700); border-color:var(--border); }
.galerie-filter .btn:hover { border-color:var(--ink-400); }
.galerie-filter .btn[aria-pressed="true"] { background:var(--ink-800); color:#fff; border-color:var(--ink-800); }
.hs-gallery__item[hidden] { display:none; }

/* Leuchtkasten */
.leuchtkasten { border:0; padding:0; background:transparent; max-width:100vw; max-height:100vh;
                width:100vw; height:100vh; overflow:hidden; }
.leuchtkasten::backdrop { background:rgba(15,17,19,.92); }
.leuchtkasten figure { margin:0; height:100%; display:flex; flex-direction:column; align-items:center;
                       justify-content:center; padding:3.5rem 1rem 1rem; }
.leuchtkasten img { max-width:min(100%, 1600px); max-height:calc(100vh - 7rem); width:auto; height:auto;
                    object-fit:contain; border-radius:var(--r-md); }
.leuchtkasten figcaption { color:#E2E6EA; font-size:var(--fs-sm); margin-top:var(--sp-3); text-align:center; }
.leuchtkasten button { position:absolute; border:0; background:rgba(255,255,255,.12); color:#fff;
                       width:3rem; height:3rem; border-radius:50%; font-size:2rem; line-height:1; cursor:pointer; }
.leuchtkasten button:hover, .leuchtkasten button:focus-visible { background:var(--hs-red); }
.leuchtkasten__zu { top:1rem; right:1rem; }
.leuchtkasten__zurueck { left:1rem; top:50%; transform:translateY(-50%); }
.leuchtkasten__vor { right:1rem; top:50%; transform:translateY(-50%); }
@media (max-width:599px){ .leuchtkasten__zurueck, .leuchtkasten__vor { top:auto; bottom:1rem; transform:none; } }

/* ---------- Beiträge ---------- */
.hs-post .hs-card__media { display:block; aspect-ratio:4/3; overflow:hidden; }
.hs-post .hs-card__media img { transition:transform 400ms ease; }
.hs-post:hover .hs-card__media img { transform:scale(1.04); }
.hs-post .hs-card__body > .link-arrow { margin-top:auto; }
.beitrag__bild { margin:var(--sp-6) 0; }
.beitrag__bild img { width:100%; border-radius:var(--r-lg); box-shadow:var(--shadow-md); }
.beitrag__text h2 { margin-top:var(--sp-7); }
.blaettern { display:flex; gap:var(--sp-4); align-items:center; justify-content:center; margin-top:var(--sp-7);
             font-size:var(--fs-sm); color:var(--text-muted); }

/* ---------- Karriere ---------- */
.formular-karte { background:#fff; color:var(--text); border-radius:var(--r-lg); padding:var(--sp-6); }
.formular-karte form { margin-top:0; }
.section--ink .formular-karte a { color:var(--red-700); }

/* Geschätzte Angabe im Entwurf – muss vom Kunden bestätigt werden */
.annahme { text-decoration: underline dashed var(--warning); text-decoration-thickness: 2px;
           text-underline-offset: 3px; cursor: help; }
.section--ink .annahme, .hs-hero .annahme { text-decoration-color: #F5B544; }

/* ---------- Pannenhilfe: Eckdaten, Pannen, Ablauf, Einsatzgebiet, Fragen ---------- */
.section--tight { padding-block: var(--sp-7); }
.eckdaten { list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-5); }
@media (min-width:640px){ .eckdaten { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .eckdaten { grid-template-columns:repeat(4,1fr); } }
.eckdaten li { margin:0; display:grid; grid-template-columns:auto 1fr; gap:.15rem var(--sp-3); align-items:start; }
.eckdaten svg { grid-row:span 2; color:var(--hs-red); margin-top:.1rem; }
.eckdaten b { color:var(--ink-700); font-size:var(--fs-base); line-height:1.3; }
.eckdaten span { color:var(--text-muted); font-size:var(--fs-sm); }

.pannen { list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
@media (min-width:640px){ .pannen { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .pannen { grid-template-columns:repeat(4,1fr); } }
.pannen li { margin:0; padding:var(--sp-4) var(--sp-5); background:var(--ink-50); border-radius:var(--r-md);
             border-left:4px solid var(--ink-300); }
.pannen li:last-child { border-left-color:var(--hs-red); }
.pannen b { display:block; color:var(--ink-700); margin-bottom:.2rem; }
.pannen span { font-size:var(--fs-sm); }

.ablauf { counter-reset:ablauf; list-style:none; margin:var(--sp-6) 0 0; padding:0; display:grid; gap:var(--sp-5); }
@media (min-width:800px){ .ablauf { grid-template-columns:repeat(4,1fr); } }
.ablauf li { counter-increment:ablauf; margin:0; position:relative; padding-top:3.4rem; }
.ablauf li::before { content:counter(ablauf); position:absolute; top:0; left:0; width:2.6rem; height:2.6rem;
                     border-radius:50%; display:grid; place-items:center; background:var(--hs-red); color:#fff;
                     font-weight:700; font-size:1.1rem; }
@media (min-width:800px){
  .ablauf li:not(:last-child)::after { content:""; position:absolute; top:1.3rem; left:3.2rem; right:.6rem;
                                       border-top:2px dashed rgba(255,255,255,.25); }
}
.ablauf b { display:block; color:#fff; font-size:var(--fs-lg); margin-bottom:.3rem; }
.ablauf span { color:#C9D0D6; font-size:var(--fs-sm); }

.orte { list-style:none; padding:0; margin:var(--sp-5) 0; display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.orte li { margin:0; padding:.3rem .8rem; border-radius:999px; background:var(--ink-100); color:var(--ink-700);
           font-size:var(--fs-sm); font-weight:700; }
.einsatzkarte { margin:0; }
.einsatzkarte svg { width:100%; height:auto; max-width:520px; display:block; margin-inline:auto;
                    background:var(--ink-50); border-radius:var(--r-lg); }
.einsatzkarte figcaption { text-align:center; font-size:var(--fs-xs); color:var(--text-muted); margin-top:var(--sp-2); }
.ek-kreis { fill:rgba(227,30,36,.06); stroke:var(--hs-red); stroke-width:2; stroke-dasharray:8 6; }
.ek-kreis2 { fill:none; stroke:var(--ink-300); stroke-width:1.5; stroke-dasharray:4 6; }
.ek-grenze { fill:none; stroke:var(--ink-400); stroke-width:2; stroke-dasharray:2 6; stroke-linecap:round; }
.ek-land { fill:var(--ink-400); font-size:20px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.ek-autobahn { fill:none; stroke:#2F5DA8; stroke-width:6; stroke-linecap:round; stroke-linejoin:round; }
.ek-a4 { fill:#fff; font-size:15px; font-weight:700; paint-order:stroke; stroke:#2F5DA8; stroke-width:8px; }
.ek-orte circle { fill:var(--ink-700); }
.ek-orte text { fill:var(--ink-700); font-size:19px; font-weight:700; paint-order:stroke; stroke:var(--ink-50); stroke-width:5px; }
.ek-niesky circle { fill:var(--hs-red); opacity:.25; }
.ek-niesky .ek-kern { opacity:1; }
.ek-niesky text { fill:var(--red-700); font-size:24px; font-weight:900; paint-order:stroke; stroke:var(--ink-50); stroke-width:6px; }
.ek-mass { fill:var(--ink-500); font-size:15px; font-weight:700; }

.faq { margin-top:var(--sp-6); border-top:1px solid var(--border); }
.faq details { border-bottom:1px solid var(--border); }
.faq summary { cursor:pointer; list-style:none; padding:var(--sp-4) 2.5rem var(--sp-4) 0; position:relative;
               font-weight:700; color:var(--ink-700); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:.4rem; top:50%; transform:translateY(-50%);
                      font-size:1.6rem; font-weight:400; color:var(--hs-red); }
.faq details[open] summary::after { content:"–"; }
.faq details p { margin:0 0 var(--sp-5); }

/* Kacheln mit Foto (Startseite, Werkstatt) */
.hs-tile { display:flex; flex-direction:column; text-decoration:none; color:inherit; overflow:hidden; }
.hs-tile .hs-card__media { aspect-ratio:4/3; overflow:hidden; }
.hs-tile .hs-card__media img { transition:transform 400ms ease; }
a.hs-tile:hover .hs-card__media img { transform:scale(1.04); }
.hs-tile .hs-card__body { padding:var(--sp-5); }
.hs-tile h3 { margin-bottom:var(--sp-2); }
.hs-tile p { margin:0; font-size:var(--fs-sm); color:var(--text-muted); }

/* ---------- Startseite: Hero ---------- */
.hs-hero--start { overflow:hidden; background:var(--ink-800); }
.hs-hero__bild { position:absolute; inset:0; z-index:-2; background:center/cover no-repeat; animation:hero-zoom 9s cubic-bezier(.2,.6,.3,1) both; }
@keyframes hero-zoom { from { transform:scale(1.09); } to { transform:scale(1); } }
.hs-hero--start .hs-hero__inner--barred { border-left-color:transparent; position:relative; }
.hs-hero--start .hs-hero__inner--barred::before { content:""; position:absolute; left:-5px; top:0; bottom:0; width:5px; background:var(--hs-red);
  transform-origin:bottom; animation:balken .9s .15s cubic-bezier(.2,.7,.2,1) both; }
@keyframes balken { from { transform:scaleY(0); } }
.hs-hero--start .hs-hero__inner > * { animation:hoch .7s cubic-bezier(.2,.7,.2,1) both; }
.hs-hero--start .hs-hero__inner > :nth-child(1) { animation-delay:.25s; }
.hs-hero--start .hs-hero__inner > :nth-child(2) { animation-delay:.35s; }
.hs-hero--start .hs-hero__inner > :nth-child(3) { animation-delay:.5s; }
.hs-hero--start .hs-hero__inner > :nth-child(4) { animation-delay:.65s; }
@keyframes hoch { from { opacity:0; transform:translateY(18px); } }

/* Leistungs-Kacheln: Foto wird beim Einblenden aufgedeckt */
.hs-tile.reveal .hs-card__media img { clip-path:inset(0 100% 0 0); transition:clip-path .9s cubic-bezier(.6,0,.2,1), transform 400ms ease; transition-delay:calc(var(--i,0) * 110ms + 150ms); }
.hs-tile.reveal.is-da .hs-card__media img { clip-path:inset(0 0 0 0); }

/* Telefon im Kontaktband: einmal kurz pulsieren, wenn es ins Bild kommt */
.hs-phone--puls.is-da { animation:telefon 1.4s ease-out 1; }
@keyframes telefon { 0% { box-shadow:0 0 0 0 rgba(255,255,255,.55); } 100% { box-shadow:0 0 0 22px rgba(255,255,255,0); } }

/* ---------- Zahlen ---------- */
.zahlen-band { padding-block:var(--sp-7); }
.zahlen { list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-6); grid-template-columns:repeat(2,1fr); text-align:center; }
@media (min-width:920px){ .zahlen { grid-template-columns:repeat(4,1fr); } }
.zahlen b { display:block; font-size:clamp(1.7rem,3.2vw,2.5rem); line-height:1.1; color:var(--text-strong); font-weight:900; font-variant-numeric:tabular-nums; }
.zahlen span { display:block; margin-top:var(--sp-2); font-size:var(--fs-sm); color:var(--text-muted); }
.zahlen li::after { content:""; display:block; width:40px; height:3px; margin:var(--sp-3) auto 0; background:var(--hs-red); transform-origin:center; transition:transform .8s .3s cubic-bezier(.2,.7,.2,1); }
.zahlen.is-wartend li::after { transform:scaleX(0); }

/* Einblenden beim Scrollen (nur für Elemente, die beim Laden noch unten liegen) */
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; transition-delay:calc(var(--i,0) * 90ms); }
.reveal.is-da { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity:1; transform:none; } .hs-hero__bild, .hs-hero--start .hs-hero__inner > *, .hs-hero--start .hs-hero__inner--barred::before { animation:none !important; } }

/* ---------- Startseite: Leistungen um das 3D-Modell (js/lkw3d.js) ---------- */
.leistungen__buehne { position:relative; display:grid; gap:var(--sp-4); grid-template-columns:repeat(2,minmax(0,1fr)); }
.leistungen__modell { display:none; }
.leistungen__linien { display:none; }
.leistung { display:block; padding:var(--sp-5); border:1px solid var(--border); border-radius:var(--r-lg); background:#fff;
  text-decoration:none; color:inherit; transition:border-color .25s ease, box-shadow .25s ease; }
.leistung b { display:flex; align-items:center; gap:.5em; font-size:var(--fs-lg); color:var(--text-strong); transition:color .25s ease; }
.leistung b::after { content:"→"; color:var(--red-700); transition:transform .25s ease; }
.leistung span { display:block; margin-top:var(--sp-2); font-size:var(--fs-sm); color:var(--text-muted); line-height:1.5; }
.leistung:hover, .leistung:focus-visible { border-color:var(--hs-red); box-shadow:var(--shadow-md); }
.leistung:hover b, .leistung:focus-visible b { color:var(--red-700); }
.leistung:hover b::after { transform:translateX(4px); }
.mit-3d .leistungen__modell { display:block; position:relative; grid-column:1 / -1; order:-1; aspect-ratio:4/3; max-height:380px; width:100%; }
.leistungen__modell canvas { position:absolute; inset:0; width:100%; height:100%; display:block; }
@media (min-width:1024px) {
  .mit-3d .leistungen__buehne { grid-template-columns:minmax(0,1fr) minmax(0,2.1fr) minmax(0,1fr); grid-template-rows:1fr 1fr;
    grid-template-areas:"l1 m r1" "l2 m r2"; gap:var(--sp-6) var(--sp-5); align-items:center; }
  .mit-3d .leistungen__modell { grid-column:1 / -1; grid-row:1 / -1; aspect-ratio:auto; height:min(66vh,600px); max-height:none; order:0; }   /* volle Breite, Themen liegen milchig darüber */
  .mit-3d .leistung--l1 { grid-area:l1; } .mit-3d .leistung--l2 { grid-area:l2; }
  .mit-3d .leistung--r1 { grid-area:r1; } .mit-3d .leistung--r2 { grid-area:r2; }
  .mit-3d .leistung { position:relative; z-index:2; border-color:rgba(255,255,255,.6); background:rgba(255,255,255,.62);
    -webkit-backdrop-filter:blur(10px) saturate(1.2); backdrop-filter:blur(10px) saturate(1.2); padding:var(--sp-4) var(--sp-5); }
  .mit-3d .leistung:hover, .mit-3d .leistung:focus-visible { box-shadow:var(--shadow-md); border-color:rgba(227,30,36,.35); background:rgba(255,255,255,.78); }
  .mit-3d .leistung--l1, .mit-3d .leistung--l2 { text-align:right; }
  .mit-3d .leistung--l1 b, .mit-3d .leistung--l2 b { justify-content:flex-end; }
  .mit-3d .leistungen__linien { display:block; position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; z-index:1; }
  .leistungen__linien path { fill:none; stroke:var(--ink-300); stroke-width:1.5; stroke-dasharray:1 1; stroke-dashoffset:1; transition:stroke .25s ease; }
  .leistungen__linien path.is-an { stroke:var(--hs-red); stroke-width:2; }
}

/* ---------- Anrufbalken: nur auf dem Handy, immer unten sichtbar ---------- */
.anrufleiste { display:none; }
@media (max-width:719px) {
  .anrufleiste { display:flex; align-items:center; justify-content:center; gap:.5em; position:fixed; left:0; right:0; bottom:0;
    z-index:calc(var(--z-header) + 1); padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom)); background:var(--hs-red); color:#fff;
    font-weight:700; text-decoration:none; box-shadow:0 -4px 16px rgba(0,0,0,.18); }
  .anrufleiste:active { background:var(--red-600); }
  body { padding-bottom:calc(3.4rem + env(safe-area-inset-bottom)); }
}
.leistung.is-aktiv { border-color:rgba(227,30,36,.35); box-shadow:var(--shadow-md); }
.leistung.is-aktiv b { color:var(--red-700); }

/* ---------- Topbar: Zeiten und Adresse; auf dem Handy ohne Notrufknopf (der sitzt unten) ---------- */
.hs-topbar__info { display:flex; flex-wrap:wrap; gap:0 .5em; }
.hs-topbar__adresse::before { content:"·"; margin-right:.5em; color:#C9D0D6; font-weight:400; }
@media (max-width:719px) {
  .hs-topbar__emergency { display:none; }
  .hs-topbar .container { justify-content:center; min-height:0; padding-block:.45rem; }
  .hs-topbar__info { flex-direction:column; align-items:center; text-align:center; line-height:1.5; }
  .hs-topbar__zeiten, .hs-topbar__adresse { white-space:nowrap; }
  .hs-topbar__adresse::before { content:none; }
}

/* Siegel und Partnerlogos neben Zertifikatstexten */
.siegel { display:block; width:120px; height:auto; margin:0 0 var(--sp-4); }
.siegel--breit { width:220px; border-radius:var(--radius-sm, 4px); }
