
@font-face { font-family: 'Bodoni Moda'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/assets/fonts/bodonimoda.woff2') format('woff2'); }
@font-face { font-family: 'Lora'; font-style: normal; font-weight: 400 600; font-display: swap; src: url('/assets/fonts/lora.woff2') format('woff2'); }
@font-face { font-family: 'Lora'; font-style: italic; font-weight: 400 500; font-display: swap; src: url('/assets/fonts/lora-italic.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400 600; font-display: swap; src: url('/assets/fonts/sourcesans3.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/ibmplexmono-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/ibmplexmono-500.woff2') format('woff2'); }

html, body { margin: 0; padding: 0; }
body { background: #FBFAF7; -webkit-font-smoothing: antialiased; }
* { box-sizing: border-box; }
a { color: #004673; }
a:hover { color: #0B5C8F; }
::selection { background: #DCEBF5; }
:focus-visible { outline: 2px solid #004673; outline-offset: 2px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.hd-burger, .hd-menue, .hd-menue-cb { display: none; }
.navlink:hover { color: #004673 !important; border-bottom-color: #004673 !important; }
.btn-blau:hover { background: #0B5C8F !important; border-color: #0B5C8F !important; color: #FFFFFF !important; }
.btn-outline:hover { border-color: #004673 !important; color: #004673 !important; }
.btn-weiss:hover { background: #DCEBF5 !important; color: #004673 !important; }
.lnk:hover { color: #0B5C8F !important; border-bottom-color: #0B5C8F !important; }
.lnk-hell:hover { color: #8CC3E5 !important; border-bottom-color: #8CC3E5 !important; }
.card-h:hover { border-color: #004673 !important; color: inherit !important; }
.rowlink:hover { background: #F5F2EA; }
.ftr-link:hover { color: #8CC3E5 !important; }
.mm-form input:focus, .mm-form textarea:focus, .mm-form select:focus { border-color: #004673 !important; }
.tab { color: #6C8395; }
.tab.aktiv { color: #0F2333; border-bottom-color: #004673 !important; }
.faq-mark.offen { background: #004673; border-color: #004673 !important; color: #FFFFFF; }

@media (max-width: 1060px) {
  .hd-nav, .hd-tel { display: none !important; }
  .hd-bar .btn-blau { margin-left: auto; }
  .hd-burger { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; padding: 8px; margin: 0 -6px 0 0; cursor: pointer; flex: 0 0 auto; }
  .hd-burger span { display: block; width: 22px; height: 2px; background: #0F2333; transition: transform 160ms ease, opacity 160ms ease; }
  .hd-menue-cb:checked ~ .hd-bar .hd-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .hd-menue-cb:checked ~ .hd-bar .hd-burger span:nth-child(2) { opacity: 0; }
  .hd-menue-cb:checked ~ .hd-bar .hd-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hd-menue-cb:checked ~ .hd-menue { display: block; }
  .hd-menue { border-top: 1px solid #E3DFD4; background: #FBFAF7; padding: 6px 20px 18px; }
  .hd-menue a { display: block; padding: 14px 0; border-bottom: 1px solid #E3DFD4; font-size: 16px !important; border-bottom-width: 1px !important; border-bottom-style: solid !important; border-bottom-color: #E3DFD4 !important; }
  .hd-menue a:last-child { border-bottom: none !important; }
  .hd-menue-tel { padding-top: 18px !important; }
  .hd-bar { height: 68px !important; padding: 0 24px !important; gap: 20px !important; }
  .c-hero { grid-template-columns: 1fr !important; }
  .c-hero-copy { padding: 56px 24px !important; max-width: none !important; }
  .c-h1 { font-size: clamp(38px, 9vw, 54px) !important; }
  .c-hero-bild { min-height: 420px !important; }
  .c-zusagen { grid-template-columns: 1fr 1fr !important; padding: 0 !important; }
  .c-2col, .c-faq, .c-anfrage, .c-detail, .c-ratgeber, .c-featured, .c-hauptstimme { grid-template-columns: 1fr !important; gap: 32px !important; }
  .c-grid3, .c-grid5 { grid-template-columns: 1fr 1fr !important; }
  .c-grid4 { grid-template-columns: 1fr 1fr !important; row-gap: 40px !important; border-top: none !important; }
  .c-grid4 > div { border-top: 1px solid rgba(255,255,255,0.16); }
  .c-leistung { grid-template-columns: 1fr !important; gap: 12px !important; }
  .c-artikelrow { grid-template-columns: 1fr !important; gap: 8px !important; }
  .c-artikelmeta { text-align: left !important; }
  .c-sticky { position: static !important; }
  .wrap, .wrap-s, .c-legal, .c-detail, .c-anfrage { padding-left: 20px !important; padding-right: 20px !important; }
  section.wrap { padding-top: 64px !important; }
  main.wrap, .c-detail { padding-top: 40px !important; padding-bottom: 64px !important; }
  .c-anfrage { padding-top: 56px !important; padding-bottom: 64px !important; }
  .c-featured-copy { padding: 24px !important; }
  .c-herooverlay { padding: 24px 20px !important; }
  #wechsel, #anfrage { margin-top: 64px !important; }
  .c-hero-copy { padding: 48px 20px !important; }
  .ftr-top { grid-template-columns: 1fr !important; gap: 32px !important; padding: 48px 0 !important; }
  .ftr-cols { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 700px) {
  /* ---- Typo-Skala mobil: eine Stufe kleiner, Proportionen erhalten ---- */
  h1, .c-h1 { font-size: clamp(29px, 8.3vw, 36px) !important; line-height: 1.12 !important; }
  main h2 { font-size: clamp(23px, 6.4vw, 28px) !important; line-height: 1.18 !important; }
  [style*="font: 400 40px"] { font-size: 27px !important; }
  [style*="font: 400 34px"] { font-size: 24px !important; }
  [style*="font: 400 32px"] { font-size: 24px !important; }
  [style*="font: 400 30px"] { font-size: 22px !important; }
  [style*="font: 400 27px"] { font-size: 21px !important; }
  [style*="font: 400 26px"] { font-size: 20px !important; }
  [style*="font: 400 22px"] { font-size: 19px !important; }
  [style*="font: 400 21px"] { font-size: 19px !important; }
  [style*="font: 400 19px"] { font-size: 16.5px !important; line-height: 1.55 !important; }
  [style*="font: 400 18px"] { font-size: 16px !important; }
  [style*="font: 400 17px"] { font-size: 16px !important; }
  .c-hauptstimme blockquote { font-size: 21px !important; line-height: 1.42 !important; }
  .faq-frage { font-size: 17.5px !important; padding: 18px 0 !important; }
  .c-leistung h3 { font-size: 23px !important; }
  .btn-blau, .btn-outline { font-size: 15px !important; padding: 14px 22px !important; }

  /* ---- Abstands-Rhythmus mobil ---- */
  section.wrap { padding-top: 48px !important; }
  .c-hero-copy { padding: 40px 20px !important; }
  .c-hero-copy [style*="margin: 28px 0 0"] { margin-top: 18px !important; }
  .c-hero-copy [style*="margin-top: 40px"] { margin-top: 24px !important; }
  .c-hero-copy [style*="margin-top: 48px"] { margin-top: 28px !important; }
  [style*="padding: 48px 32px"] { padding: 26px 20px !important; }
  .c-leistung { padding: 26px 0 !important; }
  [style*="border-top: 3px solid #004673; padding: 32px"] { padding: 22px !important; }
  .c-featured-copy { padding: 20px !important; }
  figure[style*="padding: 28px"] { padding: 20px !important; }
  .c-hauptstimme { padding: 24px 20px !important; }
  .c-artikelrow { padding: 20px 0 !important; }
  div.wrap[style*="padding: 96px"] { padding-top: 52px !important; padding-bottom: 52px !important; }
  .c-anfrage { padding-top: 44px !important; padding-bottom: 52px !important; }
  [style*="margin-top: 72px"] { margin-top: 40px !important; }
  [style*="margin-top: 64px"] { margin-top: 36px !important; }
  [style*="margin-top: 56px"] { margin-top: 32px !important; }
  [style*="margin: 48px 0 0"] { margin-top: 28px !important; }
  [style*="margin-top: 48px"] { margin-top: 28px !important; }
  #wechsel, #anfrage { margin-top: 52px !important; }
  .c-2col, .c-faq, .c-detail, .c-ratgeber { gap: 22px !important; }
  .c-grid3, .c-grid5, .c-zusagen { gap: 14px !important; }
  .c-form2 { gap: 14px !important; }
  [style*="padding: 32px"] { padding: 22px !important; }
  .ftr-top { padding: 36px 0 !important; gap: 24px !important; }
  .ftr-top img { max-width: 96px !important; }
  .ftr-cols { padding: 32px 0 !important; gap: 28px !important; }
  [style*="padding: 44px 0"] { padding: 26px 0 !important; }

  .c-detailhero { height: 360px !important; }
  .c-hero-bild { min-height: 280px !important; }

  /* Schwerpunkt-Zeilen (Objektdetail): Nummer über Titel statt schmaler Rechtsspalte */
  [style*="grid-template-columns: 80px 1fr"] { grid-template-columns: 1fr !important; gap: 6px !important; }

  /* Abstands-Ausreisser vereinheitlichen (Rhythmus: 48 oben, 64 unten) */
  .c-legal { padding-top: 48px !important; padding-bottom: 64px !important; }
  .wrap-s[style*="padding: 72px"] { padding-top: 48px !important; }
  main.wrap-s { padding-top: 56px !important; padding-bottom: 88px !important; }
  .wrap[style*="margin: 104px auto 0"] { margin-top: 56px !important; }
  .wrap[style*="padding: 0 40px 104px"] { padding-bottom: 64px !important; }
  [style*="margin: 64px 0 32px"] { margin-top: 40px !important; margin-bottom: 24px !important; }

  /* Kompakter Header, damit Marke + Button in 375px passen */
  .hd-bar { padding: 0 16px !important; gap: 12px !important; height: 60px !important; }
  .hd-bar > a img { height: 34px !important; }
  .hd-bar [style*="font: 600 27px"] { font-size: 21px !important; }
  .hd-bar [style*="letter-spacing: 0.24em"] { font-size: 8px !important; margin-top: 5px !important; }
  .hd-bar .btn-blau { font-size: 13px !important; padding: 11px 14px !important; }
}
@media (max-width: 640px) {
  .c-zusagen, .c-grid3, .c-grid5, .c-grid4, .ftr-cols { grid-template-columns: 1fr !important; }
  .c-form2 { grid-template-columns: 1fr !important; }
  .c-hauptstimme { padding: 32px 24px !important; }
  .c-hauptstimme blockquote { font-size: 24px !important; }
}
