/* drk-aachen.de — zentrale Styles.
   Design-Tokens gemäß UEBERGABE-Entwicklung.md §2 (verbindlich).
   Seitenspezifische Layout-Styles bleiben bewusst inline in den HTML-Dateien;
   hier liegen nur Tokens, Basis-Styles und die seitenübergreifenden Komponenten. */

/* ===== Open Sans, selbst gehostet (variable Font wght 300–800, OFL — s. fonts/OFL.txt).
   Ersetzt Google Fonts; die Website lädt damit keinerlei Drittanbieter-Ressourcen. ===== */
@font-face{
  font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;
  src:url('fonts/open-sans-latin-var.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:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;
  src:url('fonts/open-sans-latin-ext-var.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;
}

:root{
  --rot:#E60005;
  --rot-hover:#A51E0F;
  --softrot-dunkel:#FF8A7A;
  --dunkelblau:#002D55;
  --dunkelblau-hover:#0A3A66;
  --link:#2275D0;
  --link-hover:#008CCD;
  --text:#1D1D1B;
  --text-body:#554F4A;
  --text-muted:#645E58;
  --text-muted-2:#6B655F;
  --bg:#EFEEEA;
  --card-border:#E3E1DB;
  --border-2:#DAD8D2;
  --font:'Open Sans','Helvetica Neue',Arial,sans-serif;
}

/* ===== Basis (zuvor identischer <style>-Block auf jeder Seite) ===== */
html{scroll-behavior:smooth}
[id]{scroll-margin-top:92px}
body{margin:0;background:var(--bg);font-family:'Open Sans','Helvetica Neue',Arial,system-ui,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--link-hover)}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--link);outline-offset:2px}
summary{cursor:pointer}
summary::-webkit-details-marker{display:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media (max-width:1080px){[data-desktop]{display:none !important}}
@media (min-width:1081px){[data-mobile-only]{display:none !important}}

/* ===== Skip-Link ===== */
.skip-link{position:absolute;left:-9999px;top:16px;z-index:100;background:#fff;color:var(--text);padding:12px 18px;border-radius:8px;font:600 15px var(--font);box-shadow:0 2px 10px rgba(0,0,0,.15)}
.skip-link:focus-visible{left:16px}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--card-border)}
.nav-desktop{display:flex;gap:26px;font:500 15px var(--font);align-items:center}
.nav-link{color:#403e3a;transition:color .15s ease}
.nav-link:hover{color:var(--rot)}
.nav-link[aria-current="page"]{color:var(--rot);font-weight:600}
.pill-tel{display:flex;font:600 14px var(--font);color:var(--text);background:#fff;border:1.5px solid var(--border-2);padding:10px 16px;border-radius:99px;transition:background-color .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap;flex:none}
.pill-tel:hover{border-color:var(--rot);color:var(--rot)}
.pill-cta{font:600 14px var(--font);color:#fff;background:var(--rot);padding:11px 20px;border-radius:99px;transition:background-color .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap;flex:none}
.pill-cta:hover{background:var(--rot-hover);color:#fff}
.burger{display:none;box-sizing:content-box;width:42px;height:42px;border:1.5px solid var(--border-2);border-radius:10px;background:#fff;flex-direction:column;gap:5px;align-items:center;justify-content:center;cursor:pointer;padding:0}
.burger span{width:18px;height:2px;background:var(--dunkelblau)}
@media (max-width:1080px){.burger{display:flex}}

/* ===== Mobilnavigation (Panel unter dem Header, <1081px) ===== */
.nav-mobil{display:none;border-top:1px solid var(--card-border);background:#fff;padding:12px clamp(16px,4vw,40px) 20px;flex-direction:column;gap:2px}
.nav-mobil.offen{display:flex}
@media (min-width:1081px){.nav-mobil{display:none !important}}
.nav-mobil a{font:600 17px var(--font);color:var(--text);padding:12px 4px;border-bottom:1px solid var(--bg)}
.nav-mobil a[aria-current="page"]{color:var(--rot)}
.nav-mobil a.nav-mobil-tel{font:600 16px var(--font);color:var(--rot);padding:14px 4px 4px;border-bottom:0}

/* ===== Breadcrumb ===== */
.breadcrumb{max-width:1240px;margin:0 auto;padding:14px clamp(16px,4vw,40px) 0;font:500 13.5px var(--font);color:var(--text-muted-2)}
.breadcrumb a{color:var(--text-muted-2);transition:color .15s ease}
.breadcrumb a:hover{color:var(--rot)}

/* ===== Footer ===== */
.site-footer{background:var(--rot);color:#fff}
.site-footer a{color:#fff}
.footer-list{list-style:none;margin:0;padding:0}
/* Volles Weiß statt 92 % Opacity (UEBERGABE §3): 4,63:1 statt 4,18:1 auf Rot — WCAG AA.
   Hover-Affordanz per Unterstreichung (laut §3 erlaubt). */
.footer-list a:hover{text-decoration:underline}

/* ===== Hover-Utilities (1:1-Abbildung der bisherigen style-hover-Werte) ===== */
.hv-rot:hover{color:var(--rot)}
.hv-border-rot:hover{border-color:var(--rot)}
.hv-border-text-rot:hover{border-color:var(--rot);color:var(--rot)}
.hv-fill-dunkelrot:hover{background:var(--rot-hover);color:#fff}
.hv-weiss:hover{border-color:#fff;color:#fff}
.hv-dunkelrot:hover{color:var(--rot-hover)}
.hv-fill-dunkelblau:hover{background:var(--dunkelblau-hover)}
/* Bestandswerte außerhalb der §2-Palette — unverändert übernommen, bei künftigem
   Token-Refactoring konsolidieren: */
.hv-invers-rot:hover{background:#f4f0ea;color:var(--rot-hover)}
.hv-invers-neutral:hover{background:#f4f0ea;color:var(--text)}
.hv-invers-dunkelblau:hover{background:#f0efec;color:var(--dunkelblau)}
.hv-fill-nachtblau:hover{background:#00223F;color:#fff}
