/**
 * Disabilita tutti gli effetti di entrata: header, hero, navbar, scroll reveal.
 * I contenuti sono visibili subito senza animazioni.
 */

/* Loader: nascosto da subito, nessuna animazione di caricamento (non blocca la vista) */
.c-loader.js-loader {
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

/* Navbar: visibile subito, nessun effetto di entrata (GSAP anima y/opacity; override forzato) */
.c-navbar *,
.js-navbar * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
.c-navbar,
.js-navbar {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Navbar: in flusso documento su tutte le pagine (blocco sopra, contenuto sotto — non fixed sopra al contenuto) */
.c-navbar.js-navbar {
  position: relative !important;
}

/* Archivio prodotti: tema usa padding-top:110px su .o-main-single--chooser per navbar fixed; con navbar in flusso va a 0 */
.o-main-single--chooser {
  padding-top: 0 !important;
}

/* Hero: visibile subito */
.c-hero,
.c-hero__content,
.c-hero__content *,
.c-hero__image,
.c-hero__image *,
.hero-home,
.hero-home *,
.js-hero-h {
  opacity: 1 !important;
  transform: none !important;
}

/* Titolo/sottotitolo hero: GSAP (loadAnimation) anima y/opacity su desktop — niente entrata */
.c-hero__title,
.c-hero__subtitle {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* Overlay sopra l’immagine hero: deve restare a .6 (tema), non 1 come gli altri figli di .c-hero__image */
.c-hero__image-overlay {
  opacity: 0.6 !important;
}

/* Contenuto hero: centrato in orizzontale e verticale nel box (il blocco sopra azzerava transform sul .c-hero__content) */
.c-hero .c-hero__content {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  text-align: center !important;
}

/*
 * Slider Revolution dentro .c-hero: non usare più `.js-hero-h * { transform:none }`:
 * RS6 usa transform su slide/layer; annullarlo su tutti i discendenti fa overlap / “margine negativo”.
 */

/* Elementi data-scroll: visibili senza reveal allo scroll */
[data-scroll] {
  opacity: 1 !important;
  transform: none !important;
}
[data-scroll] * {
  opacity: 1 !important;
  /* Important: non forziamo transform sui discendenti,
     alcuni componenti (es. Flickity) usano transform per gestire lo slider. */
}

/* Main e content: visibili subito (nessun fade-in) */
main,
.o-main-home,
.content {
  opacity: 1 !important;
  transform: none !important;
}

.o-main-home *,
.content * {
  opacity: 1 !important;
}

/* Product-chooser: solo opacità (NON transform: le slide usano transform per Flickity!) */
.c-product-chooser__container {
  opacity: 1 !important;
  transform: none !important;
}

/* Blocchi principali usati per animazioni */
.c-main-info-block,
.c-main-info-block *,
.c-full-info-block,
.c-full-info-block *,
.c-certifications-slider__container,
.c-certifications-slider__container *,
.c-ch-preview-slider__container,
.c-ch-preview-slider__container *,
.o-contact-hero,
.o-contact-hero * {
  opacity: 1 !important;
}

/* Disabilita transizioni e animazioni CSS (esclusi .c-product-chooser__slide) */
.c-navbar,
.c-hero,
.c-hero__title,
.c-hero__subtitle,
.hero-home,
main,
.o-main-home,
[data-scroll],
.c-main-info-block,
.c-full-info-block {
  animation: none !important;
  transition: none !important;
}

/* CLS: product-chooser - layout orizzontale da subito (prima che Flickity carichi) */
.c-product-chooser__content-zone {
  overflow: hidden;
}
.js-product-chooser-slider:not(.flickity-enabled) {
  display: flex;
  flex-wrap: nowrap;
}
.js-product-chooser-slider:not(.flickity-enabled) .c-product-chooser__slide {
  flex: 0 0 auto;
  min-width: 180px;
}

/* Main info block: niente fade/transition anche sulle slide Flickity */
.c-main-info-block,
.c-main-info-block *,
.c-main-info-block .flickity-slider,
.c-main-info-block .flickity-viewport {
  opacity: 1 !important;
  animation: none !important;
  transition: none !important;
}

/* Main info block: neutralizza le animazioni di testo/CTA usate da GSAP */
.c-main-info-block__top-claim,
.c-main-info-block__claim,
.c-main-info-block__title,
.c-main-info-block__subtitle,
.c-main-info-block__text,
.c-main-info-block__cta {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* Main info block: per media-slice NON forziamo transform,
   altrimenti resta “in mezzo” e copre l'immagine (comportamento che hai visto come sezione vuota). */
.c-main-info-block__media-slice,
.c-main-info-block__next {
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
}

/* CLS: icone categorie - riserva spazio (aspect-ratio) prima del caricamento */
.sezione_categorie .immagine_categoria {
  /* Evita che il contenitore diventi un quadrato enorme:
     l'altezza deve seguire l'immagine, non la larghezza. */
  aspect-ratio: auto !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.sezione_categorie .immagine_categoria img{
  display: block;
  height: auto;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

/* Accessibility + layout categorie: riduci lo spazio tra immagine e titolo */
.sezione_categorie .single_categoria{
  gap: 0.05rem !important;
}
.sezione_categorie .single_categoria .immagine_categoria{
  margin: 0 !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
}
.sezione_categorie .single_categoria > a{
  display: inline-block;
  margin: 0 !important;
  padding: 0 !important;
  color: #0b2a4a !important; /* testo più scuro */
  font-weight: 600 !important;
  line-height: 1.15 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.sezione_categorie .single_categoria > a,
.sezione_categorie .single_categoria > a *{
  line-height: 1 !important;
}

/* Modale ricerca: nascosto al caricamento, visibile solo al click su ricerca */
.o-search__main-layer {
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}
body.is-search-open .o-search__main-layer {
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 999 !important;
}

/* Mobile nav: evita blocchi di scroll dopo apertura/chiusura hamburger */
html.is-nav-open,
body.is-nav-open {
  overflow: hidden !important;
}
html:not(.is-nav-open),
body:not(.is-nav-open) {
  overflow: auto !important;
  height: auto !important;
  max-height: none !important;
  position: static !important;
}

/* Mobile nav UX: dimensioni X + chevrons più piccole */
@media (max-width: 1023px) {
  .c-navbar-mobile__close,
  .c-navbar-mobile__submenu-close {
    position: relative;
    width: 34px;
    height: 34px;
  }

  .c-navbar-mobile__close span,
  .c-navbar-mobile__submenu-close span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 2px;
    background: #6b6b6b;
    border-radius: 2px;
    transform-origin: center;
  }

  .c-navbar-mobile__close span:first-child,
  .c-navbar-mobile__submenu-close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .c-navbar-mobile__close span:last-child,
  .c-navbar-mobile__submenu-close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .c-nav-mobile__main-link.js-nav-mobile-toggle-sub-link {
    position: relative;
    padding-right: 2.2rem !important;
  }

  .c-nav-mobile__main-link.js-nav-mobile-toggle-sub-link::after {
    content: "";
    position: absolute;
    right: 1.05rem;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #6b6b6b;
    border-bottom: 2px solid #6b6b6b;
    transform: translateY(-60%) rotate(45deg);
    pointer-events: none;
  }

  /* Hamburger .c-navbar__toggle: tema usa #fff / #000; blu brand Pesage; linee 1px alte */
  .c-navbar__toggle span,
  .c-navbar.is-scroll .c-navbar__toggle span,
  .c-navbar.is-product .c-navbar__toggle span {
    height: 1px !important;
    background-color: #004387 !important;
  }
}

/*
 * Home: Tema applica .c-hero { height: 70vh } — override per lasciare le dimensioni a RS.
 * Mobile: rs-fullwidth-wrap può essere più alto del contenuto visibile (slide 234px, wrap 468px)
 * → crea il "margine sotto". Limitiamo il wrap all'altezza effettiva del modulo.
 */
body.home .c-hero--home,
body.page-template-page-home .c-hero--home,
body.front-page .c-hero--home,
#page-wrap .l-site-container[data-namespace="home"] .c-hero--home {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

@media (max-width: 1023px) {

  /* Mobile: rs-fullwidth-wrap spesso ha height inline > slide visibile → gap sotto */
  #page-wrap .l-site-container[data-namespace="home"] .c-hero--home rs-fullwidth-wrap {
    height: auto !important;
    min-height: 0 !important;
  }

  #page-wrap .l-site-container[data-namespace="home"] .c-hero--home rs-module-wrap {
    position: relative !important;
    top: auto !important;
  }

  /* Product Chooser commentato: il tema mette padding-top 80px su o-main-home */
  body.home .o-main-home,
  body.page-template-page-home .o-main-home,
  body.front-page .o-main-home {
    padding-top: 0 !important;
  }
}

/* UX case-history: hover immagine deve attivare blu anche sul box sotto */
.sezione_case_history .wppsac-post-image-bg:hover ~ .wppsac-post-content-position,
.sezione_case_history .wppsac-carousel-slides .wppsac-post-image-bg:hover ~ .wppsac-post-content-position {
  background: #004387 !important;
  background-color: #004387 !important;
  color: #ffffff !important;
}
.sezione_case_history .wppsac-post-image-bg:hover ~ .wppsac-post-content-position *,
.sezione_case_history .wppsac-carousel-slides .wppsac-post-image-bg:hover ~ .wppsac-post-content-position * {
  color: #ffffff !important;
}

/*
 * Singolo Case History (single-case-history.php): niente transizioni/animazioni sulle immagini.
 * Fonti: hero; Flickity (case preview + main-info slider); GSAP scale su .c-main-info-block__image;
 * blocchi full-info / gallerie / contenuto ACF.
 */
/* Strato “slice” sopra img (txt_block, full-info): il tema lo mostra su ≥64em e GSAP lo sposta via.
   Con ScrollAnimations disattivato resta sopra l’immagine (bianco/grigio) → compare/sparisce. */
body.post-type-case-history .c-main-info-block__media-slice,
body.pesage-case-history-static-media .c-main-info-block__media-slice,
body.post-type-case-history .c-full-info-block__slice,
body.pesage-case-history-static-media .c-full-info-block__slice {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.single.post-type-case-history .c-hero,
body.single-case-history .c-hero {
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
}

body.single.post-type-case-history .c-hero__image,
body.single.post-type-case-history .c-hero__image-overlay,
body.single-case-history .c-hero__image,
body.single-case-history .c-hero__image-overlay {
  transition: none !important;
  animation: none !important;
  transition-property: none !important;
}

body.single.post-type-case-history .c-ch-preview-images-slider,
body.single.post-type-case-history .c-ch-preview-images-slider .flickity-viewport,
body.single.post-type-case-history .c-ch-preview-images-slider .flickity-slider,
body.single.post-type-case-history .c-ch-preview-images-slider .flickity-cell,
body.single.post-type-case-history .c-ch-preview-images-slider__image,
body.single.post-type-case-history .c-ch-preview-images-slider__image > div,
body.single-case-history .c-ch-preview-images-slider,
body.single-case-history .c-ch-preview-images-slider .flickity-viewport,
body.single-case-history .c-ch-preview-images-slider .flickity-slider,
body.single-case-history .c-ch-preview-images-slider .flickity-cell,
body.single-case-history .c-ch-preview-images-slider__image,
body.single-case-history .c-ch-preview-images-slider__image > div {
  transition: none !important;
  animation: none !important;
  transition-property: none !important;
  transition-duration: 0s !important;
}

body.single.post-type-case-history .c-ch-preview-slider__top-title,
body.single-case-history .c-ch-preview-slider__top-title {
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
  transform: translateX(-50%) !important;
}

body.single.post-type-case-history .c-ch-preview-slider__title,
body.single.post-type-case-history .c-ch-preview-slider__desc,
body.single.post-type-case-history .c-ch-preview-slider__cta,
body.single-case-history .c-ch-preview-slider__title,
body.single-case-history .c-ch-preview-slider__desc,
body.single-case-history .c-ch-preview-slider__cta {
  opacity: 1 !important;
  transition: none !important;
  animation: none !important;
  transform: none !important;
}

/* Flickity ovunque nel main (slider immagini txt_block, ecc.) */
body.single.post-type-case-history main .flickity-viewport,
body.single.post-type-case-history main .flickity-slider,
body.single.post-type-case-history main .flickity-cell,
body.single-case-history main .flickity-viewport,
body.single-case-history main .flickity-slider,
body.single-case-history main .flickity-cell {
  transition: none !important;
  animation: none !important;
  transition-property: none !important;
  transition-duration: 0s !important;
}

/* GSAP: scala iniziale su immagini main-info-block */
body.single.post-type-case-history .c-main-info-block__image,
body.single.post-type-case-history .c-main-info-block__image-slide img,
body.single-case-history .c-main-info-block__image,
body.single-case-history .c-main-info-block__image-slide img {
  transform: scale(1) !important;
  transition: none !important;
  animation: none !important;
}

body.single.post-type-case-history .c-full-info-block__panel-image,
body.single.post-type-case-history .c-full-info-block__image,
body.single.post-type-case-history .c-full-info-block__slice,
body.single-case-history .c-full-info-block__panel-image,
body.single-case-history .c-full-info-block__image,
body.single-case-history .c-full-info-block__slice {
  transition: none !important;
  animation: none !important;
}

body.single.post-type-case-history main img,
body.single.post-type-case-history main picture,
body.single.post-type-case-history main figure,
body.single-case-history main img,
body.single-case-history main picture,
body.single-case-history main figure {
  transition: none !important;
  animation: none !important;
}

/*
 * Dealer locator: il tema usa top:172px (desktop) / 118px (mobile) su mappa e sidebar
 * per la vecchia navbar fixed; con navbar in flusso quell’offset si somma all’header e crea un grande vuoto.
 * [data-namespace="dealer"] è stabile anche se lo slug della pagina non è "dealer" (body.dealer).
 */
.l-site-container[data-namespace="dealer"] .c-dealer__map-container,
.l-site-container[data-namespace="dealer"] .c-dealer__sidebar {
  top: 0 !important;
}

/* Mobile: CTA non sopra la mappa (tema: position absolute top:135px); flusso colonna sotto header */
@media only screen and (max-width: 63.9375em) {
  .l-site-container[data-namespace="dealer"] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
  }

  .l-site-container[data-namespace="dealer"] .c-dealer__result-toggle {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    flex: 0 0 auto;
    margin: 0 !important;
    z-index: 5;
  }

  .l-site-container[data-namespace="dealer"] .c-dealer__map-container {
    position: relative !important;
    flex: 1 1 auto;
    width: 100% !important;
    min-height: 280px;
    height: calc(100dvh - 175px) !important;
    max-height: none !important;
  }

  .l-site-container[data-namespace="dealer"] .c-dealer__sidebar-close {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0 !important;
    margin: 0;
    border: none;
    border-radius: 4px;
    font: inherit;
    color: #fff;
    background-color: #004387;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }

  .l-site-container[data-namespace="dealer"] .c-dealer__sidebar-close-x {
    font-size: 28px;
    line-height: 1;
    font-weight: 300;
  }
}

/*
 * Desktop: barra filtri .c-dealer__top-bar fissa in basso; mappa/sidebar senza offset top.
 * Altezza ~ come il tema (100vh − altezza header prevista dal layout originale).
 */
@media only screen and (min-width: 64em) {
  body.dealer .c-dealer__top-bar,
  .l-site-container[data-namespace="dealer"] .c-dealer__top-bar {
    top: auto !important;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10050;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.2);
  }

  body.dealer .c-dealer__map-container,
  .l-site-container[data-namespace="dealer"] .c-dealer__map-container {
    height: calc(100vh - 172px) !important;
  }

  /* Colonna lista: niente absolute/fixed (il tema usa fixed solo sotto ~1024px). */
  body.dealer .c-dealer__sidebar,
  .l-site-container[data-namespace="dealer"] .c-dealer__sidebar {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 380px;
    float: left;
    height: calc(100vh - 172px) !important;
    transform: none !important;
    z-index: auto;
  }
}

/* Singolo prodotto (single-product.php): niente margin-top sul mini-hero (tema: 178px per navbar fixed). */
body.single-product .c-small-hero {
  margin-top: 0 !important;
}

/* Singolo servizio (single-service.php): stesso override della navbar in flusso. */
body.single-service .c-small-hero {
  margin-top: 0 !important;
}

/* CPT «Servizi di taratura» (`servizi-taratura`): nessun template dedicato → usa `single.php`. */
body.single-servizi-taratura .c-small-hero {
  margin-top: 0 !important;
}

/*
 * Mega menu «Trouvez votre produit» (navbar top): il .c-navbar__submenu è sotto la riga logo/menu.
 * Il <li> è solo nella top bar: passando nel vuoto tra link e pannello il :hover si perde.
 * Ponte ::after + mentre il <li> è in hover la .c-navbar__top sta sopra .c-navbar__main (altrimenti il main “ruba” i pointer al ponte).
 */
.c-navbar__top .c-navbar__item.has-sub-menu {
  position: relative;
}

.c-navbar__top .c-navbar__item.has-sub-menu:hover::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: min(100vw, 960px);
  top: 100%;
  height: 180px;
  z-index: 1;
}

.c-navbar:has(.c-navbar__top .c-navbar__item.has-sub-menu:hover) .c-navbar__top {
  position: relative;
  z-index: 10050;
}

.c-navbar:has(.c-navbar__top .c-navbar__item.has-sub-menu:hover) .c-navbar__main {
  position: relative;
  z-index: 1;
}

.c-navbar__top .c-navbar__item.has-sub-menu .c-navbar__submenu {
  z-index: 2 !important;
}
