.elementor-kit-4{--e-global-color-primary:#111312;--e-global-color-secondary:#2a2d2b;--e-global-color-text:#6b6e6b;--e-global-color-accent:#16B051;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Be Vietnam Pro";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Be Vietnam Pro";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-weight:600;background-color:#f6f5f1;color:#111312;font-family:"Be Vietnam Pro", Sans-serif;font-size:17px;font-weight:400;line-height:1.6;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --e-gv-05909d4:#0d1a24; --e-gv-69215eb:#e8580c; --e-gv-67c3b30:#f4f1ea; --e-gv-507217e:Archivo; --e-gv-344f97e:px; --e-gv-fa71993:24px; --e-gv-e24a4d9:Archivo Narrow; --e-gv-09bafc3:Playfair Display, serif; --e-gv-327b938:clamp(1rem, 2vw, 2rem); --e-gv-02b56aa:Archivo, Helvetica, Arial, sans-serif; --c-ink:#111312; --c-ink-2:#2a2d2b; --c-concrete:#e9e7e1; --c-paper:#f6f5f1; --c-white:#ffffff; --c-grey-1:#6b6e6b; --c-grey-2:#a3a5a1; --c-line:rgba(17, 19, 18, .12); --c-line-inv:rgba(255, 255, 255, .16); --c-green:#16B051; --c-green-dark:#0E7A38; --font-head:Archivo, Helvetica Neue, Arial, sans-serif; --font-body:Be Vietnam Pro, Helvetica Neue, Arial, sans-serif; --font-mono:JetBrains Mono, ui-monospace, SF Mono, Menlo, monospace; --fs-display:clamp(38px, 6.4vw, 104px); --fs-h1:clamp(32px, 5.6vw, 88px); --fs-h2:clamp(30px, 3.6vw, 56px); --fs-h3:clamp(22px, 2vw, 28px); --fs-h4:clamp(18px, 1.5vw, 22px); --fs-stat:clamp(36px, 4.4vw, 68px); --fs-lead:clamp(17px, 1.4vw, 21px); --fs-body:17px; --fs-small:15px; --fs-eyebrow:14px; --fs-meta:12px; --fw-body:400; --fw-ui:500; --fw-h4:700; --fw-head:800; --lh-display:.95; --lh-title:1.05; --lh-h4:1.2; --lh-text:1.5; --lh-body:1.6; --ls-head:-.035em; --ls-title:-.02em; --ls-meta:.08em; --radius:4px; --maxw:1440px; --gutter:clamp(20px, 4vw, 56px); --section:clamp(80px, 10vw, 150px); --section-tight:clamp(48px, 6vw, 84px); --gap-grid:clamp(20px, 2.4vw, 32px); --space-1:8px; --space-2:16px; --space-3:32px; --space-4:56px; --header-h:84px; --ease:cubic-bezier(.16, 1, .3, 1); }
/* Start custom CSS *//* =====================================================================
   Vibrocementi, Custom CSS del kit Elementor (iniettato da kit.php).
   Contiene solo cio che le classi globali non possono esprimere: reset, regole di contesto (figlio dentro un
   genitore), posizione dei figli in griglia, stati hover del genitore, easing, nth-child.
   Le regole di contesto hanno prefisso .elementor per battere la specificita delle classi globali (.elementor .vb-x).
   Variabili: sono le variabili globali del kit (--c-ink, --gutter ...).
   ===================================================================== */

/* ---- 01 Token non esprimibili come variabili responsive ---- */
@media (max-width: 1024px) { :root { --header-h: 72px; } }

/* ---- 02 Base (reset di styles.css, scoping al sito) ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font-body); font-size: var(--fs-body); font-weight: var(--fw-body); line-height: var(--lh-body);
  color: var(--c-ink); background: var(--c-paper); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden;
}
img, video { max-width: 100%; }
.elementor a { color: inherit; text-decoration: none; }
.elementor ul, .elementor ol { list-style: none; margin: 0; padding: 0; }
section[id] { scroll-margin-top: var(--header-h); }
::selection { background: var(--c-green); color: var(--c-ink); }
:focus-visible { outline: 2px solid var(--c-green); outline-offset: 3px; }
/* Elementor da a ogni contenitore atomico width:100% (--width). Il design usa il comportamento CSS normale (width:auto): i figli di flex row si adattano al contenuto. */
.elementor .e-con { --width: auto; }
/* NB: i contenitori atomici hanno padding 10px di base; lo azzera ogni classe di layout (vedi C() in classes.php), non il CSS del kit (il file base di Elementor viene dopo il kit). */

.vb-skip-link { position: fixed; left: 16px; top: -80px; z-index: 200; background: var(--c-ink); color: var(--c-white); padding: 12px 18px; border-radius: var(--radius); transition: top .2s; }
.vb-skip-link:focus { top: 16px; }
.vb-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vb-prose > * + * { margin-top: 1.1em; }
.vb-prose a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--c-green); }

/* ---- 03 Accento verde: <em> dentro i titoli (le classi non stilano il testo inline) ---- */
.elementor :is(.vb-display, .vb-h1, .vb-h2, .vb-h3, .vb-feature__title, .vb-section-head__title, .vb-hero-page__title, .vb-hero__title, .vb-cta-band__title) em { font-style: normal; color: var(--c-green-dark); }
.elementor :is(.vb-section--ink, .vb-hero, .vb-hero-page, .vb-footer, .vb-video-section) em { color: var(--c-green); }

/* ---- 04 Layout: colonne asimmetriche e contesti ---- */
.elementor .vb-split > :first-child { grid-column: 1 / span 5; }
.elementor .vb-split > :last-child { grid-column: 7 / span 6; }
.elementor .vb-split--reverse > :first-child { grid-column: 1 / span 6; }
.elementor .vb-split--reverse > :last-child { grid-column: 8 / span 5; }
@media (max-width: 1024px) { .elementor .vb-split > :first-child, .elementor .vb-split > :last-child { grid-column: 1 / -1; } }
.elementor .vb-media .vb-img, .elementor .vb-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.elementor .vb-media video, .elementor .vb-media iframe { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.elementor :is(.vb-card-project, .vb-card-sector, .vb-card-category, .vb-card-product):hover .vb-media :is(.vb-img, img) { transform: scale(1.04); }
.elementor .vb-feature:hover .vb-media :is(.vb-img, img) { transform: scale(1.03); }
.elementor .vb-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.elementor .vb-gallery__item:hover img { transform: scale(1.04); }
.elementor .vb-mega__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.elementor .vb-mega__item:hover .vb-mega__thumb img { transform: scale(1.12); }

/* ---- 05 Bottoni: frecce e contesti ---- */
.elementor .vb-btn:hover .vb-btn__arrow, .elementor .vb-link-arrow:hover .vb-btn__arrow { transform: translateX(4px); }
.elementor .vb-link-arrow .vb-btn__arrow, .elementor .vb-link-all .vb-btn__arrow { color: var(--c-green-dark); }
.elementor :is(.vb-section--ink, .vb-hero, .vb-footer) :is(.vb-link-arrow, .vb-link-all) .vb-btn__arrow { color: var(--c-green); }
.elementor .vb-link-all:hover .vb-btn__arrow { transform: translateX(5px); }
.elementor .vb-header .vb-nav__cta .vb-btn { padding: 13px 20px; background: var(--c-green); color: var(--c-ink); }
.elementor .vb-header .vb-nav__cta .vb-btn:hover { background: var(--c-white); }
.elementor :is(.vb-header--solid, .vb-header.is-scrolled, .vb-header.is-mega-open) .vb-nav__cta .vb-btn:hover { background: var(--c-ink); color: var(--c-white); }
@media (max-width: 1024px) {
  .elementor .vb-header .vb-nav__cta .vb-btn { width: 100%; justify-content: center; padding: 18px; }
  .elementor .vb-header .vb-nav__cta .vb-btn:hover, .elementor :is(.vb-header--solid, .vb-header.is-scrolled, .vb-header.is-mega-open) .vb-nav__cta .vb-btn:hover { background: var(--c-white); color: var(--c-ink); }
  .elementor .vb-nav__link[aria-current="page"] { color: var(--c-green); }
  .elementor .vb-mega__item:hover .vb-mega__name { color: var(--c-green); }
}
@media (max-width: 767px) {
  .elementor .vb-hero__actions .vb-btn { flex: 1 1 100%; justify-content: space-between; padding: 15px 20px; }
  .elementor .vb-hero .vb-eyebrow { display: none; }
}

/* ---- 06 Eyebrow e intestazioni di sezione ---- */
.elementor :is(.vb-section--ink, .vb-hero, .vb-hero-page, .vb-footer, .vb-video-section) .vb-eyebrow { color: rgba(255, 255, 255, .72); }
.elementor .vb-mega .vb-eyebrow { color: var(--c-grey-1); }
.elementor .vb-section-head { grid-template-areas: "eyebrow eyebrow eyebrow eyebrow eyebrow eyebrow eyebrow eyebrow link link link link" "title title title title title title title title text text text text"; }
.elementor .vb-section-head > .vb-eyebrow { grid-area: eyebrow; justify-self: start; }
.elementor .vb-section-head > .vb-link-all { grid-area: link; justify-self: end; align-self: start; }
.elementor .vb-section-head > .vb-section-head__title { grid-area: title; }
.elementor .vb-section-head > .vb-section-head__text { grid-area: text; }
.elementor .vb-section--ink .vb-section-head { border-top-color: var(--c-line-inv); }
.elementor .vb-section--ink .vb-section-head__text { color: rgba(255, 255, 255, .7); }
@media (max-width: 1024px) { .elementor .vb-section-head { grid-template-areas: "eyebrow link" "title title" "text text"; } }

/* ---- 11 Barra numeri: contesti hero, sezione scura, video ---- */
.elementor .vb-numbers__cell:first-child { border-left-width: 0; padding-left: 0; }
.elementor .vb-numbers--single { grid-template-columns: 1fr; }
.elementor .vb-numbers--single .vb-numbers__cell { padding-left: 0; }
.elementor :is(.vb-section--ink, .vb-video-section) .vb-numbers, .elementor :is(.vb-section--ink, .vb-video-section) .vb-numbers__cell { border-color: var(--c-line-inv); }
.elementor :is(.vb-section--ink, .vb-video-section) .vb-numbers__label { color: rgba(255, 255, 255, .62); }
.elementor .vb-hero > .vb-numbers { display: block; position: relative; background: var(--c-paper); color: var(--c-ink); border-top: 0; flex: none; }
.elementor .vb-hero > .vb-numbers > .vb-numbers__inner { display: grid; grid-template-columns: repeat(4, 1fr); max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.elementor .vb-video-section .vb-numbers { margin-top: clamp(48px, 6vw, 88px); grid-template-columns: repeat(3, 1fr); }
.elementor .vb-video-section .vb-numbers__num { font-size: var(--fs-h2); }
@media (max-width: 767px) {
  .elementor .vb-numbers__cell:nth-child(3) { border-left-width: 0; padding-left: 0; }
  .elementor .vb-numbers__cell:nth-child(n+3) { border-top: 1px solid var(--c-line); }
  .elementor .vb-hero > .vb-numbers > .vb-numbers__inner { grid-template-columns: repeat(2, 1fr); padding: 0; }
  .elementor .vb-hero .vb-numbers__cell { padding: 12px var(--gutter); gap: 4px; }
  .elementor .vb-hero .vb-numbers__cell:nth-child(odd) { border-left-width: 0; }
  .elementor .vb-hero .vb-numbers__num { font-size: var(--fs-h2); }
  .elementor .vb-video-section .vb-numbers { grid-template-columns: 1fr; }
  .elementor .vb-video-section .vb-numbers__cell, .elementor .vb-video-section .vb-numbers__cell:nth-child(3) { border-left-width: 0; padding-left: 0; border-top: 1px solid var(--c-line-inv); }
  .elementor .vb-video-section .vb-numbers__cell:first-child { border-top: 0; }
}

/* ---- 12 Breadcrumb ---- */
.elementor .vb-crumbs__item + .vb-crumbs__item::before { content: "/"; margin-right: 8px; color: var(--c-green); }
.elementor .vb-crumbs--dark .vb-crumbs__item:hover { color: var(--c-ink); }

/* ---- 13-16 Card: frecce e dettagli ---- */
.elementor :is(.vb-card-project, .vb-card-sector, .vb-card-category):hover .vb-card-arrow { transform: translateX(8px); }
.elementor .vb-card-project__body .vb-card-arrow { grid-row: 2; grid-column: 2; }
.elementor .vb-card-category__body .vb-card-arrow { grid-column: 2; grid-row: 2; }
.elementor .vb-card-category__text { grid-column: 1; }
.elementor .vb-card-sector .vb-card-arrow { color: var(--c-green); }
.elementor .vb-card-project[id] { scroll-margin-top: calc(var(--header-h) + 24px); }
.elementor .vb-card-product .vb-tags__item { padding: 6px 10px; }
.elementor .vb-card-product__colors span { color: var(--c-ink); margin-right: 6px; }
.elementor .vb-card-product .vb-media { border-radius: 0; }

/* ---- 17 Feature ---- */
.elementor .vb-feature + .vb-feature { margin-top: clamp(56px, 7vw, 104px); }
.elementor .vb-feature > .vb-feature__media { grid-column: 1 / span 8; }
.elementor .vb-feature > .vb-feature__body { grid-column: 9 / span 4; }
.elementor .vb-feature--reverse > .vb-feature__media { grid-column: 5 / span 8; grid-row: 1; }
.elementor .vb-feature--reverse > .vb-feature__body { grid-column: 1 / span 4; grid-row: 1; }
@media (max-width: 1024px) {
  .elementor .vb-feature > .vb-feature__media, .elementor .vb-feature--reverse > .vb-feature__media { grid-column: 1; grid-row: 1; }
  .elementor .vb-feature > .vb-feature__body, .elementor .vb-feature--reverse > .vb-feature__body { grid-column: 1; grid-row: 2; }
}

/* ---- 18 Dati tecnici ---- */
.elementor .vb-section--ink .vb-spec { border-top-color: var(--c-white); }
.elementor .vb-section--ink .vb-spec__row { border-bottom-color: var(--c-line-inv); }
.elementor .vb-spec--mono .vb-spec__value { font-family: var(--font-mono); font-size: var(--fs-meta); letter-spacing: var(--ls-meta); text-transform: uppercase; }
.elementor .vb-spec .vb-spec__value a:hover { color: var(--c-green-dark); }

/* ---- 19 Timeline: foto in bianco e nero ---- */
.elementor .vb-timeline__media img { filter: grayscale(1) contrast(1.05); }

/* ---- 20 Galleria: griglia irregolare ---- */
.elementor .vb-gallery__item:nth-child(6n+1) { grid-column: span 8; aspect-ratio: 16 / 10; }
.elementor .vb-gallery__item:nth-child(6n+2) { aspect-ratio: auto; }
@media (max-width: 767px) {
  .elementor .vb-gallery__item, .elementor .vb-gallery__item:nth-child(6n+2) { grid-column: span 1; aspect-ratio: 4 / 3; }
  .elementor .vb-gallery__item:nth-child(6n+1) { grid-column: 1 / -1; }
}

/* ---- 22 Aziende, certificazioni ---- */
.elementor a.vb-company:hover .vb-company__text { color: var(--c-green-dark); }
.elementor .vb-certs__item:first-child { border-left-width: 0; padding-left: 0; }
@media (max-width: 1024px) { .elementor .vb-certs__item:nth-child(odd) { border-left-width: 0; padding-left: 0; } }

/* ---- 25 Footer ---- */
.elementor .vb-footer__cta > .vb-eyebrow { grid-column: 1 / -1; }
.elementor .vb-footer__cta > .vb-display { grid-column: 1 / span 9; }
.elementor .vb-footer__cta > .vb-btn { grid-column: 10 / -1; justify-self: end; }
@media (max-width: 1024px) {
  .elementor .vb-footer__cta > .vb-display { grid-column: 1 / -1; }
  .elementor .vb-footer__cta > .vb-btn { grid-column: 1 / -1; justify-self: start; }
  .elementor .vb-footer__cols > .vb-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 767px) { .elementor .vb-footer__cols > :last-child { grid-column: 1 / -1; } }
.elementor .vb-footer .vb-eyebrow { color: rgba(255, 255, 255, .72); }

/* ---- Fascia CTA e tab prodotto ---- */
.elementor .vb-tabs-nav a:hover { color: var(--c-green-dark); }
.elementor .vb-downloads .vb-mono { color: var(--c-grey-1); white-space: nowrap; }
@media (max-width: 1024px) { .elementor .vb-product-block.vb-split > :first-child { margin-bottom: 8px; } }
.elementor .vb-steps__item > :last-child p:last-child { margin-top: 8px; color: var(--c-grey-1); }

/* ---- 26 Movimento ridotto ---- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .vb-carousel__track { scroll-behavior: auto; }
  .elementor .vb-img, .elementor .vb-mega, .elementor .vb-nav, .elementor .vb-btn__arrow, .elementor .vb-card-arrow { transition: none; }
}

/* ---- Barra admin di WordPress: l'header e fixed ---- */
body.admin-bar .elementor .vb-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .elementor .vb-header { top: 46px; } }

/* ---- Galleria progetto: nascosta se non ha immagini ---- */
.elementor #galleria:not(:has(.vb-gallery__item)) { display: none; }/* End custom CSS */