/* ============================================================================
   HeizHirsch — Rahmen der Website
   Kopfzeile, Seitenleiste, Kachelfeld, Tab-Bar, Menüblatt und Fussbereich.
   Ersetzt die Elementor-Bausteine für Kopf und Fuss vollständig; der Inhalt
   der Seiten bleibt unangetastet.
   ========================================================================== */

/* Farben wie im bisherigen Auftritt:
   Kopfzeile und Fuss #3A4743, der Formularblock #3A3F47, die MKurti-Zeile
   schwarz, die Tab-Bar im selben Grünton wie zuvor. */
:root{
  --c-rot:#E30613;
  --c-gruen:#3A4743;   /* Kopfzeile, Fuss, Schlusszeile */
  --c-panel:#3A3F47;   /* Block mit dem Rückruf */
  --c-dunkel:#242424;
  --c-tief:#1A1A1A;
  --c-schwarz:#000000; /* MKurti-Zeile */
  --c-linie:rgba(255,255,255,.12);
  --c-linie-2:rgba(255,255,255,.22);
  --c-text:rgba(255,255,255,.74);
  --c-leise:rgba(255,255,255,.5);
  /* Rahmen rundherum: Kopfzeile oben, Schlusszeile unten,
     Seitenleiste rechts — alle drei gleich dick. */
  --kopf-h:60px;
  --tabs-h:60px;
  --recht-h:60px;
  --rail-b:60px;
  /* Ein Wert fuer beide Rahmenbalken — links wie rechts derselbe Abstand. */
  --rahmen-pad:clamp(16px,1.7vw,24px);
}

.hh-head-wrap *,
.hh-foot *,
.hh-rail *,
.hh-tabs *,
.hh-sheet *,
.hh-nav-tiles-sec *{ box-sizing:border-box; }

/* ═══════════════════ Kopfzeile ═══════════════════ */
.hh-head-wrap{
  position:fixed; inset:0 0 auto 0; z-index:9000;
  background:var(--c-gruen); border-bottom:1px solid var(--c-linie);
}
html body{ padding-top:var(--kopf-h) !important; }
.hh-head{
  display:flex; align-items:center; gap:22px;
  width:100%; max-width:none; margin:0; padding:0 var(--rahmen-pad);
  height:calc(var(--kopf-h) - 1px);
}
.hh-head-logo{ flex:none; display:flex; align-items:center; }
.hh-head-logo img{ height:34px; width:auto; display:block; }

.hh-head-nav{ flex:1; display:flex; justify-content:center; }
.hh-head-nav ul{
  display:flex; align-items:center; gap:clamp(12px,1.6vw,26px);
  margin:0; padding:0; list-style:none;
}
.hh-head-nav a{
  display:block; padding:6px 0; text-decoration:none;
  font-family:"Nunito Sans", sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; color:var(--c-text);
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color .16s ease, border-color .16s ease;
}
.hh-head-nav a:hover{ color:#FFF; }
.hh-head-nav a[aria-current="page"]{ color:#FFF; border-bottom-color:var(--c-rot); }

.hh-head-akt{ flex:none; display:flex; align-items:center; gap:14px; }
.hh-head-tel{
  display:inline-flex; align-items:center; gap:9px; text-decoration:none; color:#FFF;
}
.hh-head-tel svg{ width:15px; height:15px; stroke:var(--c-rot); fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.hh-head-tel b{
  display:block; font-family:"Nunito Sans", sans-serif; font-size:13.5px;
  font-weight:600; letter-spacing:.01em; line-height:1.15; white-space:nowrap;
}
.hh-head-tel small{
  display:block; font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--c-leise); font-weight:600; margin-top:2px;
}
.hh-cta-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--c-rot); color:#FFF; text-decoration:none; border:1px solid var(--c-rot);
  padding:11px 18px; font-family:"Nunito Sans", sans-serif; font-size:12px; font-weight:600;
  letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; cursor:pointer;
  transition:background-color .16s ease, border-color .16s ease;
}
.hh-cta-btn:hover{ background:#000; border-color:#000; color:#FFF; }
.hh-cta-btn:focus-visible{ outline:2px solid #FFF; outline-offset:2px; }
.hh-cta-btn svg{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.hh-cta-btn--geist{ background:transparent; border-color:var(--c-linie-2); color:#FFF; }
.hh-cta-btn--geist:hover{ background:transparent; border-color:#FFF; }
.hh-cta-btn--voll{ width:100%; }

@media (max-width:1180px){
  .hh-head-nav a{ font-size:11px; letter-spacing:.06em; }
  .hh-head-tel small{ display:none; }
}
@media (max-width:1024px){
  .hh-head{ gap:14px; }
  .hh-head-nav{ display:none; }         /* auf dem Handy übernimmt die Tab-Bar */
  /* Ohne die Navigation nimmt niemand mehr den freien Platz auf, und Telefon
     und Knopf rutschen ans Logo heran. Der Zwischenraum gehoert nach links,
     damit beide buendig an der rechten Kante sitzen — gleich weit vom Rand
     wie das Logo auf der anderen Seite. */
  .hh-head-akt{ margin-left:auto; }
  .hh-head-tel b{ font-size:12.5px; }
}
@media (max-width:520px){
  .hh-head-logo img{ height:28px; }
  .hh-head-tel b{ display:none; }
  .hh-head-tel{ width:40px; height:40px; justify-content:center; border:1px solid var(--c-linie-2); }
  .hh-head-tel svg{ width:17px; height:17px; }
  .hh-cta-btn{ padding:10px 13px; font-size:11px; }
}

/* ═══════════════════ Seitenleiste rechts ═══════════════════ */
.hh-rail{
  position:fixed; right:0; top:var(--kopf-h); bottom:var(--recht-h); z-index:8500;
  width:var(--rail-b);
  /* umgekehrte Richtung: das erste Zeichen sitzt unten, gestapelt wird nach oben */
  display:flex; flex-direction:column-reverse; justify-content:flex-start;
  background:var(--c-gruen); border-left:1px solid var(--c-linie);
}
.hh-rail a{
  position:relative; width:100%; height:var(--rail-b); flex:none;
  display:grid; place-items:center;
  background:var(--c-gruen); text-decoration:none;
  border-top:1px solid var(--c-linie);
  transition:background-color .16s ease;
}
.hh-rail a svg{ width:17px; height:17px; stroke:#FFF; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.hh-rail a[data-voll] svg{ fill:#FFF; stroke:none; }
.hh-rail a:hover{ background:var(--c-rot); }
.hh-rail a:focus-visible{ outline:2px solid #FFF; outline-offset:-2px; }
.hh-rail a.is-akzent{ background:var(--c-rot); }
.hh-rail a.is-akzent:hover{ background:#000; }
/* Beschriftung erscheint beim Darüberfahren */
.hh-rail a::after{
  content:attr(data-titel); position:absolute; right:calc(100% + 8px); top:50%;
  transform:translateY(-50%) translateX(6px);
  background:var(--c-tief); color:#FFF; padding:6px 10px; white-space:nowrap;
  font-family:"Nunito Sans", sans-serif; font-size:11px; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  opacity:0; pointer-events:none; transition:opacity .16s ease, transform .16s ease;
}
.hh-rail a:hover::after, .hh-rail a:focus-visible::after{ opacity:1; transform:translateY(-50%) translateX(0); }
@media (max-width:1024px){ .hh-rail{ display:none; } }

/* ═══════════════════ Kachelfeld ═══════════════════ */
.hh-nav-tiles-sec{ background:var(--c-tief); padding:clamp(26px,4vw,54px) clamp(16px,3vw,60px); }
.hh-nav-tiles-in{ max-width:1440px; margin:0 auto; }
.hh-nav-tiles-kick{
  margin:0 0 clamp(14px,2vw,22px); font-family:"Nunito Sans", sans-serif;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--c-leise); font-weight:700;
}
.hh-nav-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,1vw,14px); }
@media (max-width:900px){ .hh-nav-tiles{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:380px){ .hh-nav-tiles{ grid-template-columns:1fr; } }

.hh-nav-tile{
  position:relative; display:block; overflow:hidden; text-decoration:none;
  aspect-ratio:4/3; background:var(--c-gruen); border:1px solid var(--c-linie);
}
.hh-nav-tile img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.62; transition:opacity .3s ease, transform .5s ease;
}
.hh-nav-tile:hover img, .hh-nav-tile:focus-visible img{ opacity:.78; transform:scale(1.05); }
.hh-nav-tile:focus-visible{ outline:2px solid #FFF; outline-offset:2px; }
.hh-nav-tile-txt{
  position:absolute; inset:auto 0 0 0; padding:clamp(11px,1.4vw,16px);
  background:linear-gradient(0deg, rgba(26,26,26,.96) 12%, rgba(26,26,26,.72) 55%, transparent);
}
.hh-nav-tile-txt b{
  display:block; font-family:"Nunito Sans", sans-serif; font-size:clamp(13px,1.5vw,16px);
  font-weight:900; letter-spacing:.05em; text-transform:uppercase; color:#FFF; line-height:1.2;
}
.hh-nav-tile-txt span{
  display:block; margin-top:5px; font-size:clamp(11px,1.1vw,13px); line-height:1.45;
  color:rgba(255,255,255,.7);
}
.hh-nav-tile-pfeil{
  position:absolute; top:11px; right:11px; width:26px; height:26px; display:grid; place-items:center;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  transition:background-color .16s ease;
}
.hh-nav-tile:hover .hh-nav-tile-pfeil{ background:var(--c-rot); border-color:var(--c-rot); }
.hh-nav-tile-pfeil svg{ width:12px; height:12px; stroke:#FFF; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

/* ═══════════════════ Fussbereich — Standort und Rückruf ═══════════════════ */
/* Voller Bildschirm als Abschluss: 100vh minus 120px. Auf dem Handy bewusst
   nur so hoch wie nötig, sonst scrollt man an einer halbleeren Fläche vorbei. */
.hh-foot-wrap{ display:flex; flex-direction:column; min-height:calc(100vh - 120px); }
.hh-foot{ flex:1; display:flex; background:var(--c-gruen); }
.hh-foot-haupt{ flex:1; display:grid; grid-template-columns:1fr 1fr; width:100%; }

.hh-fz{ padding:clamp(26px,4vw,58px) clamp(20px,3.4vw,56px);
  display:flex; flex-direction:column; justify-content:center; min-width:0; }
.hh-fz--rueckruf{ background:var(--c-panel); }
.hh-fz--standort{
  position:relative; background:#2C3733; padding:0;
  align-items:stretch; justify-content:space-between; text-align:left;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:38px 38px;
}
/* Die feine Diagonale deutet eine Strasse an, ohne eine Karte zu behaupten */
.hh-fz--standort::before{
  content:""; position:absolute; left:12%; right:12%; top:50%; height:2px;
  background:rgba(255,255,255,.1); transform:rotate(-24deg); pointer-events:none;
}
/* Kontaktblatt: die Spalte ist die Karte. Logo und QR oben, die Angaben
   darunter, Notfallzeile als Abschluss, Knopf als Balken ueber die Breite. */
.hh-blatt-oben{
  position:relative; display:flex; align-items:flex-start; justify-content:space-between;
  gap:20px; padding:clamp(24px,3.6vw,40px) clamp(22px,3.2vw,44px) 0;
}
.hh-blatt-mitte{
  position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:13px;
  padding:clamp(20px,3vw,34px) clamp(22px,3.2vw,44px) clamp(24px,3.6vw,40px);
}
/* Der Knopfbalken liegt buendig an den Kanten der Spalte. */
.hh-blatt-fuss{
  position:relative; display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap;
  padding:clamp(16px,2.4vw,22px) clamp(22px,3.2vw,44px);
  border-top:1px solid var(--c-linie); background:rgba(0,0,0,.24);
}
.hh-blatt-qr{ width:58px; height:58px; flex:none; background:#FFF; padding:4px; display:block; }
.hh-blatt-qr img{ width:100%; height:100%; display:block; }

.hh-standort-adr{ margin:0; font-size:15px; line-height:1.5; color:var(--c-text); }
.hh-standort-wege{ display:flex; flex-direction:column; align-items:flex-start; gap:9px; }

.hh-fz-kick{
  margin:0 0 10px; font-family:"Nunito Sans", sans-serif; font-size:10.5px;
  letter-spacing:.19em; text-transform:uppercase; color:var(--c-leise); font-weight:700;
}
.hh-foot-logo{ display:block; }
.hh-foot-logo img{ height:clamp(40px,4.4vw,58px); width:auto; display:block; }

/* Eine einzige Wertgroesse — auch die Telefonnummer springt nicht heraus. */
.hh-tel-gross{
  display:block; text-decoration:none; color:#FFF;
  font-size:15px; line-height:1.45; font-weight:500;
}
.hh-foot-link{
  display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:#FFF;
  font-size:15px; line-height:1.45;
}
.hh-foot-link svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.hh-247{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--c-linie-2); padding:8px 12px;
  font-family:"Nunito Sans", sans-serif; font-size:10.5px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:#FFF;
}
.hh-247 i{ width:7px; height:7px; border-radius:50%; background:#5FD39A; flex:none; }

/* ─────────── Abschluss: Kontakt speichern ─────────── */
.hh-karte-n{ font-family:"Nunito Sans", sans-serif; font-size:15px; font-weight:600; color:#FFF; line-height:1.25; }
.hh-karte-n small{
  display:block; margin-top:3px; font-size:10.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--c-leise); font-weight:600;
}
.hh-karte-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:#FFF; color:var(--c-tief); text-decoration:none; padding:11px 16px;
  font-family:"Nunito Sans", sans-serif; font-size:10.5px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; white-space:nowrap;
  transition:background-color .16s ease, color .16s ease;
}
.hh-karte-btn:hover{ background:var(--c-rot); color:#FFF; }
.hh-karte-btn:focus-visible{ outline:2px solid #FFF; outline-offset:2px; }
.hh-karte-btn svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }

/* ─────────── Rückruf ─────────── */
.hh-quick-titel{
  margin:0 0 12px; font-family:"Nunito Sans", sans-serif;
  font-size:clamp(24px,3vw,36px); font-weight:900; letter-spacing:-.025em; color:#FFF; line-height:1.1;
}
.hh-quick-text{ margin:0 0 22px; font-size:15px; line-height:1.6; color:var(--c-text); max-width:44ch; }
.hh-quick{ display:flex; flex-direction:column; gap:10px; max-width:520px; }
.hh-quick-reihe{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:520px){ .hh-quick-reihe{ grid-template-columns:1fr; } }
.hh-quick label{ display:block; }
.hh-quick .lb{
  display:block; margin-bottom:6px; font-family:"Nunito Sans", sans-serif;
  font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-leise);
}
.hh-quick input{
  width:100%; padding:12px 14px; background:rgba(0,0,0,.26); color:#FFF;
  border:1px solid var(--c-linie-2); border-radius:0;
  font-family:"Inter Tight", sans-serif; font-size:15px; line-height:1.4;
}
.hh-quick input:focus{ outline:none; border-color:#FFF; }
.hh-quick input:focus-visible{ outline:2px solid #FFF; outline-offset:1px; }
.hh-quick input::placeholder{ color:rgba(255,255,255,.34); }
.hh-quick .has-error input{ border-color:var(--c-rot); }
.hh-quick-fehler{ display:none; margin:0; font-size:13px; color:#FF8E8E; }
.hh-quick-fehler.is-shown{ display:block; }
.hh-quick-mehr{ margin:14px 0 0; font-size:13.5px; color:var(--c-leise); line-height:1.55; max-width:520px; }
.hh-quick-mehr a{ color:#FFF; font-weight:700; }
.hh-quick-ok{ display:none; padding:20px; background:rgba(0,0,0,.26); border:1px solid #5FD39A; }
.hh-quick-ok.is-shown{ display:block; }
.hh-quick-ok b{ display:block; font-family:"Nunito Sans", sans-serif; font-size:17px; font-weight:900; color:#FFF; margin-bottom:6px; }
.hh-quick-ok p{ margin:0; font-size:14px; color:var(--c-text); }
.hh-quick-ok a{ color:#FFF; }

/* Auf dem Handy gestapelt und nur so hoch wie nötig */
@media (max-width:900px){
  .hh-foot-wrap{ min-height:0; }
  .hh-foot-haupt{ grid-template-columns:1fr; }
  .hh-fz--standort{ order:-1; }
  .hh-quick, .hh-quick-mehr{ max-width:none; }
}


/* ─────────── Schlusszeile ─────────── */
.hh-recht{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  width:100%; max-width:none; margin:0; padding:14px var(--rahmen-pad);
  font-size:12px; color:var(--c-leise);
}
.hh-recht-wrap{ background:var(--c-gruen); border-top:1px solid var(--c-linie); }
.hh-recht a{ color:inherit; text-decoration:none; }
.hh-recht a:hover{ color:#FFF; }
.hh-recht button{
  background:none; border:0; padding:0; color:inherit; cursor:pointer;
  font:inherit; text-decoration:none;
}
.hh-recht button:hover{ color:#FFF; }
.hh-recht .sp{ flex:1 1 auto; }
.hh-soz{ display:flex; gap:8px; }
.hh-soz a{ width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--c-linie-2); }
.hh-soz a:hover{ background:var(--c-rot); border-color:var(--c-rot); }
.hh-soz svg{ width:14px; height:14px; fill:rgba(255,255,255,.78); }
.hh-soz a:hover svg{ fill:#FFF; }

.hh-mk-wrap{ background:var(--c-schwarz); }
.hh-mk{
  display:flex; align-items:center; gap:11px; flex-wrap:wrap;
  max-width:1440px; margin:0 auto; padding:12px clamp(18px,3vw,60px);
  font-size:11.5px; color:rgba(255,255,255,.44);
}
.hh-mk img{ height:17px; width:auto; display:block; flex:none; opacity:.85; }
.hh-mk a{ color:rgba(255,255,255,.72); text-decoration:none; }
.hh-mk a:hover{ color:#FFF; }
.hh-mk .sp{ flex:1 1 auto; }

/* ═══════════════════ Tab-Bar (Handy) ═══════════════════ */
.hh-tabs{
  position:fixed; inset:auto 0 0 0; z-index:9500;
  height:calc(var(--tabs-h) + env(safe-area-inset-bottom, 0px));
  padding-bottom:env(safe-area-inset-bottom, 0px);
  display:flex; align-items:stretch;
  background:rgba(44,55,52,.97); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--c-linie);
  font-family:"Nunito Sans", sans-serif;
}
.hh-tabs a, .hh-tabs button{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; text-decoration:none; position:relative; background:none; border:0; cursor:pointer;
  color:rgba(255,255,255,.62); font-size:10px; font-weight:600; font-family:inherit;
  padding:0;
}
.hh-tabs svg{ width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.hh-tabs a.is-aktiv{ color:#FFF; }
.hh-tabs a.is-aktiv::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:26px; height:2.5px; background:var(--c-rot);
}
.hh-tabs a:focus-visible, .hh-tabs button:focus-visible{ outline:2px solid #FFF; outline-offset:-3px; }
.hh-tabs .hh-tab-mitte{ flex:0 0 74px; }
.hh-tabs .hh-tab-kreis{
  width:50px; height:50px; border-radius:50%; background:var(--c-rot);
  display:grid; place-items:center; margin-top:-22px; border:3px solid #2C3734;
}
.hh-tabs .hh-tab-kreis svg{ width:21px; height:21px; stroke:#FFF; stroke-width:2.2; }
.hh-tabs .hh-tab-mitte span{ color:#FFF; font-weight:600; }
@media (min-width:1025px){ .hh-tabs{ display:none; } }
@media (max-width:1024px){
  html body{ padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ═══════════════════ Menüblatt von unten ═══════════════════ */
.hh-sheet-bg{
  position:fixed; inset:0; z-index:9600; background:rgba(0,0,0,.6);
  opacity:0; pointer-events:none; transition:opacity .22s ease;
}
.hh-sheet-bg.is-offen{ opacity:1; pointer-events:auto; }
.hh-sheet{
  position:fixed; inset:auto 0 0 0; z-index:9700;
  background:var(--c-gruen); border-top:2px solid var(--c-rot);
  padding:10px 0 calc(14px + env(safe-area-inset-bottom, 0px));
  max-height:86vh; overflow-y:auto;
  transform:translateY(100%); transition:transform .26s cubic-bezier(.22,.7,.3,1);
  font-family:"Inter Tight", sans-serif;
}
.hh-sheet.is-offen{ transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  .hh-sheet{ transition:none; } .hh-sheet-bg{ transition:none; }
}
.hh-sheet-griff{ width:38px; height:4px; border-radius:2px; background:rgba(255,255,255,.28); margin:0 auto 14px; }
.hh-sheet-kick{
  margin:0 0 8px; padding:0 18px; font-family:"Nunito Sans", sans-serif;
  font-size:9.5px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.46); font-weight:700;
}
.hh-sheet-direkt{ display:grid; grid-template-columns:repeat(3,1fr); gap:9px; padding:0 18px 8px; }
.hh-sheet-direkt a{
  display:flex; flex-direction:column; align-items:center; gap:7px; padding:14px 6px;
  background:rgba(255,255,255,.06); border:1px solid var(--c-linie); text-decoration:none;
  color:#FFF; font-family:"Nunito Sans", sans-serif; font-size:11px; font-weight:800; letter-spacing:.05em;
}
.hh-sheet-direkt a:hover{ background:rgba(255,255,255,.11); }
.hh-sheet-direkt svg{ width:19px; height:19px; stroke:var(--c-rot); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.hh-sheet-zeile{
  display:flex; align-items:center; gap:13px; padding:14px 18px; text-decoration:none;
  color:#FFF; border-bottom:1px solid rgba(255,255,255,.07);
}
.hh-sheet-zeile:hover{ background:rgba(255,255,255,.05); }
.hh-sheet-zeile .ic{
  width:34px; height:34px; flex:none; display:grid; place-items:center;
  background:rgba(255,255,255,.07); border:1px solid var(--c-linie);
}
.hh-sheet-zeile .ic svg{ width:16px; height:16px; stroke:#FFF; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.hh-sheet-zeile b{ flex:1; font-family:"Nunito Sans", sans-serif; font-size:14.5px; font-weight:800; letter-spacing:.02em; }
.hh-sheet-zeile span{ font-size:11.5px; color:var(--c-leise); }
.hh-sheet-zeile[aria-current="page"] b{ color:var(--c-rot); }
.hh-sheet-recht{
  display:flex; gap:16px; flex-wrap:wrap; padding:14px 18px 0;
  font-size:11.5px; color:rgba(255,255,255,.46);
}
.hh-sheet-recht a, .hh-sheet-recht button{
  color:inherit; text-decoration:none; background:none; border:0; padding:0; font:inherit; cursor:pointer;
}
.hh-sheet-recht a:hover, .hh-sheet-recht button:hover{ color:#FFF; }
.hh-sheet-zu{
  position:absolute; top:12px; right:14px; width:32px; height:32px;
  display:grid; place-items:center; background:rgba(255,255,255,.08);
  border:1px solid var(--c-linie); color:#FFF; cursor:pointer;
}
.hh-sheet-zu svg{ width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; }

/* Sprungziele nicht unter der klebenden Kopfzeile verstecken */
#anfrage, #rueckruf{ scroll-margin-top:calc(var(--kopf-h) + 14px); }

/* ═══════════════ Schlusszeile klebt unten (wie bisher) ═══════════════ */
@media (min-width:1025px){
  .hh-recht-wrap{
    position:fixed; inset:auto 0 0 0; z-index:8800;
    border-top:1px solid var(--c-linie-2);
  }
  .hh-recht{ min-height:calc(var(--recht-h) - 1px); padding-top:0; padding-bottom:0; }
  /* Elementor setzt das Polster am Body selbst — deshalb mit Nachdruck.
     Rechts macht die Leiste den Rahmen zu, unten die Schlusszeile. */
  html body{
    padding-bottom:var(--recht-h) !important;
    padding-right:var(--rail-b) !important;
  }
}

/* Seiten ohne Fussbereich brauchen kein Polster fuer die Schlusszeile —
   und die Leiste laeuft dort bis ganz nach unten durch. */
@media (min-width:1025px){
  body.hh-ohne-fuss{ padding-bottom:0 !important; }
  body.hh-ohne-fuss .hh-rail{ bottom:0; }
}
/* Am Handy nur dort ohne Polster, wo sich der Inhalt selbst auf den
   Bildschirm misst — sonst verdeckt die Tab-Leiste das Seitenende. */
@media (max-width:1024px){
  html body.hh-vollbild{ padding-bottom:0 !important; }
}

/* ═══════════════════ Nur fuer Vorlesegeraete und Suchmaschinen ═══════════════════
   Die Serviceseite beginnt direkt mit dem Akkordeon und hatte keine H1. Sie
   steht jetzt im Quelltext, ohne die Gestaltung zu veraendern. Soll sie
   sichtbar werden, reicht es, diese Klasse auf der Seite zu ueberschreiben. */
.hh-nur-vorlesen{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
