/* quattramed - gemeinsame Tokens fuer alle drei Varianten
 * Ankerfarbe aus dem Firmenlogo gemessen: Pyramide #a95d11 / #cf7d1e / #e79a44
 * Neutraltoene warm getoent (Hue ~65), damit nichts kalt gegen das Orange steht.
 */
:root {
  --color-paper:          oklch(97.5% 0.006 75);
  --color-paper-2:        oklch(95%   0.008 72);
  --color-paper-3:        oklch(92%   0.009 70);
  --color-rule:           oklch(87%   0.008 70);
  --color-rule-strong:    oklch(76%   0.010 68);
  --color-muted:          oklch(48%   0.011 68);
  --color-ink:            oklch(22%   0.010 70);
  --color-ink-deep:       oklch(15%   0.011 72);
  --color-ink-inverse:    oklch(95%   0.006 75);
  --color-muted-inverse:  oklch(72%   0.009 72);
  --color-rule-inverse:   oklch(33%   0.010 70);
  --color-placeholder-inv:oklch(58%   0.009 72);

  /* Ein Akzent, aus dem Logo. Sonst nichts. */
  --color-accent:         oklch(68%   0.135 62);
  --color-accent-deep:    oklch(52%   0.125 55);
  --color-accent-light:   oklch(78%   0.115 68);
  --color-accent-ink:     oklch(99%   0.004 75);
  --color-focus:          oklch(52%   0.125 55);

  --font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, monospace;

  --text-xs:      0.75rem;
  --text-sm:      0.875rem;
  --text-base:    1rem;
  --text-md:      1.1875rem;
  --text-lg:      1.5rem;
  --text-xl:      1.9375rem;
  --text-2xl:     2.4375rem;
  --text-3xl:     3.0625rem;
  --text-display:   clamp(2.5rem, 7.2vw + 0.4rem, 6rem);
  --text-display-s: clamp(2rem, 4.6vw + 0.5rem, 3.5rem);

  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2.5rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;
  --space-4xl: 9rem;
  --page-gutter: clamp(1.25rem, 5vw, 4.5rem);

  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --dur-micro: 120ms;
  --dur-short: 220ms;
  --dur-long:  420ms;

  --rule-hair: 1px;
  --rule-bold: 2px;
  --z-base: 1;
  --z-sticky: 200;
  --z-modal: 400;
}

/* ---- Grundlagen, in allen drei Varianten gleich ---- */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--color-paper);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-style: normal;
  letter-spacing: -0.025em;
  overflow-wrap: anywhere;
  min-width: 0;
  margin: 0;
}
p { margin: 0; }
a { color: inherit; }
:focus-visible { outline: var(--rule-bold) solid var(--color-focus); outline-offset: 3px; }

.wrap { max-width: 78rem; margin-inline: auto; padding-inline: var(--page-gutter); }
.skip { position: absolute; left: -9999px; }
.skip:focus {
  left: var(--page-gutter); top: var(--space-md); z-index: var(--z-sticky);
  background: var(--color-accent-deep); color: var(--color-accent-ink);
  padding: var(--space-sm) var(--space-md);
}

/* ---- Wort-Bild-Marke: Pyramide als Vektor, Wortmarke als Schrift ---- */
.marke { display: inline-flex; align-items: center; gap: 0.42em; text-decoration: none; white-space: nowrap; }
.marke svg { height: 1.55em; width: auto; flex: none; }
.marke__wort {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--text-md);
  letter-spacing: -0.035em;
}

/* ---- Demo-Band: macht unmissverstaendlich, dass das ein Entwurf ist ---- */
.demo {
  background: var(--color-ink);
  color: var(--color-ink-inverse);
  font-size: var(--text-sm);
  padding-block: var(--space-xs);
}
.demo .wrap { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); align-items: center; }
.demo b { color: var(--color-accent-light); font-weight: 600; }
.demo a { color: inherit; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 150ms !important; transition-duration: 150ms !important; }
}
