/*
 * File: wp-content/themes/fanclub-base/onepage/style.css
 * Borussia Ratisbona – Onepage Fundament
 * Dieses File definiert ALLE Variablen, den Reset und die Basis-Typoskala.
 * Kein Sektion-spezifisches CSS hier – das gehört in die jeweilige section-CSS.
 */

/* ─── FONTS: self-hosted, siehe assets/fonts/fonts.css ─────────────────────── */

/* ─── CSS VARIABLEN ───────────────────────────────────────────────────────── */
:root {
    /* Primärfarben */
    --fc-accent:        #FFD900;   /* BVB-Gelb – Default */
    --fc-accent-hover:  #FFE033;   /* Hover-State */
    --fc-bg:            #000000;   /* Seiten-BG */
    --fc-surface:       #0d0d0d;   /* Karten-BG / Sidebar-BG */
    --fc-surface-2:     #1a1a1a;   /* Sekundäre Fläche */
    --fc-border:        #2a2a2a;   /* Trennlinien */

    /* Text */
    --fc-text:          #ffffff;   /* Primärer Text */
    --fc-text-muted:    #A5A5A5;   /* Sekundärer Text */
    --fc-text-dim:      #595959;   /* Gedämpfter Text */

    /* Fonts */
    --fc-font-display:  'Barlow Condensed', sans-serif;
    --fc-font-emotion:  'Sedgwick Ave Display', sans-serif;

    /* Sidebar */
    --fc-sidebar-w:     500px;     /* Breite der aufgeklappten Sidebar */

    /* Typoskala – Display */
    --fc-size-xl:    clamp(16vw, 22vw, 28vw);    /* Counter-Zahl */
    --fc-size-l:     clamp(4rem, 12vw, 10rem);    /* Hero Headline */
    --fc-size-m:     clamp(2.5rem, 6vw, 5.5rem);  /* Section-Titel */
    --fc-size-s:     clamp(1.8rem, 3.5vw, 3rem);  /* Sub-Headlines, Statements */
    --fc-size-xs:    clamp(1.2rem, 2vw, 1.8rem);  /* Sedgwick-Einwürfe */

    /* Typoskala – Interface */
    --fc-size-body:       clamp(1rem, 1.3vw, 1.15rem);
    --fc-size-label:      clamp(0.7rem, 1vw, 0.85rem);
    --fc-size-nav:        clamp(0.65rem, 0.8vw, 0.75rem);   /* Meta: © Copy, Switch-Label */
    --fc-size-nav-title:  clamp(1.8rem, 3.5vw, 3rem);          /* Sidebar Nav-Link Titel */

    /* Abstände */
    --fc-section-pad-inline: clamp(3rem, 6vw, 8rem);
    --fc-section-pad-block:  clamp(4rem, 8vh, 7rem);

    /* Transitions */
    --fc-transition:         all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --fc-transition-slow:    all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    --fc-transition-spring:  all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Neon-Modus: nur die Akzentfarbe ändert sich.
   Einheitlich mit base.css: Aktivierung via <html data-theme="neon">. */
[data-theme="neon"] {
    --fc-accent:        #D8FF00;
    --fc-accent-hover:  #e4ff33;
}

/* ─── RESET ───────────────────────────────────────────────────────────────── */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin:     0;
    padding:    0;
}

html {
    scroll-behavior:        smooth;
    font-size:              16px;
    -webkit-text-size-adjust: 100%;
    background-color:       var(--fc-bg); /* Fallback-Schwarz */
}

body {
    position:               relative;     /* Containing-Block für ::after */
    background-color:       transparent;
    color:                  var(--fc-text);
    font-family:            var(--fc-font-display);
    font-weight:            400;
    line-height:            1.5;
    overflow-x:             hidden;
    -webkit-font-smoothing: antialiased;
    padding-top:            0; /* base.css setzt padding-top: 72px für klassischen Header – auf Onepage nicht nötig */
}

/* Hintergrundbild als eigene Ebene – opacity/filter betreffen nur das Bild */
body::after {
    content:            '';
    position:           absolute;
    inset:              0;
    z-index:            -1;
    pointer-events:     none;
    background-image:   url('../assets/img/bg-urban.jpg');
    background-repeat:  repeat;
    background-size:    800px auto;
    opacity:            .70;
    filter:             contrast(103%);
}

img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul, ol { list-style: none; }

/* ─── GRAIN-TEXTUR (global, subtil) ──────────────────────────────────────── */
body::before {
    content:          '';
    position:         fixed;
    inset:            0;
    z-index:          0;
    pointer-events:   none;
    opacity:          0.035;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23noise)'/%3E%3C/svg%3E");
    background-size:  300px 300px;
}

/* ─── HAUPT-CONTENT: MARGIN-LEFT FOLGT SIDEBAR ───────────────────────────── */
#fc-main {
    margin-left: var(--fc-sidebar-w);
    transition:  margin-left 0.5s cubic-bezier(0.76, 0, 0.24, 1);
}
body.sidebar-collapsed #fc-main {
    margin-left: 0;
}

/* ─── LAYOUT-HELFER ───────────────────────────────────────────────────────── */
.fc-section {
    position:        relative;
    z-index:         1;
    min-height:      100vh;
    padding-inline:  var(--fc-section-pad-inline);
    padding-block:   var(--fc-section-pad-block);
    display:         flex;
    flex-direction:  column;
    justify-content: center;
}

/* ─── TYPOGRAFIE-KLASSEN ──────────────────────────────────────────────────── */
.fc-display-xl {
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-xl);
    font-weight:    900;
    font-style:     italic;
    text-transform: uppercase;
    line-height:    0.9;
    letter-spacing: -0.02em;
    color:          var(--fc-accent);
}

.fc-display-l {
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-l);
    font-weight:    900;
    font-style:     italic;
    text-transform: uppercase;
    line-height:    0.92;
    letter-spacing: -0.02em;
    color:          var(--fc-text);
}

.fc-display-m {
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-m);
    font-weight:    900;
    font-style:     italic;
    text-transform: uppercase;
    line-height:    0.95;
    letter-spacing: -0.01em;
    color:          var(--fc-text);
}

.fc-display-s {
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-s);
    font-weight:    900;
    font-style:     italic;
    text-transform: uppercase;
    line-height:    1;
    color:          var(--fc-text);
}

.fc-emotion {
    font-family: var(--fc-font-emotion);
    font-size:   var(--fc-size-xs);
    font-weight: 400;
    color:       var(--fc-accent);
    line-height: 1.2;
}

.fc-body {
    font-family: var(--fc-font-display);
    font-size:   var(--fc-size-body);
    font-weight: 400;
    color:       var(--fc-text-muted);
    line-height: 1.7;
    max-width:   52ch;
}

.fc-label {
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-label);
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color:          var(--fc-accent);
}

/* ─── UTILITY ─────────────────────────────────────────────────────────────── */
.fc-accent     { color: var(--fc-accent); }
.fc-text-muted { color: var(--fc-text-muted); }
.fc-text-dim   { color: var(--fc-text-dim); }

/* Scroll-Animations Basis */
.fc-reveal {
    opacity:    0;
    transform:  translateY(40px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.fc-reveal.is-visible {
    opacity:   1;
    transform: translateY(0);
}
.fc-reveal-left {
    opacity:    0;
    transform:  translateX(-60px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.fc-reveal-left.is-visible {
    opacity:   1;
    transform: translateX(0);
}
.fc-reveal-right {
    opacity:    0;
    transform:  translateX(60px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.fc-reveal-right.is-visible {
    opacity:   1;
    transform: translateX(0);
}

/* Stagger-Delays für Kindelemente */
.fc-stagger > *:nth-child(1) { transition-delay: 0ms; }
.fc-stagger > *:nth-child(2) { transition-delay: 150ms; }
.fc-stagger > *:nth-child(3) { transition-delay: 300ms; }
.fc-stagger > *:nth-child(4) { transition-delay: 450ms; }
.fc-stagger > *:nth-child(5) { transition-delay: 600ms; }
.fc-stagger > *:nth-child(6) { transition-delay: 750ms; }

/* ─── CTA BUTTON ──────────────────────────────────────────────────────────── */
.fc-btn {
    display:        inline-block;
    font-family:    var(--fc-font-display);
    font-size:      var(--fc-size-body);
    font-weight:    700;
    font-style:     italic;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color:          #000;
    background:     var(--fc-accent);
    padding:        16px 48px;
    border-radius:  0;
    position:       relative;
    overflow:       hidden;
    transition:     color 0.3s ease;
}
.fc-btn::before {
    content:    '';
    position:   absolute;
    inset:      0;
    background: #000;
    transform:  translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    z-index:    0;
}
.fc-btn:hover         { color: var(--fc-accent); }
.fc-btn:hover::before { transform: translateX(0); }
.fc-btn span          { position: relative; z-index: 1; }

/* ─── MOBILE & TABLET ─────────────────────────────────────────────────────── */
/* ≤1024px: Sidebar wird Overlay (Burger in nav.php/nav.js) – Content volle Breite */
@media (max-width: 1024px) {
    :root {
        --fc-sidebar-w: 0px;
    }
    #fc-main {
        margin-left: 0 !important;
        padding-top: 56px; /* Höhe der fixen Nav-Leiste (nav.php .fc-mobile-bar) */
    }
    body.sidebar-collapsed #fc-main {
        margin-left: 0 !important;
    }
    /* Mit Info-Ticker: Ticker (55px) + Nav-Leiste (56px) */
    #info-ticker ~ #fc-main {
        padding-top: 111px;
    }
}

/* ≤768px: kompakte Abstände */
@media (max-width: 768px) {
    :root {
        --fc-section-pad-inline:  clamp(1.5rem, 6vw, 3rem);
        --fc-section-pad-block:   clamp(3rem, 6vh, 4.5rem);
    }
    /* Ticker ist mobil nur 44px hoch: 44px + 56px Nav-Leiste */
    #info-ticker ~ #fc-main {
        padding-top: 100px;
    }
}

