/* ============================================================================
   Holzinger & Nanko — handgeschriebenes Stylesheet (Schritt 5: Feinschliff)
   Mobile-first, rem-basiert (16px-Root). Ersetzt das gepurgte WP-Theme-CSS.
   Referenzwerte stammen aus Computed-Style-Messungen des Originals
   (tools/README.md, Verifikationsmethode).
   Schritt 5: fluide Breite statt Breakpoint-Leiter, EIN Header-Markup für
   Desktop+Mobil, Assets unter /assets/, ungenutzte Fonts entfernt
   (Raleway, Lato 400, FontAwesome — Burger-Icon ist jetzt reines CSS).
   ========================================================================== */

/* ---- Fonts (nur tatsächlich genutzte Schnitte) --------------------------- */
@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/lato-normal-latin-300.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/lato-normal-latin-ext-300.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/source-sans-pro-normal-latin-300.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/source-sans-pro-normal-latin-ext-300.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/source-sans-pro-normal-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/source-sans-pro-normal-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/poppins-normal-latin-400.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/poppins-normal-latin-ext-400.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Icon-Fonts entfallen: die drei Kernkompetenzen-Icons sind Inline-SVGs
   (Pfade aus den Linea-Webfonts extrahiert, tools/extract-icons) */

/* ---- Basis --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{overflow-y:scroll}
/* Flex-Spalte + min-height: Footer sitzt auch bei kurzen Seiten (Jobs,
   Kontakt) an der unteren Viewport-Kante; --hn-wb-h gleicht den margin-top
   der offenen Notdienst-Leiste aus */
body{margin:0;padding:0;background:#fff;color:#828282;font:400 .875rem/1.625rem 'Source Sans Pro',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:margin-top .6s ease;display:flex;flex-direction:column;min-height:calc(100vh - var(--hn-wb-h,0px))}
main,header,footer,nav,section,figure{display:block}
h1,h2,h3{margin:1.5625rem 0;font-family:'Source Sans Pro',sans-serif;font-weight:300;color:#003e7d;letter-spacing:1px}
h1{font-size:1.875rem;line-height:1.5em;text-transform:uppercase}
h2{font-size:1.75rem;line-height:1.5em;text-transform:uppercase}
h3{font-size:1.625rem;line-height:1.5em;text-transform:uppercase}
/* h4/h5: nur in der Datenschutzerklärung — nicht uppercase (lange Fragesätze) */
h4,h5{margin:1.25rem 0;font-family:'Source Sans Pro',sans-serif;font-weight:400;color:#003e7d;letter-spacing:.5px}
h4{font-size:1.25rem}
h5{font-size:1.125rem}
p{margin:.625rem 0;font-family:'Source Sans Pro',sans-serif;font-size:1.125rem;line-height:1.8125rem;font-weight:300;color:#4c433f}
a{color:#003e7d;text-decoration:none;cursor:pointer;transition:color .2s ease-out}
img{max-width:100%;height:auto;border:0}
address{font-style:normal}
ul{margin:.9375rem 0;padding:0;list-style-position:inside}
button{font:inherit}

/* ---- Utilities ----------------------------------------------------------- */
.hn-center{text-align:center}
.hn-white{color:#fff}
.hn-black{color:#000}
.hn-blue{color:#003e7d}
.hn-bg-blue{background-color:#003e7d}
/* Rot minimal abgedunkelt (war #e92b25): Weiß auf Rot erreicht so die
   WCAG-AA-Kontrastschwelle 4,5:1 für Fließtext */
.hn-bg-red{background-color:#e02a24}
.hn-mb-0{margin-bottom:0}
.hn-pt-10{padding-top:.625rem}
.hn-pt-15{padding-top:.9375rem}
.hn-pt-20{padding-top:1.25rem}
.hn-pt-40{padding-top:2.5rem}
.hn-pt-50{padding-top:3.125rem}
.hn-pt-60{padding-top:3.75rem}
.hn-pt-150{padding-top:9.375rem}
.hn-pt-200{padding-top:12.5rem}
.hn-pb-20{padding-bottom:1.25rem}
.hn-pb-30{padding-bottom:1.875rem}
.hn-pb-40{padding-bottom:2.5rem}
.hn-pb-50{padding-bottom:3.125rem}
.hn-pb-60{padding-bottom:3.75rem}
.hn-pb-70{padding-bottom:4.375rem}
.hn-pb-80{padding-bottom:5rem}
.hn-pb-100{padding-bottom:6.25rem}
.hn-pb-250{padding-bottom:15.625rem}
.hn-pb-270{padding-bottom:16.875rem}
.hn-mt-20{margin-top:1.25rem}
.hn-mt-30{margin-top:1.875rem}
.hn-mt-60{margin-top:3.75rem}
.hn-mb-20{margin-bottom:1.25rem}
.hn-mb-30{margin-bottom:1.875rem}
.hn-mb-50{margin-bottom:3.125rem}
.hn-mb-60{margin-bottom:3.75rem}

/* Skip-Link */
.hn-skip{position:absolute;left:-9999px;top:0;z-index:100000;background:#003e7d;color:#fff;padding:.625rem 1.125rem}
.hn-skip:focus{left:0}

/* ---- Layout: fluider Wrapper, Spalten, Sektionen -------------------------- */
/* flow-root überall: die Original-Wrapper trugen Clearfixes, die Margin-
   Collapsing zwischen Container und Kindern unterbanden — das Spacing hängt davon ab. */
.hn-section{display:flow-root;position:relative}
/* Fluid statt Breakpoint-Leiter: Inhalt max. 1100px + 20px Randabstand */
.hn-wrap{display:flow-root;max-width:71.25rem;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}
.hn-bleed{display:flow-root;padding-left:.9375rem;padding-right:.9375rem}
.hn-col{display:flow-root}
@media (min-width:768px){
  .hn-cols-2{display:grid;grid-template-columns:1fr 1fr;column-gap:1.875rem}
  .hn-cols-3{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1.875rem}
}
/* Original: .wpb_text_column :last-child{margin-bottom:0} — gilt für Inhalts-
   elemente, nicht für Spalten (deren mt/mb-Utilities bleiben erhalten) */
.hn-wrap > :last-child:not(.hn-col):not(section),.hn-col > :last-child,.hn-bleed > :last-child,.hn-tile-body > :last-child,.hn-legal > section > :last-child{margin-bottom:0}

/* ---- Header (EIN Markup für Desktop & Mobil) ------------------------------
   Mobil: weiße Leiste, Burger links, Logo mittig, Nav klappt absolut direkt
   unter der Leiste auf (folgt ihr dadurch auch im fixierten Zustand).
   Desktop (ab 1025px): halbtransparente Leiste über dem Hero, Nav mittig.
   Scroll-hoch (JS, zweistufig): .hn-fixed nimmt die Leiste aus dem Fluss und
   parkt sie über dem Viewport, .header-appear fährt sie per Transition herein;
   beim Entfernen von .header-appear fährt sie hinaus, JS räumt .hn-fixed nach
   Ende der Transition ab. .hn-header behält über min-height seine Höhe im
   Fluss, es gibt keinen Layout-Sprung. */
.hn-header{position:relative;z-index:110;min-height:5rem}
.hn-bar{position:relative;height:5rem;background:#fff;border-bottom:1px solid #d4d4d4}
/* --hn-wb-h = Höhe der offenen Notdienst-Leiste (setzt JS), damit der
   fixierte Header nicht hinter ihr verschwindet */
.hn-fixed .hn-bar{position:fixed;top:var(--hn-wb-h,0px);left:0;right:0;transform:translateY(calc(-100% - var(--hn-wb-h,0px)));transition:transform .6s ease}
/* hn-setup: unterdrückt beim Parken die Transition — sonst startet schon der
   Wechsel none→geparkt eine Transition ab 0 und das Hereinfahren entfällt */
.hn-fixed.hn-setup .hn-bar{transition:none}
.hn-fixed.header-appear .hn-bar{transform:translateY(0)}
.hn-bar-in{position:relative;height:100%;max-width:71.25rem;margin:0 auto;padding:0 1.25rem}
.hn-mopener{position:absolute;left:1.25rem;top:0;height:100%;display:flex;align-items:center;padding:0 .625rem 0 0;background:none;border:0;cursor:pointer;color:#928579}
.hn-mopener:hover{color:#5e544e}
.hn-burger{display:block;width:1.25rem;height:.9375rem;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
.hn-burger::before{content:'';position:absolute;left:0;right:0;top:50%;margin-top:-1px;border-top:2px solid currentColor}
.hn-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:2.4375rem;display:block}
.hn-logo img{height:100%;width:auto;display:block}
.hn-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #d4d4d4}
.hn-nav.hn-open{display:block}
.hn-nav ul{list-style:none;margin:0 auto;padding:.9375rem 1.25rem;max-width:71.25rem}
.hn-nav a{display:block;padding:.5625rem 0;border-bottom:1px solid #928579;font-family:'Source Sans Pro',sans-serif;font-size:.75rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:#928579;transition:color .15s ease-out}
.hn-nav li:last-child a{border-bottom:none}
.hn-nav a:hover,.hn-nav a.current{color:#5e544e}
@media (min-width:1025px){
  .hn-bar{background:rgba(255,255,255,.9);border-bottom:0}
  .hn-fixed .hn-bar{background:rgba(255,255,255,.9);border-bottom:1px solid #fff}
  .hn-bar-in{max-width:none;padding:0;display:flex;justify-content:center;align-items:stretch}
  .hn-mopener{display:none}
  .hn-logo{left:25px;transform:translateY(-50%)}
  .hn-nav{display:block;position:static;height:100%;background:transparent;border-bottom:0}
  .hn-nav ul{display:flex;height:100%;margin:0;padding:0;max-width:none}
  .hn-nav li{height:100%}
  .hn-nav a{display:flex;align-items:center;height:100%;padding:0 10px;border-bottom:0;font-size:1.0625rem;font-weight:300;letter-spacing:1px}
  .hn-nav li:last-child a{border-bottom:0}
  .hn-nav a span{display:block;position:relative;padding:0 3px;line-height:1.875rem}
  .hn-nav a span::after{content:'';position:relative;bottom:2px;left:0;display:block;height:1px;width:0;background-color:transparent;transition:width .3s ease-out,background-color .15s ease-out}
  .hn-nav a:hover span::after,.hn-nav a.current span::after{width:100%;background-color:currentColor}
}
@media (min-width:1201px){
  .hn-nav a{padding:0 12px}
  .hn-logo{left:35px}
}
@media (min-width:1441px){
  .hn-logo{left:55px}
}

/* ---- Main ----------------------------------------------------------------- */
.hn-main{display:flow-root;background:#fff;flex:1 0 auto}
/* Desktop: Inhalt beginnt unter dem halbtransparenten 80px-Header */
@media (min-width:1025px){.hn-main{margin-top:-5rem}}

/* ---- Hero (Start- und Service-Seite; nur ab 768px sichtbar) ---------------
   Responsive Hintergründe: 1536er-Variante als Standard, Original erst ab
   1441px Viewportbreite. */
.hn-hero{position:relative;overflow:hidden;height:46.875rem;display:flex;align-items:center;background-image:url('/assets/img/117135905_m-1536x1025.jpg');background-image:image-set(url('/assets/img/117135905_m-1536x1025.webp') type('image/webp'),url('/assets/img/117135905_m-1536x1025.jpg') type('image/jpeg'));background-size:cover;background-position:center}
.hn-hero > *{position:relative;z-index:1}
.hn-hero-panel{background-color:rgba(0,62,125,.8);width:49.6875rem;max-width:100%;padding:3.5rem 3.0625rem 3.5rem 4.375rem}
.hn-hero-panel h1{margin:0;color:#fff;font-family:Lato,sans-serif;font-size:2.125rem;line-height:3.4375rem;font-weight:300;letter-spacing:normal;text-transform:uppercase}
.hn-hero-divider{width:19rem;max-width:100%;border-top:2px solid #fff;margin:1.75rem 0 1.25rem}
.hn-hero-panel p{margin:0;color:#fff;font-family:Lato,sans-serif;font-size:1.5625rem;line-height:2.5rem;font-weight:300;max-width:36.25rem}
.hn-hero--service{align-items:flex-end;background-image:url('/assets/img/service-anlagen-1536x1024.jpg');background-image:image-set(url('/assets/img/service-anlagen-1536x1024.webp') type('image/webp'),url('/assets/img/service-anlagen-1536x1024.jpg') type('image/jpeg'))}
.hn-hero-bar{width:100%;min-height:5.6875rem;background-color:rgba(0,62,125,.8);display:flex;align-items:center;justify-content:center}
.hn-hero-bar h1{margin:0;color:#fff;font-family:Lato,sans-serif;font-size:2.125rem;line-height:4.125rem;font-weight:300;text-align:center;text-transform:uppercase;letter-spacing:normal}
@media (min-width:1441px){
  .hn-hero{background-image:url('/assets/img/117135905_m.jpg');background-image:image-set(url('/assets/img/117135905_m.webp') type('image/webp'),url('/assets/img/117135905_m.jpg') type('image/jpeg'))}
  .hn-hero--service{background-image:url('/assets/img/service-anlagen.jpg');background-image:image-set(url('/assets/img/service-anlagen.webp') type('image/webp'),url('/assets/img/service-anlagen.jpg') type('image/jpeg'))}
}

/* ---- Parallax-Bänder (JS erzeugt .hn-parallax-inner) ----------------------
   Responsive Hintergründe: 1100er-Variante mobil, 1536 ab 768px, Original ab
   1441px. */
.hn-parallax{position:relative;overflow:hidden;display:flow-root;background-size:cover;background-position:center}
.hn-parallax > *{position:relative;z-index:1}
.hn-parallax-inner{pointer-events:none;position:absolute;left:0;right:0;top:0;background-attachment:scroll;background-color:transparent;background-image:inherit;background-size:cover;background-position:50% 0;background-repeat:no-repeat;z-index:0}
.hn-band-kernkompetenzen-bad{background-image:url('/assets/img/kernkompetenzen-bad-1100.jpg');background-image:image-set(url('/assets/img/kernkompetenzen-bad-1100.webp') type('image/webp'),url('/assets/img/kernkompetenzen-bad-1100.jpg') type('image/jpeg'))}
.hn-band-service-anlagen{background-image:url('/assets/img/service-anlagen-1100x734.jpg');background-image:image-set(url('/assets/img/service-anlagen-1100x734.webp') type('image/webp'),url('/assets/img/service-anlagen-1100x734.jpg') type('image/jpeg'))}
.hn-band-muenchen{background-image:url('/assets/img/muenchen-1100.jpg');background-image:image-set(url('/assets/img/muenchen-1100.webp') type('image/webp'),url('/assets/img/muenchen-1100.jpg') type('image/jpeg'))}
.hn-band-reperatur{background-image:url('/assets/img/reperatur-1100x733.jpg');background-image:image-set(url('/assets/img/reperatur-1100x733.webp') type('image/webp'),url('/assets/img/reperatur-1100x733.jpg') type('image/jpeg'))}
.hn-band-wartungsvertrag{background-image:url('/assets/img/wartungsvertrag-1100x733.jpg');background-image:image-set(url('/assets/img/wartungsvertrag-1100x733.webp') type('image/webp'),url('/assets/img/wartungsvertrag-1100x733.jpg') type('image/jpeg'))}
@media (min-width:768px){
  .hn-band-kernkompetenzen-bad{background-image:url('/assets/img/kernkompetenzen-bad-1536.jpg');background-image:image-set(url('/assets/img/kernkompetenzen-bad-1536.webp') type('image/webp'),url('/assets/img/kernkompetenzen-bad-1536.jpg') type('image/jpeg'))}
  .hn-band-service-anlagen{background-image:url('/assets/img/service-anlagen-1536x1024.jpg');background-image:image-set(url('/assets/img/service-anlagen-1536x1024.webp') type('image/webp'),url('/assets/img/service-anlagen-1536x1024.jpg') type('image/jpeg'))}
  .hn-band-muenchen{background-image:url('/assets/img/muenchen-1536.jpg');background-image:image-set(url('/assets/img/muenchen-1536.webp') type('image/webp'),url('/assets/img/muenchen-1536.jpg') type('image/jpeg'))}
  .hn-band-reperatur{background-image:url('/assets/img/reperatur-1536x1024.jpg');background-image:image-set(url('/assets/img/reperatur-1536x1024.webp') type('image/webp'),url('/assets/img/reperatur-1536x1024.jpg') type('image/jpeg'))}
  .hn-band-wartungsvertrag{background-image:url('/assets/img/wartungsvertrag-1536x1024.jpg');background-image:image-set(url('/assets/img/wartungsvertrag-1536x1024.webp') type('image/webp'),url('/assets/img/wartungsvertrag-1536x1024.jpg') type('image/jpeg'))}
}
@media (min-width:1441px){
  .hn-band-kernkompetenzen-bad{background-image:url('/assets/img/kernkompetenzen-bad.jpg');background-image:image-set(url('/assets/img/kernkompetenzen-bad.webp') type('image/webp'),url('/assets/img/kernkompetenzen-bad.jpg') type('image/jpeg'))}
  .hn-band-service-anlagen{background-image:url('/assets/img/service-anlagen.jpg');background-image:image-set(url('/assets/img/service-anlagen.webp') type('image/webp'),url('/assets/img/service-anlagen.jpg') type('image/jpeg'))}
  .hn-band-muenchen{background-image:url('/assets/img/muenchen.jpg');background-image:image-set(url('/assets/img/muenchen.webp') type('image/webp'),url('/assets/img/muenchen.jpg') type('image/jpeg'))}
  .hn-band-reperatur{background-image:url('/assets/img/reperatur.jpg');background-image:image-set(url('/assets/img/reperatur.webp') type('image/webp'),url('/assets/img/reperatur.jpg') type('image/jpeg'))}
  .hn-band-wartungsvertrag{background-image:url('/assets/img/wartungsvertrag.jpg');background-image:image-set(url('/assets/img/wartungsvertrag.webp') type('image/webp'),url('/assets/img/wartungsvertrag.jpg') type('image/jpeg'))}
}

/* ---- Komponenten ---------------------------------------------------------- */
/* Trennlinie: 100px, zentriert, 20px Abstand nach unten (Inline-Block wie im
   Original, damit der Abstand nicht mit Folge-Margins kollabiert) */
.hn-sep{text-align:center;font-size:0;line-height:0}
.hn-sep::after{content:'';display:inline-block;width:6.25rem;border-bottom:1px solid #003e7d;margin-bottom:1.25rem}
.hn-sep--white::after{border-color:#fff}

/* Icon-Shortcode (Kernkompetenzen): Span 3em + Inline-SVG in Textfarbe */
.hn-ico{display:inline-block;font-size:3em;color:#003e7d}
.hn-ico svg{display:block;width:1em;height:1em;fill:currentColor}

/* Button (Outline) */
.hn-btn{display:inline-block;padding:.625rem 2.25rem;border:1px solid #003e7d;color:#003e7d;background-color:transparent;font-family:'Source Sans Pro',sans-serif;font-size:1.125rem;line-height:2em;font-weight:300;letter-spacing:2px;transition:color .2s ease-in-out,background-color .2s ease-in-out}
.hn-btn:hover{color:#fff;background-color:#003e7d}

/* Telefon-Links: Farbe des umgebenden Texts erben (z. B. weiß auf Rot) */
.hn-tel{color:inherit}

/* Bild-Figure (ersetzt wpb_single_image/vc_figure/vc_single_image-wrapper) */
.hn-img{display:flow-root;margin:0;text-align:center}
.hn-img img{vertical-align:top}
.hn-img--circle img{border-radius:50%}

/* Service-Kacheln: 50/50 Bild/Text, vollflächig.
   Mobil: immer Bild über Text (order), alle Bilder sichtbar.
   Desktop: Bild füllt die volle Zeilenhöhe und wird beschnitten (cover) —
   vorher blieb bei schmalen Fenstern Weißraum unter kurzen Bildern. */
.hn-tile{position:relative;display:flex;flex-direction:column}
.hn-tile-media{order:-1}
.hn-tile-media img{display:block;width:100%;height:auto}
.hn-tile-body{display:flow-root}
@media (min-width:768px){
  .hn-tile{display:grid;grid-template-columns:1fr 1fr}
  .hn-tile-media{order:0}
  .hn-tile-media img{height:100%;object-fit:cover}
}

/* ---- Titelband (Impressum) ------------------------------------------------ */
.hn-title{height:9.75rem;background:#f8f8fa;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;z-index:101}
@media (min-width:1025px){.hn-title{padding-top:5rem}}
.hn-title h1{display:inline-block;vertical-align:middle;margin:0;color:#003e7d;font-family:Lato,sans-serif;font-size:1.875rem;font-weight:300;letter-spacing:1px;text-transform:uppercase;line-height:.9em}
.hn-title h1 span{display:inline-block;vertical-align:middle;font-size:.7em}
@media (min-width:601px){.hn-title h1{line-height:1em}.hn-title h1 span{font-size:.8em}}
@media (min-width:769px){.hn-title h1{line-height:1.5em}.hn-title h1 span{font-size:1em}}
/* Impressum-Textspalte: 20px Innenabstand (wie Original) */
.hn-legal > section{display:flow-root;padding-left:1.25rem;padding-right:1.25rem}

/* ---- Footer ----------------------------------------------------------------
   Mobil wie das Original: keine Höhe/kein Padding, Zeilenhöhe 24px, p-Margins
   10px oben/unten (flow-root schließt sie ein → 68px-Balken bei 2 Zeilen).
   Desktop: fixe 80px, Text mittig. Schriftfarbe #ccc statt #999/#4c433f:
   die globale p-Regel hatte die Footer-Farbe überschrieben — Kontrast auf
   #231f20 war ~1,5:1, jetzt ~10:1 (WCAG AA/AAA). */
.hn-footer{display:flow-root;background:#231f20;text-align:center;color:#ccc;font-family:'Source Sans Pro',sans-serif;font-size:.75rem;font-weight:500;line-height:1.5rem}
/* Footer-Text bleibt bei 16px (p-Basis wurde auf 18px angehoben) */
.hn-footer p{color:#ccc;font-size:1rem;line-height:1.625rem}
.hn-footer .hn-wrap{display:block}
.hn-footer .hn-wrap > p:last-child{margin:.625rem 0}
@media (min-width:769px){
  .hn-footer{display:flex;align-items:center;justify-content:center;height:5rem;line-height:1.625rem}
  .hn-footer .hn-wrap > p:last-child{margin:0}
}
.hn-footer a{color:#fff}
.hn-footer a:hover{color:#ccc}

/* ---- Notdienst-Leiste ------------------------------------------------------ */
.hn-wb{position:fixed;left:0;right:0;top:-3.75rem;opacity:0;z-index:9999999;background-color:#e02a24;transition:top .6s ease,opacity .6s ease;pointer-events:none}
body.hn-wb-on .hn-wb{top:0;opacity:1;pointer-events:auto}
.hn-wb-wrap{min-height:3.75rem;padding:.9375rem 2.1875rem .625rem .625rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}
@media (min-width:481px){.hn-wb-wrap{padding:1.25rem 3.125rem;flex-wrap:nowrap}}
.hn-wb p{margin:0;color:#fff;font-family:Poppins,sans-serif;font-size:1rem;line-height:1.2;font-weight:400}
.hn-wb a{color:#fff}
/* Rufnummer und Zeit-Vermerk nicht mitten im Umbruch zerreißen */
.hn-wb .hn-tel,.hn-wb-hours{white-space:nowrap}
.hn-wb-close{position:absolute;top:5px;right:10px;width:1.875rem;height:1.875rem;line-height:1.875rem;text-align:center;border-radius:5px;padding:0;background:none;border:0;cursor:pointer;color:#000;font-family:Lato,sans-serif;font-size:.875rem;transition:all .5s ease}
.hn-wb-close:hover{transform:rotate(180deg)}

/* ---- Overrides (stehen bewusst am Ende: gewinnen gegen Komponenten-Regeln) ---- */
/* Horizontale Innenabstände (z. B. hn-px-20 auf hn-bleed-Containern) */
.hn-px-15{padding-left:.9375rem;padding-right:.9375rem}
.hn-px-20{padding-left:1.25rem;padding-right:1.25rem}
.hn-px-40{padding-left:2.5rem;padding-right:2.5rem}
.hn-px-50{padding-left:3.125rem;padding-right:3.125rem}
/* Sichtbarkeit: Original: vc_hidden-xs = versteckt unter 768px; lg/md/sm = ab 768px */
@media (min-width:768px){.hn-only-mobile{display:none}}
@media (max-width:767px){.hn-hide-mobile{display:none !important}}
/* Links im Fließtext, Footer und der Notdienst-Leiste unterstreichen —
   Farbe allein reicht als Kennzeichnung nicht (WCAG 1.4.1). Dezent: dünne,
   abgesetzte Linie in 40% der Textfarbe, voll erst beim Hover. */
.hn-main p a,.hn-footer a,.hn-wb a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);transition:color .2s ease-out,text-decoration-color .2s ease-out}
.hn-main p a:hover,.hn-footer a:hover,.hn-wb a:hover{text-decoration-color:currentColor}
