/* =======================================================
   CYBER-GOLD SYSTEM — METODO ROMEO
   Liquid Dark Energy · Gold Neon Glow · Cyber Luxury
   ======================================================= */

:root {
  --cg-gold:        #f7c65f;
  --cg-gold-bright: #ffe49a;
  --cg-gold-dim:    rgba(247,198,95,0.12);
  --cg-teal:        #00d4aa;
  --cg-glow-sm:  0 0 8px rgba(247,198,95,0.50), 0 0 20px rgba(247,198,95,0.22);
  --cg-glow-md:  0 0 14px rgba(247,198,95,0.65), 0 0 40px rgba(247,198,95,0.30), 0 0 80px rgba(247,198,95,0.10);
  --cg-glow-lg:  0 0 20px rgba(247,198,95,0.80), 0 0 60px rgba(247,198,95,0.40), 0 0 120px rgba(247,198,95,0.15);
  --cg-transition: all 0.38s cubic-bezier(0.23,1,0.32,1);
}

/* ── CANVAS PARTICELLE (gestito da JS) ── */
#cg-canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* ── BODY OLED BLACK + nebbia dorata pulsante ── */
body {
  background:
    radial-gradient(ellipse 70% 45% at 15% 0%,  rgba(247,198,95,0.055) 0%, transparent 55%),
    radial-gradient(ellipse 55% 40% at 85% 100%, rgba(247,198,95,0.040) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 50% 50%,  rgba(0,212,170,0.030) 0%, transparent 60%),
    linear-gradient(180deg, #030808 0%, #060d0b 25%, #071512 60%, #0a1a14 100%) !important;
}
body::before {
  content: "";
  position: fixed; inset: 0;
  background:
    radial-gradient(ellipse 60% 35% at 50% -5%,  rgba(247,198,95,0.07) 0%, transparent 70%),
    radial-gradient(ellipse 40% 25% at 20% 110%, rgba(247,198,95,0.04) 0%, transparent 60%),
    radial-gradient(ellipse 35% 20% at 80% 110%, rgba(0,212,170,0.03)  0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
  animation: cg-nebula-pulse 12s ease-in-out infinite;
}
@keyframes cg-nebula-pulse {
  0%,100% { opacity: 0.7; transform: scale(1);     }
  33%     { opacity: 1.0; transform: scale(1.015); }
  66%     { opacity: 0.8; transform: scale(0.995); }
}
/* z-index: NON impostare z-index su body > * — crea stacking context che blocca il menu mobile.
   La navbar gestisce il proprio z-index (999) tramite style.css */
body > *:not(#cg-canvas) { position: relative; }

/* ── SCROLLBAR ── */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: #030808; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--cg-gold), var(--cg-teal));
  border-radius: 999px;
  box-shadow: var(--cg-glow-sm);
}
::selection { background: rgba(247,198,95,0.25) !important; color: #fff !important; }

/* ── NAVBAR ── */
.navbar {
  background: rgba(3,8,8,0.80) !important;
  border-bottom: 1px solid rgba(247,198,95,0.10) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  /* z-index esplicito: deve stare SOPRA body::before (z-index:0) e canvas (z-index:0) */
  z-index: 9999 !important;
}
/* Su mobile: backdrop-filter su un elemento sticky blocca i figli position:absolute su iOS Safari.
   mobile-nav.css lo rimuove a 920px, ma cyber-gold lo rimetteva con !important.
   Qui lo disabilitiamo definitivamente su mobile. */
@media (max-width: 920px) {
  .navbar {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(3,8,8,0.97) !important;
  }
  /* Il menu mobile deve stare sopra qualunque cosa */
  .navbar-menu {
    z-index: 99999 !important;
  }
  /* body::before non deve intercettare i click sul menu */
  body::before {
    z-index: -1 !important;
    pointer-events: none !important;
  }
}
.navbar.scrolled {
  background: rgba(3,8,8,0.94) !important;
  border-bottom-color: rgba(247,198,95,0.20) !important;
  box-shadow: 0 4px 30px rgba(0,0,0,0.55), 0 1px 0 rgba(247,198,95,0.08) !important;
}
.navbar-brand-text span { color: var(--cg-gold) !important; }
.navbar-logo-icon {
  background: linear-gradient(135deg, rgba(247,198,95,0.22), rgba(0,212,170,0.10)) !important;
  border-color: rgba(247,198,95,0.28) !important;
  box-shadow: var(--cg-glow-sm) !important;
}
.navbar-menu a:not(.navbar-cta)::after {
  background: linear-gradient(90deg, var(--cg-gold), var(--cg-gold-bright)) !important;
  box-shadow: var(--cg-glow-sm) !important;
}
.navbar-menu a:hover,
.navbar-menu a.active { color: var(--cg-gold) !important; }
.navbar-cta {
  background: linear-gradient(135deg, var(--cg-gold) 0%, #d4921e 100%) !important;
  color: #0a0600 !important;
  border: 1px solid rgba(247,198,95,0.45) !important;
  box-shadow: var(--cg-glow-sm), 0 8px 24px rgba(247,198,95,0.22) !important;
  transition: var(--cg-transition) !important;
  font-weight: 900 !important;
}
.navbar-cta:hover {
  box-shadow: var(--cg-glow-md), 0 12px 40px rgba(247,198,95,0.35) !important;
  transform: translateY(-2px) !important;
  filter: brightness(1.10) !important;
}

/* ── BOTTONI: effetto "carica energia" ── */
.btn-primary {
  background: linear-gradient(135deg, var(--cg-gold) 0%, #e8a820 60%, #c8920a 100%) !important;
  color: #080400 !important;
  border: 1px solid rgba(247,198,95,0.55) !important;
  box-shadow: var(--cg-glow-sm), 0 8px 30px rgba(247,198,95,0.22) !important;
  transition: var(--cg-transition) !important;
  position: relative; overflow: hidden;
}
.btn-primary::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.22) 0%, transparent 60%);
  opacity: 0; transition: var(--cg-transition); pointer-events: none;
}
.btn-primary:hover {
  box-shadow: var(--cg-glow-lg), 0 16px 50px rgba(247,198,95,0.40) !important;
  transform: translateY(-3px) scale(1.02) !important;
  filter: brightness(1.12) !important;
}
.btn-primary:hover::after { opacity: 1; }

.btn-secondary, a.btn-secondary, button.btn-secondary {
  border-color: rgba(247,198,95,0.22) !important;
  color: var(--cg-gold) !important;
  transition: var(--cg-transition) !important;
}
.btn-secondary:hover {
  background: rgba(247,198,95,0.08) !important;
  border-color: rgba(247,198,95,0.48) !important;
  box-shadow: var(--cg-glow-sm) !important;
  transform: translateY(-2px) !important;
}

.btn-gold {
  background: linear-gradient(135deg, var(--cg-gold) 0%, #c88c10 100%) !important;
  color: #060200 !important;
  border: 1px solid rgba(247,198,95,0.58) !important;
  box-shadow: var(--cg-glow-sm) !important;
  transition: var(--cg-transition) !important;
}
.btn-gold:hover {
  box-shadow: var(--cg-glow-lg) !important;
  transform: translateY(-3px) scale(1.02) !important;
}

.btn-download { transition: var(--cg-transition) !important; }
.btn-download:hover {
  box-shadow: var(--cg-glow-md) !important;
  transform: translateY(-3px) scale(1.01) !important;
  filter: brightness(1.10) !important;
}

.print-btn { transition: var(--cg-transition) !important; }
.print-btn:hover {
  box-shadow: var(--cg-glow-md) !important;
  transform: translateY(-2px) !important;
}

/* ── CARD — bordi lab-glow ── */
.card, .feature-card, .protocol-card, .testimonial-card, .phase-card {
  border-color: rgba(247,198,95,0.10) !important;
  transition: var(--cg-transition) !important;
}
.card:hover, .feature-card:hover, .testimonial-card:hover, .phase-card:hover {
  border-color: rgba(247,198,95,0.38) !important;
  box-shadow:
    0 0 0 1px rgba(247,198,95,0.12),
    0 0 25px rgba(247,198,95,0.12),
    0 20px 60px rgba(0,0,0,0.45) !important;
  transform: translateY(-6px) !important;
}
.protocol-card:hover {
  border-color: rgba(247,198,95,0.36) !important;
  box-shadow:
    0 0 0 1px rgba(247,198,95,0.14),
    0 0 30px rgba(247,198,95,0.14),
    0 24px 70px rgba(0,0,0,0.50) !important;
  transform: translateY(-8px) !important;
}

/* Box scientifici — glow da laboratorio */
.info-box {
  border: 1px solid rgba(0,212,170,0.28) !important;
  box-shadow: 0 0 0 1px rgba(0,212,170,0.06), inset 0 0 22px rgba(0,212,170,0.03) !important;
}
.gold-box {
  border: 1px solid rgba(247,198,95,0.30) !important;
  box-shadow: 0 0 0 1px rgba(247,198,95,0.06), inset 0 0 22px rgba(247,198,95,0.04) !important;
}
.week-block {
  border-top: 3px solid rgba(247,198,95,0.55) !important;
  border-color: rgba(247,198,95,0.15) !important;
  box-shadow: 0 0 0 1px rgba(247,198,95,0.05), inset 0 0 30px rgba(247,198,95,0.02) !important;
}

/* ── SECTION LABEL ── */
.section-label {
  background: rgba(247,198,95,0.07) !important;
  border-color: rgba(247,198,95,0.32) !important;
  color: var(--cg-gold) !important;
  box-shadow: var(--cg-glow-sm), inset 0 0 12px rgba(247,198,95,0.04) !important;
  letter-spacing: 0.16em !important;
}

/* ── TITOLI ── */
.section-title {
  background: linear-gradient(135deg, #fff9ee 0%, #f7c65f 40%, #ffe49a 70%, #00d4aa 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  filter: drop-shadow(0 0 22px rgba(247,198,95,0.18)) !important;
}
.text-gradient {
  background: linear-gradient(135deg, var(--cg-gold) 0%, var(--cg-gold-bright) 40%, var(--cg-teal) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  filter: drop-shadow(0 0 18px rgba(247,198,95,0.28)) !important;
}

/* ── HERO ── */
.hero-image-ring::before {
  border-color: rgba(247,198,95,0.55) !important;
  box-shadow: 0 0 18px 4px rgba(247,198,95,0.22), inset 0 0 18px 4px rgba(247,198,95,0.12) !important;
}
.hero-image-ring::after {
  background: radial-gradient(circle, #fff 0%, var(--cg-gold) 50%, rgba(247,198,95,0.3) 100%) !important;
  box-shadow: 0 0 10px 4px rgba(247,198,95,1), 0 0 28px 10px rgba(247,198,95,0.7), 0 0 50px 18px rgba(247,198,95,0.35) !important;
}
.hero-image-glow {
  background: radial-gradient(circle, rgba(247,198,95,0.28) 0%, rgba(0,212,170,0.12) 50%, transparent 70%) !important;
}
.hero-badge {
  background: rgba(247,198,95,0.08) !important;
  border-color: rgba(247,198,95,0.32) !important;
  color: var(--cg-gold) !important;
  box-shadow: var(--cg-glow-sm) !important;
}
.hero-badge-dot { background: var(--cg-gold) !important; }
@keyframes pulse-dot {
  0%,100% { box-shadow: 0 0 0 4px rgba(247,198,95,0.15), 0 0 14px rgba(247,198,95,0.55); }
  50%      { box-shadow: 0 0 0 8px rgba(247,198,95,0.08), 0 0 26px rgba(247,198,95,0.80); }
}
.hero-stat { background: rgba(247,198,95,0.04) !important; border-color: rgba(247,198,95,0.14) !important; }
.hero-stat:hover { border-color: rgba(247,198,95,0.32) !important; box-shadow: var(--cg-glow-sm) !important; }
.hero-stat-number { color: var(--cg-gold) !important; text-shadow: 0 0 20px rgba(247,198,95,0.50) !important; }

/* ── PRODUCT CARDS (protocolli.html) ── */
.product-card { border-color: rgba(247,198,95,0.10) !important; transition: var(--cg-transition) !important; }
.product-card:hover {
  border-color: rgba(247,198,95,0.40) !important;
  box-shadow: 0 0 0 1px rgba(247,198,95,0.14), 0 0 30px rgba(247,198,95,0.14), 0 24px 70px rgba(0,0,0,0.50) !important;
  transform: translateY(-7px) !important;
}

/* ── TESTIMONIAL ── */
.testimonial-stars { color: var(--cg-gold) !important; filter: drop-shadow(0 0 6px rgba(247,198,95,0.55)) !important; }

/* ── FOOTER ── */
.footer { border-top-color: rgba(247,198,95,0.14) !important; }
.footer-social-link:hover {
  color: var(--cg-gold) !important;
  border-color: rgba(247,198,95,0.38) !important;
  background: rgba(247,198,95,0.08) !important;
  box-shadow: var(--cg-glow-sm) !important;
}

/* ── CTA SECTION ── */
.cta-section {
  background: linear-gradient(135deg, rgba(247,198,95,0.06), rgba(0,212,170,0.04)) !important;
  border-color: rgba(247,198,95,0.24) !important;
  box-shadow: 0 0 80px rgba(247,198,95,0.06) inset, 0 0 40px rgba(247,198,95,0.04) !important;
}

/* ── MOBILE ── */
@media (max-width: 920px) {
  .navbar-menu a.active { color: var(--cg-gold) !important; background: rgba(247,198,95,0.06) !important; }
  .navbar-menu a:hover  { color: var(--cg-gold) !important; background: rgba(247,198,95,0.05) !important; }
}

/* ═══════════════════════════════════════
   FIX MOBILE DEFINITIVO v2 — anti-tilt / anti-shrink / anti-overflow
   ═══════════════════════════════════════ */
@media (max-width: 768px) {
  /* BLOCCO TOTALE overflow orizzontale */
  html {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
  }
  body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
  }

  /* Disabilita body::before animato — causa "tilt" e distorsioni su mobile */
  body::before {
    display: none !important;
    content: none !important;
    animation: none !important;
  }

  /* Nasconde canvas particelle su mobile per performance */
  #cg-canvas { display: none !important; }

  /* Rimuove hover-transform pesanti su touch (no 3D transforms) */
  .btn-primary:hover, .btn-gold:hover, .btn-download:hover,
  .btn-secondary:hover, .btn:hover,
  .card:hover, .feature-card:hover, .product-card:hover,
  .protocol-card:hover, .testimonial-card:hover,
  .blog-card:hover, .navbar-cta:hover {
    transform: none !important;
    filter: none !important;
  }

  /* Griglia hero: evita elementi che escono dal viewport */
  .hero-grid, .ig-hero-grid, .bg-grid { display: none !important; }

  /* Tutti i contenitori rispettano il viewport.
     USA overflow-x:clip invece di hidden:
     - clip non crea stacking context
     - non blocca position:absolute dei figli (ring, ticker)
     - previene ugualmente l'overflow orizzontale visibile */
  .container, .navbar-inner, footer, header {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  section {
    max-width: 100% !important;
    box-sizing: border-box !important;
    /* NO overflow:hidden qui — bloccherebbe ring rotante e ticker */
  }

  /* ── FIX RING ROTANTE su mobile ──
     Il ring è position:absolute fuori dal wrapper di 28px su ogni lato.
     Su mobile il wrapper deve avere overflow:visible per non tagliare il ring.
     html/body hanno overflow-x:hidden e catturano l'eccesso. */
  .hero-image-wrapper {
    overflow: visible !important;
  }
  /* Forza ripartenza dell'animazione su mobile (alcuni browser la sospendono) */
  .hero-image-ring {
    animation: ring-rotate 6s linear infinite !important;
    will-change: transform !important;
  }
  .hero-image-glow {
    animation: glow-pulse 3s ease-in-out infinite !important;
  }

  /* ── FIX SECTION-TITLE fuori schermo su mobile ──
     drop-shadow() su background-clip:text crea un box invisibile più largo del testo
     su Chrome/Android, causando overflow orizzontale.
     Soluzione: rimuoviamo filter su mobile, manteniamo il gradient text. */
  .section-title {
    filter: none !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
  }
  .text-gradient {
    filter: none !important;
    word-break: break-word !important;
  }

  /* ── FIX TICKER FERMO su mobile ──
     Il ticker usa transform:translateX(0 → -50%).
     Su mobile alcuni browser non avviano animazioni su elementi fuori viewport.
     Forziamo animation-play-state:running e riduciamo durata per
     compensare la larghezza ridotta dello schermo. */
  #hero-ticker {
    overflow: hidden !important;
  }
  #hero-ticker-track {
    animation: ticker-scroll 16s linear infinite !important;
    animation-play-state: running !important;
    will-change: transform !important;
  }

  /* Griglia layout blog: forza 1 colonna */
  .blog-layout {
    grid-template-columns: 1fr !important;
  }
  aside { display: none; } /* Sidebar blog nascosta su mobile */

  /* Navbar cta no overflow */
  .navbar-menu { box-sizing: border-box !important; }
}

@media (max-width: 600px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
  }
  #cg-canvas { display: none !important; }
  body::before { display: none !important; content: none !important; animation: none !important; }
  .hero-grid, .ig-hero-grid, .bg-grid { display: none !important; }
  .btn-primary:hover, .btn-gold:hover, .btn-download:hover,
  .btn:hover { transform: none !important; filter: none !important; }
  /* Tutti gli elementi: box-sizing sicuro */
  *, *::before, *::after { box-sizing: border-box !important; }

}

@media (prefers-reduced-motion: reduce) {
  #cg-canvas { display: none !important; }
  body::before { display: none !important; content: none !important; animation: none !important; }
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
