/* ============================================================
   DMC  base.css  -  Reset, Element-Defaults, Fokus, Selektion
   Dunkles Theme. Kontrast WCAG-AA gesichert.
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + var(--space-4));
  -webkit-tap-highlight-color:transparent;
}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-sans);font-size:var(--text-body);
  font-weight:var(--weight-regular);line-height:var(--leading-normal);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;font-synthesis:none;
  min-height:100svh;overflow-x:hidden;
  scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;
}

/* Ueberschriften: Bodoni Display, eng gefuehrt, ausgewogener Umbruch */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);font-weight:700;
  line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);
  color:var(--text);text-wrap:balance;
}
h1{font-size:var(--text-h1)}
h2{font-size:var(--text-h2)}
h3{font-size:var(--text-h3)}
h4{font-size:var(--text-h4)}
h5{font-size:var(--text-lead);font-weight:500}
h6{font-size:var(--text-body);font-weight:500;letter-spacing:var(--tracking-normal)}
p{text-wrap:pretty}

/* Links */
a{color:inherit;text-decoration:none}
a:not([class]){
  color:var(--accent-hover);
  text-decoration:underline;text-underline-offset:.18em;
  text-decoration-thickness:1px;text-decoration-color:var(--accent-line);
  transition:color var(--dur-fast) var(--ease-standard),
             text-decoration-color var(--dur-fast) var(--ease-standard);
}
a:not([class]):hover{color:var(--text);text-decoration-color:currentColor}

/* Medien fluid */
img,picture,svg,video,canvas{display:block;max-width:100%;height:auto}
img{object-fit:cover}
svg{fill:currentColor}

/* Formulare erben Typo */
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{background:none;border:0;cursor:pointer}

/* Listen */
ul[role="list"],ol[role="list"]{list-style:none;margin:0;padding:0}
:where(ul,ol):not([role="list"]){padding-inline-start:1.25em}

hr{border:0;border-top:1px solid var(--hairline);margin-block:var(--space-6)}
strong,b{font-weight:600}
small{font-size:var(--text-caption)}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}
:target{scroll-margin-top:calc(var(--header-h) + var(--space-4))}

/* Fokus nur fuer Tastatur sichtbar */
:focus:not(:focus-visible){outline:none}
:focus-visible{
  outline:2px solid var(--accent-hover);
  outline-offset:var(--focus-offset);
  border-radius:var(--radius-sm);
}

/* Selektion */
::selection{background:var(--accent);color:var(--accent-contrast);text-shadow:none}

/* Scrollbar (WebKit) dezent */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:var(--radius-pill);border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--accent-strong)}

/* A11y-Helfer */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{
  position:fixed;left:var(--space-4);top:var(--space-2);z-index:var(--z-max);
  transform:translateY(-160%);background:var(--surface-2);color:var(--text);
  padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);
  box-shadow:var(--shadow-3),var(--edge-catch);
  transition:transform var(--dur-normal) var(--ease-out-expo);
}
.skip-link:focus{transform:translateY(0)}

/* Kennzahlen mit Tabellenziffern */
.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* Reduced Motion  (a11y Sicherheitsnetz; motion.css fuehrt die Feinsteuerung) */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}
