/* ============================================================
   DoPa Hebeanlagen Service — Design Tokens
   Single Source of Truth fuer die Astro-Website.
   Abgeleitet aus: Projektplanung/konzept/designsystem.md + brand-design/brand-design.md
   Stand: 2026-06-04
   ============================================================ */

:root {
  /* --- Farben: Blau-Familie (aus Logo, Hue ~205) --- */
  --color-primary:        #005EA2; /* CTA, Buttons, Links, Icons */
  --color-primary-logo:   #0068B3; /* Logo-/Referenzfarbe, Verlaeufe */
  --color-primary-icon:   #196EAB; /* Icon-Flaechen */
  --color-primary-dark:   #00497D; /* Hover, Verlaufsende */
  --color-blue-light:     #569BCD; /* dezente Akzente, Footer-Links */
  --color-blue-pale:      #E6F0F9; /* Hintergrundflaechen, Badges, Icon-Kreise */

  /* --- Farben: Navy / Text --- */
  --color-navy:           #121B2B; /* Header-Leiste, Footer, Logo negativ */
  --color-text:           #192437; /* Headlines, Fliesstext */
  --color-text-muted:     #666666; /* Unterzeilen, Beschreibungen */

  /* --- Akzente / Status (sparsam, signalhaft) --- */
  --color-notdienst:      #DC2626; /* Notdienst, Dringlichkeit */
  --color-warn:           #F59E0B; /* Warnung, Wartungspflicht, Versicherung */
  --color-warn-bg:        #FFF7ED; /* Hintergrund Versicherungs-Hinweis */
  --color-success:        #22C55E; /* Bestaetigungen */
  --color-error:          #EF4444; /* Fehlermeldungen, Pflichtfelder */

  /* --- Neutrale --- */
  --color-white:          #FFFFFF;
  --color-bg-alt:         #F5F5F5; /* Sektionswechsel, Karten-Hintergrund */
  --color-border:         #E0E0E0; /* Trennlinien, Kartenraender */

  /* --- Verlauf (Logo / Marken-Hero) --- */
  --gradient-brand:       linear-gradient(150deg, var(--color-primary-logo), var(--color-primary-dark));
  --gradient-navy:        linear-gradient(150deg, var(--color-navy), #0a1422);

  /* --- Typografie: Schriftfamilien --- */
  --font-serif:   "Marcellus", Georgia, "Times New Roman", serif;   /* Headlines H1-H3 */
  --font-display: "Cinzel", "Marcellus", serif;                      /* Versal-Akzente / Sektionslabels */
  --font-sans:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; /* Body, UI */

  /* --- Typografie: Schriftgroessen (Desktop) --- */
  --fs-h1: 48px;
  --fs-h2: 36px;
  --fs-h3: 24px;
  --fs-h4: 20px;
  --fs-body: 16px;
  --fs-small: 14px;

  /* --- Typografie: Schriftgroessen (Mobile, < 768px) --- */
  --fs-h1-mobile: 32px;
  --fs-h2-mobile: 28px;
  --fs-h3-mobile: 20px;
  --fs-h4-mobile: 18px;

  /* --- Typografie: Gewichte & Zeilenhoehen --- */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --lh-tight: 1.2;
  --lh-heading: 1.3;
  --lh-body: 1.7;

  /* --- Abstaende (Spacing-System) --- */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 48px;
  --space-2xl: 80px;

  /* --- Container --- */
  --container-max: 1200px;
  --container-tablet: 720px;
  --container-pad: 24px;
  --container-pad-mobile: 16px;

  /* --- Radius --- */
  --radius-sm: 4px;
  --radius-md: 8px;   /* Buttons, Inputs */
  --radius-lg: 12px;  /* Karten */
  --radius-pill: 999px;

  /* --- Schatten --- */
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-card-hover: 0 6px 18px rgba(0, 0, 0, 0.12);
  --shadow-subtle: 0 2px 8px rgba(0, 0, 0, 0.06);

  /* --- Motion (dezent: MOTION_INTENSITY 3) --- */
  --motion-fast: 150ms;
  --motion-base: 200ms;
  --motion-reveal: 600ms;
  --ease-standard: ease;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* "power2.out"-aehnlich */

  /* --- Layout-Hilfen --- */
  --header-height: 72px;
  --focus-ring: 2px solid var(--color-primary);
  --focus-offset: 2px;

  /* --- z-index --- */
  --z-header: 100;
  --z-overlay: 200;
  --z-modal: 300;
}

/* Mobile Typo-Overrides */
@media (max-width: 767px) {
  :root {
    --fs-h1: var(--fs-h1-mobile);
    --fs-h2: var(--fs-h2-mobile);
    --fs-h3: var(--fs-h3-mobile);
    --fs-h4: var(--fs-h4-mobile);
  }
}

/* Barrierefreiheit: Bewegung reduzieren (Pflicht) */
@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-fast: 0.01ms;
    --motion-base: 0.01ms;
    --motion-reveal: 0.01ms;
  }
}
