/* Public brand only. Unlayered on purpose: Safari 15.0 ignores @layer blocks.
   Dashboard selectors and Fizzy global tokens are never overridden here. */
@font-face {
  font-family: "Bricolage Grotesque";
  src: url("/assets/bricolage-latin-variable-d2455946.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  unicode-range: U+0020-024F, U+1E00-1EFF, U+2000-206F, U+20A0-20CF, U+2190-21FF, U+2212;
}

:where(.editorial, .ab-guest, .ab-preview) {
  --ab-font: "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ab-paper: #F8F5ED;
  --ab-surface: #FFFCF6;
  --ab-surface-muted: #EFEAE0;
  --ab-ink: #24211E;
  --ab-muted: #686158;
  --ab-rule: #D6CFC3;
  --ab-control: #82786B;
  --ab-accent: #F38D49;
  --ab-accent-hover: #E67C36;
  --ab-accent-ink: #24211E;
  --ab-accent-soft: #FCE8D5;
  --ab-link: #934512;
  --ab-positive: #286143;
  --ab-positive-soft: #E8F0E7;
  --ab-negative: #A3342C;
  --ab-negative-soft: #FBE9E4;
  --ab-focus: #934512;
  --ab-radius-card: 8px;
  --ab-radius-control: 4px;
  color-scheme: light;
  background: var(--ab-paper);
  color: var(--ab-ink);
  font-family: var(--ab-font);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Light is the default; dark only by explicit choice (footer toggle sets html[data-theme]). */
html[data-theme="dark"] :where(.editorial, .ab-guest, .ab-preview),
:where(.editorial, .ab-guest, .ab-preview)[data-theme="dark"] {
  --ab-paper: #211E1B;
  --ab-surface: #2B2723;
  --ab-surface-muted: #36302A;
  --ab-ink: #F8F5ED;
  --ab-muted: #C1B6A8;
  --ab-rule: #554B40;
  --ab-control: #9E8E7B;
  --ab-accent: #F38D49;
  --ab-accent-hover: #FFB877;
  --ab-accent-soft: #493221;
  --ab-link: #FFB877;
  --ab-positive: #9DD1AF;
  --ab-positive-soft: #243B2D;
  --ab-negative: #FFB4A5;
  --ab-negative-soft: #492B26;
  --ab-focus: #FFB877;
  color-scheme: dark;
}

:where(.editorial, .ab-guest, .ab-preview) *,
:where(.editorial, .ab-guest, .ab-preview) *::before,
:where(.editorial, .ab-guest, .ab-preview) *::after { box-sizing: border-box; }
:where(.editorial, .ab-guest, .ab-preview) :where(button, input, textarea, select) { font: inherit; }
:where(.editorial, .ab-guest, .ab-preview) :where(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid var(--ab-focus);
  outline-offset: 4px;
}
/* :focus remains available in Safari 15.0, which lacks :focus-visible. */
@supports not selector(:focus-visible) {
  :where(.editorial, .ab-guest, .ab-preview) :focus { outline: 3px solid var(--ab-focus); outline-offset: 4px; }
}
:where(.editorial, .ab-guest, .ab-preview) :where(button, a) { touch-action: manipulation; }
:where(.editorial, .ab-guest, .ab-preview) [hidden] { display: none !important; }
.ab-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* The public layouts load only their own styles; no dashboard reset required. */
body.editorial, body.ab-guest { margin: 0; min-height: 100vh; -webkit-text-size-adjust: 100%; }
:where(.editorial, .ab-guest) :where(h1, h2, h3, h4, p, figure, dl, dd) { margin: 0; }
:where(.editorial, .ab-guest) :where(img, svg) { max-width: 100%; }
:where(.editorial, .ab-guest) :where(h1, h2, h3, h4, p) { overflow-wrap: break-word; }
:where(.editorial, .ab-guest) .txt-small { font-size: 13px; }
:where(.editorial, .ab-guest) .txt-subtle { color: var(--ab-muted); }
:where(.editorial, .ab-guest) .field_with_errors { display: contents; }
:where(.editorial, .ab-guest) > nav[aria-label="Rechtliches"] { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 24px 16px; border-top: 1px solid var(--ab-rule); font-size: 13px; }
:where(.editorial, .ab-guest) > nav[aria-label="Rechtliches"] a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ab-muted); }
.ab-guest > nav[aria-label="Rechtliches"] { padding-bottom: 120px; }
.ab-guest .flash { position: relative; margin: 16px auto; padding: 16px; max-width: 720px; background: var(--ab-accent-soft); color: var(--ab-ink); }

.editorial .margin-block-start { margin-top: 16px; }
.editorial .margin-block-start-half { margin-top: 8px; }
.editorial .margin-block-start-double { margin-top: 32px; }
.editorial .txt-large { font-size: 22px; }
.editorial .txt-medium { font-size: 16px; }
.editorial .font-weight-semibold { font-weight: 600; }
.editorial .txt-align-start { text-align: left; }
.editorial .ed-section__inner--narrow { margin-inline: auto; }
.editorial .txt-align-start a { color: var(--ab-link); }

/* Footer theme toggle (public register). Mirrors .theme-toggle in app.css. */
:where(.editorial, .ab-guest) .theme-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border: 1px solid var(--ab-control); border-radius: 4px; background: transparent; color: var(--ab-muted); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
:where(.editorial, .ab-guest) .theme-toggle__icon { width: 14px; height: 14px; border-radius: 50%; border: 1px solid currentColor; background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
:where(.editorial, .ab-guest) .theme-toggle[aria-pressed="true"] { background: var(--ab-surface-muted); color: var(--ab-ink); }
.editorial .ed-footer .theme-toggle { color: inherit; border-color: currentColor; }
