/* =========================================================
   LED-WAND-VERLEIH.DE – STYLE 2026 (DOMINANZ)
   Theme: Dark premium (#050b19) + Neon Blue + Orange Accent
   Requirements:
   - Hero Bild deutlich sichtbar
   - Hero Text brilliant weiß + harter dunkler Schatten
   - H1/H2 orange
   - Buttons dunkel, Text weiß
   - Galerie Bilder mit Rahmen
   - Forms/Dropdowns im Dark Mode lesbar
   - Scroll-Reveal + Mobile Sticky CTA
========================================================= */

:root{
  --bg0:#050814;
  --bg1:#050b19;
  --bg2:#07102a;

  --text:#ffffff;
  --muted:rgba(255,255,255,.78);

  --orange:#ff8a1a;
  --orange2:#ffb24a;

  --blue:#3aa0ff;
  --blue2:#64c7ff;

  --stroke:rgba(255,255,255,.12);

  --card:rgba(9,17,37,.70);
  --card2:rgba(9,17,37,.55);

  --shadow:0 22px 70px rgba(0,0,0,.55);
  --shadow2:0 14px 40px rgba(0,0,0,.45);

  --r12:12px;
  --r16:16px;
  --r18:18px;
  --r22:22px;
}

/* ================= RESET / BASE ================= */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 18% -10%, rgba(58,160,255,.14), transparent 60%),
    radial-gradient(900px 520px at 86% 0%, rgba(255,138,26,.10), transparent 58%),
    linear-gradient(180deg,var(--bg0),var(--bg1) 45%,var(--bg0));
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:none; }
p{ margin:0 0 12px 0; }
ul{ margin:0; padding-left:18px; }
li{ margin:6px 0; }

.muted{ opacity:.85; color:var(--muted); }
.fineprint{ font-size:13px; opacity:.78; }

/* ================= LAYOUT ================= */
.container{
  width:min(1160px, calc(100% - 36px));
  margin:0 auto;
}

.section{ padding:44px 0; }
.section-head{ margin-bottom:18px; }
.grid{ display:grid; gap:18px; }

/* ================= TYPO ================= */
h1,h2,h3{ margin:0 0 12px 0; }
h1{
  color:var(--orange);
  font-weight:900;
  letter-spacing:.2px;
  line-height:1.05;
  font-size:clamp(30px, 3.2vw, 46px);
  text-shadow:0 3px 14px rgba(0,0,0,.90);
}
h2{
  color:var(--orange);
  font-weight:900;
  letter-spacing:.2px;
  font-size:clamp(22px, 2.1vw, 30px);
  text-shadow:0 3px 14px rgba(0,0,0,.85);
}
h3{
  font-weight:850;
  font-size:18px;
  text-shadow:0 2px 12px rgba(0,0,0,.70);
}


/* ================= BUTTONS ================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 16px;
  border-radius:14px;
  font-weight:850;
  letter-spacing:.15px;
  transition:transform .18s ease, filter .18s ease, background .18s ease;
  user-select:none;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(180deg,#0b1733,#060c1a);
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 16px 44px rgba(0,0,0,.55);
}
.btn-primary:hover{ transform:translateY(-2px); filter:brightness(1.08); }
.btn-ghost{
  background:rgba(6,12,26,.62);
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
}
.btn-ghost:hover{ transform:translateY(-2px); filter:brightness(1.08); }
.btn-block{ width:100%; }

/* ================= HERO ================= */
.hero{
  position:relative;
  padding:34px 0 18px;
  overflow:hidden;
}

.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.98;
  filter:brightness(1.32) contrast(1.18) saturate(1.18);
  transform:scale(1.03);
}

/* very light grading only */
.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(1100px 640px at 18% 10%, rgba(58,160,255,.10), transparent 65%),
    radial-gradient(1100px 640px at 86% 12%, rgba(255,138,26,.08), transparent 65%),
    linear-gradient(180deg, rgba(5,11,25,.03), rgba(5,11,25,.36));
}

/* left scrim to keep text readable, without “covering” the image */
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(5,11,25,.70) 0%, rgba(5,11,25,.22) 48%, rgba(5,11,25,0) 76%);
}

.hero-grid{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:22px;
  align-items:start;
}
.hero-copy{
  position:relative;
  z-index:3;
}
.hero-copy .lead{
  font-size:16px;
  line-height:1.55;
  color:#fff;
  opacity:1;
  /* strong dark shadow (no “milky” layer) */
  text-shadow:
    0 2px 0 rgba(0,0,0,.55),
    0 7px 24px rgba(0,0,0,.92);
}
.hero-cta{ display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 12px; }

.hero-badges{
  list-style:none;
  padding:0;
  margin:14px 0 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.hero-badges li{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(5,11,25,.58);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.90);
  font-weight:850;
  font-size:13px;
}
.hero-badges .ico{ width:16px; height:16px; opacity:.95; }




/* ================= HERO GALLERY (GROSS + 4:3, PASST ZUM HTML) ================= */
.hero-gallery{
  width:100%;
}

/* In deinem HTML liegt das Grid in .hero-gallery-grid */
.hero-gallery-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2, minmax(220px, 1fr));
  gap:14px;
  align-items:start;
}

/* Sehr große Screens: 3 Spalten */
@media (min-width: 1280px){
  .hero-gallery-grid{
    grid-template-columns:repeat(3, minmax(220px, 1fr));
  }
}

/* Tablet: 2 Spalten, etwas kleiner */
@media (max-width: 980px){
  .hero-gallery-grid{
    grid-template-columns:repeat(2, minmax(200px, 1fr));
  }
}

/* Mobile: 1 Spalte, große Kachel */
@media (max-width: 600px){
  .hero-gallery-grid{
    grid-template-columns:1fr;
  }
}

/* Kachel: echtes 4:3 */
.hero-gallery-item{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border-radius:16px;
  border:2px solid rgba(255,255,255,.18);
  box-shadow:
    0 18px 50px rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(0,0,0,.35);
  transition:transform .20s ease, border-color .20s ease, filter .20s ease;
}

/* Bild füllt die Kachel ohne Verzerrung */
.hero-gallery-item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:brightness(1.02) contrast(1.06);
  transition:transform .20s ease, filter .20s ease;
}

/* Label (Span) wie in deinem Screenshot */
.hero-gallery-item span{
  position:absolute;
  left:10px;
  top:10px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.2px;
  background:rgba(5,11,25,.64);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.92);
}

/* Hover */
.hero-gallery-item:hover{
  border-color:rgba(255,138,26,.45);
}
.hero-gallery-item:hover img{
  transform:scale(1.04);
  filter:brightness(1.08) contrast(1.10);
}

/* ================= CARDS / PANELS ================= */
.card,
.panel,
.trust-item,
.bullet,
.card-glass{
  background:var(--card);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r18);
  box-shadow:var(--shadow2);
}
.card{ padding:16px; }
.panel{ padding:18px; }
.card-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.card-title{ font-size:18px; font-weight:900; }
.card-sub{ opacity:.85; }
.card-link{ opacity:.92; }
.card-link:hover{ opacity:1; }

.cards-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.bullets-2{ display:grid; grid-template-columns:repeat(2, 1fr); gap:14px; }
.bullets-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }

.bullet{ padding:14px; }
.bullet strong{ color:#fff; }

.trust{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:12px;
}
.trust-item{
  flex:1 1 calc(33.33% - 14px);
  min-width:260px;
  padding:14px;
  transition:transform .22s ease, box-shadow .22s ease;
}
.trust-item:hover{ transform:translateY(-4px); box-shadow:0 26px 80px rgba(0,0,0,.60); }

/* ================= FORMS ================= */
.form{ display:grid; gap:12px; }
.form-row{ display:grid; gap:10px; }
.form-2col{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

label{ font-size:13px; font-weight:850; opacity:.9; }
input, select, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background:#091125;
  color:#fff;
  outline:none;
}
textarea{ min-height:120px; resize:vertical; }
select option{
  background:#091125;
  color:#fff;
}
input:focus, select:focus, textarea:focus{
  border-color:rgba(58,160,255,.55);
  box-shadow:0 0 0 4px rgba(58,160,255,.14);
}

/* ================= FAQ ================= */
.faq-grid{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:12px;
}
.faq-item{
  flex:1 1 calc(50% - 14px);
  min-width:320px;
  padding:14px;
  border-radius:16px;
  background:var(--card);
  border:1px solid rgba(255,255,255,.12);
}
.faq-item h3{ margin:0 0 6px 0; }
.faq-item p{ margin:0; opacity:.85; line-height:1.45; }

/* ================= FOOTER ================= */
.site-footer{
  border-top:1px solid rgba(255,255,255,.10);
  background:rgba(5,11,25,.55);
  backdrop-filter:blur(10px);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap:18px;
  padding:28px 0;
}
.footer-logo{ height:44px; width:auto; opacity:.95; }
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.footer-links a{ opacity:.85; }
.footer-links a:hover{ opacity:1; }
.footer-bottom{
  padding:14px 0 24px;
  opacity:.75;
  font-size:13px;
}

/* ================= SCROLL REVEAL ================= */
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease, transform .55s ease;
  will-change:opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ================= STICKY CTA (MOBILE) ================= */
.sticky-cta{ display:none; }
@media (max-width: 720px){
  .sticky-cta{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:999;
    display:flex;
    gap:10px;
    padding:10px;
    border-radius:16px;
    background:rgba(5,11,25,.72);
    border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(10px);
    box-shadow:0 18px 50px rgba(0,0,0,.55);
  }
  .sticky-cta .btn{ flex:1; text-align:center; }
}
@media (prefers-reduced-motion: reduce){
  .sticky-cta{ backdrop-filter:none; }
}

/* ================= RESPONSIVE ================= */
@media (max-width: 980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-gallery{ grid-template-columns:repeat(2, 1fr); }
  .hero-gallery img{ height:160px; }
  .cards-3{ grid-template-columns:1fr; }
  .bullets-3{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
}

@media (max-width: 600px){
  .hero{ padding:28px 0 14px; }
  .hero-gallery{ grid-template-columns:1fr; }
  .hero-gallery img{ height:190px; }
  .form-2col{ grid-template-columns:1fr; }
}

/* ================= DROPDOWN (NAV) ================= */
.has-dropdown{ position:relative; }
.dropdown{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:240px;
  padding:10px;
  border-radius:16px;
  background:rgba(5,11,25,.92);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow);
  display:none;
}
.has-dropdown:hover .dropdown{ display:block; }
.dropdown a{
  display:block;
  padding:10px 10px;
  border-radius:12px;
  opacity:.92;
}
.dropdown a:hover{ background:rgba(255,255,255,.06); opacity:1; }

/* ================= HERO: GALERIE GRÖSSER (OPTION A) ================= */
.hero-grid{
  grid-template-columns: 0.95fr 1.05fr; /* Galerie bekommt mehr Breite */
}

/* Desktop: 2 Spalten = größere Bilder */
.hero-gallery{
  grid-template-columns: repeat(2, 1fr) !important;
}

/* Sehr große Screens: 3 Spalten möglich */
@media (min-width: 1280px){
  .hero-gallery{
    grid-template-columns: repeat(3, 1fr) !important;
  }
}

/* ================= HOTFIX: HERO GALLERY LABELS (NO DARK PILL) ================= */
/* Problem: das <span> in .hero-gallery-item wird aktuell als großer Block gerendert.
   Fix: Label nur als kleine Kapsel oben links, ohne Fläche über dem Bild. */

.hero-gallery-grid{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

@media (min-width: 1280px){
  .hero-gallery-grid{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

/* Kachel: echtes 4:3 */
.hero-gallery-item{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border-radius:16px;
  border:2px solid rgba(255,255,255,.18);
  box-shadow:0 18px 50px rgba(0,0,0,.55), inset 0 0 0 1px rgba(0,0,0,.35);
  background:rgba(0,0,0,.12);
}

/* Bild füllt die Kachel */
.hero-gallery-item img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(1.02) contrast(1.05);
  transition:transform .20s ease, filter .20s ease;
}

/* Label wirklich nur Label */
.hero-gallery-item span{
  position:absolute !important;
  top:10px !important;
  left:10px !important;
  right:auto !important;
  bottom:auto !important;

  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;

  width:auto !important;
  height:auto !important;
  max-width:calc(100% - 20px) !important;

  padding:6px 10px !important;
  border-radius:999px !important;

  background:rgba(5,11,25,.72) !important;
  border:1px solid rgba(255,255,255,.16) !important;

  color:#fff !important;
  font-weight:900 !important;
  font-size:12px !important;
  letter-spacing:.2px !important;

  text-shadow:0 2px 12px rgba(0,0,0,.92) !important;

  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
  opacity:1 !important;
  transform:none !important;
}

/* Falls irgendwo Pseudo-Overlays gesetzt wurden: aus */
.hero-gallery-item::before,
.hero-gallery-item::after{
  content:none !important;
}

.hero-gallery-item:hover img{
  transform:scale(1.03);
  filter:brightness(1.08) contrast(1.08);
}
.hero-gallery-item:hover{
  border-color:rgba(255,138,26,.45);
}

@media (max-width: 980px){
  .hero-gallery-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px){
  .hero-gallery-grid{ grid-template-columns:1fr; }
}

/* ================= TUNING: HERO HEIGHT + GALLERY SIZE ================= */
/* Hero weniger hoch (linke Seite wirkt sonst leer) */
.hero{
  padding:26px 0 12px !important;
}

/* Galerie kompakter: Desktop 3 Spalten => 2 Reihen statt 3 Reihen (weniger Höhe) */
.hero-gallery-grid{
  gap:12px !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
}

/* Unter 1100px: 2 Spalten */
@media (max-width: 1099px){
  .hero-gallery-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobile: 1 Spalte */
@media (max-width: 600px){
  .hero-gallery-grid{
    grid-template-columns:1fr !important;
  }
}

/* Rahmen darf nicht „dicker“ wirken als das Bild: dünn, sauber, ohne Riesen-Schatten */
.hero-gallery-item{
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:14px !important;
  box-shadow:0 14px 36px rgba(0,0,0,.45) !important;
}

/* Bild ohne zusätzliche „Innenabstände“ */
.hero-gallery-item img{
  transform:none !important;
}

/* Label etwas kleiner, damit die Bilder ruhiger wirken */
.hero-gallery-item span{
  font-size:11px !important;
  padding:5px 9px !important;
  background:rgba(5,11,25,.68) !important;
}

/* ================= HEADER (LOGO 100px + 2 ROW BUTTON GRID) ================= */
.site-header{
  position:sticky;
  top:0;
  z-index:3000;
  background:rgba(5,11,25,.86);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(255,255,255,.10);
}

.site-header .header-row{
  display:flex;
  align-items:center;
  gap:16px;
  padding:10px 0;
}

.brand{ display:flex; align-items:center; flex:0 0 auto; }
.brand-logo{
  height:100px;
  width:auto;
  display:block;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.55));
}

.nav{ flex:1 1 auto; min-width:0; }

.nav-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  align-items:stretch;
}

.nav-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:16px;
  text-decoration:none;
  color:#fff;
  font-weight:900;
  font-size:14px;
  line-height:1.05;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  transition:transform .18s ease, filter .18s ease, background .18s ease, border-color .18s ease;
  text-align:center;
  white-space:nowrap;
}

.nav-btn:hover{
  filter:brightness(1.08);
  transform:translateY(-1px);
  background:rgba(255,138,26,.16);
  border-color:rgba(255,138,26,.38);
}

.nav-btn-phone{
  background:rgba(58,160,255,.10);
  border-color:rgba(58,160,255,.22);
}

.nav-btn-cta{
  background:rgba(255,138,26,.24);
  border-color:rgba(255,138,26,.40);
}

@media (max-width: 1100px){
  .nav-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .nav-btn{ white-space:normal; }
}
@media (max-width: 720px){
  .brand-logo{ height:76px; }
  .site-header .header-row{ flex-direction:column; align-items:flex-start; }
  .nav-grid{ width:100%; grid-template-columns:repeat(2, minmax(0,1fr)); }
}

/* ================= FOOTER CTA BUTTONS ================= */
.footer-cta{ padding-top:0; }
.footer-cta-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
}
.footer-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 18px;
  border-radius:18px;
  text-decoration:none;
  color:#fff;
  font-weight:900;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 50px rgba(0,0,0,.45);
}
.footer-btn:hover{ filter:brightness(1.08); }
.footer-btn-primary{
  background:rgba(255,138,26,.26);
  border-color:rgba(255,138,26,.42);
}

@media (max-width: 980px){
  .footer-cta-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 520px){
  .footer-cta-grid{ grid-template-columns:1fr; }
}

/* ================= REFERENZEN GALERIE (LIGHTBOX) ================= */
.ref-gallery{  display:grid;  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

@media (max-width: 980px){
  .ref-gallery{  display:grid;  grid-template-columns:repeat(3, minmax(0,1fr)); }
}

@media (max-width: 600px){
  .ref-gallery{ grid-template-columns:1fr; }
}

.ref-thumb{
  position:relative;
  display:block;
  border-radius:18px;
  overflow:hidden;
  aspect-ratio: 4 / 3;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 55px rgba(0,0,0,.40);
  transform:translateZ(0);
}

.ref-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:scale(1.01);
  transition:transform .22s ease, filter .22s ease;
}

.ref-thumb:hover img{
  transform:scale(1.05);
  filter:brightness(1.06);
}

.ref-tag{
  position:absolute;
  left:12px;
  top:12px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(5,11,25,.68);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-weight:900;
  font-size:13px;
  line-height:1;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* ================= HEADER NAV GRID FIX (2 ROWS / 4 COLS) ================= */
.nav-grid{
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
}

.nav-ico{
  margin-right:8px;
  font-size:16px;
  line-height:1;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.55));
}

.nav-label{ display:inline-block; }

@media (max-width: 1100px){
  .nav-grid{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
}

/* ================= MOBILE NAV (HAMBURGER) ================= */
.nav-toggle{
  display:none;
  margin-left:auto;
  width:52px;
  height:44px;
  border-radius:14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 14px 40px rgba(0,0,0,.35);
}

.nav-toggle-bars{
  width:22px;
  height:2px;
  background:#fff;
  display:block;
  position:relative;
  border-radius:2px;
  box-shadow:0 10px 18px rgba(0,0,0,.45);
}
.nav-toggle-bars::before,
.nav-toggle-bars::after{
  content:"";
  position:absolute;
  left:0;
  width:22px;
  height:2px;
  background:#fff;
  border-radius:2px;
}
.nav-toggle-bars::before{ top:-7px; }
.nav-toggle-bars::after{ top:7px; }

.mnav-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  opacity:0;
  transition:opacity .18s ease;
  z-index:2900;
}
.mnav-overlay.is-open{ opacity:1; }

.mnav{
  position:fixed;
  top:0;
  right:0;
  height:100vh;
  width:min(360px, 88vw);
  background:rgba(10,14,28,.94);
  border-left:1px solid rgba(255,255,255,.12);
  box-shadow:-24px 0 80px rgba(0,0,0,.55);
  transform:translateX(102%);
  transition:transform .18s ease;
  z-index:2950;
  display:flex;
  flex-direction:column;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.mnav.is-open{ transform:translateX(0); }

.mnav-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.10);
  color:#fff;
}
.mnav-close{
  width:40px;
  height:40px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  font-size:22px;
  cursor:pointer;
}

.mnav-body{
  padding:14px 18px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:auto;
}

.mnav-link{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:14px 14px;
  border-radius:16px;
  text-decoration:none;
  color:#fff;
  font-weight:900;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
}
.mnav-link:hover{ filter:brightness(1.06); }

html.mnav-open{ overflow:hidden; }

@media (max-width: 900px){
  .nav-toggle{ display:flex; }
  .nav{ display:none; }
}

/* ================= LED VIDEOWAND: HERO READABILITY FIX ================= */
.hero .hero-copy{
  position:relative;
  z-index:3;
  max-width: 640px;
}

.hero .hero-copy h1{
  color:#ff8a1a !important;
  text-shadow: 0 10px 28px rgba(0,0,0,.70), 0 2px 0 rgba(0,0,0,.35);
}

/* only text gets a subtle dark backing, not the whole hero */
.hero .hero-copy .hero-lead,
.hero .hero-copy .hero-trust{
  color:#ffffff !important;
  text-shadow: 0 10px 26px rgba(0,0,0,.85), 0 2px 0 rgba(0,0,0,.40);
}

.hero .hero-copy .hero-lead{
  display:inline-block;
  padding:10px 12px;
  border-radius:14px;
  background: rgba(5,11,25,.22);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.hero .hero-copy .hero-trust{
  display:inline-block;
  padding:8px 10px;
  border-radius:999px;
  background: rgba(5,11,25,.18);
  border:1px solid rgba(255,255,255,.10);
}

/* ================= LED VIDEOWAND: HERO READABILITY v3 ================= */
.hero.hero--inner{ position:relative; }
.hero.hero--inner:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  /* darkens left side where text sits, keeps image visible */
  background: linear-gradient(90deg, rgba(5,11,25,.80) 0%, rgba(5,11,25,.55) 38%, rgba(5,11,25,.18) 72%, rgba(5,11,25,0) 100%);
  z-index:1;
}
.hero.hero--inner .container{ position:relative; z-index:2; }

.hero .hero-copy .hero-lead{
  background: rgba(5,11,25,.48) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  text-shadow: 0 12px 30px rgba(0,0,0,.92), 0 2px 0 rgba(0,0,0,.45) !important;
}
.hero .hero-copy{
  max-width: 680px !important;
}

/* ================= LED VIDEOWAND: HERO FIX (INDEX-STYLE) ================= */
.hero{
  position:relative;
  min-height: 520px;
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(90deg, rgba(5,11,25,.88) 0%, rgba(5,11,25,.62) 42%, rgba(5,11,25,.18) 78%, rgba(5,11,25,0) 100%);
  z-index:1;
}
.hero .hero-grid{ position:relative; z-index:3; align-items:start; }
.hero .hero-copy h1{ color:#ff8a1a !important; text-shadow: 0 12px 32px rgba(0,0,0,.85); }
.hero .hero-copy .hero-lead{
  color:#fff !important;
  text-shadow: 0 12px 34px rgba(0,0,0,.92), 0 2px 0 rgba(0,0,0,.45);
  display:inline-block;
  max-width: 640px;
  padding:12px 14px;
  border-radius:16px;
  background: rgba(5,11,25,.44);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.hero .hero-side{ align-self:start; }
.hero-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}
.hero-gallery-item{
  position:relative;
  display:block;
  border-radius:18px;
  overflow:hidden;
  aspect-ratio: 4 / 3;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 18px 55px rgba(0,0,0,.45);
}
.hero-gallery-item img{ width:100%; height:100%; display:block; object-fit:cover; }
.hero-gallery-item span{
  position:absolute;
  left:12px;
  top:12px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(5,11,25,.72);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-weight:900;
  font-size:13px;
  line-height:1;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
@media (max-width: 980px){
  .hero{ min-height: unset; padding-bottom: 18px; }
  .hero .hero-grid{ grid-template-columns: 1fr; }
  .hero-gallery-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px){
  .hero-gallery-grid{ grid-template-columns:1fr; }
}

.lightbox-overlay{position:fixed;inset:0;display:none;}

.lightbox-overlay.is-open{display:flex;}

.lightbox-img{cursor:pointer;}


/* ================= HERO: extra dim for background image ================= */
.hero.hero--inner:before{
  /* slightly stronger to improve readability without hiding the photo */
  background: linear-gradient(90deg,
    rgba(5,11,25,.88) 0%,
    rgba(5,11,25,.62) 40%,
    rgba(5,11,25,.30) 75%,
    rgba(5,11,25,.10) 100%) !important;
}
.hero.hero--inner .hero-media{
  position:absolute;
}
.hero.hero--inner .hero-media:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: rgba(5,11,25,.10);
}


/* ================= HERO TILES (SUBPAGES) ================= */
.hero-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-content:start;}
.hero-tile{position:relative;display:block;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 55px rgba(0,0,0,.45);}
.hero-tile img{width:100%;height:100%;display:block;object-fit:cover;}
.hero-tile span{position:absolute;left:12px;top:12px;padding:7px 10px;border-radius:999px;background:rgba(5,11,25,.68);border:1px solid rgba(255,255,255,.14);color:#fff;font-weight:900;font-size:13px;line-height:1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
@media (max-width: 980px){.hero-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 620px){.hero-tiles{grid-template-columns:1fr;}}
