/* ITSOS global styles — ported from Neve itsos-site.css for Flatsome */


html {
  scroll-padding-top: calc(var(--itsos-header-h, 96px) + var(--itsos-header-bottom-h, 0px) + 24px);
}

:root {
  /* Un solo font sul sito: Outfit (Google Fonts, handle `itsos-fonts` in itsos-theme.php) */
  --itsos-font-stack: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Token Elementor / ITSOS — scala demo TheGem: titoli grandi 300, enfasi / h5 500, corpo 300 */
  --e-global-typography-primary-font-family: var(--itsos-font-stack);
  --e-global-typography-primary-font-weight: 300;
  --e-global-typography-secondary-font-family: var(--itsos-font-stack);
  --e-global-typography-secondary-font-weight: 300;
  --e-global-typography-text-font-family: var(--itsos-font-stack);
  --e-global-typography-text-font-weight: 300;
  --e-global-typography-accent-font-family: var(--itsos-font-stack);
  --e-global-typography-accent-font-weight: 500;

  /* Neve: valore letterale (evita doppio var() in alcuni browser sulle custom props) */
  --bodyfontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --headingsfontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h1fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h2fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h3fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h4fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h5fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --h6fontfamily: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --nv-fallback-ff: "Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;

  --itsos-bg: #ffffff;
  --itsos-bg-2: #ffffff;
  --itsos-accent: #15d0ff;
  --itsos-accent-2: #3a87ff;
  --itsos-text: #000000;
  --itsos-dark-text: #000000;
  --itsos-muted: #2b2b2b;
  --itsos-border: #e3e3e3;
  --itsos-shell: 1240px;
  --itsos-header-h: 96px;
  --itsos-header-bottom-h: 0px;
  --itsos-primary: #FF9517;
}

body {
  font-family: var(--itsos-font-stack) !important;
  font-weight: var(--e-global-typography-text-font-weight) !important;
  font-size: 17px !important;
  line-height: 25px !important;
  color: var(--itsos-dark-text);
  background: #fff !important;
}

/* UX Builder: niente fascia bianca tra header fisso e hero */
body.itsos-flatsome-shell #content.page-wrapper {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.itsos-flatsome-shell #content.page-wrapper .row-main,
body.itsos-flatsome-shell #content.page-wrapper .col-inner {
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Flatsome .section { padding: 30px 0 } — prima sezione senza padding UX esplicito */
body.itsos-flatsome-shell #content > .section:first-child:not([style*="padding"]),
body.itsos-flatsome-shell #content .col-inner > .section:first-child:not([style*="padding"]) {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* Hero showcase (ux_banner): prima sezione a filo header */
body.itsos-flatsome-shell #content > .section:first-child:has(.ux-banner),
body.itsos-flatsome-shell #content > .section:first-child:has(.banner) {
  padding-top: 0 !important;
}

/* Global "Primary" buttons/links should be orange */
:root {
  /* Neve global accent (many components use this) */
  --nv-primary-accent: var(--itsos-primary);

  /* Gutenberg presets fallback (some blocks use these variables) */
  --wp--preset--color--primary: var(--itsos-primary);

  --primarybtnbg: var(--itsos-primary);
  --primarybtnhoverbg: #000;
  --primarybtncolor: #fff;
  --primarybtnhovercolor: #fff;
}

/* Hard override for buttons rendered with inline/background classes */
.button.button-primary,
.is-style-primary .wp-block-button__link,
.wp-block-button.is-style-primary .wp-block-button__link,
.wp-element-button.is-style-primary,
footer .is-style-primary .wp-block-button__link,
footer .wp-block-button__link.is-style-primary,
footer .button.button-primary {
  background-color: var(--itsos-primary) !important;
  border-color: var(--itsos-primary) !important;
  color: #fff !important;
  font-family: var(--itsos-font-stack) !important;
  font-weight: 500 !important;
  font-size: 19px !important;
  line-height: 1.2 !important;
}

.button.button-primary:hover,
.is-style-primary .wp-block-button__link:hover,
.wp-block-button.is-style-primary .wp-block-button__link:hover,
footer .is-style-primary .wp-block-button__link:hover,
footer .button.button-primary:hover {
  background-color: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}

h1, h2, h3, h4,
.site-title {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 300 !important;
}

h5, h6 {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 500 !important;
}

/* Elementor: Outfit; heading widget default 300 (div o h1–h4); h5/h6 → 500 */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 300 !important;
}

.elementor-widget-heading h5.elementor-heading-title,
.elementor-widget-heading h6.elementor-heading-title {
  font-weight: 500 !important;
}

.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-theme-post-content .elementor-widget-container {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 25px !important;
}

/* Citazioni: stessa famiglia, peso “secondario” */
.entry-content blockquote,
.entry-content .wp-block-quote,
.entry-content .wp-block-pullquote,
.wp-block-quote cite,
.wp-block-pullquote cite {
  font-family: var(--itsos-font-stack) !important;
  font-weight: var(--e-global-typography-secondary-font-weight) !important;
}

.itsos-home,
.itsos-home p,
.itsos-home li,
.itsos-home a,
.itsos-home span {
  font-family: var(--itsos-font-stack) !important;
  font-weight: var(--e-global-typography-text-font-weight) !important;
  color: #000;
}

.itsos-home h1,
.itsos-home h2,
.itsos-home h3,
.itsos-home h4 {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 300 !important;
}

.itsos-home h5,
.itsos-home h6 {
  font-family: var(--itsos-font-stack) !important;
  font-weight: 500 !important;
}

/* ==========================================================================
   ITSOS tipografia “demo TheGem” (Outfit) — classi imperative (sopra Neve / Elementor).
   Applica la classe sull’elemento (anche insieme a .elementor-heading-title).
   ========================================================================== */

html body .itsos-type-hero-xl {
  font-family: var(--itsos-font-stack) !important;
  font-size: 100px !important;
  line-height: 90px !important;
  font-weight: 300 !important;
  text-transform: uppercase !important;
}

html body .itsos-type-hero-h1 {
  font-family: var(--itsos-font-stack) !important;
  font-size: 50px !important;
  line-height: 60px !important;
  font-weight: 300 !important;
  text-transform: uppercase !important;
}

html body .itsos-type-hero-accent {
  font-family: var(--itsos-font-stack) !important;
  font-size: 30px !important;
  line-height: 40px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
}

html body .itsos-type-hero-lead {
  font-family: var(--itsos-font-stack) !important;
  font-size: 30px !important;
  line-height: 42px !important;
  font-weight: 300 !important;
  text-transform: none !important;
}

html body .itsos-type-kicker {
  font-family: var(--itsos-font-stack) !important;
  font-size: 20px !important;
  line-height: 30px !important;
  font-weight: 500 !important;
  text-transform: none !important;
}

html body .itsos-type-cta,
html body .itsos-type-btn-text {
  font-family: var(--itsos-font-stack) !important;
  font-size: 19px !important;
  line-height: 50px !important;
  font-weight: 500 !important;
}

html body .itsos-type-body {
  font-family: var(--itsos-font-stack) !important;
  font-size: 17px !important;
  line-height: 25px !important;
  font-weight: 300 !important;
}

html body .itsos-type-display-xl {
  font-family: var(--itsos-font-stack) !important;
  font-size: 80px !important;
  line-height: 90px !important;
  font-weight: 300 !important;
  text-transform: uppercase !important;
}

html body .itsos-type-section-label {
  font-family: var(--itsos-font-stack) !important;
  font-size: 20px !important;
  line-height: 30px !important;
  font-weight: 500 !important;
}

html body .itsos-type-caption {
  font-family: var(--itsos-font-stack) !important;
  font-size: 14px !important;
  line-height: 21px !important;
  font-weight: 300 !important;
}

html body .itsos-type-meta {
  font-family: var(--itsos-font-stack) !important;
  font-size: 12.75px !important;
  line-height: 18.75px !important;
  font-weight: 300 !important;
}

html body .itsos-type-stat-text {
  font-family: var(--itsos-font-stack) !important;
  font-size: 20px !important;
  line-height: 30px !important;
  font-weight: 300 !important;
}

html body .itsos-type-icon-label {
  font-family: var(--itsos-font-stack) !important;
  font-size: 16px !important;
  line-height: 16px !important;
  font-weight: 300 !important;
}

@media (max-width: 782px) {
  html body .itsos-type-hero-xl {
    font-size: clamp(40px, 11vw, 100px) !important;
    line-height: 1.05 !important;
  }

  html body .itsos-type-display-xl {
    font-size: clamp(36px, 9vw, 80px) !important;
    line-height: 1.1 !important;
  }

  html body .itsos-type-hero-h1 {
    font-size: clamp(28px, 7vw, 50px) !important;
    line-height: 1.15 !important;
  }

  html body .itsos-type-hero-lead,
  html body .itsos-type-hero-accent {
    font-size: clamp(18px, 4.5vw, 30px) !important;
    line-height: 1.35 !important;
  }
}

/* Mobile layout — colonne sempre in fila, hero altezza fluida (no taglio testo) */
@media (max-width: 849px) {
  body.itsos-flatsome-shell #main .row,
  body.itsos-flatsome-shell #content .row {
    flex-wrap: wrap !important;
  }

  body.itsos-flatsome-shell #main .row > .col,
  body.itsos-flatsome-shell #main .row > .col-inner,
  body.itsos-flatsome-shell #content .row > .col,
  body.itsos-flatsome-shell #content .row > .col-inner,
  body.itsos-flatsome-shell .row .col,
  body.itsos-flatsome-shell .row .col-inner,
  body.itsos-flatsome-shell .row [class*="col-inner"] {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  body.itsos-flatsome-shell .row .col .row .col,
  body.itsos-flatsome-shell .row .col .row .col-inner {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  body.itsos-flatsome-shell .banner,
  body.itsos-flatsome-shell .banner-inner,
  body.itsos-flatsome-shell .ux-banner {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.itsos-flatsome-shell .banner-bg {
    position: absolute !important;
    inset: 0 !important;
    min-height: 100% !important;
    height: 100% !important;
    overflow: hidden;
  }

  body.itsos-flatsome-shell .banner-layers {
    position: relative !important;
    overflow: visible !important;
    height: auto !important;
    min-height: 320px !important;
    padding: calc(var(--itsos-header-h, 86px) + 24px) 20px 40px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
  }

  body.itsos-flatsome-shell .banner .text-box,
  body.itsos-flatsome-shell .banner-layers .text-box {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.itsos-flatsome-shell .banner h1,
  body.itsos-flatsome-shell .banner h2,
  body.itsos-flatsome-shell .banner .title-size-155,
  body.itsos-flatsome-shell .banner .title-size-160,
  body.itsos-flatsome-shell .banner .title-size-100 {
    font-size: clamp(1.4rem, 6vw, 2.4rem) !important;
    line-height: 1.2 !important;
  }

  body.itsos-flatsome-shell #main .section {
    height: auto !important;
    min-height: 0 !important;
  }

  body.itsos-flatsome-shell .row .col,
  body.itsos-flatsome-shell .row .col-inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
/* Footer top: inset black divider before the 3 blocks */
.footer--row-inner.footer-top-inner.footer-content-wrap {
  position: relative;
  padding-top: 28px;
}

/* Footer: make inner container wider than main content (boxed layout) */
.footer--row-inner.footer-content-wrap > .container {
  width: 100%;
  max-width: 1480px;
  padding-left: 24px;
  padding-right: 24px;
}

.footer--row-inner.footer-content-wrap {
  overflow: visible;
}

.footer--row-inner.footer-top-inner.footer-content-wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(100% - 64px);
  transform: translateX(-50%);
  border-top: 1px solid #000;
  pointer-events: none;
}

/* Footer floating orange figure (top row) */
.footer--row-inner.footer-top-inner.footer-content-wrap {
  overflow: visible;
}

.itsos-footer-figure {
  position: absolute;
  left: 0;
  top: -12px;
  transform: translateX(-35%);
  z-index: 2;
  pointer-events: none;
}

.itsos-footer-figure__img {
  display: block;
  width: clamp(108px, 12vw, 184px);
  height: auto;
}
/* Gravity Forms: vedi assets/itsos/itsos-gravityforms.css */

/* Flatsome: Outfit su body e UX Builder */
body, .ux-builder, #wrapper, #main {
  font-family: var(--itsos-font-stack) !important;
}

.button, button, input[type="submit"], .wp-block-button__link {
  font-family: var(--itsos-font-stack) !important;
}

/* Nascondi footer Flatsome default */
.footer-wrapper .footer-widgets,
.footer-wrapper .absolute-footer {
  display: none !important;
}

/* Scroll-for-more: freccia giù visibile anche se il font fl-icons non è ancora caricato */
.section .scroll-for-more.icon-button {
  color: #fff;
  opacity: 0.85;
}
.section .scroll-for-more.icon-button:hover {
  opacity: 1;
}

/* Sviluppo digitale — pricing ROI: card con bordo e ombra per colonna */
#pricing-roi-digitale .row:nth-of-type(2) > .col[class*="medium-4"]:not(:last-child) > .col-inner {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
  padding: 28px 24px !important;
  height: 100%;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
#pricing-roi-digitale .row:nth-of-type(2) > .col[class*="medium-4"]:not(:last-child):hover > .col-inner {
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.14);
  transform: translateY(-2px);
}

/* Tabelle showcase: righe bianche = testo scuro (sezioni dark ereditano bianco) */
.entry-content table tr[style*="background-color: rgb(255,255,255)"] td,
.entry-content table tr[style*="background-color: rgb(255, 255, 255)"] td,
.entry-content table tr[style*="background-color:#fff"] td,
.entry-content table tr[style*="background-color: #fff"] td,
.entry-content table tr[style*="background-color:#ffffff"] td,
.entry-content table tr[style*="background-color: #ffffff"] td,
.section.dark table tr[style*="background-color: rgb(255,255,255)"] td,
.section.dark table tr[style*="background-color: rgb(255, 255, 255)"] td {
  color: #2b2b2b !important;
}
.entry-content table tr[style*="background-color: rgb(255,255,255)"] td a,
.entry-content table tr[style*="background-color: rgb(255, 255, 255)"] td a,
.section.dark table tr[style*="background-color: rgb(255,255,255)"] td a,
.section.dark table tr[style*="background-color: rgb(255, 255, 255)"] td a {
  color: #c45a00 !important;
}

