/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* ==========================================================
   VARIABILI DI SUPPORTO
   Le variabili colore piene (--verdeForesta, --neroRuggtek, ecc.)
   sono già generate globalmente dal Kit Elementor (post-7.css) e
   disponibili su tutto il sito. Qui aggiungiamo solo le terne RGB
   equivalenti, necessarie per usare rgba() con opacità mantenendo
   il riferimento alla variabile invece di hex hardcoded.
   Tabella riferimento (design system v01):
   --verdeForesta   #2d5540
   --neroRuggtek    #282a28
   --terracotta     #b85c38
   --biancoCaldo    #faf8f4
   --verdeChiaro    #9abfac
   --verdeMedio     #5a8c6e
   ========================================================== */
:root {
  --verdeForesta-rgb: 45, 85, 64;
  --neroRuggtek-rgb: 40, 42, 40;
  --terracotta-rgb: 184, 92, 56;
  --biancoCaldo-rgb: 250, 248, 244;
  --verdeChiaro-rgb: 154, 191, 172;

  /* Griglia spaziature 4pt — dichiarate ora, non ancora usate nei
     valori sotto (padding/gap/margin restano invariati in questo
     giro). Migrazione ai token da fare pagina per pagina. */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --space-32: 128px;
}

/* --------- utility */

/* ==========================================================
   PULSANTI
   Font, colore testo, padding, border-radius: gestiti da
   Elementor → Impostazioni del sito → Pulsanti (default globale).
   Qui solo le regole per le varianti secondarie e le eccezioni
   che il pannello non gestisce (ombra, transizione).
   ========================================================== */

.elementor-button:hover {
  filter: brightness(1.1);
}
.cta-btn-secondary .elementor-button:hover,
.cta-btn-secondary-solid .elementor-button:hover,
.cta-btn-secondary-dark .elementor-button:hover {
  filter: none;
}

.cta-btn-secondary .elementor-button {
  background-color: transparent !important;
  border: 1.5px solid rgba(var(--biancoCaldo-rgb), 0.6) !important;
}

.cta-btn-secondary .elementor-button:hover {
  border-color: var(--biancoCaldo, #faf8f4) !important;
  background: rgba(var(--biancoCaldo-rgb), 0.1) !important;
}

.cta-btn-secondary-solid .elementor-button {
  background-color: var(--verdeForesta, #2d5540) !important;
}

.cta-btn-secondary-solid .elementor-button:hover {
  background-color: var(--verdeMedio, #5a8c6e) !important;
}

.cta-btn-secondary-dark .elementor-button {
  background-color: transparent !important;
  border: 2px solid var(--verdeForesta, #2d5540) !important;
  color: var(--verdeForesta, #2d5540) !important;
  padding: 10px 26px !important;
}

.cta-btn-secondary-dark .elementor-button:hover {
  background-color: var(--verdeForesta, #2d5540) !important;
  color: var(--biancoCaldo, #faf8f4) !important;
  border-color: var(--verdeForesta, #2d5540) !important;
}

.btn-testo-link .elementor-button {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
}
.btn-testo-link .elementor-button:hover {
  background-color: transparent !important;
  box-shadow: none !important;
}

.btn-testo-link .elementor-button .elementor-button-content-wrapper {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.btn-testo-link .elementor-button .elementor-button-text {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: clamp(12.5px, 0.2vw + 12px, 13.5px);
  line-height: 1;
  color: var(--verdeForesta, #2d5540);
  border-bottom: 1px solid rgba(var(--verdeForesta-rgb), 0.3);
  padding-bottom: 2px;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.btn-testo-link .elementor-button .elementor-button-icon {
  transition: transform 0.2s ease;
}

.btn-testo-link .elementor-button .elementor-button-icon i {
  color: var(--verdeForesta, #2d5540);
  transition: color 0.2s ease;
}

.btn-testo-link .elementor-button:hover .elementor-button-text {
  color: var(--terracotta, #b85c38);
  border-bottom-color: rgba(var(--terracotta-rgb), 0.4);
}

.btn-testo-link .elementor-button:hover .elementor-button-icon i {
  color: var(--terracotta, #b85c38);
}

.btn-testo-link .elementor-button:hover .elementor-button-icon {
  transform: translateY(2px);
}

.hide {
  display: none !important;
  visibility: hidden !important;
}

/*--------- mega menu */
.megamenu-prodotti .cat-source-image {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.megamenu-prodotti .cat-display-image img {
  opacity: 1;
  transition: opacity 0.35s ease-in-out;
}

.megamenu-prodotti .cat-display-image img.is-fading {
  opacity: 0;
}

/* --------- modulo iscrizione NL */
.elementor-form .elementor-field-type-acceptance {
  order: 2;
}

.elementor-form .elementor-field-type-submit {
  order: 1;
}

.elementor-form div.elementor-field-type-acceptance.elementor-field-group-field_a7618f7 .elementor-field-option > label {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  font-size: clamp(0.6875rem, 0.2vw + 0.65625rem, 0.8125rem);
  color: rgba(var(--biancoCaldo-rgb), 0.75);
  line-height: 1.5;
}

/* --------- liste icone - animazione */
.icon-list-anim .elementor-icon-list-item {
  align-items: center;
}

.icon-list-anim .elementor-icon-list-icon {
  transition: transform 0.15s ease;
}

.icon-list-anim .elementor-icon-list-item a:hover .elementor-icon-list-icon {
  transform: translateX(3px);
}

.icon-list-anim .elementor-icon-list-item a:hover .elementor-icon-list-text {
  color: var(--biancoCaldo, #faf8f4);
  transition: color 0.15s ease;
}

/* --------- carosello glass */
.carousel-track {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.carousel-track::-webkit-scrollbar {
  display: none;
}

/* .swiper-slide[data-swiper-slide-index="0"].swiper-slide-active {
  margin-left: calc((100% - 1320px) / 2);
} */

/* --------- carosello glass jet listing */
.carousel-track .jet-listing-grid__item {
  width: 46% !important;
  flex: 0 0 46% !important;
}

/* --------- navigazione caroselli glass */
.pagination-glass .jet-engine-swiper-pagination-wrapper,
.pagination-glass .swiper-pagination {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 20px;
  width: fit-content !important;
  height: auto;
  margin: 20px auto 0;
  background: rgba(var(--verdeChiaro-rgb), 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(var(--verdeChiaro-rgb), 0.5);
  border-radius: 24px;
  position: static !important;
  left: auto !important;
  transform: none !important;
}

.pagination-glass .swiper-pagination-bullet {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(var(--verdeForesta-rgb), 0.5);
  opacity: 1 !important;
  margin: 0 !important;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.pagination-glass .swiper-pagination-bullet-active {
  width: 32px;
  background: var(--terracotta, #b85c38) !important;
  border-radius: 12px;
}

.pagination-glass.elementor-widget-loop-carousel {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* --------- carosello GSAP */
.gsap-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 20px;
}

.gsap-track > * {
  flex: 0 0 auto;
}

.gsap-pin-section,
.gsap-track {
  transition: none !important;
}

.gsap-track .e-loop-item:last-child .cat-card {
  margin-right: calc((100% - 1320px) / 2);
}

/* --------- navigazione caroselli GSAP */
.gsap-dots-wrap,
.gsap-dots-wrap-galleria {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 24px;
  width: fit-content;
  margin: 24px auto 0;
  background: rgba(var(--verdeChiaro-rgb), 0.4);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(var(--verdeChiaro-rgb), 0.5);
  border-radius: 26px;
}

.gsap-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(var(--verdeForesta-rgb), 0.5);
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.5s cubic-bezier(0.4, 0, 0.2, 1),
    border-radius 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
}

.gsap-dot.active {
  width: 40px;
  background: var(--terracotta, #b85c38);
  border-radius: 13px;
}

/* --------- loop settori ===========================================
   SEZIONE NON TOCCATA su richiesta esplicita: lavoro già fatto e
   validato in precedenza. Unica eccezione: refuso tecnico corretto
   sotto (letter-spacing senza unità, ignorato dal browser) — nessun
   colore, dimensione o altro valore di questa sezione è stato
   modificato.
   =================================================================== */
.settori-list {
  counter-reset: settore-counter;
}

.settore-item {
  counter-increment: settore-counter;
  cursor: pointer;
  display: flex;
  align-items: baseline;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(250, 248, 244, 0.1);
  transition: padding-left 0.3s ease;
}

.settore-item:hover {
  padding-left: 12px;
}

.settore-item:first-child {
  padding-top: 0;
}

.settore-item .num {
  font-size: 0;
}

.settore-item .num::before {
  content: counter(settore-counter, decimal-leading-zero);
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: rgba(154, 191, 172, 0.65);
  min-width: 32px;
  display: inline-block;
  transition: color 0.3s ease;
}

.settore-item:hover .num::before,
.settore-item.active .num::before {
  color: #9abfac;
}

.settore-nome .elementor-heading-title {
  font-size: clamp(1.9rem, 2.8vw, 3.2rem) !important;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: 0.015em;
  text-transform: uppercase;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: rgba(250, 248, 244, 0.7);
  paint-order: stroke fill;
  transition: -webkit-text-fill-color 0.3s ease, -webkit-text-stroke-color 0.3s ease;
}

.settore-item.active .settore-nome .elementor-heading-title,
.settore-item:hover .settore-nome .elementor-heading-title {
  -webkit-text-fill-color: #faf8f4 !important;
  -webkit-text-stroke-color: #faf8f4;
}

.settore-arrow i {
  font-size: 1.6rem;
  font-weight: 700;
  color: #d97b52;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  transform: translateX(-10px);
  text-shadow: 0 0 1px currentColor;
}

.settore-item.active .settore-arrow i,
.settore-item:hover .settore-arrow i {
  opacity: 1;
  transform: translateX(0);
}

.settore-arrow {
  margin-left: auto;
}

.settore-source-image,
.settore-source-video,
.settore-video-widget {
  display: none;
}

/* --------- carosello referenze */
.clienti-riga-1 .elementor-loop-container,
.clienti-riga-2 .elementor-loop-container {
  display: flex !important;
  flex-wrap: nowrap;
  width: max-content;
  gap: 0;
}

.clienti-riga-1 .elementor-loop-container > *,
.clienti-riga-2 .elementor-loop-container > * {
  flex-shrink: 0;
}

.referenza-logo-img img {
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

.referenza-logo-img:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/* --------- Scorrimento infinito, direzioni opposte, pausa su hover riga */
.clienti-riga-1 .elementor-loop-container {
  animation: clientiScrollLeft 46s linear infinite;
}
.clienti-riga-2 .elementor-loop-container {
  animation: clientiScrollRight 40s linear infinite;
}

.clienti-riga-1:hover .elementor-loop-container,
.clienti-riga-2:hover .elementor-loop-container {
  animation-play-state: paused;
}

.marquee-static {
  animation: none !important;
}

@keyframes clientiScrollLeft {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes clientiScrollRight {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}

/* --------- card casi studio home */
.case-study-col,
.case-study-col .elementor-widget-loop-grid,
.case-study-col .elementor-widget-container,
.case-study-col .elementor-loop-container,
.case-study-col .e-loop-item {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  height: auto !important;
}

.case-study-col .case-hero-card {
  flex: 1 1 auto !important;
}

/* --------- scheda prodotto */
.hero-photo-shadow img {
  filter: drop-shadow(0 20px 30px rgba(var(--neroRuggtek-rgb), 0.25));
}

.pilloleSettoriProdotto .jet-listing-dynamic-terms__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.pilloleSettoriProdotto .jet-listing-dynamic-terms__link::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--verdeForesta, #2d5540);
  flex-shrink: 0;
}

/* --------- slider galleria immagini prodotto */
.gsap-track-galleria .jet-listing-grid,
.gsap-track-galleria .jet-listing-grid > .jet-listing-grid__items {
  display: flex !important;
  flex-wrap: nowrap !important;
}

.gsap-track-galleria {
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
}

.gsap-track-galleria > * {
  flex: 0 0 auto;
}

.gsap-pin-section-galleria,
.gsap-track-galleria {
  transition: none !important;
}

.gsap-track-galleria .jet-listing-grid__item:last-child {
  margin-right: calc((100% - 1320px) / 2);
}

.gsap-track-galleria .jet-listing-grid__item {
  width: 700px !important;
  flex: 0 0 700px !important;
}

.gsap-track-galleria .jet-listing-grid__item img {
  width: 100%;
  height: auto;
  display: block;
}

/* --------- prodotto - sezione features */
.feature-photo-panel-a,
.feature-photo-panel-b {
  aspect-ratio: 1290 / 1520;
  overflow: hidden;
  box-shadow: inset 0 2px 8px rgba(var(--neroRuggtek-rgb), 0.06);
  border: 1px solid rgba(var(--neroRuggtek-rgb), 0.06);
}

.feature-photo-img {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.feature-photo-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 12px 16px rgba(20, 20, 20, 0.25));
}

/* --------- prodotto - accordion */
.accordion-header {
  cursor: pointer;
}

.accordion-icon {
  transition: transform 0.3s ease;
}

.accordion-item.open .accordion-icon {
  transform: rotate(180deg);
}

.accordion-item {
  border-bottom: 1px solid rgba(var(--neroRuggtek-rgb), 0.12);
}

.spec-row {
  border-bottom: 1px solid rgba(var(--neroRuggtek-rgb), 0.08);
}

.accordion-content .spec-row:last-child {
  border-bottom: none;
}

.cert-icons-row {
  border-top: 1px solid rgba(var(--neroRuggtek-rgb), 0.08);
}

.cert-item {
  width: auto !important;
  flex: 0 0 auto !important;
}

.cert-icon img {
  width: 48px !important;
  height: 48px !important;
  object-fit: contain !important;
}

.specs-photo-panel {
  aspect-ratio: 1200 / 1600;
  box-shadow: inset 0 2px 8px rgba(var(--neroRuggtek-rgb), 0.06);
}

.specs-photo-img img {
  transition: opacity 0.35s ease;
}
.specs-photo-img img.is-fading {
  opacity: 0;
}

.accordion-content {
  flex-wrap: nowrap !important;
  padding-bottom: 0;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), 
              padding-bottom 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-item.is-open .accordion-content {
  padding-bottom: 18px;
}

.accordion-header {
  cursor: pointer;
}

.accordion-icon .elementor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  line-height: 1;
  transform-origin: 50% 50%;
  transition: transform 0.3s ease;
}

.accordion-item.is-open .accordion-icon .elementor-icon {
  transform: rotate(45deg);
}

.accordion-icon i:before {
  color: var(--neroRuggtek, #282a28);
}

.accordion-item.is-open .accordion-icon i:before {
  color: var(--terracotta, #b85c38);
}

.accordion-title {
  transition: color 0.3s ease;
}

.accordion-item.is-open .accordion-title {
  color: var(--verdeForesta, #2d5540);
}

.specs-photo-panel {
  aspect-ratio: 1200 / 1600;
  box-shadow: inset 0 2px 8px rgba(var(--neroRuggtek-rgb), 0.06);
}

.specs-photo-img img {
  transition: opacity 0.35s ease;
}

.specs-photo-img img.is-fading {
  opacity: 0;
}

/* --------- scheda prodotto - accessori */
.access-thumb-frame {
  width: 100px !important;
  min-width: 100px !important;
  max-width: 100px !important;
  height: 100px !important;
  min-height: 100px !important;
  flex: 0 0 100px !important;
}

/* =========== RESPONSIVE — min 1025px =========== */
@media (min-width: 1025px) {
  .settori-bg .elementor-background-video-container {
    display: none !important;
  }
}

/* =========== RESPONSIVE — max 1024px =========== */
@media (max-width: 1024px) {
  /*--------- mega menu */
  .megamenu-prodotti .cat-display-box {
    display: none;
  }

  .megamenu-prodotti .cat-source-image {
    position: static;
    width: 30%;
    height: auto;
    opacity: 1;
  }

  .jet-mobile-menu__container-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .jet-mobile-menu__body {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
  }

  .jet-mobile-menu__after-template {
    flex-shrink: 0;
    margin-top: auto;
  }

  /* --------- disattivare mouse track in hero home */
  .hero-bg-mousetrack {
    transform: none !important;
  }

  /* --------- caroselli glass Home - allineamento prima slide */
  .pagination-glass > div.swiper {
    margin-left: 32px;
  }

  /* --------- caroselli glass Galleria prodotto (Jet Listing) - allineamento fisso al bordo */
  .carousel-track .jet-listing-grid__slider {
    padding-left: calc(32px - var(--swiper-space-between, 20px) / 2) !important;
    box-sizing: border-box;
  }

  /* --------- caroselli glass Galleria prodotto - larghezza slide (2 + inizio terza) */
  .carousel-track .jet-listing-grid__item {
    width: 46% !important;
    flex: 0 0 46% !important;
  }

  /* --------- settori home (invariato) */
  .settore-item {
    padding: 14px 0;
    gap: 16px;
  }

  .settore-nome .elementor-heading-title {
    font-size: clamp(1.4rem, 3.5vw, 2.2rem);
  }

  .settore-arrow {
    display: none;
  }

  /* --------- casi studio e referenze home */
  .case-study-col .case-hero-card {
    flex: none !important;
    min-height: 420px !important;
  }

  /* --------- accordion pagine prodotti singoli */
  .specs-photo-panel {
    width: 100% !important;
    aspect-ratio: unset;
    max-height: 320px;
  }

  .specs-accordion-col {
    width: 100% !important;
  }

  .specs-photo-img img {
    max-height: 320px;
    object-fit: contain;
  }

  .spec-row {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
  }

  .spec-row > .elementor-widget-text-editor:first-child {
    flex: 0 0 45% !important;
    max-width: 45% !important;
  }

  .spec-row > .elementor-widget-text-editor:last-child {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    text-align: right !important;
    white-space: normal !important;
    word-break: break-word;
  }
}

/* =========== RESPONSIVE — max 767px =========== */
@media (max-width: 767px) {
  /* --------- modulo iscrizione NL */
  .elementor-form .elementor-field-type-acceptance {
    order: 1;
  }

  .elementor-form .elementor-field-type-submit {
    order: 2;
  }

  /* --------- caroselli glass Home - navigazione e allineamento prima slide */
  .pagination-glass .swiper-pagination {
    padding: 12px 18px;
    gap: 10px;
    margin-top: 16px;
  }

  .pagination-glass .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }

  .pagination-glass .swiper-pagination-bullet-active {
    width: 26px;
  }

  .pagination-glass > div.swiper {
    margin-left: 24px;
  }

  /* --------- caroselli glass Galleria prodotto (Jet Listing) - allineamento fisso al bordo */
  .carousel-track .jet-listing-grid__slider {
    padding-left: calc(24px - var(--swiper-space-between, 20px) / 2) !important;
  }

  /* --------- caroselli glass Galleria prodotto - larghezza slide (1 + inizio seconda) */
  .carousel-track .jet-listing-grid__item {
    width: 85% !important;
    flex: 0 0 85% !important;
  }

  /* --------- settori home (invariato) */
  .settore-item {
    padding: 10px 0;
    gap: 10px;
    align-items: flex-start;
  }

  .settore-nome .elementor-heading-title {
    font-size: clamp(1.1rem, 5vw, 1.6rem);
  }

  .settore-item .num::before {
    font-size: 0.7rem;
    min-width: 24px;
    margin-top: 4px;
    display: inline-block;
  }

  /* --------- casi studio e referenze home */
  .case-study-col .case-hero-card {
    min-height: 520px !important;
  }

  /* --------- accordion pagine prodotti singoli */
  .specs-photo-panel {
    max-height: 260px;
  }

  .specs-photo-img img {
    max-height: 260px;
  }

  .cert-icon img {
    width: 42px !important;
    height: 42px !important;
  }
}