/**
 * Design System - CSS Variables
 * Juliana y Fadi Tango Website
 * 
 * Extrahiert aus privatstunden.php & shows-workshops.php
 * Basis für alle Seiten
 */

/* ============================================================
 * BREAKPOINTS (Referenz, keine echten CSS-Variablen!)
 * ============================================================
 * WICHTIG: @media-Bedingungen können KEINE var()-Werte nutzen
 * (Browser-Einschränkung: Media Queries werden vor der Auflösung
 * von CSS Custom Properties ausgewertet). Diese Liste ist daher
 * eine reine Dokumentations-Referenz für konsistente Zahlenwerte,
 * die von Hand in @media (max-width: ...) übernommen werden müssen -
 * kein technischer Zwang, sondern Konvention für dieses Projekt.
 *
 * Standardwerte (angelehnt an Bootstrap/Tailwind, ergänzt um den im
 * Projekt bereits organisch am häufigsten genutzten Zwischenwert):
 *
 *   480px  - Kleine Phones (unterste Stufe, z.B. iPhone SE)
 *   768px  - Tablets / große Phones (Haupt-Mobile-Schwelle)
 *   1024px - Tablet quer / kleiner Laptop
 *
 * Neue Komponenten sollen sich an diesen drei Werten orientieren,
 * statt neue, uneinheitliche Zwischenwerte einzuführen (siehe
 * Breakpoint-Bestandsaufnahme-Dokument für die Historie/Begründung).
 * Bewusste Ausnahmen (z.B. mehrstufige Grid-Kaskaden wie bei den
 * Preistabellen) bleiben möglich, sollten aber im Code kommentiert
 * und begründet werden.
 * ============================================================ */

:root {
    /* ==================== COLORS ==================== */
    
    /* Brand Colors */
    --color-primary: #ddbf5f;           /* Gold - Hauptfarbe */
    --color-primary-dark: #c9a843;      /* Dunkleres Gold */
    --color-primary-light: #f1db8c;     /* Helleres Gold */

    /* Icon Colors (Semantic) */
    --color-pin-red: #EA4335;           /* Standort-Pin-Icon (Google-Maps-Rot) */

    /* Neutrals - Grays */
    --color-black: #000000;
    --color-gray-900: #111111;          /* Sehr dunkel */
    --color-gray-800: #1a1a1a;
    --color-gray-750: #1e1e1e;
    --color-gray-700: #262626;
    --color-gray-600: #2a2a2a;
    --color-gray-500: #333333;
    --color-gray-400: #6d6d6d;
    --color-gray-300: #999999;
    --color-gray-200: #cccccc;
    --color-gray-100: #e0e0e0;
    --color-white: #ffffff;
    
    /* Special */
    --color-cream: #f7f5ef;             /* Heller Hintergrund */
    
    /* Text Colors (Semantic) */
    --color-text-primary: #ffffff;      /* Haupttext */
    --color-text-secondary: #e0e0e0;    /* Sekundärtext */
    --color-text-muted: #999999;        /* Gedämpfter Text */
    --color-text-accent: #ddbf5f;       /* Akzent-Text (Gold) */
    
    /* Background Colors (Semantic) */
    --color-bg-dark: #32373c;           /* Dunkler Hintergrund */
    --color-bg-card: #262626;           /* Card-Hintergrund */
    --color-bg-card-alt: #111111;       /* Alternative Card */
    
    
    /* ==================== TYPOGRAPHY ==================== */
    
    /* Font Families */
    --font-primary: 'DM Serif Display', serif;
    --font-secondary: 'Playfair Display', serif;
	
    
    /* Font Sizes */
    /* WICHTIG: Nur die Überschriften-Stufen (3xl-7xl) sind fluid (clamp()).
       Fließtext-Stufen (xs-2xl-alt) bleiben bewusst FEST - unter der
       base-Stufe (16px) würde Fluid-Skalierung die Lesbarkeit auf genau
       den Geräten verschlechtern, wo sie am wichtigsten ist (WCAG-
       Lesbarkeits-Richtwert ~16px). Das eigentliche Mobile-Problem waren
       ohnehin überdimensionierte Überschriften, nicht Fließtext.
       Alle 7 Formeln nutzen dieselben Referenzpunkte (320px/1200px
       Viewport, 75% Schrumpf bei 320px), damit die Größenverhältnisse
       zwischen den Stufen bei jeder Breite konsistent bleiben - nicht
       einzeln unterschiedlich kalibriert wie ein Erstversuch es nahelegen
       könnte. Desktop-Maxima unverändert identisch zu den bisherigen
       Fixwerten. */
    --font-size-xs: 0.75rem;            /* 12px */
    --font-size-sm: 0.875rem;           /* 14px */
    --font-size-base: 1rem;             /* 16px */
    --font-size-md: 1.05rem;            /* 16.8px */
    --font-size-lg: 1.1rem;             /* 17.6px */
    --font-size-lg-alt: 1.15rem;        /* 18.4px */
    --font-size-xl: 1.2rem;             /* 19.2px */
    --font-size-2xl: 1.3rem;            /* 20.8px */
    --font-size-2xl-alt: 1.4rem;        /* 22.4px - Pre-CTA-Aktion Suffix/Titel */
    --font-size-3xl: clamp(1.125rem, 0.68vw + 0.99rem, 1.5rem);
    --font-size-4xl: clamp(1.35rem, 0.82vw + 1.19rem, 1.8rem);
    --font-size-5xl: clamp(1.5rem, 0.91vw + 1.32rem, 2rem);
    --font-size-6xl: clamp(1.875rem, 1.14vw + 1.65rem, 2.5rem);
    --font-size-6xl-alt: clamp(2.25rem, 1.36vw + 1.98rem, 3rem);          /* dekorative Anführungszeichen-Glyphen (Testimonials) */
    --font-size-6xl-alt2: clamp(2.625rem, 1.59vw + 2.31rem, 3.5rem);     /* große Prozent-Zahl im Rabatt-Banner (.aktion-wide__pct) */
    --font-size-7xl: clamp(3rem, 1.82vw + 2.64rem, 4rem);
    
    /* Font Weights */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    
    /* Line Heights */
    --line-height-none: 1;
    --line-height-tight: 1.2;
    --line-height-snug: 1.4;
    --line-height-normal: 1.6;
    --line-height-relaxed: 1.8;
    
    /* Letter Spacing (aus aktuellem Design) */
    --letter-spacing-tight: 0.75px;
    --letter-spacing-normal: 1px;
    --letter-spacing-base: 1.65px;      /* Standard für Text */
    --letter-spacing-wide: 2px;         /* Für Subheadings */
    --letter-spacing-wider: 3px;        /* Für H2 */
    --letter-spacing-widest: 4px;       /* Für H1 */
    
    
    /* ==================== SPACING ==================== */
    
    /* Base Unit: 8px */
    --spacing-unit: 0.5rem;             /* 8px */
    
    --spacing-xs: 0.5rem;               /* 8px */
    --spacing-sm: 1rem;                 /* 16px */
    --spacing-md: 1.5rem;               /* 24px */
    --spacing-lg: 2rem;                 /* 32px */
    --spacing-lg-alt: 2.5rem;           /* 40px */
    --spacing-xl: 3rem;                 /* 48px */
    --spacing-2xl: 4rem;                /* 64px */
    --spacing-3xl: 5rem;                /* 80px */
    --spacing-4xl: 6rem;                /* 96px */
    
    
    /* ==================== LAYOUT ==================== */
    
    /* Container Widths */
    --container-max-width: 1200px;
    --container-padding: 2rem;
    
    /* Content Widths */
    --content-width-narrow: 800px;      /* Für Text-Content */
    --content-width-medium: 900px;
    --content-width-wide: 1000px;

    /* Component Widths */
    --event-card-width: 420px;          /* Einheitliche Breite aller Terminkarten (überall) */
    
    
    /* ==================== BORDERS ==================== */
    
    /* Border Widths */
    --border-width-thin: 1px;
    --border-width-medium: 1.5px;
    --border-width-thick: 2px;
    
    /* Border Radius */
    --border-radius-sm: 6px;
    --border-radius-md: 12px;
    --border-radius-lg: 16px;
    --border-radius-xl: 20px;
    --border-radius-full: 9999px;
    
    /* Border Colors (Semantic) */
    --border-color-default: #000000;
    --border-color-light: rgba(255, 255, 255, 0.1);
    --border-color-accent: #ddbf5f;
    
    
    /* ==================== SHADOWS ==================== */
    
    /* Box Shadows */
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.4);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    
    /* Glow Shadows (für Cards, Buttons) */
    --shadow-glow-white: 0px 0px 10px rgba(255, 255, 255, 0.3);
    --shadow-glow-white-strong: 0px 0px 30px rgba(255, 255, 255, 0.5);/*0px 10px 30px rgba(255, 255, 255, 0.5);*/
    --shadow-glow-white-hover: 0 0px 15px rgba(255, 255, 255, 0.5);
    --shadow-glow-gold: 0px 0px 10px rgba(221, 191, 95, 0.3);
    --shadow-glow-gold-strong: 0px 0px 30px rgba(221, 191, 95, 0.5);/*0px 10px 30px rgba(221, 191, 95, 0.5);*/
    
    /* Text Shadows */
    --text-shadow-sm: 1px 1px 4px rgba(0, 0, 0, 0.8);
    --text-shadow-md: 2px 2px 8px rgba(0, 0, 0, 0.8);

    /* Hero-Titel/-Unterschrift: gestaffelter Schlagschatten + goldenes
       Glühen. Basis-Variante entspricht dem ursprünglichen Wert; light/
       strong sind proportional skalierte Abwandlungen derselben Formsprache
       (7 Schlagschatten-Ebenen + 2 goldene Glüh-Ebenen in --color-primary). */
    --text-shadow-hero:
        1px 1px 2px rgba(0,0,0,1),
        2px 2px 4px rgba(0,0,0,0.9),
        3px 3px 6px rgba(0,0,0,0.8),
        4px 4px 8px rgba(0,0,0,0.7),
        5px 5px 10px rgba(0,0,0,0.6),
        6px 6px 12px rgba(0,0,0,0.5),
        8px 8px 16px rgba(0,0,0,0.4),
        0 0 25px rgba(221, 191, 95, 0.4),
        0 0 35px rgba(221, 191, 95, 0.2);

    --text-shadow-hero-light:
        1px 1px 2px rgba(0,0,0,0.8),
        2px 2px 3px rgba(0,0,0,0.7),
        3px 3px 5px rgba(0,0,0,0.6),
        3px 3px 6px rgba(0,0,0,0.5),
        4px 4px 7px rgba(0,0,0,0.4),
        4px 4px 8px rgba(0,0,0,0.35),
        5px 5px 10px rgba(0,0,0,0.3),
        0 0 18px rgba(221, 191, 95, 0.3),
        0 0 25px rgba(221, 191, 95, 0.15);

    --text-shadow-hero-strong:
        1px 1px 3px rgba(0,0,0,1),
        2px 2px 5px rgba(0,0,0,1),
        4px 4px 8px rgba(0,0,0,0.9),
        5px 5px 10px rgba(0,0,0,0.8),
        6px 6px 13px rgba(0,0,0,0.7),
        8px 8px 16px rgba(0,0,0,0.6),
        10px 10px 20px rgba(0,0,0,0.5),
        0 0 30px rgba(221, 191, 95, 0.5),
        0 0 45px rgba(221, 191, 95, 0.3);
    
    
    /* ==================== GRADIENTS ==================== */
    
    /* Background Gradients */
    --gradient-dark: linear-gradient(180deg, #262626 0%, #111111 100%);
    --gradient-highlight: linear-gradient(135deg, #1a1a1a 0%, #252525 100%);
    --gradient-hero: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
    --gradient-overlay: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.6));
    
    
    /* ==================== TRANSITIONS ==================== */
    
    /* Timing */
    --transition-fast: 200ms ease;
    --transition-base: 300ms ease;
    --transition-slow: 500ms ease;
    
    /* Easing Functions */
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    
    
    /* ==================== TRANSFORMS ==================== */
    
    --transform-lift: translateY(-2px);
    --transform-lift-md: translateY(-5px);
    --animate-slide-up-offset: translateY(30px);
    
    
    /* ==================== Z-INDEX ==================== */
    
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;
}
