/* ============================================================
   such-werk — base.css  (Reset + Basis, nutzt tokens.css)
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--sw-font-sans); font-size: var(--sw-fs-base);
  line-height: var(--sw-lh-body); color: var(--sw-text); background: var(--sw-bg);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, picture, svg, video { display: block; max-width: 100%; height: auto; }
h1, h2, h3, h4 {
  font-family: var(--sw-font-serif); color: var(--sw-heading);
  line-height: var(--sw-lh-head); font-weight: var(--sw-fw-normal);
  letter-spacing: var(--sw-tracking-tight);
}
h1 { font-size: var(--sw-fs-3xl); line-height: var(--sw-lh-tight); }
h2 { font-size: var(--sw-fs-2xl); }
h3 { font-size: var(--sw-fs-xl); }
p { max-width: 68ch; }
a { color: var(--sw-primary); text-decoration: none; transition: color var(--sw-dur) var(--sw-ease); }
a:hover { color: var(--sw-primary-700); }
strong, b { font-weight: var(--sw-fw-semi); }
em, i { font-style: italic; }
ul, ol { padding-left: 1.25em; }
.sw-wrap { width:100%; max-width: var(--sw-wide); margin-inline:auto; padding-inline: var(--sw-gutter); }
.sw-wrap--narrow { max-width: var(--sw-content); }
section { scroll-margin-top: 90px; }
.sw-eyebrow {
  font-family: var(--sw-font-sans); font-size: var(--sw-fs-eyebrow);
  font-weight: var(--sw-fw-semi); letter-spacing: var(--sw-tracking-eyebrow);
  text-transform: uppercase; color: var(--sw-primary);
}
.sw-lead { font-size: var(--sw-fs-lg); color: var(--sw-muted); line-height: 1.55; }
.sw-italic { font-family: var(--sw-font-serif); font-style: italic; }
.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; }
.skip-link { position:absolute; left:-9999px; top:0; background: var(--sw-ink); color: var(--sw-on-dark); padding:.6rem 1rem; z-index:1000; border-radius:0 0 var(--sw-r-sm) 0; }
.skip-link:focus { left:0; }
:focus-visible { outline:2px solid var(--sw-primary); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
