/* Erzeugt von build.py aus index.html – nicht hier bearbeiten. */

  /* Selbst gehostete Schriften, SIL Open Font License 1.1 (siehe assets/fonts/OFL.txt). Keine externen Schriftdienste. */
  @font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/EBGaramond-Regular.woff2") format("woff2"); }
  @font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/EBGaramond-Medium.woff2") format("woff2"); }
  @font-face { font-family: "EB Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/EBGaramond-SemiBold.woff2") format("woff2"); }
  @font-face { font-family: "EB Garamond"; font-style: italic; font-weight: 400; font-display: swap; src: url("/assets/fonts/EBGaramond-Italic.woff2") format("woff2"); }
  @font-face { font-family: "Work Sans"; font-style: normal; font-weight: 300; font-display: swap; src: url("/assets/fonts/WorkSans-Light.woff2") format("woff2"); }
  @font-face { font-family: "Work Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/WorkSans-Regular.woff2") format("woff2"); }
  @font-face { font-family: "Work Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/WorkSans-Medium.woff2") format("woff2"); }
  html { scroll-behavior: smooth; }
  .sprunglink { position: absolute; left: 12px; top: -60px; z-index: 100; background: #23302E; color: #FCFAF6 !important; padding: 12px 18px; border-radius: 2px; font-size: 14px; }
  .sprunglink:focus { top: 12px; }
  a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid #A2653F; outline-offset: 3px; }
  [id] { scroll-margin-top: 110px; }
  summary { list-style-position: outside; }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
  body { margin: 0; background: #FCFAF6; color: #232B2B; font-family: "Work Sans", system-ui, sans-serif; font-weight: 400; -webkit-font-smoothing: antialiased; }
  * { box-sizing: border-box; }
  a { color: #3C5654; text-decoration: none; }
  a:hover { color: #A2653F; }
  p { text-wrap: pretty; }
  header nav a { white-space: nowrap; position: relative; }
  /* Unterstrich des aktiven Reiters: absolut, damit alle Reiter auf einer Linie bleiben */
  header nav a > span { position: absolute; left: 0; right: 0; bottom: -6px; margin: 0 !important; }
  @media (max-width: 1179px) {
    header > div { flex-wrap: wrap; gap: 12px 28px !important; padding: 14px 32px !important; }
    header nav { flex-wrap: wrap; row-gap: 10px !important; }
  }
  @media (max-width: 1180px) {
    header nav { gap: 13px !important; }
    header nav a { font-size: 12.5px !important; letter-spacing: 0.03em !important; }
    header nav a[href^="tel"] { padding: 11px 14px !important; letter-spacing: 0.05em !important; }
  }
  @media (max-width: 1020px) {
    header > div { flex-wrap: wrap; gap: 14px !important; padding: 14px 24px !important; }
    header nav { flex-wrap: wrap; row-gap: 10px !important; }
    [style*="minmax(0px, 6fr)"],
    [style*="minmax(0, 6fr)"],
    [style*="minmax(0px, 8fr)"],
    [style*="minmax(0px, 10fr)"],
    [style*="minmax(0px, 13fr)"],
    [style*="minmax(0, 8fr)"],
    [style*="minmax(0, 10fr)"],
    [style*="minmax(0, 13fr)"],
    [style*="grid-template-columns: repeat(3"],
    [style*="grid-template-columns: repeat(2"],
    [style*="grid-template-columns: 1fr 1fr"],
    [style*="grid-template-columns: 220px 1fr"] { grid-template-columns: minmax(0, 1fr) !important; gap: 28px !important; }
    [style*="grid-template-columns: repeat(4"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 28px !important; }
    [style*="grid-template-columns: 1.2fr 1fr 1fr 1fr"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    h1 { font-size: 42px !important; }
    [style*="grid-template-columns: 190px 1fr"] { grid-template-columns: 150px 1fr !important; }
    h2 { font-size: 31px !important; }
  }
  @media (max-width: 1020px) {
    [data-weg] { grid-row: auto !important; grid-template-rows: none !important; display: block !important; }
  }
  @media (max-width: 660px) {
    [data-table-head] { display: none !important; }
    [style*="minmax(0, 12fr)"] { grid-template-columns: minmax(0, 1fr) !important; gap: 2px !important; padding: 12px 0 !important; }
    [style*="grid-template-columns: 44px 1fr"] { grid-template-columns: 30px 1fr !important; gap: 10px !important; }
    [style*="grid-template-columns: 1.2fr 1fr 1fr 1fr"],
    [style*="grid-template-columns: 120px 1fr"] { grid-template-columns: minmax(0, 1fr) !important; gap: 6px !important; }
    [style*="grid-template-columns: 190px 1fr"] { grid-template-columns: minmax(0, 1fr) !important; gap: 4px !important; }
    [style*="grid-template-columns: repeat(4"] { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
    h1 { font-size: 32px !important; }
    h2 { font-size: 26px !important; }
    h3 { font-size: 21px !important; }
    header > div { padding: 12px 18px !important; }
    header nav { gap: 14px !important; row-gap: 8px !important; }
    /* Lange Wörter, E-Mail-Adressen und Links umbrechen statt überstehen */
    main p, main li, main span, main a, main h2, main h3 { overflow-wrap: break-word; }
    main [style*="display: grid"] > * { min-width: 0; }
    main h3 > span { min-width: 0; overflow-wrap: anywhere; hyphens: auto; }
    /* Seitenrand auf dem Handy: einmal 18 px, nicht mehrfach addiert */
    main[style], footer > div { padding-left: 18px !important; padding-right: 18px !important; }
    main:not([style]) { padding-left: 0 !important; padding-right: 0 !important; }
    section[style*="padding: 0 32px"], section[style*="px 32px"],
    section > div[style*="padding: 0 32px"], section > div[style*="px 32px"] { padding-left: 18px !important; padding-right: 18px !important; }
    [style*="padding: 132px 32px 128px"] { padding-top: 72px !important; padding-bottom: 72px !important; }
    [style*="padding: 60px 56px 62px"], [style*="padding: 56px; display: flex"] { padding: 36px 22px !important; }
    [style*="padding: 48px 44px"], [style*="padding: 40px 44px"], [style*="padding: 36px 34px"], [style*="padding: 38px 32px 34px"] { padding: 28px 22px !important; }
    img[style*="height: 340px"], img[style*="height: 400px"] { height: 240px !important; }
    a[href^="tel"][style*="font-size: 54px"] { font-size: 40px !important; }
  }
  /* Einheitliche Schrift auf dem Handy: Überschriften (h1–h3) und Zwischenüberschriften
     abgestuft, aller übrige Text in einer Größe, Rubriken/Knöpfe in Großbuchstaben kleiner. */
  @media (max-width: 660px) {
    main :is(p, li, span, a, summary, div, blockquote), main ~ section :is(p, span, a, div), footer :is(p, li, span, a, div),
    [style*="background: #2E403E"] :is(span, a) { font-size: 16px !important; line-height: 1.65 !important; }
    main :not(h1, h2, h3, blockquote, blockquote *)[style*="EB Garamond"], footer :not(h1, h2, h3)[style*="EB Garamond"] { font-family: "Work Sans", system-ui, sans-serif !important; }
    main [style*="text-transform: uppercase"], main [style*="text-transform: uppercase"] *, main ~ section [style*="text-transform: uppercase"],
    footer [style*="text-transform: uppercase"], [style*="background: #2E403E"] [style*="text-transform: uppercase"],
    main figcaption, main figcaption * { font-size: 13px !important; line-height: 1.5 !important; }
    main .zwischentitel[class], footer .zwischentitel[class], main blockquote, main blockquote [style], main blockquote * { font-family: "EB Garamond", Georgia, serif !important; font-size: 21px !important; line-height: 1.35 !important; }
    main [style*="justify-content: space-between"] > span:last-child { white-space: nowrap; }
    main a[href="tel:112"][href] { font-family: "EB Garamond", Georgia, serif !important; font-size: 26px !important; line-height: 1.2 !important; }
    main :is(h1, h2, h3) * { font-size: inherit !important; line-height: inherit !important; font-family: inherit !important; }
  }
  /* Menü-Button für schmale Bildschirme (Handy) */
  .menu-knopf { display: none; }
  @media (max-width: 760px) {
    header > div { flex-wrap: wrap !important; gap: 0 !important; padding: 12px 18px !important; }
    header > div > a:first-child span:first-child { font-size: 22px !important; }
    header > div > a:first-child span:last-child { font-size: 9.5px !important; letter-spacing: 0.1em !important; }
    .menu-knopf { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; margin-left: auto; padding: 0 10px; background: none; border: 0; cursor: pointer; }
    .menu-knopf span { display: block; height: 1.5px; background: #232B2B; transition: transform 0.2s, opacity 0.2s; }
    .menu-offen .menu-knopf span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .menu-offen .menu-knopf span:nth-child(2) { opacity: 0; }
    .menu-offen .menu-knopf span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
    header nav { display: none !important; width: 100%; flex-direction: column; align-items: stretch !important; gap: 0 !important; padding: 10px 0 8px; }
    .menu-offen header nav { display: flex !important; }
    header nav a { font-size: 15px !important; letter-spacing: 0.04em !important; padding: 13px 0; border-top: 1px solid #E7E0D2; }
    header nav a > span { left: 0; right: auto; width: 2.4em; bottom: 8px; }
    header nav a[href^="tel"] { margin: 12px 0 4px !important; padding: 14px 18px !important; text-align: center; border-top: 0; }
  }

  [hidden] { display: none !important; }
.hv1:hover { color: #A2653F !important; }
.hv2:hover { background: #A2653F !important; color: #FCFAF6 !important; }
.hv3:hover { color: #FFFFFF !important; }
.hv4:hover { background: #C8B48E !important; color: #23302E !important; }
.hv5:hover { border-color: #EFE7D8 !important; color: #FFFFFF !important; }
.hv6:hover { border-color: #3C5654 !important; color: #3C5654 !important; }
.hv7:hover { color: #C8B48E !important; }
.hv8:hover { background: #C8B48E !important; }
.hv9:hover { border-color: #EFE7D8 !important; }
