/* -------------------------------------------------------
   BeatXMaster – Global Styles (Full, stable)
   ----------------------------------------------------- */

/* Webfont */
@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;600;700&display=swap');

/* ===== Theme Tokens ===== */
:root{
  --ink:#e9e9e9;
  --muted:#b7b7b7;
  --gold:#f3d870;
  --gold2:#e8c45c;
  --max:1200px;

  --chip-bg: rgba(18,18,18,.45);
  --chip-bd: rgba(255,255,255,0.14);
  --chip-bg-hover: rgba(255,255,255,0.10);

  --glass-bg: rgba(20,20,20,0.28);
  --glass-bd: rgba(255,255,255,0.14);

  --glow: 0 0 8px rgba(243,216,112,0.30);

  --nav-h: 40px;     /* Höhe Logo/Buttons Desktop */
  --nav-h-sm: 36px;  /* Höhe Logo/Buttons Mobile */

  --fs-base: 16px;   /* Basis-Textgröße Desktop */
  --fs-mobile: 15px; /* Basis-Textgröße Mobile */
}

/* ===== Reset & Base ===== */
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; height:100%; }
img{ max-width:100%; height:auto; display:block; }
a,a:visited{ color:inherit; text-decoration:none; }

html{ background:#000; }
body{
  color:var(--ink);
  font-family:'Raleway', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-size:var(--fs-base);
  line-height:1.55;
  min-height:100dvh;
  overflow-x:hidden;
}

/* ===== Hintergrund (robust, ohne extra #bg) ===== */
/* Bilder in denselben Ordner wie die CSS legen: 'hintergrund.png' & 'BXMHintergrund_mobile.png' */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0;
  background: url('hintergrund.png') center/cover no-repeat #000;
}
@media (max-width:768px){
  body{ font-size:var(--fs-mobile); }
  body::before{ background-image:url('BXMHintergrund_mobile.png'); }
}

/* Container */
.wrap{ max-width:var(--max); margin:0 auto; padding:0 20px; }

/* -------------------------------------------------------
   HEADER / NAV (2 Zeilen)
   Zeile 1: Logo mittig | Flags rechts
   Zeile 2: Buttons mittig
------------------------------------------------------- */
nav.nav-glass{
  position:relative;
  display:flex; justify-content:center;
  padding:24px 0 16px;      /* mehr Luft */
  z-index:1;                /* vor dem Hintergrund */
  background:transparent;
}
nav.nav-glass .wrap{
  width:92%; max-width:1100px;
  display:flex; flex-direction:column; align-items:center; gap:12px;
}

/* Zeile 1 */
.nav-top{
  position:relative;
  width:100%;
  display:flex; align-items:center; justify-content:center; /* Mitte = Logo */
  min-height:46px;
}
.logoWrap{
  position:absolute; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; gap:10px; text-align:center;
}
.logoWrap img{ height:var(--nav-h); width:auto; }
.logoWrap span{ color:var(--gold); font-weight:700; letter-spacing:.3px; line-height:1; }

/* Flags rechts (stabil – keine Höhen-/Hover-Sprünge) */
.lang-switch{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
.chip.lang{
  display:flex; align-items:center; justify-content:center;
  height:36px; min-width:36px; padding:6px 10px;
  border-radius:999px; border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  transition:background .2s ease;
  flex-shrink:0;
}
.chip.lang:hover{ background:rgba(255,255,255,.12); }
.chip.lang.active{
  background:linear-gradient(180deg,#f5d26a,#d7b24a);
  box-shadow:0 0 10px rgba(215,178,74,.55);
}
.flag{ width:22px; height:22px; border-radius:50%; display:block; }

/* Zeile 2 */
.navlinks{
  display:flex; align-items:center; justify-content:center;
  gap:12px; flex-wrap:nowrap;
  margin-top:8px;             /* Abstand zu Zeile 1 */
}
.navlinks .chip{
  display:inline-flex; align-items:center; justify-content:center;
  height:var(--nav-h); min-height:var(--nav-h);
  padding:0 20px; white-space:nowrap;
  border-radius:999px;
  border:1px solid var(--chip-bd);
  background:var(--chip-bg);
  color:var(--ink);
  font-weight:600; font-size:1rem;   /* 16px Desktop */
  text-align:center;
  transition:border .2s ease, color .2s ease, background .2s ease;
}
.navlinks .chip:hover:not(.active){
  border-color:var(--gold); color:var(--gold); background:var(--chip-bg-hover);
}

/* Aktiver Menüpunkt über data-page (DE/EN identisch) */
body[data-page="index"]   .navlinks a[href$="index.html"],
body[data-page="music"]   .navlinks a[href$="music.html"],
body[data-page="studios"] .navlinks a[href$="studios.html"],
body[data-page="wear"]    .navlinks a[href$="wear.html"],
body[data-page="index"]   .navlinks a[href$="index-en.html"],
body[data-page="music"]   .navlinks a[href$="music-en.html"],
body[data-page="studios"] .navlinks a[href$="studios-en.html"],
body[data-page="wear"]    .navlinks a[href$="wear-en.html"]{
  border-color:var(--gold); color:var(--gold);
  background:rgba(243,216,112,0.10); box-shadow:var(--glow);
}

/* Aktives Flag über data-lang (Fallback ohne JS) */
body[data-lang="de"] .lang-switch a[href$=".html"]:not([href$="-en.html"]),
body[data-lang="en"] .lang-switch a[href$="-en.html"]{
  border-color:var(--gold); background:rgba(243,216,112,0.10); box-shadow:var(--glow);
}

/* --- HARTE STABILISIERUNG FÜR MUSIC-SEITE (falls dort alte CSS reinfunkt) --- */
body[data-page="music"] nav.nav-glass .nav-top{ min-height:46px; }
body[data-page="music"] nav.nav-glass .lang-switch{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
body[data-page="music"] nav.nav-glass .chip.lang:hover{ transform:none; } /* Sicherheit */

/* -------------------------------------------------------
   HERO
------------------------------------------------------- */
.hero{ position:relative; min-height:60svh; display:grid; place-items:center; background:transparent; }
.heroInner{ position:relative; z-index:1; text-align:center; padding:56px 0; }
.brand{ margin:0 0 10px; font-weight:700; font-size:clamp(36px,6.5vw,80px); color:var(--gold); text-shadow:0 4px 18px rgba(0,0,0,.6); }
.sub{ margin:0 0 22px; color:#f2f2f2; font-size:1.05rem; font-weight:400; }
.tagline{ margin-top:8px; font-weight:700; letter-spacing:.2px; }

/* CTA Buttons */
.cta{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.btn{
  padding:12px 18px; border-radius:999px; font-weight:700; letter-spacing:.02em;
  background:linear-gradient(120deg,var(--gold),var(--gold2)); color:#000;
  transition: transform .15s ease, box-shadow .15s ease; border:1px solid transparent;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.75); }
.btn.ghost{ background:transparent; color:var(--gold); border:1px solid var(--gold); }
.btn.ghost:hover{ background:rgba(243,216,112,0.10); }

/* -------------------------------------------------------
   Sections / Headings
------------------------------------------------------- */
section{ padding:70px 0; background:transparent; }
.head{ display:flex; justify-content:center; text-align:center; gap:18px; margin-bottom:22px; }
h2{ margin:0; font-size:clamp(22px,3.8vw,34px); color:var(--gold); font-weight:700; }
.lead{ margin:6px 0 0; color:var(--muted); }

/* -------------------------------------------------------
   Grid + Cards
------------------------------------------------------- */
.grid{ display:grid; gap:18px; }
@media (min-width:760px){ .grid.cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); } }

.card{
  background:var(--glass-bg); border:1px solid var(--glass-bd);
  border-radius:18px; padding:18px; text-align:center;
  transition:border .2s ease, transform .2s ease;
  backdrop-filter: blur(10px) saturate(150%); -webkit-backdrop-filter: blur(10px) saturate(150%);
}
.card:hover{ border-color:rgba(243,216,112,0.6); transform:translateY(-2px); }
.card h3{ margin:0 0 6px; font-size:1.12rem; color:var(--gold); font-weight:700; }
.card p{ margin:0 0 6px; }
.card img{ width:50%; margin:0 auto 12px; border-radius:12px; display:block; }

.mini{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; justify-content:center; }
.tag{ padding:6px 10px; border:1px solid rgba(255,255,255,0.12); background:rgba(18,18,18,.35); border-radius:999px; font-size:.86rem; color:#e1e1e1; }

/* -------------------------------------------------------
   Legal helpers
------------------------------------------------------- */
.legal{ max-width:900px; margin:32px auto; padding:0 16px; }
.legal h1{ font-size:2rem; margin-bottom:.5rem; }
.legal h2{ margin:28px 0 8px; font-size:1.25rem; }
.legal p, .legal li{ line-height:1.6; }
.legal .card{ padding:16px; }
.mono{ font-family:ui-monospace, Menlo, Consolas, monospace; }

/* -------------------------------------------------------
   Footer
   ----------------------------------------------------- */
footer{
  border-top:1px solid rgba(255,255,255,0.1);
  padding:22px 0 28px;
  line-height:1.6;
  text-align:center;
  color:#ddd;
  font-size:14px;
  background:transparent;
}
footer div{ margin:4px 0; }
footer a{
  color:var(--gold);
  text-decoration:none;
  margin:0 3px;
  transition: color .2s ease;
}
footer a:hover{
  color:#fff;
  text-decoration:underline;
}
.footer-note{ opacity:.75; font-size:13px; }

/* -------------------------------------------------------
   MOBILE Tweaks – Buttons größer, 1 Zeile
------------------------------------------------------- */
@media (max-width:640px){
  .logoWrap img{ height:var(--nav-h-sm); }
  .nav-top{ min-height:var(--nav-h-sm); }

  .chip.lang{ height:32px; min-width:32px; padding:4px 8px; }
  .flag{ width:18px; height:18px; }

  .navlinks{
    gap:8px; flex-wrap:nowrap !important;
    overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  .navlinks::-webkit-scrollbar{ display:none; }
  .navlinks .chip{
    height:34px; min-height:34px;
    padding:0 12px; font-size:0.9375rem; /* 15px */
  }
  @media (max-width:380px){
    .navlinks .chip{
      height:32px; min-height:32px;
      padding:0 10px; font-size:0.875rem; /* 14px */
    }
  }
}
/* ===== Footer (Original-Look wiederhergestellt) ===== */
footer{
  border-top:1px solid rgba(255,255,255,0.1);
  padding:22px 0 28px;
  line-height:1.6;
  text-align:center;
  color:#ddd;
  font-size:14px;
  background:transparent;

  /* Sichtbar vor dem Hintergrund-Layer */
  position:relative;
  z-index:1;
}

/* optional, falls du im footer eine .wrap nutzt */
footer .wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
}

footer div{ margin:4px 0; }

footer a{
  color:var(--gold);
  text-decoration:none;
  margin:0 3px;
  transition: color .2s ease;
}
footer a:hover{
  color:#fff;
  text-decoration:underline;
}
.footer-note{ opacity:.75; font-size:13px; }

/* falls dein Seitenhintergrund via body::before läuft: immer dahinter */
body::before{ z-index:-1; }

/* === Sprach-Buttons: überall exakt gleich === */
.nav-top{ position:relative; }

.lang-switch{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  display:flex; align-items:center; gap:8px; white-space:nowrap;
  z-index:2;
}

/* Fixe Maße, kein Hover-Scale */
.chip.lang{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:36px;               /* fix = überall gleich */
  padding:0; line-height:1; box-sizing:border-box;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  transition:background .2s ease, border-color .2s ease;
}
.chip.lang:hover{ background:rgba(255,255,255,.12); } /* KEIN transform/scale */
.flag{ width:22px; height:22px; border-radius:50%; display:block; }

/* Aktives Flag (Style ohne Größenänderung) */
.chip.lang.active{
  background:linear-gradient(180deg,#f5d26a,#d7b24a);
  box-shadow:0 0 10px rgba(215,178,74,.55);
  border-color:#f5d26a;
}
/* =======================
   MOBILE-ONLY HEADER FIX
   (gleiche Höhe/Größen auf allen Seiten, inkl. music)
   ======================= */
@media (max-width:640px){

  /* Header-Padding & erste Zeile */
  nav.nav-glass{ padding:16px 0 12px !important; }

  .nav-top{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important; /* Logo links, Flags rechts */
    min-height:36px !important;               /* fixer Rahmen */
  }

  /* Logo */
  .logoWrap{ display:flex !important; align-items:center !important; gap:8px !important; }
  .logoWrap img{ height:34px !important; width:auto !important; display:block !important; }
  .logoWrap span{ font-size:16px !important; line-height:1 !important; }

  /* Sprach-Buttons (DE/EN) – überall exakt gleich, ohne Scale */
  .lang-switch{
    display:flex !important; align-items:center !important;
    gap:6px !important; white-space:nowrap !important;
  }
  .chip.lang{
    width:32px !important; height:32px !important; min-width:32px !important;
    padding:0 !important; line-height:1 !important; box-sizing:border-box !important;
    border:1px solid rgba(255,255,255,.18) !important;
    background:rgba(255,255,255,.06) !important;
    transform:none !important;
  }
  .chip.lang:hover, .chip.lang:active, .chip.lang:focus{ transform:none !important; }
  .flag{ width:18px !important; height:18px !important; border-radius:50% !important; display:block !important; }

  /* Zweite Zeile: Nav-Pills (eine Linie, gleiche Höhe) */
  .navlinks{
    display:flex !important; align-items:center !important; justify-content:center !important;
    gap:8px !important; margin-top:8px !important;
    flex-wrap:nowrap !important; overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important; scrollbar-width:none !important;
  }
  .navlinks::-webkit-scrollbar{ display:none !important; }

  .navlinks .chip{
    height:34px !important; min-height:34px !important;
    padding:0 12px !important; line-height:1 !important;
    font-size:14px !important; border-width:1px !important;
  }
}

/* Optional: falls nur music noch abweicht, gleiche Werte *nochmals* direkt auf music */
@media (max-width:640px){
  body[data-page="music"] .chip.lang{ width:32px !important; height:32px !important; }
  body[data-page="music"] .navlinks .chip{ height:34px !important; }
}
/* ================================
   HEADER BUTTON SIZE UPDATE
   ================================ */

/* Desktop & Tablet (>= 641px) */
@media (min-width: 641px){
  /* Nav-Pills größer */
  .navlinks .chip,
  .navlinks a.chip{
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 24px !important;
    font-size: 18px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  /* DE/EN nur Desktop leicht größer */
  .chip.lang{
    height: 40px !important;
    min-width: 40px !important;
    width: 40px !important;
    padding: 0 !important;
    line-height: 1 !important;
  }
  .flag{ width: 22px !important; height: 22px !important; }
}

/* Mobile (<= 640px) */
@media (max-width: 640px){

  /* Nav-Pills etwas größer, bleiben in 1 Zeile (mit sanftem Wischen) */
  .navlinks{
    gap: 10px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  .navlinks::-webkit-scrollbar{ display: none !important; }

  .navlinks .chip,
  .navlinks a.chip{
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 14px !important;
    font-size: 18px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }

  /* DE/EN auf Mobile unverändert lassen (keine Änderung nötig) */
}
/* Footer-Links & Separator IMMER gold – Desktop & Mobile */
footer .footer-links { color: var(--gold) !important; }
footer .footer-links a { color: var(--gold) !important; }
footer .footer-links a:hover,
footer .footer-links a:focus { color: var(--gold) !important; text-decoration: underline; }

/* Fallback: falls die Links NICHT in .footer-links liegen */
footer a { color: var(--gold) !important; }
footer a:hover,
footer a:focus { color: var(--gold) !important; text-decoration: underline; }
