/* dc-runtime.css — fallback e stati finali per i temi generati dalla pipeline.
   Senza JS (html senza classe .js) tutto è visibile allo stato finale. */
html:not(.js) [data-reveal] { opacity: 1 !important; transform: none !important; }
html:not(.js) [data-clip] { clip-path: none !important; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
  [data-clip] { clip-path: none !important; transition: none !important; }
  [data-parallax] { transform: none !important; }
}

/* blocco scroll quando il menu overlay è aperto */
html.dc-menu-open, html.dc-menu-open body { overflow: hidden; }

/* ---- menu hamburger per header desktop-only (creato dal runtime) ----
   L'hamburger appare solo sotto il breakpoint; sopra, la nav resta orizzontale
   e l'hamburger è nascosto. Il pannello eredita il fondo dell'header. */
.dc-hamburger { display: none; }
@media (max-width: 991px) {
  /* l'header è già sticky/relative (layer responsivo): è il contesto di
     posizionamento del pannello, non serve forzare position qui */
  header.dc-mnav .dc-hamburger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 30px; height: 30px; padding: 4px; margin-left: auto;
    background: none; border: 0; cursor: pointer; color: inherit; flex: 0 0 auto;
  }
  header.dc-mnav .dc-hamburger span {
    display: block; height: 2px; width: 100%; border-radius: 2px;
    background: currentColor; transition: transform .25s ease, opacity .2s ease;
  }
  /* il menu (voci + CTA) diventa un pannello a scomparsa sotto l'header;
     il logo resta visibile nella barra */
  header.dc-mnav .dc-mnav-box {
    position: absolute; top: 100%; left: 0; right: 0;
    display: none !important; flex-direction: column; align-items: stretch;
    gap: 8px; padding: 18px 24px 24px;
    background: inherit; border-top: 1px solid rgba(255,255,255,0.12);
    box-shadow: 0 24px 48px rgba(0,0,0,0.28); max-height: 80vh; overflow-y: auto;
  }
  header.dc-mnav.dc-mnav-open .dc-mnav-box { display: flex !important; }
  /* impila voci e CTA in verticale, a piena larghezza */
  header.dc-mnav.dc-mnav-open .dc-mnav-box > *,
  header.dc-mnav.dc-mnav-open .dc-mnav-box > * > * {
    flex-direction: column !important; align-items: stretch !important; width: 100% !important; max-width: none !important;
  }
  header.dc-mnav.dc-mnav-open .dc-mnav-box a { padding: 10px 2px; white-space: normal; }
  header.dc-mnav.dc-mnav-open .dc-hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  header.dc-mnav.dc-mnav-open .dc-hamburger span:nth-child(2) { opacity: 0; }
  header.dc-mnav.dc-mnav-open .dc-hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  /* iOS FIX: sotto il breakpoint il layer responsivo rende la nav scrollabile-x
     (-webkit-overflow-scrolling:touch); su Safari iOS quel contesto CLIPPA il
     pannello assoluto del menu → l'hamburger diventa X ma le voci non compaiono
     (su Chrome/desktop non accade: il bug è solo su iPhone). In modalità
     hamburger la nav non deve scrollare (le voci stanno nel pannello), quindi
     si azzera l'overflow e si alza lo z-index: il pannello non viene tagliato. */
  header.dc-mnav nav { overflow: visible !important; }
  header.dc-mnav .dc-mnav-box { z-index: 90; }
}
