/*
 * Design-Tokens (Story layout-002).
 *
 * Werte abgeleitet aus dem :root der Referenzseite dev-wp.progiton.com
 * (wp-content/themes/progiton/assets/css/main.css + components/*.css),
 * nicht frei erfunden -- siehe STORY-layout-002-Protocoll.md, Abschnitt 2.
 */

:root {
  /* Farben: Akzent lime (primary) */
  --color-primary: #a3c93a;
  --color-primary-dark: #6f8f1d;
  --color-primary-soft: #eff6dc;
  --color-primary-glow: rgba(163, 201, 58, 0.12);

  /* Farben: Akzent violett (secondary) */
  --color-secondary: #55306f;
  --color-secondary-dark: #3e2054;
  --color-secondary-light: #b48ed6;

  /* Verlauf für Akzent-Text/-Buttons (lime -> violett) */
  --gradient-accent-text: linear-gradient(90deg, #ffffff 0%, #ffffff 25%, #b48ed6 50%, #a3c93a 75%, #6f8f1d 100%);
  --gradient-accent-button: linear-gradient(135deg, var(--color-primary), var(--color-secondary-light));

  /* Farben: Flächen & Text */
  --color-page: #f6f8f3;
  --color-surface: #ffffff;
  --color-surface-muted: #eff2ed;
  --color-dark: #111512;
  --color-text: #20231f;
  --color-text-muted: #657064;
  --color-text-inverse: #ffffff;
  --color-border: #dfe6d8;

  /* Radius */
  --radius-sm: 0.5rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --radius-pill: 999px;

  /* Schatten */
  --shadow-sm: 0 4px 14px rgba(17, 21, 18, 0.06);
  --shadow-md: 0 12px 30px rgba(17, 21, 18, 0.1);
  --shadow-lg: 0 24px 60px rgba(17, 21, 18, 0.14);

  /* Typografie: Schriftfamilien (Google Fonts, wie Referenz) */
  --font-family-base: "Inter", sans-serif;
  --font-family-heading: "Manrope", sans-serif;

  /* Typografie: Skala (fluid via clamp(), Werte an Referenz-Headlines angelehnt) */
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-md: clamp(1rem, 1.5vw, 1.125rem);
  --font-size-lg: clamp(1.25rem, 2.2vw, 1.75rem);
  --font-size-xl: clamp(1.4rem, 3vw, 2.1rem);
  --font-size-2xl: clamp(2rem, 4vw, 3.5rem);
  --font-size-3xl: clamp(2.75rem, 4.5vw, 3.25rem);
  --font-size-display: clamp(2.25rem, 5vw, 4rem);

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-black: 800;

  --line-height-tight: 1.1;
  --line-height-heading: 1.15;
  --line-height-body: 1.65;

  --letter-spacing-tight: -0.02em;
  --letter-spacing-eyebrow: 0.1em;

  /* Spacing */
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-section: clamp(4rem, 8vw, 8rem);

  /* Container */
  --container-width: 1280px;
  --container-padding: clamp(1rem, 4vw, 3rem);

  /* Bewegung */
  --duration-fast: 180ms;
  --duration-normal: 400ms;
  --duration-slow: 700ms;
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);

  /*
   * Breakpoints als Referenzwerte für Media-Queries (CSS erlaubt var() nicht
   * innerhalb von @media-Bedingungen -- beim Schreiben neuer Komponenten
   * diese Pixelwerte manuell in @media() übernehmen, siehe unten).
   * sm bestätigt aus Referenz-CSS (36rem), lg bestätigt (62rem/61.99875rem
   * als obere lg-Grenze); md/xl/xxl ergänzt nach gängiger 4/8-Basis-Skala.
   */
  --breakpoint-sm: 36rem;   /* 576px */
  --breakpoint-md: 48rem;   /* 768px */
  --breakpoint-lg: 62rem;   /* 992px */
  --breakpoint-xl: 75rem;   /* 1200px */
  --breakpoint-xxl: 87.5rem; /* 1400px */
}

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

/*
 * BUG_0002: sanftes Scrollen bei Anker-/Fragment-Navigation (z. B.
 * Header-Links "Leistungen"/"Branchen" auf der Startseite) --
 * Referenz (dev-wp.progiton.com, assets/scss/base/_global.scss)
 * setzt das ohne Ausnahme; hier zusaetzlich mit
 * prefers-reduced-motion-Rueckfall (Abweichung von der Referenz,
 * konsistent mit dem bestehenden Muster in
 * pg-gallery-scrollytelling.js).
 */
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  background: var(--color-page);
  color: var(--color-text);
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading);
}

a {
  color: var(--color-secondary);
  text-underline-offset: 0.2em;
}

/*
 * Wort-Akzent innerhalb von Überschriften/Text, direkt per
 * `<span class="pg-accent">…</span>` im Feldwert gesetzt (siehe
 * `_progiton_processed_inline_text()`/`_progiton_processed_text()`
 * in progiton.theme) -- analog zur Referenz
 * (dev-wp.progiton.com, z. B. "Alles, <span
 * class="pg-services__heading-accent">was</span> ein digitales
 * Projekt braucht.": dort component-eigene Klasse mit demselben
 * Farbwert, hier eine gemeinsame, wiederverwendbare Utility-Klasse
 * statt einer Klasse pro Komponente). Story layout-018/029.
 *
 * Nutzt `--component-accent`, falls die umgebende Komponente das
 * lokal definiert (helle Komponenten wie pg-services/pg-branches auf
 * `--color-primary-dark`, dunkle wie pg-hero/pg-gallery-scrollytelling
 * auf `--color-primary` -- exakt wie die Referenz
 * `.pg-component--light`/`--dark` unterscheidet, siehe Story
 * layout-029 Abschnitt 2.5). Ohne definierende Komponente Fallback
 * auf `--color-primary-dark` (bessere Lesbarkeit auf hellem
 * Standard-Seitenhintergrund).
 */
.pg-accent {
  color: var(--component-accent, var(--color-primary-dark));
}

:focus-visible {
  outline: 3px solid var(--color-primary);
  outline-offset: 3px;
}

/*
 * Entwicklungs-Hilfsmittel (siehe js/debug-labels.js): Drupals
 * Standard-Feld-Labels sind bei noch nicht komponentisierten Typen
 * (Rohdump-Look) standardmäßig ausgeblendet -- Rohwert bleibt sichtbar.
 * Wieder einblendbar über den URL-Parameter "labels" (z. B. ?labels=1).
 * Wirkt nur im Frontend-Theme, nicht im Admin-Bereich/in Formularen.
 */
body:not(.pg-labels-visible) .field__label {
  display: none;
}
