/* 
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 */

/* SELEZIONE TESTI */
::selection {
  color: #000;
  background: #00FD23;
}

/* EFFETTO MARQUEE */

.marquee {
  position: relative;
  width: 100vw;
  max-width: 100%;
  height: 15px;
  overflow: hidden;
  color:#171a1b;
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-size:13px;
 text-transform: uppercase;
}

.track {
  position: absolute;
  top: 50%;
  white-space: nowrap;
  will-change: transform;
  animation: marquee 52s linear infinite;
  transform: translateY(-50%);
}

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

/* EFFETTO BIGTEXT  */
.bigtext {
  position: relative;
  display: flex;
  width: 300vw;
  max-width: 300%;
margin:0;
padding:0;
  height: 140px;
	line-height:1;
  margin: 0px;
/*   margin-top: -20px; */
  padding: 0px;
  overflow: hidden;
  color: var( --e-global-color-803f24f );
  font-family: var(--e-global-typography-accent-font-family), Sans-serif;
  font-size:210px;
  text-transform: uppercase;
}
@media(max-width:767px) {
	.bigtext {	
		height: 80px!important;
		font-size:140px!important;	
	}
}

.trackbigtext {
  position: absolute;
  white-space: nowrap;
  will-change: transform;
}
.trackbigtext p {
margin:0px;
padding;0px;
margin-top: -40px;}

/* COLORE D'ACCENTO GENERALE */
.accentcolor {
color: var(--e-global-color-primary);
}


/* STRISCIA THINK DIFFERENT */
@font-face {
  font-family: 'Nasa';
  src: url('../../uploads/2026/08-fonts/nasa.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.elementor-element-191d0d0 {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.think-different-heading {
  font-family: 'Nasa', 'IBM Plex Mono', monospace;
  font-weight: 400;
  text-transform: uppercase;
  text-align: center;
  color: #171a1b;
  margin: 0;
  padding: 0;
  line-height: 1;
  width: 100%;
  white-space: nowrap;
  font-size: clamp(2rem, 6vw, 4.5rem);
  letter-spacing: 0.28em;
}


/* TESTO IN VERTICALE (sempre attivo, a qualsiasi larghezza) */
.testoverticale {
	writing-mode: vertical-rl;
	white-space: nowrap;
	transform: rotate(180deg);
	transform-origin: center center;
	margin: 0;
	padding: 0;
}

/* STRISCIA "CHI SIAMO" sempre sul bordo sinistro, a qualsiasi ridimensionamento/zoom */
.elementor-element-8e71421 {
	flex-wrap: nowrap !important;
}
.elementor-element-ed9d306 {
	width: 56px !important;
	min-width: 56px !important;
	max-width: 56px !important;
	flex: 0 0 56px !important;
}
.elementor-element-cddf30b {
	width: auto !important;
	max-width: none !important;
	flex: 1 1 auto !important;
}
/* Assicurati di rimuovere eventuali altre rotazioni (es. 90 o 270 gradi) */
/* Potrebbe essere necessario aggiustare margini/padding/allineamento per la nuova posizione */}


/* EFFETTO SCRAMBLING SUI TITOLI */
/* Stili per l'H1 (o l'elemento testo) DENTRO il wrapper .scramble-title */
.scramble-title h1 { /* Selettore aggiornato per la nuova classe e H1 */
    display: inline-block; /* Cruciale per ::before/::after sulla stessa linea */
    position: relative;
    margin: 0; /* Resetta margini default H1 */
    vertical-align: baseline; /* Allineamento verticale */
    /* Il font, colore, etc., vengono ereditati dall'H1 stesso o da stili Elementor */
}

.scramble-title h1::before {
    content: '{';
    display: inline-block;
    margin-right: 0.2em;
    color: var(--e-global-color-primary); /* Mantiene il colore primario di Elementor */
    /* Eredita gli stili di font dall'H1 per coerenza */
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
    vertical-align: inherit;
}

.scramble-title h1::after {
    content: '}';
    display: inline-block;
    margin-left: 0.2em;
    color: var(--e-global-color-primary); /* Mantiene il colore primario di Elementor */
    /* Eredita gli stili di font dall'H1 per coerenza */
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
    vertical-align: inherit;
}

/* Override parentesi per il titolo "IL NOSTRO DNA" */
.elementor-element-c1d77f8 h1::before {
    content: '</';
}
.elementor-element-c1d77f8 h1::after {
    content: '>';
}

/* Override parentesi per il titolo "Progetti" */
.elementor-element-679c017 h1::before {
    content: '</';
}
.elementor-element-679c017 h1::after {
    content: '>';
}

/* Override parentesi per il titolo "Contatti e consulenza" */
.elementor-element-8da7076 h1::before {
    content: '</';
}
.elementor-element-8da7076 h1::after {
    content: '>';
}

/* MENU: "Progetti" non cliccabile, con sottovoci Casa/Ufficio/Hotel/Miscellanea (come "Soluzioni" nel sito di riferimento) */
.elementor-element-e60c2ff .elementor-icon-list-item.menu-item-not-clickable {
	cursor: default;
}
.elementor-element-e60c2ff .elementor-icon-list-item.menu-item-not-clickable:hover .elementor-icon-list-text {
	color: var(--e-global-color-72083c7) !important;
}
.elementor-element-e60c2ff .elementor-icon-list-item.menu-subitem .elementor-icon-list-text {
	text-transform: none !important;
}

/* Nasconde la data nelle card dei progetti (sezione Progetti) */
.elementor-element-26a9774 {
    display: none !important;
}

/* Stili per gli elementi DENTRO il wrapper .scramble-text */
/* Non sono necessari stili specifici per font, colore o ::before/::after */
/* L'effetto si applica solo via JS, e l'aspetto resta quello definito da Elementor/tema */
/* Potrebbe essere utile assicurare che l'elemento sia almeno inline-block o block
   per evitare problemi di layout durante lo scrambling, ma dipende dal contesto.
   Aggiungere se necessario: */
/*
.scramble-text > p,
.scramble-text > h2,
.scramble-text > h3,
.scramble-text > h4,
.scramble-text > h5,
.scramble-text > h6,
.scramble-text > span,
.scramble-text > div {
    display: inline-block; /* O block, a seconda dell'elemento e del layout desiderato */
/* vertical-align: baseline; /* Potrebbe servire per allineamento */
/* } */

/* PIXEL EFFECT  */
/* CSS ESSENZIALE per Effetto Pixelate (v2.5) */

/* Il wrapper creato dinamicamente attorno all'immagine */
.pixelate-wrapper {
  position: relative; /* Necessario per alcuni layout */
  display: inline-block; /* Mantiene flusso simile a img */
  /* vertical-align: bottom; */ /* Potrebbe non essere necessario, prova a toglierlo/metterlo se ci sono problemi di allineamento verticale */
  width: 100%; /* Occupa larghezza contenitore */
  line-height: 0; /* Aiuta a prevenire spazi extra sotto la canvas */
  /* Aggiungi 'overflow: hidden;' se la canvas dovesse sbordare leggermente */
  /* overflow: hidden; */
}

/* Nascondi l'immagine originale DENTRO il wrapper */
/* Usa la regola più specifica per Elementor */
.elementor-widget-image.pixelate .pixelate-wrapper img {
  display: none !important; /* Nasconde l'originale, !important per priorità */
  visibility: hidden !important; /* Aggiunta per maggiore sicurezza */
}
/* Fallback meno specifico (mantienilo commentato se la regola sopra funziona) */
/* .pixelate-wrapper img { display: none !important; visibility: hidden !important; } */


/* La canvas che viene visualizzata al posto dell'immagine */
.pixelate-wrapper canvas {
  display: block;  /* Evita spazi extra sotto */
  width: 100%;     /* Prende larghezza wrapper */
  height: auto;    /* Altezza automatica per mantenere proporzioni (JS gestisce ratio) */
  margin-bottom: -7px;
  /* Opzionale: Aggiungi un colore di sfondo temporaneo per debug se la canvas non si vede */
  /* background-color: rgba(0, 255, 0, 0.1); */
}

/* Assicurati che il contenitore del widget abbia layout corretto */
/* Potrebbe non essere necessario, ma aiuta in alcuni temi */
.elementor-widget-image.pixelate .elementor-widget-container {
    line-height: 0;
}

.linea-vertical {
    position: relative;
}

/* LINEA VERTICAL */

.linea-vertical::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 4px;
    background-color: var(--e-global-color-accent);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 0.4s ease-in-out;
}
.linea-vertical:hover::before {
    transform: scaleY(1);
}

/* CAMPI FORM "CONTATTI E CONSULENZA": sfondo antracite, testo bianco */
.elementor-element-52978c6 .elementor-field-group .elementor-field:not(.elementor-select-wrapper) {
	background-color: var(--e-global-color-9b1c4b6) !important;
	color: #ffffff !important;
}
.elementor-element-52978c6 .elementor-field-group .elementor-field:not(.elementor-select-wrapper)::placeholder {
	color: #ffffff !important;
	opacity: 0.65;
}

/* PULSANTE "RICHIEDI UNA CONSULENZA" uguale ai pulsanti "Dettagli" */
.elementor-element-52978c6 .elementor-button[type="submit"] {
	color: var(--e-global-color-2eb197d) !important;
}
.elementor-element-52978c6 .elementor-button[type="submit"] svg * {
	fill: var(--e-global-color-2eb197d) !important;
}
.elementor-element-52978c6 .elementor-button[type="submit"]:hover {
	background-color: var(--e-global-color-9b1c4b6) !important;
	color: var(--e-global-color-72083c7) !important;
}
.elementor-element-52978c6 .elementor-button[type="submit"]:hover svg * {
	fill: var(--e-global-color-72083c7) !important;
}

/* SPONSOR: Bambu Lab, xTool, Festool su una riga, proporzionati e trasparenti */
.sponsor-logos-row {
	display: flex !important;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: clamp(24px, 6vw, 90px);
	width: 100%;
}
.sponsor-logo-icon {
	width: clamp(56px, 9vw, 110px);
	height: clamp(56px, 9vw, 110px);
	flex: 0 0 auto;
}

/* DIMENSIONE TESTO UNIFORME PER TUTTI I PULSANTI RETTANGOLARI DEL SITO */
.elementor-element-04494df .elementor-button,
.elementor-element-4eb9b1b .elementor-button,
.elementor-element-52978c6 .elementor-button,
.elementor-element-784219d .elementor-button {
	font-size: 0.9rem !important;
}

/* FOOTER: la riga copyright resta sempre sotto Logo/Site Map/Progetti, a qualsiasi larghezza */
.elementor-element-bde0ee2 {
	flex-wrap: wrap !important;
}
.elementor-element-e8da326 {
	flex: 0 0 100vw !important;
	width: 100vw !important;
	max-width: 100vw !important;
	order: 3;
	margin-top: 40px !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	margin-bottom: -40px !important;
}
.elementor-element-e8da326 .e-con-inner {
	padding-top: 37px !important;
	padding-bottom: 37px !important;
}
.elementor-element-e8da326 .elementor-element-3df4ab5 p {
	margin: 0 !important;
}

/* Messaggio di esito invio form "Contatti e Consulenza": stesso stile della frase reCAPTCHA sottostante */
#momalab-form-message {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1rem;
	line-height: 1;
	margin-top: 10px;
}
#momalab-form-message::before {
	content: none !important;
}
#momalab-form-message.elementor-message-success {
	color: var(--e-global-color-primary);
}
#momalab-form-message.elementor-message-danger {
	color: #ff0000;
}

/* Descrizioni brevi delle card "Progetti": testo completo, niente troncamento a 3 righe */
.elementor-1714 .elementor-element.elementor-element-779866a {
	-webkit-line-clamp: unset !important;
	overflow: visible !important;
}
.elementor-1714 .elementor-element.elementor-element-779866a p {
	text-align: justify;
	font-family: var(--e-global-typography-secondary-font-family), Sans-serif !important;
	font-weight: var(--e-global-typography-secondary-font-weight);
	font-size: 1rem;
	line-height: 1.3;
	margin: 0 !important;
}
/* Altezza fissa calcolata sul testo più lungo (Ufficio/Miscellanea, 3 righe):
   tutte le card riservano lo stesso spazio al testo, indipendentemente dalla sua lunghezza. */
.elementor-1714 .elementor-element.elementor-element-779866a {
	min-height: 187px;
}

/* Pulsante "Dettagli": segue il testo in flusso normale (mai sovrapposizioni),
   con margine fisso identico allo spazio titolo->testo. Poiché il blocco testo
   ha ora altezza uniforme su tutte le card, il pulsante resta comunque allineato. */
.elementor-element-4eb9b1b {
	position: static !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	margin-top: 1px !important;
}

/* ============================================================
   COMPONENTI RIUSABILI PER LE PAGINE DI SERVIZIO
   (Stampa 3D, Lavorazioni Laser, Materiali, ecc.)
   ============================================================ */

/* Variante parentesi ad angolo </ > per titoli scramble su nuove pagine */
.scramble-title.angle-brackets h1::before { content: '</'; }
.scramble-title.angle-brackets h1::after { content: '>'; }

.service-page-main {
	background: var(--e-global-color-2eb197d);
	color: var(--e-global-color-72083c7);
	font-family: "IBM Plex Sans", Sans-serif;
}

.service-hero {
	position: relative;
	z-index: 0;
	min-height: 82vh;
	margin-top: 0;
	overflow: hidden;
}
/* Allinea la sezione hero animata della home (stesso #container) a quella
   delle pagine di servizio: stesso margine (0, nessun overlap sotto l'header)
   e stessa altezza (82vh / 52vh) su tutte le pagine. */
.elementor-element-b42acd5,
.elementor-element-6d3daf2 {
	margin-top: 0 !important;
	padding-top: 0 !important;
	min-height: 82vh !important;
}
/* Rimuove l'overlay scuro extra (lato sinistro) del template originale:
   sotto l'animazione deve restare solo #gradient-overlay, uguale alle pagine di servizio. */
.elementor-element-b42acd5::before {
	background-image: none !important;
}
#container {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	cursor: grab;
	overflow: hidden;
	background-color: transparent;
}
#container:active { cursor: grabbing; }
#gradient-overlay {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at center, rgba(15,25,35,0.78) 0%, rgba(15,25,35,0.4) 55%, rgba(15,25,35,0.15) 100%);
	pointer-events: none;
	z-index: 1;
}
.service-hero-overlay-text {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	pointer-events: none;
}
.service-hero-overlay-text .lead {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: clamp(1.3rem, 2.6vw, 1.9rem);
	line-height: 1.5;
	color: #FFFFFF;
	text-shadow: 0px 0px 15px rgba(0,0,0,0.6);
	max-width: 760px;
	text-align: center;
	margin: 0;
}
/* Varianti di allineamento: quando l'animazione occupa il lato sinistro
   della hero, il testo si sposta a destra (e viceversa). */
.service-hero-overlay-text--right { justify-content: flex-end; }
.service-hero-overlay-text--right .lead { text-align: right; }
.service-hero-overlay-text--left { justify-content: flex-start; }
.service-hero-overlay-text--left .lead { text-align: left; }
@media (max-width: 900px) {
	.service-hero-overlay-text--right,
	.service-hero-overlay-text--left { justify-content: center; }
	.service-hero-overlay-text--right .lead,
	.service-hero-overlay-text--left .lead { text-align: center; }
}
@media (max-width: 1280px) {
	.service-hero { min-height: 52vh; }
	.elementor-element-b42acd5,
	.elementor-element-6d3daf2 {
		min-height: 52vh !important;
	}
}

.service-section {
	max-width: 1200px;
	margin: 0 auto;
	padding: 70px 40px;
}
.service-section-title {
	text-align: center;
	margin-bottom: 48px;
}
.service-section-title h1 {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1.3rem;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--e-global-color-95c34ff);
	margin: 0;
}
.service-section-title p {
	font-family: "IBM Plex Mono", monospace;
	color: var(--e-global-color-primary);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.9rem;
	margin-top: 10px;
}

.service-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 24px;
}
/* Schede a piena larghezza di sezione: allineate a destra/sinistra con i
   riquadri colorati (grigi/verde) delle sezioni vicine, non con l'area
   di testo (che ha un padding laterale di 40px in più). */
.service-grid--bleed {
	margin-left: -40px;
	margin-right: -40px;
}
/* Griglia materiali: sempre 3 colonne fisse (mai di più), così le schede
   "Rinforzato carbonio" e "Alte prestazioni" restano sotto "PETG" e "ABS/ASA"
   anche allargando la pagina. */
.service-grid--fixed3 {
	grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px) {
	.service-grid--fixed3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.service-grid--fixed3 { grid-template-columns: 1fr; }
}
.service-card {
	background: var(--e-global-color-9b1c4b6);
	border: 1px solid var(--e-global-color-5bdc6e7);
	border-radius: 6px;
	padding: 32px 28px;
	transition: border-color 0.3s;
}
.service-card:hover { border-color: var(--e-global-color-primary); }
.service-card--photo { padding: 0; overflow: hidden; }
.service-card-photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 4;
	object-fit: cover;
}
.service-card-body { padding: 24px 28px 28px; }
/* Sezioni "feature" (foto + testo affiancati) delle pagine di categoria progetti. */
.service-feature {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
	max-width: 1120px;
	margin: 0 auto;
}
.service-feature-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 6px;
}
.service-feature-text p {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--e-global-color-72083c7);
	margin: 0 0 16px;
}
.service-feature-text p:last-child { margin-bottom: 0; }
.service-feature--reverse .service-feature-photo { order: 2; }
.service-feature--reverse .service-feature-text { order: 1; }
@media (max-width: 767px) {
	.service-feature { grid-template-columns: 1fr; }
	.service-feature--reverse .service-feature-photo { order: 1; }
	.service-feature--reverse .service-feature-text { order: 2; }
}

/* Elenco progetti di ogni categoria (galleria a carosello + testo).
   Pensato per accogliere più voci in futuro: per ora una per categoria. */
.project-list {
	max-width: 1120px;
	margin: 60px auto 0;
	display: grid;
	gap: 40px;
	padding-top: 40px;
	border-top: 1px solid var(--e-global-color-5bdc6e7);
}
.project-entry h3 {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1.1rem;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--e-global-color-72083c7);
	margin: 0 0 16px;
}
.project-entry p {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--e-global-color-72083c7);
	margin: 0;
}
.project-gallery {
	position: relative;
	overflow: hidden;
	border-radius: 6px;
	background: var(--e-global-color-9b1c4b6);
	margin-bottom: 16px;
}
.project-gallery-track {
	display: flex;
	transition: transform 0.4s ease;
}
.project-gallery-track img {
	width: 100%;
	flex: 0 0 100%;
	aspect-ratio: 1024 / 574;
	object-fit: cover;
	display: block;
}
.project-gallery-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(15, 25, 35, 0.6);
	border: none;
	color: #fff;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 1.3rem;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.3s;
}
.project-gallery-btn:hover {
	background: var(--e-global-color-primary);
	color: var(--e-global-color-2eb197d);
}
.project-gallery-prev { left: 12px; }
.project-gallery-next { right: 12px; }
.project-gallery-dots {
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
}
.project-gallery-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.4);
	cursor: pointer;
	border: none;
	padding: 0;
}
.project-gallery-dot.is-active { background: var(--e-global-color-primary); }
.service-card .icon {
	display: block;
	width: 56px;
	height: 56px;
	margin-bottom: 20px;
	fill: var(--e-global-color-primary);
}
.service-card h3 {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1.1rem;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--e-global-color-72083c7);
	margin: 0 0 6px;
}
.service-card .tag {
	display: inline-block;
	font-family: "IBM Plex Mono", monospace;
	font-size: 0.75rem;
	color: var(--e-global-color-primary);
	text-transform: uppercase;
	margin-bottom: 14px;
}
.service-card p {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--e-global-color-72083c7);
	margin: 0;
}
.service-card .price {
	margin-top: 16px;
	font-family: "IBM Plex Mono", monospace;
	font-size: 0.85rem;
	color: var(--e-global-color-2e7c0c7);
}
.service-card .price strong { color: var(--e-global-color-primary); }

.service-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 32px;
	counter-reset: step;
}
.service-step {
	position: relative;
	padding-left: 50px;
}
.service-step::before {
	counter-increment: step;
	content: counter(step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	font-family: "IBM Plex Mono", monospace;
	font-size: 1.4rem;
	color: var(--e-global-color-primary);
}
.service-step h3 {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1rem;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--e-global-color-72083c7);
	margin: 0 0 8px;
}
.service-step p {
	font-family: "IBM Plex Sans", Sans-serif;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--e-global-color-2e7c0c7);
	margin: 0;
}

.service-cta-banner {
	background: var(--e-global-color-primary);
	max-width: 1200px;
	margin: 70px auto 70px;
	padding: 70px 40px;
	text-align: center;
}
.service-cta-banner h2 {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1.8rem;
	font-weight: 600;
	text-transform: uppercase;
	color: var(--e-global-color-2eb197d);
	margin: 0 0 24px;
}
/* Stesso linguaggio dei pulsanti "Dettagli" / "Richiedi una consulenza"
   (font, peso, dimensione, bordo, raggio, transizione): colori invertiti
   solo perché qui il pulsante poggia su sfondo verde, non su sfondo scuro. */
.service-cta-banner a.service-cta-button {
	display: inline-block;
	background: var(--e-global-color-9b1c4b6);
	color: var(--e-global-color-72083c7);
	font-family: "IBM Plex Mono", monospace;
	font-weight: 500;
	text-transform: uppercase;
	font-size: 0.9rem;
	padding: 9px 15px;
	border: 1px solid var(--e-global-color-9b1c4b6);
	border-radius: 2px;
	text-decoration: none;
	transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.service-cta-banner a.service-cta-button:hover {
	background: var(--e-global-color-2eb197d);
	color: var(--e-global-color-primary);
	border-color: var(--e-global-color-2eb197d);
}

.service-note {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--e-global-color-72083c7);
	text-align: center;
	margin-top: 32px;
}

@media(max-width:767px) {
	.service-hero { padding: 60px 24px 40px; }
	.service-section { padding: 50px 24px; }
	.service-grid--bleed { margin-left: -24px; margin-right: -24px; }
	.service-cta-banner { padding: 50px 24px; margin: 50px auto 50px; }
}

/* Menu a comparsa (off-canvas): transizione morbida per apertura/chiusura
   gestite via JS (vedi script a fondo pagina). */
.e-off-canvas { transition: opacity 0.25s ease; }

/* Pulsante Consulenza/Consultation: larghezza fissa così il pulsante non
   cambia dimensione tra le due lingue e il pulsante bandiera accanto non si
   sposta passando da una versione all'altra del sito. */
.elementor-element-04494df .elementor-button {
	min-width: 168px;
	justify-content: center;
}
@media (max-width: 767px) {
	.elementor-element-04494df .elementor-button {
		min-width: 128px;
	}
}

/* Header: bandiera lingua, pulsante Consulenza/Consultation e icona menu
   devono avere fra loro la stessa distanza. Nel markup originale l'icona
   menu (5a540dd) finisce come terzo figlio diretto del contenitore ca357e5
   (allo stesso livello del gruppo bandiera+consulenza, 9808167) invece che
   dentro quel gruppo: lo spazio fra gruppo e icona era quindi governato da
   "justify-content:space-between" su ca357e5 e variava (fino a >100px a
   seconda della larghezza), mentre lo spazio bandiera-consulenza restava
   fisso a 20px. Si forza un gap identico di 20px su entrambi i lati:
   1) il gruppo bandiera+consulenza (9808167) si restringe al contenuto
      (invece di occupare una % fissa) e viene spinto a destra con
      margin-left:auto dentro ca357e5, con gap:20px al suo interno;
   2) l'icona menu riceve margin-left:20px per lo stesso spazio dal gruppo.
   Il margin-right:10px che il tema imposta su 04494df sotto i 767px va
   azzerato, altrimenti si somma al gap creando 30px invece di 20px. */
.elementor-65 .elementor-element.elementor-element-ca357e5 {
	justify-content: flex-start !important;
	gap: 0 !important;
}
.elementor-65 .elementor-element.elementor-element-9808167 {
	width: auto !important;
	flex-grow: 0 !important;
	margin-left: auto !important;
	gap: 20px !important;
}
.elementor-65 .elementor-element.elementor-element-04494df {
	margin-right: 0 !important;
}
.elementor-65 .elementor-element.elementor-element-5a540dd {
	margin-left: 20px !important;
}
/* La bandiera lingua è un widget WPML pensato per un menu a tendina con più
   voci: porta con sé un padding orizzontale (10px sul link + 7px sul
   contenitore) pensato come area cliccabile extra. Con un solo pulsante
   quel padding sposta la bandierina visibile ben più a destra del bordo
   della sua "casella", rendendo lo spazio nero verso il pulsante Consulenza
   quasi doppio (38px) rispetto a quello fra Consulenza e il menu (20px),
   anche se le due caselle invisibili distavano già 20px identici. Si toglie
   il padding orizzontale (quello verticale resta, per non rimpicciolire
   l'altezza dell'area cliccabile) così la bandiera aderisce alla sua
   casella come già accade per il pulsante e per l'icona del menu. */
.elementor-65 .elementor-element.elementor-element-5baa456 .wpml-ls-link {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.elementor-65 .elementor-element.elementor-element-5baa456 .wpml-ls-statics-shortcode_actions {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Allineamento verticale: il link della bandiera è "display:block" e la sua
   immagine (elemento inline) viene posizionata dal browser secondo la
   baseline del testo, con più spazio invisibile sotto che sopra (il classico
   "gap" delle immagini inline). Risultato: la bandierina appariva ~4px più
   in basso rispetto al centro di pulsante Consulenza e icona menu, pur
   avendo tutte e tre le "caselle" contenitore perfettamente centrate dal
   flex del contenitore. Sostituendo il link con un piccolo flex centrato
   la bandiera si allinea esattamente al centro della sua casella. */
.elementor-65 .elementor-element.elementor-element-5baa456 .wpml-ls-link {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Voce "Consulenza/Consultation" nel menu a tendina: a differenza delle
   altre voci (solo testo), questa ha un'icona che allarga il blocco senza
   restringere la larghezza calcolata del widget, facendo sporgere il testo
   più a destra rispetto a logo/Stampa 3D/Materiali. Un padding compensa
   esattamente lo spazio dell'icona così il testo si allinea con le altre voci. */
/* Campo "allega file" nel form Contatti e Consulenza */
.momalab-file-field {
	width: 100%;
	text-align: left;
	margin-bottom: 10px;
}
.momalab-file-label {
	display: block !important;
	font-family: "Realtime Rounded", Sans-serif !important;
	font-size: 1rem !important;
	line-height: 1 !important;
	margin-bottom: 10px;
	color: var(--e-global-color-72083c7, inherit);
}
.momalab-file-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	margin-bottom: 6px;
}
/* Il vero <input type="file"> resta nel form (serve per l'invio) ma è
   nascosto alla vista: il pulsante "Scegli file" qui sotto lo attiva via JS,
   così possiamo dargli lo stesso stile del pulsante "Richiedi una
   consulenza" invece dell'aspetto nativo del browser. */
.momalab-file-input-native {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.momalab-file-button.elementor-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-width: 0 !important;
	height: 33px !important;
	min-height: 33px !important;
	padding: 0 20px !important;
	background-color: var(--e-global-color-primary) !important;
	border: 1px solid var(--e-global-color-primary) !important;
	border-radius: 0 !important;
	color: var(--e-global-color-2eb197d) !important;
	font-family: "IBM Plex Mono", sans-serif;
	font-weight: 500;
	text-transform: uppercase;
	cursor: pointer;
}
/* Il testo "Scegli file" deve avere la stessa dimensione del testo delle
   note sui formati accettati (0.75rem): il resto del pulsante (altezza,
   padding sopra) è scalato in proporzione rispetto al pulsante "Richiedi
   una consulenza" (0.9rem), che userebbe altrimenti tramite la regola
   generica .elementor-element-52978c6 .elementor-button{font-size:0.9rem}. */
.elementor-element-52978c6 .momalab-file-button.elementor-button {
	font-size: 0.75rem !important;
}
.momalab-file-button.elementor-button:hover {
	background-color: var(--e-global-color-2eb197d) !important;
	border-color: var(--e-global-color-2eb197d) !important;
	color: #ffffff !important;
}
.momalab-file-button .elementor-button-content-wrapper {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.momalab-file-name {
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 0.85rem;
	color: var(--e-global-color-72083c7, inherit);
	opacity: 0.85;
}
.momalab-file-hint {
	display: block;
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 0.75rem;
	line-height: 1.4;
	color: var(--e-global-color-72083c7, inherit);
	opacity: 0.75;
	margin-top: 4px;
}
.momalab-file-error {
	display: block;
	font-family: "Realtime Rounded", Sans-serif;
	font-size: 0.75rem;
	color: #ff0000;
	margin-top: 4px;
}

.elementor-element-380d2db .elementor-icon-list-item > a {
	padding-right: 30px;
}