/**
 * @file        global.css
 * @location    /global.css
 * @description Globale Design-Tokens: Farben, Typografie, Abstände, Schatten, Radien.
 *              Einzige Quelle für alle CSS-Variablen im Projekt.
 *              Wird in layout.php VOR lyt-layout.css geladen.
 *
 *              VERWENDUNG:
 *                Alle anderen CSS-Dateien verwenden ausschließlich die
 *                hier definierten Variablen — keine Hex-Werte direkt.
 *
 *              SCHRIFTEN:
 *                Lato      — Standard · Navbar · Footer · Formulare · Karten
 *                (Nunito Sans — nur year3.php via year3-font.css überschrieben)
 *
 *              KONTRAST:
 *                Mindestkontrast 7:1 auf allen Text-/Hintergrundpaaren (WCAG 2.2 AAA).
 *                Vollständige Kombinationstabelle: siehe COLOR-GUIDE.md
 *
 * @version     1.0.0
 * @changelog
 *   1.0.0  2026-03-18  Erstversion. Konsolidiert lyt-layout.css :root,
 *                      ambl-section.css :root, abo.css :root, abos.css :root,
 *                      stat1.php inline, hero1.php inline.
 */

/* ════════════════════════════════════════════════════════════════════
   GOOGLE FONTS — Lato
   Gewichte: 300 (Light) · 400 (Regular) · 700 (Bold) · 900 (Black)
   Italic:   400i
   ════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,300;0,400;0,700;0,900;1,400&display=swap');


/* ════════════════════════════════════════════════════════════════════
   ROOT TOKENS
   ════════════════════════════════════════════════════════════════════ */
:root {

    /* ── FARBEN ─────────────────────────────────────────────────────
       10 Kernfarben + Helle Systemflächen + Rahmenfarbe.
       Vollständige Verwendungsregeln: COLOR-GUIDE.md
       ─────────────────────────────────────────────────────────────── */

    /* Primärfarben */
    --color-navy:        #07003D;   /* C1  — Navbar, Footer, Karten-BG     */
    --color-white:       #ffffff;   /* C2  — Karten, Modals, Formulare     */

    /* Akzent */
    --color-blue:        #07003D;   /* C3  — Buttons, Links, Fokus-Ring    */

    /* Hintergründe */
    --color-page:        #f5f6f8;   /* C4  — Seitenhintergrund (kein Weiß) */
    --color-surface:     #eef2f7;   /* surf — Sections, Alternativ-BG      */

    /* Texte */
    --color-ink:         #1e2d3d;   /* C5  — Fließtext, Überschriften      */
    --color-ink-soft:    #3a4c5a;   /* C6  — Sekundärtext, Labels          */

    /* Status */
    --color-success:     #145e33;   /* C7  — Erfolg, Online                */
    --color-error:       #962012;   /* C8  — Fehler, Kritisch              */
    --color-warning:     #724000;   /* C9  — Warnung, Pending              */

    /* Dekorativ */
    --color-ice:         #ddeaf5;   /* C10 — Tabellen-Zebra, Badges        */
    --color-border:      #d1dce8;   /* Rahmen, Trennlinien                 */

    /* Helle Statusflächen (NUR als Hintergrund — kein Text) */
    --color-blue-lt:     #e8f0fb;   /* Info-Alert, Soft-Button             */
    --color-success-lt:  #ecf7f0;   /* Erfolgs-Alert                       */
    --color-error-lt:    #fdf0ee;   /* Fehler-Alert, Fehlerfeld            */
    --color-warning-lt:  #fef6e8;   /* Warn-Alert                          */

    /* Sekundärer Hellton (auf Navy/Card-BG — ≥7:1) */
    --color-on-dark:     #c0d8ec;   /* Footer-Beschreibung, stat-delta     */


    /* ── TYPOGRAFIE ──────────────────────────────────────────────────
       Schriftfamilie: Lato (Google Fonts, via @import oben)
       Fallback:       sans-serif
       ─────────────────────────────────────────────────────────────── */
    --font-base:         'Lato', sans-serif;
    --font-mono:         'Consolas', 'Courier New', monospace;

    /* Schriftgrößen — fluid via clamp */
    --text-xs:           1rem;   /*  10.4px — Eyebrow, Badges          */
    --text-sm:           1.25rem;   /*  12px   — Kleintext, Hints         */
    --text-base:         1.12rem;  /*  14px   — Fließtext Standard       */
    --text-md:           1rem;      /*  16px   — Leicht erhöht            */
    --text-lg:           1.125rem;  /*  18px   — Kartenüberschriften      */
    --text-xl:           1.375rem;  /*  22px   — H3 / Abschnittstitel     */
    --text-2xl:          1.75rem;   /*  28px   — H2                       */
    --text-3xl:          clamp(1.8rem, 3.5vw, 2.5rem);   /* H1 Sektion   */
    --text-4xl:          clamp(2.2rem, 5vw,   3.5rem);   /* Hero H1      */

    /* Schriftgewichte */
    --weight-light:      300;
    --weight-normal:     400;
    --weight-bold:       700;
    --weight-black:      900;

    /* Zeilenhöhen */
    --leading-tight:     1.15;      /* Überschriften                      */
    --leading-snug:      1.4;       /* Kartentexte                        */
    --leading-normal:    1.6;       /* Standard Fließtext                 */
    --leading-relaxed:   1.75;      /* Lange Beschreibungen               */

    /* Buchstabenabstand */
    --tracking-tight:    -0.03em;   /* Große Überschriften                */
    --tracking-normal:    0;
    --tracking-wide:      0.06em;   /* Labels, Eyebrow                    */
    --tracking-wider:     0.12em;   /* Abschnittstitel uppercase          */
    --tracking-widest:    0.18em;   /* Badges uppercase                   */


    /* ── ABSTÄNDE ────────────────────────────────────────────────────
       4px-Raster
       ─────────────────────────────────────────────────────────────── */
    --space-1:   0.25rem;   /*  4px */
    --space-2:   0.5rem;    /*  8px */
    --space-3:   0.75rem;   /* 12px */
    --space-4:   1rem;      /* 16px */
    --space-5:   1.25rem;   /* 20px */
    --space-6:   1.5rem;    /* 24px */
    --space-8:   2rem;      /* 32px */
    --space-10:  2.5rem;    /* 40px */
    --space-12:  3rem;      /* 48px */
    --space-16:  4rem;      /* 64px */
    --space-20:  5rem;      /* 80px */

    /* Innen-Abstände für Standardkomponenten */
    --pad-card:        1.35rem 1.5rem;    /* Karten-Padding              */
    --pad-section:     3rem 0;            /* Sektions-Padding vertikal   */
    --pad-form-field:  0.68rem 0.9rem;    /* Input-Felder               */
    --pad-btn:         0.72rem 1.4rem;    /* Buttons Standard            */
    --pad-btn-sm:      0.42rem 0.9rem;    /* Buttons klein               */
    --pad-badge:       0.28rem 0.72rem;   /* Badges                      */

    /* Maximale Breite */
    --max-content:     1440px;
    --max-text:        680px;       /* Lesbare Spaltenbreite              */
    --max-form:        640px;       /* Formulare                          */


    /* ── RADIEN ──────────────────────────────────────────────────────*/
    --radius-xs:    4px;
    --radius-sm:    6px;
    --radius-md:    6px;
    --radius-lg:    6px;
    --radius-xl:    6px;
    --radius-2xl:   6px;
    --radius-pill:  6px;


    /* ── SCHATTEN ────────────────────────────────────────────────────
       Basieren auf --color-navy (Navy-getönte Schatten)
       ─────────────────────────────────────────────────────────────── */
    --shadow-xs:   0 1px 2px rgba(0, 51, 102, .06);
    --shadow-sm:   0 1px 3px rgba(0, 51, 102, .07),
                   0 2px 8px rgba(0, 51, 102, .05);
    --shadow-md:   0 2px 12px rgba(0, 51, 102, .09),
                   0 1px 4px  rgba(0, 51, 102, .05);
    --shadow-lg:   0 4px 20px rgba(0, 51, 102, .12),
                   0 2px 6px  rgba(0, 51, 102, .07);
    --shadow-xl:   0 12px 40px rgba(0, 51, 102, .15),
                   0 4px 12px rgba(0, 51, 102, .09);
    --shadow-focus:     0 0 0 3px rgba(24, 72, 160, .18);   /* Fokus-Ring Glow */
    --shadow-focus-err: 0 0 0 3px rgba(150, 32, 18, .14);  /* Fokus-Ring Fehler */


    /* ── ÜBERGÄNGE ───────────────────────────────────────────────────*/
    --transition-fast:   all .12s ease;
    --transition-base:   all .18s ease;
    --transition-slow:   all .28s ease;


    /* ── Z-INDEX-SCHICHTEN ───────────────────────────────────────────*/
    --z-base:      1;
    --z-dropdown:  100;
    --z-sticky:    200;
    --z-overlay:   300;
    --z-modal:     400;
    --z-toast:     500;
    --z-tooltip:   600;


    /* ── LAYOUT ──────────────────────────────────────────────────────*/
    --nav-height:       62px;
    --page-padding-x:   2.5rem;
    --page-padding-x-sm: 1.25rem;   /* < 600px */

}   /* :root end */


/* ════════════════════════════════════════════════════════════════════
   RESET & BASE
   Minimalreset — Bootstrap ist bereits geladen.
   ════════════════════════════════════════════════════════════════════ */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    font-family:    var(--font-base);
    font-size:      var(--text-base);
    font-weight:    var(--weight-normal);
    line-height:    var(--leading-normal);
    color:          var(--color-ink);         /* C5/C4 = 12.96:1 ✓ */
    background:     var(--color-page);        /* C4 — kein Weiß     */
    -webkit-font-smoothing:  antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin:         0;
    /* Sticky footer — footer always at bottom of viewport */
    display:        flex;
    flex-direction: column;
    min-height:     100vh;
}

#pg__main {
    flex: 1;
}


/* ════════════════════════════════════════════════════════════════════
   TYPOGRAFIE-HIERARCHIE
   ════════════════════════════════════════════════════════════════════ */

/* ── Überschriften ───────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
    font-family:    var(--font-base);
    font-weight:    var(--weight-black);
    line-height:    var(--leading-tight);
    letter-spacing: var(--tracking-tight);
    color:          var(--color-ink);         /* C5/C4 12.96:1 ✓ */
    margin: 0 0 var(--space-4);
}

h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); font-weight: var(--weight-bold); }
h4 { font-size: var(--text-xl);  font-weight: var(--weight-bold); letter-spacing: 0; }
h5 { font-size: var(--text-lg);  font-weight: var(--weight-bold); letter-spacing: 0; }
h6 { font-size: var(--text-md);  font-weight: var(--weight-bold); letter-spacing: 0; }

/* ── Fließtext ───────────────────────────────────────────────────── */
p {
    margin: 0 0 var(--space-4);
    max-width: var(--max-text);
    line-height: var(--leading-normal);
}

/* ── Links ───────────────────────────────────────────────────────── */
a {
    color:           var(--color-blue);       /* C3/C2 8.49:1 ✓ */
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
}
a:hover  { color: var(--color-navy); }        /* C1/C2 12.61:1 ✓ */
a span:hover  { color: var(--color-white); }        /* C1/C2 12.61:1 ✓ */
a:focus-visible {
    outline:        2px solid var(--color-blue);
    outline-offset: 2px;
    border-radius:  2px;
}

/* ── Small / Micro-Text ──────────────────────────────────────────── */
small {
    font-size:   var(--text-sm);
    color:       var(--color-ink-soft);       /* C6/C2 8.89:1 ✓ */
    line-height: var(--leading-snug);
}

/* ── Code / Mono ─────────────────────────────────────────────────── */
code, kbd, pre, samp {
    font-family: var(--font-mono);
    font-size:   0.875em;
}

/* ── Starke Betonung ─────────────────────────────────────────────── */
strong, b { font-weight: var(--weight-bold); }

/* ── Eyebrow / Kicker ────────────────────────────────────────────── */
.g-eyebrow {
    display:         block;
    font-size:       var(--text-xs);
    font-weight:     var(--weight-black);
    text-transform:  uppercase;
    letter-spacing:  var(--tracking-wider);
    color:           var(--color-blue);       /* C3/C4 7.85:1 ✓ */
    margin-bottom:   var(--space-2);
}

/* ── Abschnitt-Label ─────────────────────────────────────────────── */
.g-section-label {
    display:         flex;
    align-items:     center;
    gap:             var(--space-2);
    font-size:       var(--text-xs);
    font-weight:     var(--weight-black);
    text-transform:  uppercase;
    letter-spacing:  var(--tracking-widest);
    color:           var(--color-navy);       /* C1/C4 11.66:1 ✓ */
    padding-bottom:  var(--space-3);
    border-bottom:   2.5px solid var(--color-navy);
    margin-bottom:   var(--space-6);
}
.g-section-label::before {
    content:         '';
    width:           3px;
    height:          14px;
    background:      var(--color-blue);
    border-radius:   2px;
    flex-shrink:     0;
}


/* ════════════════════════════════════════════════════════════════════
   LAYOUT-HILFSKLASSEN
   ════════════════════════════════════════════════════════════════════ */

/* Zentrale Inhaltsbreite */
.g-container {
    max-width: var(--max-content);
    margin:    0 auto;
    padding:   0 var(--page-padding-x);
    width:     100%;
}

/* Section-Padding */
.g-section {
    padding: var(--pad-section);
}
.g-section--white   { background: var(--color-white);   }
.g-section--page    { background: var(--color-page);    }
.g-section--surface { background: var(--color-surface); }
.g-section--navy    { background: var(--color-navy);    }


/* ════════════════════════════════════════════════════════════════════
   FOKUS-STILE (Tastatur-Navigation)
   ════════════════════════════════════════════════════════════════════ */
:focus-visible {
    outline:        2.5px solid var(--color-blue);
    outline-offset: 3px;
    border-radius:  var(--radius-xs);
}

/* Fokus auf dunklem Hintergrund */
.g-on-dark :focus-visible {
    outline-color: var(--color-white);
}


/* ════════════════════════════════════════════════════════════════════
   BARRIEREFREIHEIT
   ════════════════════════════════════════════════════════════════════ */

/* Visuell versteckt aber für Screen-Reader sichtbar */
.g-sr-only {
    position:   absolute;
    width:      1px;
    height:     1px;
    padding:    0;
    margin:     -1px;
    overflow:   hidden;
    clip:       rect(0, 0, 0, 0);
    white-space: nowrap;
    border:     0;
}

/* Reduzierte Bewegung */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration:        0.01ms !important;
        animation-iteration-count: 1      !important;
        transition-duration:       0.01ms !important;
        scroll-behavior:           auto   !important;
    }
}


/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE BREAKPOINTS
   (Dokumentation — Bootstrap-Breakpoints bleiben primär)

   sm:  ≥ 576px
   md:  ≥ 768px
   lg:  ≥ 992px
   xl:  ≥ 1200px
   ════════════════════════════════════════════════════════════════════ */

@media (max-width: 600px) {
    :root {
        --page-padding-x: var(--page-padding-x-sm);
        --text-4xl:       clamp(1.8rem, 8vw, 2.4rem);
        --text-3xl:       clamp(1.5rem, 6vw, 2rem);
    }
    .g-container {
        padding: 0 var(--page-padding-x-sm);
    }
}


/* ════════════════════════════════════════════════════════════════════
   GLOBALE BUTTON-KLASSEN  (g-btn__)
   Verwendet von allen Sections — keine Duplikate nötig.
   ════════════════════════════════════════════════════════════════════ */
.g-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             var(--space-2);
    border:          none;
    border-radius:   var(--radius-md);
    cursor:          pointer;
    font-family:     var(--font-base);
    font-size:       var(--text-base);
    font-weight:     var(--weight-bold);
    padding:         var(--pad-btn);
    text-decoration: none;
    transition:      filter var(--transition-fast), transform var(--transition-fast);
    letter-spacing:  .01em;
    white-space:     nowrap;
}
.g-btn:hover  { filter: brightness(.92); transform: translateY(-1px); }
.g-btn:active { transform: none; }
.g-btn:focus-visible { outline: 2.5px solid currentColor; outline-offset: 3px; }

/* C1/C2 12.61:1 ✓ */
.g-btn--white   { background: var(--color-white);   color: var(--color-navy); }
/* C2/C3 8.49:1 ✓ */
.g-btn--primary { background: var(--color-blue);    color: var(--color-white); }
/* C2/C1 12.61:1 ✓ */
.g-btn--navy    { background: var(--color-navy);    color: var(--color-white); }
/* C2/C7 7.84:1 ✓ */
.g-btn--success { background: var(--color-success); color: var(--color-white); }
/* C2/C8 8.36:1 ✓ */
.g-btn--danger  { background: var(--color-error);   color: var(--color-white); }
/* C2/C9 8.58:1 ✓ */
.g-btn--warning { background: var(--color-warning); color: var(--color-white); }
/* C3/C3-lt 7.39:1 ✓ */
.g-btn--soft    { background: var(--color-blue-lt); color: var(--color-blue);
                  border: 1px solid rgba(24,72,160,.15); }
/* Auf dunklem Hintergrund */
.g-btn--ghost   { background: rgba(255,255,255,.1);  color: var(--color-white);
                  border: 1.5px solid rgba(255,255,255,.25); }
.g-btn--ghost:hover { background: rgba(255,255,255,.18); filter: none; }

.g-btn--sm { font-size: var(--text-sm); padding: var(--pad-btn-sm); border-radius: var(--radius-sm); }
