/* hfw-content.css - Inhalts-Bausteine fuer Joomla-Beitraege (Ersatz SP Page Builder)
   Stand 2026-10-23. Eingebunden im Template hfw (nicht in shaper_doctor). Startseite: Block "STARTSEITE" am Ende.
   Klassen: hfw-content, hfw-section, hfw-fullbleed, hfw-row, hfw-heading, hfw-subheading,
   hfw-card, hfw-feature(s), hfw-btn, hfw-stats, hfw-facts, hfw-gallery, hfw-slider, hfw-cta,
   hfw-map, hfw-chips, hfw-i (Icons ueber Joomla-FontAwesome-5-Webfonts, unabhaengig vom Template).
   Tokens: Rot #c00d0e / Hover #a30b0c, Dunkel #1f272c, Text #2b3338, Grau #6b7378,
   Flaeche #f5f6f7, Linien #eceff1 / #d5dadd. Mobile first. */

.hfw-content {
  --hfw-red: #c00d0e; --hfw-red-hover: #a30b0c; --hfw-dark: #1f272c; --hfw-text: #2b3338;
  --hfw-muted: #6b7378; --hfw-surface: #f5f6f7; --hfw-line: #eceff1; --hfw-line-2: #d5dadd;
  --hfw-radius: 10px; --hfw-shadow: 0 2px 10px rgba(0,0,0,.08); --hfw-shadow-hover: 0 10px 26px rgba(0,0,0,.16);
  color: var(--hfw-text); font-size: 16px; line-height: 1.7;
}
.hfw-content *, .hfw-content *::before, .hfw-content *::after { box-sizing: border-box; }
.hfw-content img { max-width: 100%; height: auto; }
.hfw-content a { color: var(--hfw-red); }
.hfw-content a:hover { color: var(--hfw-red-hover); }
.hfw-content p { margin: 0 0 12px; }

/* ---------- Icons (Font Awesome 5 Free aus /media/vendor, CC BY 4.0) ---------- */
@font-face { font-family: "hfw-fa-solid"; font-style: normal; font-weight: 900; font-display: block;
  src: url("/media/vendor/fontawesome-free/webfonts/fa-solid-900.woff2") format("woff2"), url("/media/vendor/fontawesome-free/webfonts/fa-solid-900.woff") format("woff"); }
@font-face { font-family: "hfw-fa-regular"; font-style: normal; font-weight: 400; font-display: block;
  src: url("/media/vendor/fontawesome-free/webfonts/fa-regular-400.woff2") format("woff2"), url("/media/vendor/fontawesome-free/webfonts/fa-regular-400.woff") format("woff"); }
@font-face { font-family: "hfw-fa-brands"; font-style: normal; font-weight: 400; font-display: block;
  src: url("/media/vendor/fontawesome-free/webfonts/fa-brands-400.woff2") format("woff2"), url("/media/vendor/fontawesome-free/webfonts/fa-brands-400.woff") format("woff"); }
.hfw-i { display: inline-block; font-style: normal; font-variant: normal; line-height: 1; text-rendering: auto; -webkit-font-smoothing: antialiased; font-family: "hfw-fa-solid"; font-weight: 900; }
.hfw-i::before { display: inline-block; }
.hfw-i-fire-extinguisher::before { content: "\f134"; }
.hfw-i-calendar::before { content: "\f073"; }
.hfw-i-newspaper::before { content: "\f1ea"; }
.hfw-i-newspaper, .hfw-i-calendar-o, .hfw-i-mail { font-family: "hfw-fa-regular"; font-weight: 400; }
.hfw-i-calendar-o::before { content: "\f133"; }
.hfw-i-download::before { content: "\f019"; }
.hfw-i-fire::before { content: "\f06d"; }
.hfw-i-map::before { content: "\f279"; }
.hfw-i-truck::before { content: "\f0d1"; }
.hfw-i-ship::before { content: "\f21a"; }
.hfw-i-street-view::before { content: "\f21d"; }
.hfw-i-pin::before { content: "\f3c5"; }
.hfw-i-phone::before { content: "\f2a0"; }
.hfw-i-mail::before { content: "\f0e0"; }
.hfw-i-facebook { font-family: "hfw-fa-brands"; font-weight: 400; }
.hfw-i-facebook::before { content: "\f39e"; }

/* ---------- Grundlayout ---------- */
html:has(.hfw-fullbleed), body:has(.hfw-fullbleed) { overflow-x: clip; }
.hfw-fullbleed { position: relative; width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.hfw-section { padding: 32px 0; }
.hfw-row { display: flex; flex-wrap: wrap; row-gap: 24px; }
.hfw-heading { position: relative; font-size: 26px; font-weight: 700; line-height: 1.2; color: var(--hfw-dark); margin: 0 0 22px; }
.hfw-heading::after { content: ""; display: block; width: 56px; height: 4px; background: var(--hfw-red); border-radius: 2px; margin-top: 12px; }
.hfw-subheading { font-size: 20px; font-weight: 700; line-height: 1.3; color: var(--hfw-dark); margin: 30px 0 12px; padding-left: 14px; border-left: 4px solid var(--hfw-red); }
.hfw-card { background: var(--hfw-surface); border-left: 4px solid var(--hfw-red); border-radius: 0 var(--hfw-radius) var(--hfw-radius) 0; padding: 14px 18px; margin: 0 0 12px; }
.hfw-card > :last-child, .hfw-card > div > :last-child { margin-bottom: 0; }
.hfw-card-img { display: block; width: 100%; border-radius: var(--hfw-radius); box-shadow: 0 8px 22px rgba(0,0,0,.16); }

/* ---------- Buttons ---------- */
.hfw-btn, .hfw-content a.hfw-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 24px; border-radius: 999px; border: 2px solid var(--hfw-red); background: var(--hfw-red); color: #fff; font-size: 15px; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background .15s, border-color .15s, color .15s; }
.hfw-btn:hover, .hfw-btn:focus-visible, .hfw-content a.hfw-btn:hover { background: var(--hfw-red-hover); border-color: var(--hfw-red-hover); color: #fff; }
.hfw-btn-light, .hfw-content a.hfw-btn-light { background: #fff; border-color: #fff; color: var(--hfw-red); }
.hfw-btn-light:hover, .hfw-content a.hfw-btn-light:hover { background: var(--hfw-dark); border-color: var(--hfw-dark); color: #fff; }
.hfw-content a.hfw-more { color: inherit; font-weight: 700; text-decoration: none; }
.hfw-content a.hfw-more::after { content: "\f0da"; font-family: "hfw-fa-solid"; font-weight: 900; margin-left: 6px; }
.hfw-content a.hfw-more:hover { text-decoration: underline; }

/* ---------- Slider (Startseite) ---------- */
.hfw-slider { overflow: hidden; background: var(--hfw-dark); }
.hfw-slider-track { display: flex; transition: transform .7s ease; }
.hfw-slide { position: relative; flex: 0 0 100%; height: clamp(260px, 46vw, 740px); }
.hfw-slide > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hfw-slide-caption { position: absolute; inset: 0; display: flex; align-items: center; padding: 0 20px; }
.hfw-slide-caption::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.45), rgba(0,0,0,0) 65%); }
.hfw-slide-title { position: relative; max-width: 1170px; width: 100%; margin: 0 auto; color: #fff; font-size: 20px; font-weight: 200; line-height: 1.1; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
.hfw-slide-sub { display: block; margin-top: 6px; font-size: 30px; font-weight: 700; }
.hfw-slider-nav { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 8px; z-index: 2; }
.hfw-slider-dot { width: 12px; height: 12px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; }
.hfw-slider-dot[aria-current="true"] { background: var(--hfw-red); box-shadow: 0 0 0 2px #fff; }
.hfw-slider-arrow { position: absolute; top: 50%; z-index: 2; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(0,0,0,.35); color: #fff; font-size: 22px; line-height: 44px; cursor: pointer; display: none; }
.hfw-slider-arrow:hover { background: var(--hfw-red); }
.hfw-slider-prev { left: 14px; } .hfw-slider-next { right: 14px; }
@media (prefers-reduced-motion: reduce) { .hfw-slider-track { transition: none; } }

/* ---------- Rote Feature-Kacheln ---------- */
.hfw-features { display: grid; grid-template-columns: 1fr; }
.hfw-feature { display: flex; gap: 18px; align-items: flex-start; padding: 30px max(20px, calc((100% - 720px) / 2)); color: #fff; background: var(--hfw-red); }
.hfw-feature-1 { background: #d33a3b; } .hfw-feature-2 { background: var(--hfw-red); } .hfw-feature-3 { background: var(--hfw-red-hover); }
.hfw-feature > .hfw-i { flex: 0 0 auto; font-size: 40px; width: 48px; text-align: center; }
.hfw-feature-title { margin: 0 0 10px; color: #fff; font-size: 19px; font-weight: 400; line-height: 1.15; text-transform: uppercase; }
.hfw-feature-title strong { font-weight: 700; }
.hfw-feature p { color: #fff; font-size: 15px; line-height: 1.55; margin: 0 0 10px; }
.hfw-content .hfw-feature a { color: #fff; text-decoration: none; }
.hfw-content .hfw-feature a:hover { text-decoration: underline; color: #fff; }

/* ---------- Leistungsbericht ---------- */
.hfw-stats p { background: var(--hfw-surface); border-left: 4px solid var(--hfw-red); border-radius: 0 8px 8px 0; padding: 12px 16px; margin: 0 0 10px; font-size: 14px; line-height: 1.8; color: #4a5358; }
.hfw-stats strong { color: var(--hfw-dark); }
.hfw-report-img { display: block; width: 100%; max-width: 560px; margin: 0 auto; }

/* ---------- Ueber uns (Band) ---------- */
.hfw-band { background: #fafafa; }
.hfw-band-inner { max-width: 1170px; margin: 0 auto; padding: 28px 20px 40px; }
.hfw-img-title { font-size: 20px; font-weight: 400; color: var(--hfw-dark); margin: 0 0 10px; }
.hfw-intro-title { font-size: 28px; font-weight: 400; line-height: 1.1; color: var(--hfw-dark); margin: 0 0 14px; }
.hfw-intro-title small { display: block; font-size: 15px; font-weight: 700; margin-bottom: 6px; color: var(--hfw-dark); }
.hfw-motto { text-align: center; color: var(--hfw-red); }
.hfw-facts { list-style: none; margin: 18px 0 0; padding: 0; columns: 2 200px; column-gap: 24px; }
.hfw-facts li { break-inside: avoid; display: flex; align-items: center; gap: 12px; padding: 5px 0; font-size: 15px; color: var(--hfw-text); }
.hfw-facts .hfw-i { width: 20px; text-align: center; color: var(--hfw-red); font-size: 16px; }

/* ---------- Call to Action ---------- */
.hfw-cta { background: var(--hfw-red) url("/images/2018/04/09/puppenhaus_bg_2-min.png") no-repeat center / contain; color: #fff; text-align: center; }
.hfw-cta::before { content: ""; position: absolute; inset: 0; background: rgba(192,13,14,.65); }
.hfw-cta-inner { position: relative; max-width: 1170px; margin: 0 auto; padding: 56px 20px; }
.hfw-cta-title { color: #fff; font-size: 28px; font-weight: 400; margin: 0 0 8px; }
.hfw-cta-sub { color: #fff; font-size: 19px; margin: 0 0 16px; }
.hfw-cta p { color: #fff; }
.hfw-cta .hfw-btn { margin-top: 20px; }

/* ---------- Kontakt ---------- */
.hfw-contact-item { display: flex; gap: 16px; align-items: flex-start; }
.hfw-contact-item > .hfw-i { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: #fff; color: var(--hfw-red); display: flex; align-items: center; justify-content: center; font-size: 16px; box-shadow: var(--hfw-shadow); }
.hfw-contact-item p { margin: 0 0 4px; }
.hfw-content .hfw-contact-item a { overflow-wrap: anywhere; }
.hfw-share { margin-top: 14px; }
.hfw-content .hfw-share a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 2px solid var(--hfw-red); border-radius: 50%; color: var(--hfw-red); text-decoration: none; }
.hfw-content .hfw-share a:hover { background: var(--hfw-red); color: #fff; }
.hfw-contact-mail { padding: 22px 18px; }
.hfw-map iframe { display: block; width: 100%; height: 410px; border: 0; }

/* ---------- Brandfall: Aufzaehlung als Chips, Galerie ---------- */
.hfw-chips { list-style: none; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.hfw-chips > li { background: var(--hfw-surface); border-left: 4px solid var(--hfw-red); border-radius: 0 8px 8px 0; padding: 10px 14px; font-weight: 600; color: var(--hfw-dark); line-height: 1.3; }
.hfw-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; align-items: start; }
.hfw-gallery a { display: block; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.1); transition: box-shadow .2s, transform .2s; }
.hfw-gallery a:hover { box-shadow: var(--hfw-shadow-hover); transform: translateY(-2px); }
.hfw-gallery img { display: block; width: 100%; height: auto; margin: 0; }
.hfw-gallery-3 { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }

/* ---------- Lightbox-Fallback (nur wenn JCE MediaBox fehlt, siehe hfw-content.js) ---------- */
.hfw-lightbox { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(15,18,20,.92); }
.hfw-lightbox img { max-width: 100%; max-height: 88vh; border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.hfw-lightbox button { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: var(--hfw-dark, #1f272c); font-size: 24px; line-height: 44px; cursor: pointer; }

/* ---------- ab Tablet ---------- */
@media (min-width: 768px) {
  .hfw-section { padding: 50px 0; }
  .hfw-heading { font-size: 28px; }
  .hfw-features { grid-template-columns: repeat(3, 1fr); }
  .hfw-feature { padding: 26px 22px 30px; }
  .hfw-slide-caption { padding: 0 40px; }
  .hfw-slide-title { font-size: 28px; }
  .hfw-slide-sub { font-size: 46px; }
  .hfw-slider-arrow { display: block; }
  .hfw-intro-title { font-size: 36px; }
  .hfw-sticky { position: sticky; top: 100px; }
}
@media (min-width: 1200px) {
  .hfw-features { grid-template-columns: calc((100vw - 1170px) / 2 + 390px) 390px 1fr; }
  .hfw-feature { padding: 30px 30px 34px 15px; }
  .hfw-feature-1 { padding-left: calc((100vw - 1170px) / 2 + 15px); }
  .hfw-slide-title { font-size: 36px; }
  .hfw-slide-sub { font-size: 62px; }
  .hfw-cta-title { font-size: 34px; }
}

/* ---------- Seitenrahmen, nur wenn Beitrag die Startseite ist ---------- */
#sp-main-body:has(.hfw-home) { padding-top: 0; padding-bottom: 0; }
#sp-main-body:has(.hfw-home) .item-page { margin: 0; }

/* ---------- Inhaltsbereich ohne .container (Template hfw, Beitraege mit .hfw-fullbleed) ---------- */
.hfw-container-full .hfw-fullbleed { width: auto; max-width: none; margin-left: 0; margin-right: 0; }
.hfw-container-full .hfw-content > .hfw-section { max-width: 1140px; margin-left: auto; margin-right: auto; padding-left: 12px; padding-right: 12px; }
/* leerer Beitragskopf (Titel ausgeblendet) erzeugt sonst 18px Abstand ueber randlosen Bausteinen */
.item-page > .entry-header:not(:has(h1, h2, h3, dl, .article-info)) { display: none; }

/* =====================================================================================
   STARTSEITE: Masse 1:1 wie die bisherige Page-Builder-Startseite (Doctor/SPPB 3),
   gemessen 2026-10-23 bei 500/1600/1920/2000 px. Gilt nur fuer #sp-component .hfw-home und
   ueberschreibt die allgemeinen Regeln oben. Raster wie SPPB: Zeilen-Container
   1170/970/750 px mit 15 px Innenabstand (Inhalt 1140/940/720 px).
   ===================================================================================== */
#sp-component .hfw-home { --hp-c: 100%; --hp-pad: 15px; color: #333; font-size: 14px; line-height: 24px; }
@media (min-width: 768px) { #sp-component .hfw-home { --hp-c: 750px; } }
@media (min-width: 992px) { #sp-component .hfw-home { --hp-c: 970px; } }
@media (min-width: 1200px) { #sp-component .hfw-home { --hp-c: 1170px; } }
#sp-component .hfw-home p { margin: 0 0 10px; }
#sp-component .hfw-home .hfw-fullbleed { width: auto; max-width: none; margin-left: 0; margin-right: 0; }

/* Icons wie bisher aus Font Awesome 4 (vom Template geladen) */
#sp-component .hfw-home .hfw-i { font-family: FontAwesome; font-weight: normal; }

/* ---------- Slider: feste Hoehe wie bisher, Bild "cover", Text links im Raster ---------- */
#sp-component .hfw-home .hfw-slider { background: #1f272c; }
#sp-component .hfw-home .hfw-slide { height: 320px; }
#sp-component .hfw-home .hfw-slide-caption { display: block; inset: 0; padding: 30px 20px 0; }
#sp-component .hfw-home .hfw-slide-caption::before { display: none; }
#sp-component .hfw-home .hfw-slide-title { width: 100%; max-width: none; margin: 0; padding: 0 9px; font-size: 20px; line-height: 1.1; font-weight: 200; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
#sp-component .hfw-home .hfw-slide-sub { display: block; margin: -3px 0 0 -4px; font-size: 28px; line-height: 1.1; font-weight: 700; }
#sp-component .hfw-home .hfw-slider-nav { left: auto; right: 20%; bottom: 22px; gap: 0; justify-content: flex-end; }
#sp-component .hfw-home .hfw-slider-dot { width: 15px; height: 15px; margin: 5px; background: #dfdfdf; border-radius: 20px; box-shadow: none; transition: background .3s; }
#sp-component .hfw-home .hfw-slider-dot[aria-current="true"] { background: #c00d0e; box-shadow: none; }
#sp-component .hfw-home .hfw-slider-arrow { display: block; top: auto; bottom: 15px; right: 15px; left: auto; margin: 0; width: 40px; height: 40px; line-height: 40px; font-size: 25px; border-radius: 0; background: none; opacity: 0; transition: opacity .3s; }
#sp-component .hfw-home .hfw-slider-prev { right: 65px; }
#sp-component .hfw-home .hfw-slider:hover .hfw-slider-arrow, #sp-component .hfw-home .hfw-slider-arrow:focus-visible { opacity: 1; }
@media (min-width: 491px) { #sp-component .hfw-home .hfw-slider-dot { width: 21px; height: 21px; } }
@media (min-width: 576px) {
  #sp-component .hfw-home .hfw-slide-caption { padding: 30px calc((100% - 540px) / 2 + 9px) 0; }
  #sp-component .hfw-home .hfw-slide-title { padding: 0 20px; width: calc((540px - 18px) * 8 / 12); font-size: 20px; }
}
@media (min-width: 768px) {
  #sp-component .hfw-home .hfw-slide { height: 385px; }
  #sp-component .hfw-home .hfw-slide-caption { padding: 35px calc((100% - 720px) / 2 + 9px) 0; }
  #sp-component .hfw-home .hfw-slide-title { padding: 0; width: 409px; font-size: 24px; }
  #sp-component .hfw-home .hfw-slide-sub { font-size: 40px; }
  #sp-component .hfw-home .hfw-slider-arrow { bottom: 60px; right: calc((100% - 720px) / 2 + 24px); width: 55px; height: 55px; line-height: 55px; font-size: 33px; }
  #sp-component .hfw-home .hfw-slider-prev { right: calc((100% - 720px) / 2 + 94px); }
}
@media (min-width: 992px) {
  #sp-component .hfw-home .hfw-slide { height: 470px; }
  #sp-component .hfw-home .hfw-slide-caption { padding: 35px calc((100% - 960px) / 2 + 9px) 0; }
  #sp-component .hfw-home .hfw-slide-title { width: 392px; font-size: 36px; }
  #sp-component .hfw-home .hfw-slide-sub { font-size: 62px; }
  #sp-component .hfw-home .hfw-slider-arrow { right: calc((100% - 960px) / 2 + 24px); }
  #sp-component .hfw-home .hfw-slider-prev { right: calc((100% - 960px) / 2 + 94px); }
}
@media (min-width: 1200px) {
  #sp-component .hfw-home .hfw-slide { height: 735px; }
  #sp-component .hfw-home .hfw-slide-caption { padding: 180px calc((100% - 1140px) / 2 + 9px) 0; }
  #sp-component .hfw-home .hfw-slide-title { width: 468px; }
  #sp-component .hfw-home .hfw-slider-arrow { right: calc((100% - 1140px) / 2 + 24px); }
  #sp-component .hfw-home .hfw-slider-prev { right: calc((100% - 1140px) / 2 + 94px); }
}

/* ---------- Rote Kacheln: Inhalt im 1140er-Raster, Farbflaechen bis zum Rand ---------- */
#sp-component .hfw-home .hfw-features { display: block; }
#sp-component .hfw-home .hfw-feature { display: flex; gap: 0; align-items: flex-start; color: #fff; padding: 32px max(20px, calc((100% - 720px) / 2)); }
#sp-component .hfw-home .hfw-feature-1 { background: #d63d3e; }
#sp-component .hfw-home .hfw-feature-2 { background: #c11718; }
#sp-component .hfw-home .hfw-feature-3 { background: #901617; }
#sp-component .hfw-home .hfw-feature > .hfw-i { flex: 0 0 52px; width: 52px; margin: 0 15px 0 0; font-size: 52px; line-height: 52px; text-align: center; }
#sp-component .hfw-home .hfw-feature-body { flex: 1 1 auto; min-width: 0; }
#sp-component .hfw-home .hfw-feature-title { margin: 0 0 10px; font-size: 19px; line-height: 1.15; font-weight: 500; letter-spacing: .01em; text-transform: uppercase; color: #fff; overflow-wrap: anywhere; }
#sp-component .hfw-home .hfw-feature-title strong { font-weight: 700; }
#sp-component .hfw-home .hfw-feature p { margin: 12px 0 0; font-size: 16px; line-height: 1.5; color: #fff; }
#sp-component .hfw-home .hfw-feature p + p { margin-top: 12px; }
#sp-component .hfw-home .hfw-feature p a { display: inline; padding: 0; }
#sp-component .hfw-home .hfw-feature a.hfw-more { display: inline-block; padding: 10px 0; font-weight: 700; color: #fff; }
#sp-component .hfw-home .hfw-feature a.hfw-more::after { content: "\f0da"; font-family: FontAwesome; font-weight: normal; margin-left: 5px; }
@media (min-width: 992px) {
  /* Spalten: links Randbreite + 1/3 Inhalt, Mitte 1/3 Inhalt, rechts Rest (Farbflaechen bis zum Rand) */
  #sp-component .hfw-home .hfw-features { --hp-third: calc((var(--hp-c) - 2 * var(--hp-pad)) / 3); display: grid; grid-template-columns: calc((100% - var(--hp-c)) / 2 + var(--hp-pad) + var(--hp-third)) var(--hp-third) 1fr; }
  #sp-component .hfw-home .hfw-feature { padding: 35px 15px 40px 15px; }
  #sp-component .hfw-home .hfw-feature-1 { padding-left: calc(100% - var(--hp-third)); }
  #sp-component .hfw-home .hfw-feature-3 { padding-right: calc(100% - var(--hp-third) + 15px); }
  #sp-component .hfw-home .hfw-feature p { margin-top: 10px; font-size: 14px; line-height: 22.4px; max-width: 260px; }
  #sp-component .hfw-home .hfw-feature p + p { margin-top: 10px; }
  #sp-component .hfw-home .hfw-feature a.hfw-more { padding: 0; }
}
@media (min-width: 1200px) {
  #sp-component .hfw-home .hfw-features { min-height: 262px; }
  #sp-component .hfw-home .hfw-feature { padding: 25px 40px 15px 35px; }
  #sp-component .hfw-home .hfw-feature-1 { padding-left: calc(100% - var(--hp-third)); padding-right: 53px; }
  #sp-component .hfw-home .hfw-feature-3 { padding-right: calc(100% - var(--hp-third) + 40px); }
  #sp-component .hfw-home .hfw-feature-title { font-size: 20px; line-height: 24px; letter-spacing: .2px; }
}

/* ---------- Leistungsbericht: Text links, Bild rechts (wie Bild-Text-Baustein) ---------- */
#sp-component .hfw-home .hfw-report { max-width: var(--hp-c); margin: 0 auto; padding: 50px var(--hp-pad); }
#sp-component .hfw-home .hfw-report .hfw-row { display: block; margin: 0; }
#sp-component .hfw-home .hfw-report .hfw-row > div { width: auto; max-width: none; padding: 0; flex: none; }
#sp-component .hfw-home .hfw-report .hfw-row > div:first-child { padding: 0 0 30px; }
#sp-component .hfw-home .hfw-heading { margin: 20px 0 10px; font-size: 24px; line-height: 1.2; font-weight: 600; color: #1f272c; }
#sp-component .hfw-home .hfw-heading::after { width: 56px; height: 4px; margin-top: 12px; border-radius: 2px; }
#sp-component .hfw-home .hfw-stats { margin-top: 54px; }
#sp-component .hfw-home .hfw-stats p { margin: 0 0 10px; padding: 12px 16px; font-size: 14px; line-height: 1.8; color: #4a5358; background: #f5f6f7; border-left: 4px solid #c00d0e; border-radius: 0 8px 8px 0; }
#sp-component .hfw-home .hfw-report .hfw-btn { margin-top: 20px; min-height: 0; padding: 10px 24px; font-size: 14px; line-height: 18.2px; font-weight: 600; gap: 4px; }
#sp-component .hfw-home .hfw-report-img { max-width: 100%; margin: 0 auto; }
#sp-component .hfw-home .hfw-report p:has(> .hfw-btn) { margin: 0; }
#sp-component .hfw-home .hfw-report .hfw-row { margin-bottom: 30px; }
@media (min-width: 768px) {
  #sp-component .hfw-home .hfw-report .hfw-row { display: grid; grid-template-columns: calc((100% + 15px) / 2 - 30px) calc((100% + 15px) / 2); column-gap: 15px; padding-left: 15px; position: relative; align-items: stretch !important; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:first-child { padding: 120px 0 120px 50px; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:last-child { position: relative; align-self: stretch !important; }
  #sp-component .hfw-home .hfw-report-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; }
  #sp-component .hfw-home .hfw-heading { font-size: 28px; }
}

/* ---------- Ueber uns: Fuhrpark-Bild links, Text + Kennzahlen rechts ---------- */
#sp-component .hfw-home .hfw-band { background: #fafafa; margin-top: 1px; }
#sp-component .hfw-home .hfw-band-inner { max-width: var(--hp-c); margin: 0 auto; padding: 20px var(--hp-pad) 55px; }
#sp-component .hfw-home .hfw-about .hfw-row { display: flex; flex-wrap: wrap; row-gap: 0; margin: 0 -15px; }
#sp-component .hfw-home .hfw-about .hfw-row > div { padding: 0 15px; }
#sp-component .hfw-home .hfw-about .hfw-row > .col-md-7 { padding-left: 20px; }
#sp-component .hfw-home .hfw-img-title { margin: 0 0 10px; font-size: 24px; line-height: 26.4px; font-weight: 500; color: #333; }
#sp-component .hfw-home .hfw-card-img { width: auto; max-width: 100%; border-radius: 10px; box-shadow: 0 8px 22px rgba(0,0,0,.16); margin-bottom: 0; }
#sp-component .hfw-home .hfw-intro-title { margin: 0 0 6px; font-size: 36px; line-height: 39.6px; font-weight: 500; color: #333; }
#sp-component .hfw-home .hfw-intro-title small { display: inline; margin: 0; font-size: 18px; font-weight: 600; color: #333; }
#sp-component .hfw-home .hfw-about p { font-size: 15px; line-height: 25.5px; color: #333; margin: 0 0 10px; }
#sp-component .hfw-home .hfw-about p.hfw-motto { text-align: center; color: #c00d0e; }
#sp-component .hfw-home .hfw-facts { display: grid; grid-template-columns: 1fr; grid-auto-flow: row; row-gap: 10px; column-gap: 0; columns: auto; margin: 45px 0 0; padding: 0; }
#sp-component .hfw-home .hfw-facts li { display: flex; align-items: flex-start; gap: 0; height: 24px; padding: 0; font-size: 16px; line-height: 17.6px; font-weight: 500; color: #333; }
#sp-component .hfw-home .hfw-facts .hfw-i { flex: 0 0 auto; width: auto; min-width: 14px; margin: 2px 14px 0 0; font-size: 18px; line-height: 18px; text-align: left; }
#sp-component .hfw-home .hfw-facts li:nth-child(3n+1) .hfw-i { color: #d43334; }
#sp-component .hfw-home .hfw-facts li:nth-child(3n+2) .hfw-i { color: #c00d0e; }
#sp-component .hfw-home .hfw-facts li:nth-child(3n) .hfw-i { color: #8a0a0b; }
@media (min-width: 768px) {
  #sp-component .hfw-home .hfw-about .hfw-row > .col-md-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
  #sp-component .hfw-home .hfw-about .hfw-row > .col-md-7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
  #sp-component .hfw-home .hfw-card-img { margin-bottom: 0; }
  #sp-component .hfw-home .hfw-facts { grid-template-columns: calc(50% + 15px) 1fr; grid-template-rows: repeat(3, auto); grid-auto-flow: column; column-gap: 0; }
  #sp-component .hfw-home .hfw-facts li:nth-child(n+4) { padding-left: 3px; }
}

/* ---------- Virtueller Rundgang ---------- */
#sp-component .hfw-home .hfw-cta { background: #c00d0e; padding: 50px 0; } /* bisher: Bild wird von roter Abschnittsfarbe ueberdeckt */
#sp-component .hfw-home .hfw-cta::before { display: none; }
#sp-component .hfw-home .hfw-cta-inner { max-width: var(--hp-c); padding: 40px calc(var(--hp-pad) + 20px); }
#sp-component .hfw-home .hfw-cta-title { margin: 0 0 10px; font-size: 36px; line-height: 36px; font-weight: 500; color: #fff; }
#sp-component .hfw-home .hfw-cta-sub { margin: 0 0 10px; font-size: 24px; line-height: 26px; font-weight: 300; color: #fff; }
#sp-component .hfw-home .hfw-cta p { margin: 15px 0 10px; font-size: 14px; line-height: 24px; color: #fff; }
#sp-component .hfw-home .hfw-cta p.hfw-cta-sub { margin: 0 0 10px; font-size: 24px; line-height: 26px; font-weight: 300; }
#sp-component .hfw-home .hfw-cta p:last-child { margin: 74px 0 0; }
#sp-component .hfw-home .hfw-cta .hfw-btn, #sp-component .hfw-home .hfw-cta a.hfw-btn { margin: 0; gap: 6px; height: 52px; min-height: 0; padding: 0 50px; border: 0; border-radius: 3px; background: #fff; color: #525252; font-size: 16px; line-height: 52px; font-weight: 400; }
#sp-component .hfw-home .hfw-cta .hfw-btn:hover { background: #1f272c; color: #fff; }

/* ---------- Startseite: Handy/Tablet wie bisher (gemessen bei 500 px) ---------- */
#sp-component .hfw-home .hfw-slide > img { height: 100%; }
@media (max-width: 991.98px) {
  #sp-component .hfw-home .hfw-feature { padding: 32px max(20px, calc((100% - 720px) / 2)); }
  #sp-component .hfw-home .hfw-feature > .hfw-i { flex: 0 0 auto; width: auto; min-width: 41px; max-width: 52px; overflow: hidden; }
  #sp-component .hfw-home .hfw-feature-body { flex: 0 1 260px; max-width: 260px; }
  #sp-component .hfw-home .hfw-feature-title { font-size: 20px; line-height: 24px; letter-spacing: .2px; overflow-wrap: normal; }
  #sp-component .hfw-home .hfw-feature p { margin: 0 0 10px; font-size: 14px; line-height: 22.4px; }
  #sp-component .hfw-home .hfw-feature-title + p { margin-top: 22px; }
  #sp-component .hfw-home .hfw-feature p a { display: inline-block; font-size: 16px; line-height: 25.6px; }
  #sp-component .hfw-home .hfw-feature a.hfw-more { display: inline-block; margin-top: 10px; padding: 10px 0; font-size: 16px; line-height: 25.6px; }
  #sp-component .hfw-home .hfw-feature p:last-child { margin-bottom: 10px; }
}
@media (max-width: 767.98px) {
  #sp-component .hfw-home .hfw-report .hfw-row { display: flex; flex-direction: column; row-gap: 0; }
  #sp-component .hfw-home .hfw-report .hfw-row > div { align-self: stretch !important; width: 100%; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:last-child { order: -1; position: relative; height: 300px; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:first-child { padding: 20px 15px 40px; }
  #sp-component .hfw-home .hfw-report-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
  #sp-component .hfw-home .hfw-report .hfw-btn { margin-top: 10px; }
  #sp-component .hfw-home .hfw-band-inner { padding: 50px var(--hp-pad) 105px; }
  #sp-component .hfw-home .hfw-about .hfw-row > .col-md-7 { padding-left: 20px; padding-right: 15px; }
  #sp-component .hfw-home .hfw-card-img { width: 100%; }
  #sp-component .hfw-home .hfw-intro-title { font-size: 35px; }
  #sp-component .hfw-home .hfw-facts { margin-top: 15px; margin-bottom: 25px; row-gap: 25px; }
  #sp-component .hfw-home .hfw-facts li { height: auto; min-height: 26px; font-size: 24px; line-height: 26.4px; }
  #sp-component .hfw-home .hfw-facts .hfw-i { margin-top: 4px; margin-right: 13px; }
  #sp-component .hfw-home .hfw-facts li:nth-child(5) { margin-top: 10px; }
}
@media (max-width: 991.98px) {
  #sp-component .hfw-home .hfw-about p { font-size: 14px; line-height: 24px; }
}

/* dritte Kachel: "zu den Details" war bisher ein einfacher Link (nicht fett, ohne Pfeil) */

/* Handy (iPhone 375-430 px): erste Caption-Zeile darf nicht ueber den Rand laufen
   (iOS hat Helvetica Neue ohne Schnitt 200 -> breiter). Schrift mit der Bildschirmbreite skalieren. */
@media (max-width: 575.98px) {
  #sp-component .hfw-home .hfw-slide-caption { padding-right: 20px; }
  #sp-component .hfw-home .hfw-slide-title { font-size: clamp(15px, 4.2vw, 20px); overflow-wrap: break-word; }
  #sp-component .hfw-home .hfw-slide-sub { font-size: clamp(22px, 6.8vw, 28px); }
}
/* sehr schmale Handys: Rundgang-Knopf einzeilig (sonst zweizeilig mit 52px Zeilenhoehe) */
@media (max-width: 439.98px) {
  #sp-component .hfw-home .hfw-cta .hfw-btn, #sp-component .hfw-home .hfw-cta a.hfw-btn { padding: 0 20px; white-space: nowrap; max-width: 100%; }
}

/* --- Optik-Review 23.10.2026 (Punkte 6 + 15) --------------------------------------------- */
/* 6: Ueberschriften der Startseite vereinheitlicht: 28px/700, mobil 24px */
#sp-component .hfw-home .hfw-heading,
#sp-component .hfw-home .hfw-intro-title,
#sp-component .hfw-home .hfw-cta-title { font-size: 28px; line-height: 1.2; font-weight: 700; }
#sp-component .hfw-home .hfw-img-title { font-weight: 700; }
#sp-component .hfw-home .hfw-intro-title small { font-size: 16px; font-weight: 600; }
@media (max-width: 767.98px) {
  #sp-component .hfw-home .hfw-heading,
  #sp-component .hfw-home .hfw-intro-title,
  #sp-component .hfw-home .hfw-cta-title { font-size: 24px; }
  /* 15: Faktenliste mobil 16px */
  #sp-component .hfw-home .hfw-facts { row-gap: 14px; }
  #sp-component .hfw-home .hfw-facts li { min-height: 0; font-size: 16px; line-height: 1.35; }
  #sp-component .hfw-home .hfw-facts .hfw-i { margin-top: 1px; }
  #sp-component .hfw-home .hfw-facts li:nth-child(5) { margin-top: 0; }
}
/* 15: Leistungsbericht ohne grossen Leerraum - Bild in natuerlicher Hoehe, Text mittig */
#sp-component .hfw-home .hfw-report { padding-top: 40px; padding-bottom: 40px; }
#sp-component .hfw-home .hfw-report .hfw-row { margin-bottom: 0; }
@media (min-width: 992px) {
  #sp-component .hfw-home .hfw-report .hfw-row { align-items: center !important; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:first-child { padding: 20px 0 20px 50px; }
  #sp-component .hfw-home .hfw-report .hfw-row > div:last-child { align-self: center !important; }
  #sp-component .hfw-home .hfw-report-img { position: static; width: 100%; height: auto; }
}
/* 15: 3D-Rundgang-Knopf als weisse Pille mit roter Schrift */
#sp-component .hfw-home .hfw-cta .hfw-btn, #sp-component .hfw-home .hfw-cta a.hfw-btn { border-radius: 999px; background: #fff; color: #c00d0e; font-weight: 700; }
#sp-component .hfw-home .hfw-cta .hfw-btn:hover, #sp-component .hfw-home .hfw-cta .hfw-btn:focus-visible { background: #1f272c; color: #fff; }
@media (max-width: 767.98px) { #sp-component .hfw-home .hfw-cta-sub, #sp-component .hfw-home .hfw-cta p.hfw-cta-sub { font-size: 19px; line-height: 1.3; } }

/* =====================================================================================
   KONTAKT JUGEND / VERHALTEN IM BRANDFALL: Raster und Schrift wie die bisherigen
   Page-Builder-Seiten (Zeilen-Container 1320/1170/970/750 px, 15 px Spaltenabstand).
   ===================================================================================== */
#sp-component .hfw-contact, #sp-component .hfw-brandfall { --sp-c: 100%; color: #2b3338; font-size: 14px; line-height: 24px; }
@media (min-width: 768px) { #sp-component .hfw-contact, #sp-component .hfw-brandfall { --sp-c: 720px; } }
@media (min-width: 992px) { #sp-component .hfw-contact, #sp-component .hfw-brandfall { --sp-c: 960px; } }
@media (min-width: 1200px) { #sp-component .hfw-contact, #sp-component .hfw-brandfall { --sp-c: 1140px; } }
@media (min-width: 1400px) { #sp-component .hfw-contact, #sp-component .hfw-brandfall { --sp-c: 1140px; } }
#sp-main-body:has(.hfw-contact), #sp-main-body:has(.hfw-brandfall) { padding-top: 0; padding-bottom: 0; }
#sp-component .hfw-contact > .hfw-section, #sp-component .hfw-brandfall > .hfw-section { max-width: var(--sp-c); margin: 0 auto; padding-left: 12px; padding-right: 12px; }
#sp-component .hfw-brandfall > .hfw-section { padding-top: 48px; padding-bottom: 75px; }
#sp-component .hfw-contact > .hfw-section { padding-top: 56px; padding-bottom: 60px; }
#sp-component .hfw-contact .hfw-row, #sp-component .hfw-brandfall .hfw-row { display: flex; flex-wrap: wrap; row-gap: 0; margin: 0 -15px; }
#sp-component .hfw-contact .hfw-row > div, #sp-component .hfw-brandfall .hfw-row > div { padding: 0 15px; }
#sp-component .hfw-contact p, #sp-component .hfw-brandfall p { font-size: 16px; line-height: 1.7; color: #2b3338; margin: 0 0 10px; }
#sp-component .hfw-brandfall .hfw-heading { font-size: 34px; line-height: 1.2; font-weight: 700; color: #1f272c; margin: 0 0 22px; }
#sp-component .hfw-contact .hfw-heading { font-size: 32px; line-height: 1.2; font-weight: 700; color: #1f272c; margin: 0 0 30px; }
#sp-component .hfw-brandfall .hfw-heading::after, #sp-component .hfw-contact .hfw-heading::after { width: 56px; height: 4px; margin-top: 12px; }
#sp-component .hfw-brandfall .hfw-subheading { font-size: 22px; line-height: 1.3; font-weight: 700; color: #1f272c; margin: 40px 0 12px; padding-left: 14px; border-left: 4px solid #c00d0e; }
#sp-component .hfw-brandfall .hfw-chips { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin: 0 0 18px; padding: 0; }
#sp-component .hfw-brandfall .hfw-chips > li { padding: 9px 14px; font-size: 16px; line-height: 1.7; font-weight: 600; color: #1f272c; }
#sp-component .hfw-brandfall .hfw-gallery { grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 30px; }
#sp-component .hfw-brandfall .hfw-gallery img { max-width: 100%; }

/* Kontakt: Karten mit rundem Symbol links, Text eingerueckt */
#sp-component .hfw-contact .hfw-contact-item { display: flex; gap: 26px; align-items: flex-start; padding: 16px 18px 12px 18px; margin: 0 0 14px; border-radius: 0 10px 10px 0; min-height: 72px; }
#sp-component .hfw-contact .hfw-contact-item > .hfw-i { flex: 0 0 40px; width: 40px; height: 40px; font-family: FontAwesome; font-weight: normal; font-size: 18px; }
#sp-component .hfw-contact .hfw-contact-item p { font-size: 16px; line-height: 25.6px; margin: 0 0 4px; }
#sp-component .hfw-contact .hfw-contact-item a { color: #2b3338; }
#sp-component .hfw-contact .hfw-share { margin: 0; }
#sp-component .hfw-contact .hfw-share .hfw-i { font-family: FontAwesome; font-weight: normal; }
#sp-component .hfw-contact a.hfw-btn { color: #fff; }
#sp-component .hfw-contact .hfw-i-pin::before { content: "\f041"; }
#sp-component .hfw-contact .hfw-i-mail::before { content: "\f003"; }
#sp-component .hfw-contact .hfw-i-facebook::before { content: "\f09a"; }
#sp-component .hfw-contact .hfw-map iframe { height: 410px; }
@media (min-width: 576px) {
  #sp-component .hfw-contact .col-md-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
  #sp-component .hfw-contact .col-md-7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
}
/* bisher: zwischen den Bausteinen kein Zusammenfallen der Abstaende, vor 'Brandklassen' ein Leerabsatz */
#sp-component .hfw-brandfall .hfw-subheading:nth-of-type(2) { margin-top: 77px; }
#sp-component .hfw-brandfall .hfw-heading::after, #sp-component .hfw-contact .hfw-heading::after { margin-top: 14px; }
/* bisher stand rechts ein Kontaktformular (543 px hoch); gleiche Hoehe, damit Karte und Fuss an derselben Stelle liegen */
@media (min-width: 768px) { #sp-component .hfw-contact .hfw-row { min-height: 543px; } }
/* Handy (bis 767 px) wie bisher */
@media (max-width: 767.98px) {
  #sp-component .hfw-brandfall > .hfw-section { padding-top: 28px; padding-bottom: 55px; }
  #sp-component .hfw-contact > .hfw-section { padding-top: 30px; padding-bottom: 36px; }
  #sp-component .hfw-brandfall .hfw-heading, #sp-component .hfw-contact .hfw-heading { font-size: 26px; line-height: 1.2; margin-bottom: 22px; }
  #sp-component .hfw-contact .hfw-contact-item { margin-bottom: 39px; }
  #sp-component .hfw-contact .hfw-row > .col-md-7 { margin-top: 26px; min-height: 535px; }
}
@media (max-width: 767.98px) {
  #sp-component .hfw-brandfall .hfw-gallery { margin: 20px 0 0; }
  #sp-component .hfw-brandfall > .hfw-section { padding-bottom: 47px; }
}
#sp-component .hfw-brandfall .hfw-sticky { position: static; } /* bisher nicht mitlaufend */
/* hfw-fresh-c.css (seit 23.10. 13:10) setzt fuer .hfw-gallery feste Bildhoehen (SIGPro-Ersatz) -
   in der Brandfall-Galerie wie bisher natuerliche Bildhoehe und 2 Spalten */
#sp-component .hfw-brandfall .hfw-gallery { grid-template-columns: repeat(2, 1fr); margin: 0 0 30px; }
#sp-component .hfw-brandfall .hfw-gallery img { height: auto !important; object-fit: fill; }
@media (max-width: 767.98px) { #sp-component .hfw-brandfall .hfw-gallery { margin: 20px 0 0; } }
