/* ============================================================
   FOODCRAFT · a11y.css · Barrierefreiheit (BFSG / EN 301 549 / WCAG 2.1 AA)
   Paket v3 (02.11.2026). Wird NACH allen anderen Stylesheets geladen
   und ergänzt nur: kein Redesign, keine Farb- oder Layoutänderung.
   ============================================================ */

/* Nur für Screenreader sichtbar (z. B. "öffnet in neuem Tab") */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

/* 2.4.7 / 2.4.11: Fokussierte Elemente verschwinden weder unter dem fixierten Header
   noch unter der Schnellkontakt-Leiste am unteren Rand (mobil). */
html {
  scroll-padding-top: calc(var(--header-h, 89px) + 16px);
  scroll-padding-bottom: 88px;
}

/* 1.4.4 / BFSGV § 12 Nr. 2 f: keine Fließ- oder Beschriftungstexte unter 12 px
   (!important, weil Seiten- und Mobil-Regeln teils spezifischer sind und 10-11 px setzen) */
.ref-type, .ref-typography .ref-type, .lp-eyebrow, .bar-concept .lp-eyebrow, .winter-eyebrow, .loc-eyebrow,
.ref-eyebrow, .agency-project-meta, .stencil, .credit, .anlass .chip, .bar-menu a span,
.ref-filter span, .badge small, .hero-duo .cap { font-size: 12px !important; }
.ref-type, .lp-eyebrow, .winter-eyebrow { letter-spacing: .1em; }


/* 1.4.3 / 1.4.11: Der Marken-Punkt hinter Überschriften (#65A500) hat nur 2,3 bis 2,7 : 1.
   Auf hellem Grund etwas dunkleres Grün (3,6 : 1 und mehr), auf dunklem Grund das helle Grün
   der Seite (5,5 : 1). Farbton und Wirkung bleiben, nur die Helligkeit ändert sich. */
:is(h1, h2, h3, p) > :is(.dot, .lp-dot, .drinks-dot, .ref-dot, [style*="fc-craft-gold"]) { color: #4B8200 !important; }
:is(.sec-deep, .sec-stage, .module-full, .lp-dark, .lp-callout, .drinks, .cta, .winter-hero, .winter-teaser)
  :is(h1, h2, h3, p) > :is(.dot, .lp-dot, .drinks-dot, .ref-dot, [style*="fc-craft-gold"]) { color: var(--accent-on-dark) !important; }

/* 1.4.3: Ziffern auf den Anlass-Kacheln liegen auf Fotos; heller und mit Mindestkontrast */
.anlass .a-num { color: #E3EFCB; }

/* 2.5.8 (WCAG 2.2, Zielgröße): Inhaltsverzeichnis der AGB und Rechtstexte */
.legal li > a { display: inline-block; padding-block: 3px; min-height: 24px; }

/* 1.4.10 Reflow bei 320 px: Beleg-Band auf Location finden / Defense-Catering */
.proof-item { min-width: 0; }
.proof-item .logos img { max-width: 100%; height: auto; max-height: 34px; }
@media (max-width: 480px) {
  .proof .proof-grid { grid-template-columns: 1fr; }
  .proof .proof-grid .proof-item:nth-child(n) { border-left: 0; padding-left: 0; padding-right: 0; }
  .proof .proof-grid .proof-item:nth-child(n+2) { border-top: 1px solid var(--hairline); }
  .proof-item a, .proof-item span, .proof-item b { overflow-wrap: anywhere; }
}

/* 2.3.3 / 2.2.2: wer reduzierte Bewegung wünscht, bekommt keine Animation und keinen Bildwechsel */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* 1.4.11: Fokusrahmen bei Hochkontrast-Modus (Windows) erhalten */
@media (forced-colors: active) {
  :focus-visible { outline: 3px solid CanvasText; outline-offset: 2px; }
}

/* Erklärung zur Barrierefreiheit */
.legal .a11y-meta { font-size: 14px; color: var(--fg-on-breath-muted); }
.legal dl.a11y-contact { margin: 12px 0 0; }
.legal dl.a11y-contact dt { font-weight: 600; margin-top: 12px; }
.legal dl.a11y-contact dd { margin: 2px 0 0; }
