/* PL-FOTO — Reset
   Modernes Reset, logische Properties, Reduced-Motion-Pfad.
   Reihenfolge: reset.css → tokens.css → glass.css → components.css → pages.css */

*, *::before, *::after { box-sizing: border-box; }

/* Margins nur dort, wo wir sie selbst setzen */
html, body, h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol {
  margin: 0;
  padding: 0;
}

ul[role="list"], ol[role="list"] { list-style: none; }

html {
  -webkit-text-size-adjust: 100%;   /* iOS: keine Auto-Vergrößerung im Querformat */
  scroll-behavior: smooth;
  scroll-padding-block-start: 6rem; /* Ankerziele nicht unter die Sticky-Nav */
}

body {
  min-block-size: 100svb;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Überschriften brauchen engere Zeilen und dürfen nicht hässlich umbrechen */
h1, h2, h3, h4 {
  line-height: 1.08;
  text-wrap: balance;
}
p, li, dd { text-wrap: pretty; }

/* Medien: nie breiter als der Container, nie Inline-Baseline-Lücke */
img, picture, video, canvas, svg {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

/* Formularelemente erben Typografie statt Systemschrift zu benutzen */
input, button, textarea, select {
  font: inherit;
  color: inherit;
}
textarea { resize: vertical; }
button { background: none; border: none; cursor: pointer; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }

/* Fokus: nie der Browser-Default, immer sichtbar (WCAG 2.4.7 / 2.4.11) */
:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
:focus:not(:focus-visible) { outline: none; }

/* Skip-Link — sichtbar erst bei Tastaturfokus */
.skip-link {
  position: absolute;
  inset-block-start: var(--space-3);
  inset-inline-start: var(--space-3);
  z-index: var(--z-skip);
  padding: var(--space-3) var(--space-6);
  background: var(--c-accent);
  color: var(--c-ink-on-accent);
  font-family: var(--font-heading);
  font-weight: var(--fw-heading);
  letter-spacing: .05em;
  text-transform: uppercase;
  text-decoration: none;
  transform: translateY(-200%);
  transition: transform 150ms cubic-bezier(.22,.61,.36,1);
}
.skip-link:focus-visible { transform: translateY(0); }

/* Nur für Screenreader */
.visually-hidden:not(:focus):not(:active) {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

::selection {
  background: var(--c-accent);
  color: var(--c-ink-on-accent);
}

/* Reduced Motion: Bewegung aus, Zustandswechsel bleiben erkennbar */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
