.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS */html {
  scroll-padding-top: 120px;
}
@media (max-width: 768px) {
  html {
    scroll-padding-top: 90px;
  }
}

/* ===== Palette light (2026-10-19) =====
   Le classi globali non si rigenerano via API (stesso problema di button-primary), quindi i valori light stanno qui. */
.elementor .text-gradient-accent {
  background-image: linear-gradient(90deg, #117E9E 0%, #37967B 50%, #5CAF57 100%);
}
.elementor .button-primary {
  color: #FFFFFF;
  background-color: transparent;
  background-image: linear-gradient(90deg, #117E9E 0%, #37967B 50%, #5CAF57 100%);
  box-shadow: 0px 4px 20px 0px rgba(12,37,94,.15);
}
/* Label (badge): outline, nessun effetto glass. Navy di default (sezioni chiare), bianche nei contenitori scuri (blocco sotto). */
.elementor .badge-glass,
.elementor .badge-outline {
  color: #0C255E;
  background-color: transparent;
  border-width: 1px;
  border-style: solid;
  border-color: #0C255E;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* Contenitori scuri: hero (grandi e piccole), CTA Section, Newsletter, card foto Solutions Grid, card con overlay.
   Se si crea un nuovo blocco scuro con label, aggiungere qui la sua classe. */
.elementor .e-1234cfb6-cf79 .badge-glass,
.elementor .e-1234cfb6-cf79 .badge-outline,
.elementor .e-13a31c9a-59f0 .badge-glass,
.elementor .e-13a31c9a-59f0 .badge-outline,
.elementor .e-1577b77b-48f0 .badge-glass,
.elementor .e-1577b77b-48f0 .badge-outline,
.elementor .e-283d756e-dcf7 .badge-glass,
.elementor .e-283d756e-dcf7 .badge-outline,
.elementor .e-2d471b50-bb70 .badge-glass,
.elementor .e-2d471b50-bb70 .badge-outline,
.elementor .e-2d4814a0-c010 .badge-glass,
.elementor .e-2d4814a0-c010 .badge-outline,
.elementor .e-3c8e5ec5-e889 .badge-glass,
.elementor .e-3c8e5ec5-e889 .badge-outline,
.elementor .e-53c127d9-74ec .badge-glass,
.elementor .e-53c127d9-74ec .badge-outline,
.elementor .e-589ade2a-5cea .badge-glass,
.elementor .e-589ade2a-5cea .badge-outline,
.elementor .e-5a1bae7d-451d .badge-glass,
.elementor .e-5a1bae7d-451d .badge-outline,
.elementor .e-62fa94e6-ed93 .badge-glass,
.elementor .e-62fa94e6-ed93 .badge-outline,
.elementor .e-65a8ecdb-a055 .badge-glass,
.elementor .e-65a8ecdb-a055 .badge-outline,
.elementor .e-74270110-8c3e .badge-glass,
.elementor .e-74270110-8c3e .badge-outline,
.elementor .e-76b8247d-5489 .badge-glass,
.elementor .e-76b8247d-5489 .badge-outline,
.elementor .e-67ab3d02-497b .badge-glass,
.elementor .e-67ab3d02-497b .badge-outline,
.elementor .e-7155dba-29b6 .badge-glass,
.elementor .e-7155dba-29b6 .badge-outline,
.elementor .e-64628d08-f58d .badge-glass,
.elementor .e-64628d08-f58d .badge-outline,
.elementor .e-3b36a2d7-836e .badge-glass,
.elementor .e-3b36a2d7-836e .badge-outline,
.elementor .e-65873d56-410e .badge-glass,
.elementor .e-65873d56-410e .badge-outline,
.elementor .e-5b59de89-7e92 .badge-glass,
.elementor .e-5b59de89-7e92 .badge-outline,
.elementor *:has(> .e-540585fd-d659) .badge-glass,
.elementor *:has(> .e-540585fd-d659) .badge-outline,
.elementor *:has(> .e-726d9cd5-1210) .badge-glass,
.elementor *:has(> .e-726d9cd5-1210) .badge-outline,
.elementor *:has(> .e-316270a5-730e) .badge-glass,
.elementor *:has(> .e-316270a5-730e) .badge-outline,
.elementor *:has(> .e-a189fe1-eda7) .badge-glass,
.elementor *:has(> .e-a189fe1-eda7) .badge-outline,
.elementor *:has(> .e-b9cff08-c53e) .badge-glass,
.elementor *:has(> .e-b9cff08-c53e) .badge-outline,
.elementor *:has(> .e-11ec6b2-29e6) .badge-glass,
.elementor *:has(> .e-11ec6b2-29e6) .badge-outline,
.elementor *:has(> .e-52d44e0d-8b37) .badge-glass,
.elementor *:has(> .e-52d44e0d-8b37) .badge-outline {
  color: #FFFFFF;
  border-color: #FFFFFF;
}
.elementor .dropdown-menu {
  box-shadow: 0px 10px 30px 0px rgba(12,37,94,.12);
}
/* Tutte le label (etichette maiuscole e badge) in grassetto */
html .elementor .label-uppercase,
html .elementor .badge-glass,
html .elementor .badge-outline {
  font-weight: 700;
}
/* Link di testo (paragrafi con link, link dentro i paragrafi, voci del footer): sempre #117E9E con sottolineatura, in ogni stato.
   Esclusi: pulsanti, menu dell'header, tendine, menu mobile, numero verde del footer (stile proprio). */
html .elementor :is(a.e-paragraph-link-base, p a, span.e-paragraph-base a):not(.button-primary):not(.button-ghost):not(.menu-item *):not(.dropdown-menu *):not(.js-mobile-menu *):not([data-id="7f989da9"] *),
html .elementor :is(a.e-paragraph-link-base, p a, span.e-paragraph-base a):not(.button-primary):not(.button-ghost):not(.menu-item *):not(.dropdown-menu *):not(.js-mobile-menu *):not([data-id="7f989da9"] *):is(:link, :visited, :hover, :active, :focus) {
  color: #117E9E;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
/* Effetto di ingresso delle hero con foto (pagine interne): la foto parte leggermente ingrandita e scura e si assesta; la label sale con una breve dissolvenza. Il titolo ha gia' l'animazione a lettere (js-text-reveal). Il selettore riconosce la struttura della hero (foto, due sfumature, contenuto con label): le altre immagini e la hero della Home (video) non sono coinvolte. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes hero-photo-in {
    from { transform: scale(1.08); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
  }
  @keyframes hero-label-in {
    from { transform: translateY(14px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
  }
  html .elementor div:has(+ div + div + div > :is(span, p).badge-glass) > img.e-image-base {
    animation: hero-photo-in 1.6s cubic-bezier(.16,.8,.3,1) both;
    transform-origin: center;
  }
  html .elementor :is(span, p).badge-glass:has(+ h1) {
    animation: hero-label-in .9s cubic-bezier(.16,.8,.3,1) .25s both;
  }
}
/* Divisori (bordi) dentro i blocchi con sfondo ghost-white: colore smoke #BDCBEC.
   Elenco generato dalla scansione delle pagine (2026-10-19): se si crea un nuovo blocco con sfondo e divisori, aggiungere qui la classe del divisore. */
html .elementor .e-10b390bd-7f97, html .elementor .e-113d891a-ed24, html .elementor .e-13f6d749-7848, html .elementor .e-16ab6ff6-c717, html .elementor .e-17214a2c-5f36, html .elementor .e-17e76c71-8add, html .elementor .e-17f44a9-9392, html .elementor .e-1ccd1a39-fa2c, html .elementor .e-1cd8982c-b47a, html .elementor .e-1ceb795f-59f0, html .elementor .e-1d04db5-87ca, html .elementor .e-1fea1bcd-6c34, html .elementor .e-22073441-1e89, html .elementor .e-236d3aba-b76c, html .elementor .e-238fa4fe-5d8e, html .elementor .e-24331dd3-e6df, html .elementor .e-26793843-52bc, html .elementor .e-29b53e74-58fa, html .elementor .e-2d122576-56f9, html .elementor .e-2e65d511-6e04, html .elementor .e-30acba31-ba3b, html .elementor .e-312b8132-fd47, html .elementor .e-31750b56-a7ab, html .elementor .e-31756e66-6bd8, html .elementor .e-379e9cab-4eca, html .elementor .e-386b10cf-78b2, html .elementor .e-38fde279-2630, html .elementor .e-39e66ce6-7b2b, html .elementor .e-3c69e4e9-ec56, html .elementor .e-3c7057b2-cafa, html .elementor .e-44c57ec6-53fd, html .elementor .e-44e261b-7439, html .elementor .e-47d98223-2760, html .elementor .e-48089297-f338, html .elementor .e-4a4b6e7-ab05, html .elementor .e-4d92c8a6-54f0, html .elementor .e-4dd42849-5613, html .elementor .e-4de80eab-7efe, html .elementor .e-4eafde35-8c89, html .elementor .e-52bf6d06-ffc7, html .elementor .e-5369ad65-bb5c, html .elementor .e-54037ef3-44f1, html .elementor .e-5746cd22-eab9, html .elementor .e-57edd2c5-caca, html .elementor .e-5854a271-69fe, html .elementor .e-5874a016-115e, html .elementor .e-58aa67a3-fb33, html .elementor .e-5b5a0f49-66c1, html .elementor .e-5b99338e-f498, html .elementor .e-5bd70efc-909f, html .elementor .e-5db76932-dcd0, html .elementor .e-5fd4f462-db2c, html .elementor .e-6af9f633-d0f6, html .elementor .e-6b866d50-de73, html .elementor .e-6e766d44-dc2a, html .elementor .e-6e8122e8-faa1, html .elementor .e-6fd8a29f-5424, html .elementor .e-6fe7f2d-1ab2, html .elementor .e-715036f8-91ff, html .elementor .e-71657188-7fe8, html .elementor .e-73c505e2-1d89, html .elementor .e-7491d99a-fb7f, html .elementor .e-7653c39a-39b3, html .elementor .e-77aa7b73-7e4b, html .elementor .e-78175619-637c, html .elementor .e-7882ec45-375e, html .elementor .e-7a2261b4-a1b4, html .elementor .e-7b48264a-a992, html .elementor .e-7f412e6a-2537, html .elementor .e-7f9a08d9-1f2a, html .elementor .e-7f9ce200-1245, html .elementor .e-a97c6aa-948e, html .elementor .e-f61fd19-9728 {
  border-color: #BDCBEC;
}
/* ===== fine palette light ===== */

/* Link della barra header: sempre bianchi in ogni stato (visited, hover, active, focus), nessun blu e nessun riquadro di tap/focus.
   Le voci delle tendine restano scure (pannello bianco). */
.elementor .menu-item > span:first-child,
.elementor .menu-item > span:first-child a,
.elementor .menu-item > span:first-child a:link,
.elementor .menu-item > span:first-child a:visited,
.elementor .menu-item > span:first-child a:hover,
.elementor .menu-item > span:first-child a:active,
.elementor .menu-item > span:first-child a:focus,
.elementor a.e-5f351099-78a1,
.elementor a.e-5f351099-78a1:link,
.elementor a.e-5f351099-78a1:visited,
.elementor a.e-5f351099-78a1:hover,
.elementor a.e-5f351099-78a1:active,
.elementor a.e-5f351099-78a1:focus,
.elementor a.e-78b3a10c-cb42,
.elementor a.e-78b3a10c-cb42:visited,
.elementor a.e-78b3a10c-cb42:hover,
.elementor a.e-78b3a10c-cb42:active,
.elementor a.e-78b3a10c-cb42:focus {
  color: #FFFFFF;
  text-decoration: none;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
.elementor .dropdown-menu a,
.elementor .dropdown-menu a:visited,
.elementor .dropdown-menu a:active,
.elementor .dropdown-menu a:focus {
  color: var(--pure-white);
  -webkit-tap-highlight-color: transparent;
}

/* Header flottante: glass sempre attivo (prima compariva solo allo scroll) */
.elementor .js-header-glass,
.elementor .js-header-glass.is-scrolled {
  opacity: 1 !important;
}

/* Pulsante Accedi: lucchetto a sinistra del testo (mask del lucide-lock, colore = testo) */
.elementor a.e-5f351099-78a1::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-inline-end: 8px;
  vertical-align: -2px;
  background-color: currentColor;
  -webkit-mask: url(https://gestioneitalia.smartdevagency.it/wp-content/uploads/2026/09/lucide-lock.svg) center / contain no-repeat;
  mask: url(https://gestioneitalia.smartdevagency.it/wp-content/uploads/2026/09/lucide-lock.svg) center / contain no-repeat;
}

/* Menu desktop: chevron-down dopo le voci principali con dropdown (mask del lucide-chevron-down, colore = testo), ruota su hover */
.elementor .menu-item > span:first-child::after {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-inline-start: 6px;
  vertical-align: -2px;
  background-color: currentColor;
  -webkit-mask: url(https://gestioneitalia.smartdevagency.it/wp-content/uploads/2026/09/lucide-chevron-down.svg) center / contain no-repeat;
  mask: url(https://gestioneitalia.smartdevagency.it/wp-content/uploads/2026/09/lucide-chevron-down.svg) center / contain no-repeat;
  transition: transform 0.3s cubic-bezier(.16,.8,.3,1);
}
.elementor .menu-item:hover > span:first-child::after {
  transform: rotate(180deg);
}

/* Menu mobile: pulsante Accedi (primary) fisso in basso. Serve la specificita' extra perche' .button-primary imposta position:relative */
.elementor .js-mobile-menu > a.button-primary {
  position: absolute;
  inset-inline: 24px;
  inset-block-end: 24px;
  z-index: 2;
  text-align: center;
  display: block;
}

.js-text-reveal .word {
  display: inline-block;
}
.js-text-reveal .char {
  display: inline-block;
  opacity: 0;
  filter: blur(6px);
  will-change: opacity, filter;
  transition: opacity 0.5s ease, filter 0.5s ease;
}
.js-text-reveal .char.is-visible {
  opacity: 1;
  filter: blur(0);
}

body.elementor-editor-active .js-text-reveal .word,
body.elementor-editor-active .js-text-reveal .char {
  opacity: 1 !important;
  filter: none !important;
}
body.elementor-editor-active .js-block-reveal {
  opacity: 1 !important;
  transform: none !important;
}

.menu-item:hover .dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.js-block-reveal {
  transition: opacity 0.7s cubic-bezier(.16,.8,.3,1), transform 0.7s cubic-bezier(.16,.8,.3,1);
  will-change: opacity, transform;
}
.js-block-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.js-mobile-menu-toggle {
  display: none;
}

@media (max-width: 1180px) {
  .elementor .e-77b145bc-eade {
    gap: 16px;
  }
  .elementor .e-6671b4b8-5bdf {
    gap: 8px;
  }
}

@media (max-width: 768px) {
  .elementor .js-mobile-menu-toggle {
    display: flex;
  }
  .elementor .e-147f73c7-1100,
  .elementor .e-6671b4b8-5bdf {
    display: none;
  }
  .elementor .e-77b145bc-eade {
    display: flex;
    justify-content: space-between;
  }
}

.elementor .js-mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background-color: var(--ink-black);
  transform: translateX(-100%);
  transition: transform 0.4s cubic-bezier(.16,.8,.3,1);
  display: flex;
  flex-direction: column;
}
.elementor .js-mobile-menu.is-open {
  transform: translateX(0);
}

.js-mobile-menu-level2 {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  background-color: var(--ink-black);
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(.16,.8,.3,1);
}
.js-mobile-menu-level2.is-active {
  transform: translateX(0);
}

.js-mobile-menu svg, .js-mobile-menu svg *,
.js-mobile-menu-toggle svg, .js-mobile-menu-toggle svg * {
  fill: none;
}

.button-primary, .button-ghost {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
/* font-size base dei pulsanti: 15px (allineato al menu). Il valore nella classe globale button-primary non si aggiorna via API */
.elementor .button-primary, .elementor .button-ghost {
  font-size: 15px;
}
.button-primary::before, .button-ghost::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, var(--electric-green), var(--electric-aqua), var(--electric-green));
  background-size: 200% 100%;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.5s cubic-bezier(0.65,0,0.35,1);
  z-index: -1;
}
.button-primary:hover::before, .button-ghost:hover::before {
  transform: scaleX(1);
  animation: gradient-flow 3s linear infinite;
}
.button-ghost, .button-ghost .e-default-a {
  transition: color 0.5s cubic-bezier(0.65,0,0.35,1);
}
.button-ghost:hover, .button-ghost:hover .e-default-a {
  color: #FFFFFF;
}

.button-ghost {
  border-color: transparent;
}
.button-ghost::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(90deg, var(--electric-green), var(--electric-aqua), var(--electric-green));
  background-size: 200% 100%;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  animation: gradient-flow 4s linear infinite;
}

@keyframes gradient-flow {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Nessuna barra di scorrimento visibile nei caroselli orizzontali (js-hscroll) */
.elementor .js-hscroll {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.elementor .js-hscroll::-webkit-scrollbar {
  display: none;
}

/* Sfumatura deep-navy delle card Solutions Grid: all'hover aumenta leggermente (layer extra con opacity animata, il gradiente in se non e' animabile) */
.elementor .e-17c20ffe-76dc::after,
.elementor .e-43ac9d87-2c0b::after,
.elementor .e-3e1ce3d5-b6ef::after,
.elementor .e-194e1d22-7f73::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: linear-gradient(to bottom, rgba(12,37,94,0) 20%, rgba(12,37,94,.55) 100%);
  opacity: 0;
  transition: opacity 0.45s ease;
  pointer-events: none;
}
.elementor a.e-64628d08-f58d:hover .e-17c20ffe-76dc::after,
.elementor a.e-3b36a2d7-836e:hover .e-43ac9d87-2c0b::after,
.elementor a.e-65873d56-410e:hover .e-3e1ce3d5-b6ef::after,
.elementor a.e-5b59de89-7e92:hover .e-194e1d22-7f73::after {
  opacity: 1;
}

/* Parallasse foto nelle card del componente Solutions Grid (scroll-driven). La card ha overflow:hidden, quindi la timeline va dichiarata sulla card (view-timeline) e non sull'immagine. Valori alti per test: ridurre poi translateY e scale */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes card-img-parallax {
      from { transform: translateY(-14%) scale(1.32); }
      to { transform: translateY(14%) scale(1.32); }
    }
    .elementor a.e-64628d08-f58d,
    .elementor a.e-3b36a2d7-836e,
    .elementor a.e-65873d56-410e,
    .elementor a.e-5b59de89-7e92 {
      view-timeline-name: --sg-card;
      view-timeline-axis: block;
    }
    .elementor img.e-73c6d7f-82fe,
    .elementor img.e-55effc68-f199,
    .elementor img.e-912b515-6971,
    .elementor img.e-1c3bf4c8-e381 {
      animation: card-img-parallax linear both;
      animation-timeline: --sg-card;
      will-change: transform;
    }
  }
}/* End custom CSS */