/* KoSch Holding – Impressum und Datenschutzerklärung (16.10.2026)
   Farben aus style.css (--secondary-color #194d85, --primary-text #9a5b00, --kh-*), Kontraste ≥ 4,5:1. */
.kl-page {
  --kl-offset: 0px;            /* Abstand zum festen Seitenkopf liefert das Theme */
  --kl-sticky: 110px;
  --kl-bg: #ffffff;
  --kl-hero-bg: #f8f9fa;
  --kl-surface: #ffffff;
  --kl-surface-2: #f5f7f8;
  --kl-text: #2c3e50;
  --kl-text-2: #4b5963;
  --kl-text-3: #5a6c7d;
  --kl-heading: #194d85;
  --kl-kicker: #9a5b00;
  --kl-link: #9a5b00;
  --kl-link-hover: #0f3759;
  --kl-focus: #194d85;
  --kl-border: #e1e6ea;
  --kl-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
  --kl-callout-bg: #fff7e8;
  --kl-callout-border: #f3d7a4;
  --kl-warn-bg: #fff7e8;
  --kl-warn-border: #f0c46b;
  --kl-warn-rail: #f5a623;
}
@media (prefers-color-scheme: dark) {
  .kl-page {
    --kl-bg: #121820;
    --kl-hero-bg: #0f1620;
    --kl-surface: #1a2332;
    --kl-surface-2: #222d3e;
    --kl-text: #e3e8ee;
    --kl-text-2: #b8c3ce;
    --kl-text-3: #93a3b3;
    --kl-heading: #f1f4f8;
    --kl-kicker: #f9c86a;
    --kl-link: #f9c86a;
    --kl-link-hover: #ffe2a8;
    --kl-focus: #f9c86a;
    --kl-border: #2c3a4d;
    --kl-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    --kl-callout-bg: rgba(245, 166, 35, 0.12);
    --kl-callout-border: rgba(245, 166, 35, 0.35);
    --kl-warn-bg: rgba(245, 166, 35, 0.14);
    --kl-warn-border: rgba(245, 166, 35, 0.45);
    --kl-warn-rail: #f5a623;
  }
}
/* ---- Gemeinsamer Aufbau Impressum/Datenschutz (16.10.2026). Nur lokale Ressourcen. ---- */
.kl-page {
  --kl-measure: 70ch;
  background: var(--kl-bg);
  color: var(--kl-text);
  padding-top: var(--kl-offset, 0);
  font-size: 1rem;
  line-height: 1.7;
}
.kl-page *, .kl-page *::before, .kl-page *::after { box-sizing: border-box; }
.kl-wrap { width: min(calc(100% - 32px), 1180px); margin-inline: auto; }
.kl-hero { background: var(--kl-hero-bg); border-bottom: 1px solid var(--kl-border); padding: clamp(36px, 6vw, 72px) 0 clamp(28px, 4vw, 44px); }
.kl-kicker { margin: 0 0 .5rem; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--kl-kicker); }
.kl-hero h1 { margin: 0 0 .5rem; font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.12; letter-spacing: -.02em; color: var(--kl-heading); text-align: left; }
.kl-lead { margin: 0; max-width: var(--kl-measure); font-size: clamp(1.02rem, 1.6vw, 1.15rem); color: var(--kl-text-2); }
.kl-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .93rem; color: var(--kl-text-2); }
.kl-meta li { margin: 0; padding: 0; }
.kl-meta li::before { content: none; }
.kl-meta strong { color: var(--kl-text); }
.kl-body { padding: clamp(24px, 4vw, 48px) 0 clamp(56px, 7vw, 88px); }
.kl-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 3vw, 40px); align-items: start; }
@media (min-width: 1100px) { .kl-layout--toc { grid-template-columns: 250px minmax(0, 1fr); } }

/* Inhaltsverzeichnis */
.kl-toc { font-size: .92rem; line-height: 1.45; }
@media (min-width: 1100px) { .kl-toc { position: sticky; top: calc(var(--kl-sticky, 24px)); max-height: calc(100vh - var(--kl-sticky, 24px) - 24px); overflow: auto; } }
.kl-toc details { background: var(--kl-surface); border: 1px solid var(--kl-border); border-radius: 12px; padding: .25rem .5rem .5rem; }
.kl-toc summary { cursor: pointer; padding: .55rem .4rem; font-weight: 700; color: var(--kl-heading); border-radius: 8px; }
.kl-toc ol { list-style: none; margin: .2rem 0 0; padding: 0; }
.kl-toc li { margin: 0; padding: 0; }
.kl-toc li::before { content: none; }
.kl-toc a { display: flex; gap: .5rem; align-items: baseline; min-height: 32px; padding: .3rem .45rem; border-radius: 8px; color: var(--kl-text-2); text-decoration: none; }
.kl-toc a:hover { background: var(--kl-surface-2); color: var(--kl-text); }
.kl-num { flex: 0 0 1.6rem; text-align: right; font-variant-numeric: tabular-nums; color: var(--kl-text-3); }
.kl-page a:focus-visible, .kl-toc summary:focus-visible { outline: 3px solid var(--kl-focus); outline-offset: 2px; }

/* Dokument */
.kl-doc { min-width: 0; max-width: calc(var(--kl-measure) + 5rem); background: var(--kl-surface); border: 1px solid var(--kl-border); border-radius: 16px; box-shadow: var(--kl-shadow); padding: clamp(20px, 4vw, 44px); }
.kl-doc section { scroll-margin-top: var(--kl-sticky, 24px); padding-top: 1.8rem; margin-top: 1.8rem; border-top: 1px solid var(--kl-border); }
.kl-doc section { padding-bottom: 0; padding-left: 0; padding-right: 0; background: none; }
.kl-doc section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.kl-callout h3 { margin-top: 0; }
.kl-doc h2 { margin: 0 0 .85rem; font-size: clamp(1.3rem, 2.6vw, 1.6rem); line-height: 1.3; letter-spacing: -.01em; color: var(--kl-heading); text-align: left; }
.kl-doc h3 { margin: 1.4rem 0 .45rem; font-size: 1.08rem; line-height: 1.4; color: var(--kl-heading); }
.kl-doc p, .kl-doc ul, .kl-doc dl { margin: 0 0 1rem; color: var(--kl-text); }
.kl-doc p:last-child { margin-bottom: 0; }
.kl-doc ul { padding-left: 1.3rem; }
.kl-doc li { margin: .3rem 0; color: var(--kl-text); }
.kl-doc a, .kl-hero a { color: var(--kl-link); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.kl-doc a:hover, .kl-hero a:hover { color: var(--kl-link-hover); }
.kl-doc code { font-size: .88em; padding: .05em .35em; border-radius: 5px; background: var(--kl-surface-2); border: 1px solid var(--kl-border); color: var(--kl-text); overflow-wrap: anywhere; }
.kl-doc strong { color: inherit; }

/* Angaben (Definitionsliste) */
.kl-facts { display: grid; border: 1px solid var(--kl-border); border-radius: 12px; overflow: hidden; margin: 0 0 1rem; padding: 0; }
.kl-facts > div { display: grid; grid-template-columns: minmax(0, 1fr); gap: .15rem; padding: .85rem 1rem; border-top: 1px solid var(--kl-border); }
.kl-facts > div:first-child { border-top: 0; }
.kl-facts dt { font-size: .84rem; font-weight: 700; color: var(--kl-text-2); }
.kl-facts dd { margin: 0; color: var(--kl-text); }
@media (min-width: 680px) { .kl-facts > div { grid-template-columns: 13rem minmax(0, 1fr); gap: 1rem; } .kl-facts dt { font-size: .93rem; } }

/* Tabellen */
.kl-table { width: 100%; border-collapse: collapse; margin: 0 0 1rem; font-size: .96rem; line-height: 1.55; border: 1px solid var(--kl-border); border-radius: 12px; overflow: hidden; display: table; }
.kl-table th, .kl-table td { text-align: left; vertical-align: top; padding: .7rem 1rem; border-bottom: 1px solid var(--kl-border); color: var(--kl-text); background: transparent; }
.kl-table thead th { font-size: .84rem; font-weight: 700; color: var(--kl-text-2); background: var(--kl-surface-2); }
.kl-table tbody th { width: 34%; font-weight: 700; }
.kl-table tbody tr:last-child > * { border-bottom: 0; }
@media (max-width: 639.98px) {
  .kl-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .kl-table, .kl-table tbody, .kl-table tr, .kl-table tbody th, .kl-table td { display: block; width: auto; }
  .kl-table tbody tr { padding: .7rem .9rem; border-bottom: 1px solid var(--kl-border); }
  .kl-table tbody tr:last-child { border-bottom: 0; }
  .kl-table tbody th, .kl-table td { border: 0; padding: 0; }
  .kl-table tbody th { margin-bottom: .2rem; }
}

/* Hervorhebungen */
.kl-callout { margin: 0 0 1rem; padding: 1rem 1.15rem; border-radius: 12px; background: var(--kl-callout-bg); border: 1px solid var(--kl-callout-border); color: var(--kl-text); }
.kl-callout > :last-child { margin-bottom: 0; }
.kl-callout--strong { background: var(--kl-warn-bg); border: 1px solid var(--kl-warn-border); border-left: 6px solid var(--kl-warn-rail); }
.kl-rights { list-style: none; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: .5rem; }
.kl-rights li { margin: 0; padding: .6rem .85rem; border: 1px solid var(--kl-border); border-radius: 10px; background: var(--kl-surface-2); }
.kl-rights li::before { content: none; }
.kl-foot { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--kl-border); font-size: .92rem; color: var(--kl-text-2); }

/* Druck */
@media print {
  @page { margin: 18mm 16mm; }
  .kl-page { --kl-text: #000; --kl-text-2: #222; --kl-heading: #000; --kl-link: #000; --kl-border: #999; background: #fff; padding-top: 0; font-size: 10.5pt; line-height: 1.5; color: #000; }
  .kl-toc { display: none !important; }
  .kl-layout { display: block; }
  .kl-hero { background: none; border: 0; padding: 0 0 8mm; }
  .kl-doc { max-width: none; border: 0; box-shadow: none; padding: 0; background: #fff; }
  .kl-doc a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; }
  .kl-doc h2, .kl-doc h3 { break-after: avoid; }
  .kl-doc tr, .kl-facts > div, .kl-callout { break-inside: avoid; }
  .kl-callout, .kl-rights li, .kl-table thead th { background: none !important; }
  .kl-callout--strong { border: 1.5pt solid #000; }
}
@media print {
  .header, .kh-footer, .footer, .floating-contacts, .scroll-top, #cookie-notice, .cookie-notice { display: none !important; }
}
.kl-page .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
