/* Inter — SELF-HOSTED (no Google Fonts request → DSGVO/nDSG-konform, kein
   Datenabfluss an fonts.gstatic.com). Inter v20 ist ein Variable Font: EINE
   latin-Datei deckt die Gewichte 300–700 ab, latin-ext liefert osteuropäische
   Glyphen (Ländernamen der Weltkarte via Intl.DisplayNames). Dateien liegen unter
   assets/fonts/. font-display: swap = sofortiger Fallback-Text, kein FOIT. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../assets/fonts/inter-latin-variable.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url('../assets/fonts/inter-latin-ext-variable.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    /* Colors */
    --color-primary: #143977; /* Deep Industrial Blue */
    --color-primary-hover: #0f2c5d;
    --color-primary-subtle: rgba(20, 57, 119, 0.16); /* Light tint for map base fill */
    --color-primary-card-hover: rgba(20, 57, 119, 0.08); /* Card hover background tint */
    --color-background: #FFFFFF;
    --color-surface: #F8F9FA;
    --color-surface-alt: #E9ECEF;
    --color-text-main: #111111; /* Sharp black-ish for headings */
    --color-text-grey: #6b6b6b; /* Text Grey — darkened from #777 for WCAG AA (4.5:1 on #f5f5f5 footer/surface) */
    --color-text-light: #FFFFFF;
    --color-border: #E0E0E0;
    --color-footer-bg: #f5f5f5;
    --color-accent-cyan: #2EC4FF; /* Elektro-Cyan — system.html page accent, used sparingly */
    --color-navy-deep: #0a1c3d; /* Deep navy used for the shaded corners */
    --gradient-navy: linear-gradient(135deg,
        var(--color-navy-deep) 0%,
        var(--color-primary) 55%,
        var(--color-navy-deep) 100%); /* "Blue with shades" — large blue areas only, never logos/buttons */

    /* Typography */
    --font-family-base: 'Inter', sans-serif;
    --font-size-base: 16px;
    --font-size-h1: clamp(3rem, 5vw, 4.5rem);
    --font-size-h2: clamp(2rem, 3vw, 3rem);
    --font-size-h3: 1.5rem;
    --font-size-small: 0.875rem;

    /* Spacing & Grid (8pt system base) */
    --spacing-xs: 8px;
    --spacing-sm: 16px;
    --spacing-md: 24px;
    --spacing-lg: 48px;
    --spacing-xl: 80px;
    --spacing-xxl: 120px;

    /* Layout */
    --container-width: 1440px;
    --container-padding: 5%;

    /* Borders & Shadows (Swiss Edge = No Radius) */
    --radius-none: 0;
    --shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 12px 24px rgba(0, 0, 0, 0.08); /* Lift shadow */
    --shadow-lg: 0 24px 48px rgba(0, 0, 0, 0.12);
    
    /* Transitions */
    --transition-fast: 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-base: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-slow: 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Reset Elements */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-family-base);
    color: var(--color-text-grey);
    background-color: var(--color-background);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--color-text-main);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.02em; /* Tighter letter spacing for technical feel */
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

ol, ul {
    list-style: none;
}

/* Base Layout Classes */
.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.section {
    padding: var(--spacing-xxl) 0;
}

.relative {
    position: relative;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    font-size: var(--font-size-base);
    font-weight: 500;
    letter-spacing: 0.02em;
    border-radius: var(--radius-none); /* Strict sharp edges */
    transition: all var(--transition-base);
    cursor: pointer;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.btn-primary {
    background-color: var(--color-primary);
    color: var(--color-text-light);
}

.btn-primary:hover {
    background-color: var(--color-primary-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

.btn-outline {
    background-color: transparent;
    color: var(--color-text-light);
    border-color: var(--color-text-light);
}

.btn-outline:hover {
    background-color: var(--color-text-light);
    color: var(--color-text-main);
}

/* Animation Utilities (Intersection Observer Targets) */
.fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity var(--transition-slow), transform var(--transition-slow);
}

.fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Eyebrow Label (shared base for section eyebrows) */
.eyebrow {
    font-size: var(--font-size-small);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* Verhindert Umbrueche in Produktnamen (Browser brechen nach dem Bindestrich) */
.nowrap {
    white-space: nowrap;
}

/* Card Sweep Hover (shared diagonal shine animation) */
.card-sweep {
    position: relative;
    overflow: hidden;
}

.card-sweep::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 70%;
    height: 100%;
    background: linear-gradient(90deg,
            transparent 0%,
            var(--color-primary-card-hover) 50%,
            transparent 100%);
    transform: skewX(-15deg);
    pointer-events: none;
}

.card-sweep:hover {
    background-color: var(--color-primary-card-hover);
    border-color: var(--color-primary);
}

.card-sweep:hover::after {
    left: 160%;
    transition: left 0.6s ease-in-out;
}

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
