.elementor-kit-6{--e-global-color-primary:#F68B2D;--e-global-color-secondary:#2B2B2E;--e-global-color-text:#3F4042;--e-global-color-accent:#EC7D18;--e-global-color-webrand:#F68B2D;--e-global-color-webrand600:#EC7D18;--e-global-color-weink:#3F4042;--e-global-color-wegraphite:#2B2B2E;--e-global-color-wemist:#ECECEC;--e-global-color-wefooter:#BDBDBF;--e-global-typography-primary-font-family:"Bai Jamjuree";--e-global-typography-primary-font-weight:500;--e-global-typography-secondary-font-family:"Bai Jamjuree";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Bai Jamjuree";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Bai Jamjuree";--e-global-typography-accent-font-weight:600;color:#3F4042;font-family:"Bai Jamjuree", Sans-serif;font-weight:400;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#F68B2D;}.elementor-kit-6 a:hover{color:#EC7D18;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1360px;}.e-con{--container-max-width:1360px;}.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);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@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;}}
/* Start custom CSS *//* ===== Fortuna Stampi - sistema tipografico fluido (da global.css Astro) ===== */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html { scroll-behavior: smooth; }

.fs-container { padding-inline: clamp(1.25rem, 2.78vw, 3.3rem); }
.fs-content { padding-left: clamp(1.5rem, 11.1vw, 320px); padding-right: clamp(1.5rem, 8.3vw, 240px); }

.t-h1, .t-h1 .elementor-heading-title { font-size: clamp(2.6rem, 6.35vw, 7.6rem); line-height: .97; font-weight: 500; letter-spacing: -.005em; }
.t-section, .t-section .elementor-heading-title { font-size: clamp(2.1rem, 4.28vw, 5.13rem); line-height: .95; font-weight: 500; }
.t-h2, .t-h2 .elementor-heading-title { font-size: clamp(1.4rem, 1.88vw, 2.25rem); line-height: 1.12; font-weight: 500; }
.t-sub, .t-sub .elementor-heading-title { font-size: clamp(1.1rem, 1.88vw, 2.25rem); line-height: 1.22; font-weight: 500; }
.t-label, .t-label .elementor-heading-title { font-size: clamp(1.05rem, 1.6vw, 1.9rem); font-weight: 500; }
.t-body, .t-body .elementor-widget-container, .t-body p, .t-body li { font-size: clamp(.98rem, .92vw, 1.06rem); line-height: 1.5; }
.t-eyebrow, .t-eyebrow .elementor-heading-title { font-size: clamp(.8rem, .9vw, 1.05rem); letter-spacing: .2em; text-transform: uppercase; font-weight: 500; }
.t-nav, .t-nav a, .t-nav .elementor-button, .t-nav .elementor-item { font-size: clamp(.8rem, .82vw, .94rem); letter-spacing: .05em; text-transform: uppercase; }
.t-addr, .t-addr p, .t-addr a { font-size: clamp(1rem, 1.05vw, 1.22rem); }

/* pattern esagonale honeycomb via CSS mask (colore = currentColor) */
.hex-deco { aspect-ratio: 1128 / 1349; background-color: currentColor;
  -webkit-mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg); mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain; pointer-events: none; }

/* bottoni pill */
.we-btn-brand .elementor-button { background: #F68B2D !important; color: #2B2B2E !important; border-radius: 9999px !important; padding: 1rem 2.25rem !important; transition: background-color .2s ease; }
.we-btn-brand .elementor-button:hover { background: #EC7D18 !important; color: #2B2B2E !important; }
.we-btn-dark .elementor-button { background: #2B2B2E !important; color: #fff !important; border-radius: 9999px !important; padding: 1rem 2.25rem !important; transition: background-color .2s ease; }
.we-btn-dark .elementor-button:hover { background: #000 !important; color: #fff !important; }

/* header: fisso, trasparente sull'hero, grafite allo scroll */
.we-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background-color .3s ease; background: transparent; }
.we-header.scrolled { background-color: color-mix(in srgb, #2B2B2E 96%, transparent); box-shadow: 0 1px 0 rgba(255,255,255,.06); backdrop-filter: blur(6px); }
.we-header a { color: #fff; }
.we-header a:hover { color: #F68B2D; }
.we-header .elementor-nav-menu--main .elementor-item { color: #fff; }
.we-header .elementor-nav-menu--main .elementor-item:hover,
.we-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #F68B2D; }
.we-header .elementor-menu-toggle { color: #fff; }
.we-header .elementor-nav-menu--dropdown { background: #2B2B2E; }
.we-header .elementor-nav-menu--dropdown .elementor-item { color: #fff; }

/* pagine legali */
.legal h2 { font-size: clamp(1.4rem, 1.88vw, 2.25rem); line-height: 1.12; font-weight: 600; color: #2B2B2E; margin-top: 2.2rem; margin-bottom: .4rem; }
.legal h3 { font-size: clamp(1.1rem, 1.3vw, 1.4rem); font-weight: 600; color: #2B2B2E; margin-top: 1.6rem; margin-bottom: .3rem; }
.legal p { margin-bottom: 1rem; }
.legal ul { list-style: disc; padding-left: 1.5rem; margin-bottom: 1rem; }
.legal li { margin-bottom: .35rem; }
.legal strong { font-weight: 600; color: #2B2B2E; }
.legal a { color: #F68B2D; text-decoration: underline; text-underline-offset: 2px; }
.legal a:hover { color: #EC7D18; }
.legal .cky-banner-element { display: inline-block; background: #F68B2D; color: #fff; text-decoration: none; padding: .7rem 1.4rem; border-radius: 9999px; transition: background-color .2s ease; }
.legal .cky-banner-element:hover { background: #EC7D18; color: #fff; }

/* ===== decorazioni esagonali e "+" come pseudo-elementi per-sezione ===== */
.we-hex::before, .we-plus::after { content: ""; position: absolute; pointer-events: none; }
.we-hex::before { aspect-ratio: 1128 / 1349;
  -webkit-mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg); mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain; }
.we-plus::after { background: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/plus-white.svg) no-repeat center / contain; width: 36px; height: 36px; }

.we-card-chisiamo::before { background-color: rgba(0,0,0,.2); right: -90px; top: 6%; width: clamp(280px, 22vw, 420px); }
.we-card-chisiamo::after { top: clamp(1.75rem, 2.78vw, 3.3rem); right: clamp(1.75rem, 2.78vw, 3.3rem); }
.we-sec-settori::before { background-color: #fff; left: -12%; top: 50%; transform: translateY(-50%); width: clamp(420px, 42vw, 820px); }
.we-sec-servizi::before { background-color: rgba(255,255,255,.15); right: -6%; bottom: -12%; width: clamp(380px, 40vw, 780px); }
.we-card-servizio::before { background-color: rgba(0,0,0,.15); right: -70px; bottom: -45px; width: clamp(200px, 15vw, 290px); }
.we-sec-processo::before { background-color: rgba(0,0,0,.15); right: -10%; top: 0; width: clamp(420px, 42vw, 820px); }
.we-card-tecnologia::before { background-color: rgba(255,255,255,.1); right: -90px; bottom: -70px; width: clamp(260px, 20vw, 360px); }
.we-card-tecnologia::after { top: clamp(2.25rem, 3.4vw, 3.8rem); right: clamp(2.25rem, 3.4vw, 3.8rem); }
.we-sec-form::before { background-color: #fff; left: -12%; top: 50%; transform: translateY(-50%); width: clamp(420px, 42vw, 820px); }

/* contatti: recapiti ink, form su card arancione */
.we-recapiti a { color: #3F4042; text-decoration: none; }
.we-recapiti a:hover { color: #F68B2D; }
.we-form a { color: #2B2B2E; text-decoration: underline; text-underline-offset: 2px; }
.we-form a:hover { color: #000; }
.we-form .elementor-field-textual { border: 0; border-radius: 0; }
.we-form .elementor-field-type-acceptance label { color: #2B2B2E; }
.we-form .elementor-field-type-submit { align-items: flex-end; }
.we-form .elementor-field-type-submit button { flex-basis: auto; flex-grow: 0; margin-left: auto; }
.we-form .elementor-button[type=submit] { background: #2B2B2E !important; color: #fff !important; border-radius: 9999px !important; padding: 1rem 2.5rem !important; width: auto; margin-left: auto; letter-spacing: .05em; text-transform: uppercase; font-size: clamp(.8rem, .82vw, .94rem); }
.we-form .elementor-button[type=submit]:hover { background: #000 !important; }

/* footer: link color ink, hover brand (il global link color non deve valere qui) */
.we-footer-cols a, .we-footer-nav a, .we-footer-addr a, .we-footer-copy a { color: #3F4042; text-decoration: none; }
.we-footer-copy a { text-decoration: underline; text-underline-offset: 2px; }
.we-footer-cols a:hover, .we-footer-nav a:hover, .we-footer-addr a:hover, .we-footer-copy a:hover { color: #F68B2D; }
.we-footer-addr, .we-footer-addr p, .we-footer-copy, .we-footer-copy p { color: #3F4042; }

/* immagini gallery: taglio 3:2 come il sito Astro */
.we-crop32 img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; height: auto; }

/* carosello foto: slide 3:2, dots brand */
.we-carousel .swiper-slide img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.we-carousel .swiper-pagination-bullet { width: 10px; height: 10px; background: rgba(63,64,66,.25); opacity: 1; }
.we-carousel .swiper-pagination-bullet-active { background: #F68B2D; }

/* CTA header: solo testo+icona, niente sfondo */
.we-header-cta .elementor-button { background: transparent !important; padding: 0 !important; border-radius: 0 !important; }
.we-header-cta .elementor-button:hover { background: transparent !important; color: #F68B2D !important; }
.we-header-cta .elementor-button-icon svg, .we-header-cta .elementor-button-icon img { width: 32px; height: 32px; }
.we-header-cta .elementor-button-content-wrapper { align-items: center; gap: 14px; }

/* nasconde la scrollbar dei caroselli */
.no-scrollbar { scrollbar-width: none; -ms-overflow-style: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* Hero home: foto pulita senza velatura, leggibilita' testo via ombra */
.we-hero-home .elementor-heading-title, .we-hero-home .elementor-button { text-shadow: 0 2px 18px rgba(10,15,20,.55); }

/* Hero contatti: su mobile/tablet la foto del team si vede intera sotto al testo */
@media (max-width: 1024px) {
  .we-hero-contatti { background-image: none !important; background-color: #2B2B2E !important; min-height: 0 !important; padding-bottom: 0 !important; }
  .we-hero-contatti::before, .we-hero-contatti > .elementor-background-overlay { display: none !important; }
  .we-hero-contatti::after {
    content: ""; display: block; order: 99;
    width: calc(100% + 2 * clamp(1.25rem,2.78vw,3.3rem));
    margin-left: calc(-1 * clamp(1.25rem,2.78vw,3.3rem));
    margin-top: 3rem;
    aspect-ratio: 2560 / 1708;
    background: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/team.webp) center / cover no-repeat;
  }
}

/* ===== Accessibilita' (WCAG) ===== */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #F68B2D; outline-offset: 2px; border-radius: 2px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* interruzioni di riga solo da desktop, come sul sito Astro */
.br-lg { display: none; }
@media (min-width: 1025px) { .br-lg { display: inline; } }

/* == allineamento al sito Astro: inizio == */
/* il riquadro "Chi siamo" sul sito online non tocca il bordo destro.
   Solo da desktop: nel markup Astro e' lg:mr-[clamp(0px,8.3vw,160px)],
   sotto i 1024px il riquadro occupa tutta la larghezza. */
@media (min-width: 1025px) {
  .we-card-chisiamo { margin-right: clamp(0px, 8.3vw, 160px); }
}

/* la decorazione esagonale deve mantenere le proporzioni del vettoriale:
   senza questo l'altezza viene dedotta dal box e l'esagono risulta stirato */
.we-hex::before {
  height: auto !important;
  aspect-ratio: 1128 / 1349 !important;
}

/* Le decorazioni ancorate in basso (card servizio, sezioni servizi e processo,
   riquadro tecnologia) ricevono anche top:0 e finiscono in alto: l'ancoraggio
   corretto e' sul bordo inferiore, come sul sito online. */
.we-hex::before { top: auto !important; }
/* Elementor usa lo stesso ::before dei contenitori per sfondo e bordo:
   .e-con::before { position:absolute; left: calc(0px - var(--border-left-width));
   width: max(100% + ..., 100%) }. Il left resta anche sulle nostre decorazioni,
   e un box con left E width impostati e' sovravincolato: in LTR vince left e il
   right viene ignorato. Risultato: tutte le decorazioni ancorate a destra
   finivano incollate al bordo sinistro (era la segnalazione "l'elemento e'
   spostato a sinistra mentre nel sito in html e' a destra").
   Serve left:auto per rimettere in gioco il right. La width nostra passa gia'
   per ordine di caricamento, post-6.css viene dopo frontend.min.css. */
.we-card-chisiamo::before,
.we-card-servizio::before,
.we-sec-processo::before,
.we-card-tecnologia::before { left: auto !important; }

/* ---- "Cosa facciamo": velatura e decorazione litigavano sullo stesso ::before ----
   La sezione ha una velatura di sfondo nativa (#0c1a2c al 55%, la stessa del
   sito online) e Elementor la disegna sul ::before del contenitore, lo stesso
   pseudo-elemento che qui usavamo per l'esagono. Vinceva Elementor sul colore
   (selettore a due classi) e noi sulla maschera, col risultato peggiore dei due:
   la velatura ritagliata a forma di esagono, quindi foto senza velo e piu'
   chiara dell'originale, e l'esagono blu scuro invece che bianco al 15%,
   invisibile sul fondo scuro. Sul sito Astro sono due elementi distinti (un div
   inset-0 per il velo e uno span per la decorazione), qui servono due
   pseudo-elementi: il ::before torna velatura piena, l'esagono passa su ::after.
   Lo z-index serve perche' ::after e' l'ultimo nell'ordine di disegno e
   coprirebbe le card. */
.we-sec-servizi::before {
  -webkit-mask-image: none !important; mask-image: none !important;
  aspect-ratio: auto !important;
  inset: 0 !important;
  width: auto !important; height: auto !important;
}
.we-sec-servizi::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  background-color: rgba(255, 255, 255, .15);
  -webkit-mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg);
  mask-image: url(https://www.fortunastampi.com/wp-content/uploads/2026/07/hex.svg);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
  aspect-ratio: 1128 / 1349;
  top: auto; left: auto; right: -6%; bottom: -12%;
  width: clamp(380px, 40vw, 780px); height: auto;
}
.we-sec-servizi > .elementor-element { position: relative; z-index: 1; }

/* Le ancorate in alto vanno ripristinate UNA PER UNA. Dimenticarne una non da'
   errore, la decorazione resta con top:auto e cade sulla posizione statica:
   .we-sec-processo finiva 168px piu' in basso (sotto il padding della sezione)
   e .we-sec-form veniva centrata e poi tirata su di 490px dal translateY(-50%)
   della regola base. Se si aggiunge una nuova .we-hex ancorata in alto, va
   aggiunta anche qui. */
.we-card-chisiamo::before { top: 6% !important; }
.we-sec-settori::before   { top: 50% !important; }
.we-sec-processo::before  { top: 0 !important; }
.we-sec-form::before      { top: 50% !important; }

/* Nel sito Astro la spaziatura verticale la danno solo i margini dei singoli
   elementi. Elementor aggiunge un row-gap di 20px tra i widget e un margine
   sotto l'ultimo paragrafo di ogni blocco di testo: sommati fanno crescere
   ogni sezione di alcune decine di pixel. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0 !important; }

/* Nota: spazio fra i passi del processo, larghezza del logo e distanza fra le
   voci di menu sono impostati sui contenitori e sui widget
   (vedi patch_spaziature_native.php), non qui.

   Le colonne del processo restano invece qui: il sito online usa 0.9fr/1.4fr,
   cioe' proporzioni sullo spazio AL NETTO del gap. Il controllo "Larghezza %"
   di Elementor calcola sul contenitore gap compreso, quindi le due colonne
   sommate mandano a capo la seconda. Si usa una griglia vera invece di
   calcolare a mano le percentuali: il gap lo sottrae il browser e non resta
   il margine di mezzo pixel che faceva andare a capo la colonna. */
@media (min-width: 1025px) {
  .we-sec-processo { display: grid !important; grid-template-columns: 0.9fr 1.4fr !important; }
  .we-sec-processo > .e-con { width: auto !important; max-width: none !important; }
}
/* le due colonne dei passi (1-3 e 4-6 + pulsante) dentro la colonna di destra:
   erano calc(50% - clamp(1rem,1.8vw,2.15rem)) e restava lo stesso avanzo di
   un centesimo di pixel. Nell'originale e' grid sm:grid-cols-2. */
@media (min-width: 640px) {
  .we-sec-processo > .e-con:nth-child(2) { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; align-items: start; }
  .we-sec-processo > .e-con:nth-child(2) > .e-con { width: auto !important; max-width: none !important; }
}

/* ---- header: stessa impaginazione del sito online ----
   logo a sinistra, menu centrato nella pagina, pulsante e lingua a destra. */
.we-lang {
  color: #fff;
  text-decoration: none;
  transition: color .2s ease;
}
.we-lang:hover { color: #F68B2D; }

@media (min-width: 1025px) {
  /* NB: nessun position qui. L'header e' fixed e trasparente sopra la hero:
     impostare position:relative lo rimette nel flusso e fa comparire uno
     sfondo bianco. Il fixed fa gia' da riferimento per il menu centrato. */
  .we-header {
    display: flex !important;
    align-items: center;
    column-gap: 0 !important;
  }
  /* il menu resta centrato sulla pagina, non sullo spazio residuo */
  .we-header > .t-nav:not(.we-header-cta):not(.we-lang-wrap) {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
  }
  .we-header > .we-header-cta { margin-left: auto; }
  /* da desktop ai contatti si arriva col pulsante, come sul sito online */
  .we-header .elementor-nav-menu li.solo-mobile { display: none; }
  .we-header > .we-lang-wrap { margin-left: clamp(1.5rem, 2vw, 2.5rem); }
}

/* spaziature interne dei due riquadri, prese dal sito online */
.we-card-chisiamo > .t-sub { margin-top: clamp(1rem, 5.1vw, 6rem) !important; }
.we-card-chisiamo > .t-body { margin-top: clamp(1.5rem, 4.4vw, 5.2rem) !important; }
.we-card-tecnologia > .t-sub,
.we-card-tecnologia > .t-body { margin-top: 1.75rem !important; }

/* ---- griglia "Cosa facciamo": griglia vera, non percentuali ----
   Le card avevano width: calc(25% - clamp(0.75rem,2.29vw,2.775rem)), cioe'
   un quarto meno tre quarti di gap: aritmeticamente esatto, ma senza margine.
   Misurato a 2560px: 4 card + 3 gap = 2048,016px dentro un contenitore di
   2048,03px, cioe' 14 millesimi di pixel di avanzo. Basta un arrotondamento
   diverso (altro browser, zoom, barra di scorrimento) e la quarta card va a
   capo: il cliente vedeva 3+3 invece di 4+2. Con grid-template-columns il gap
   lo sottrae il browser e il problema non si pone.
   I breakpoint sono quelli di Tailwind del sito Astro (640 / 1024), non quelli
   di Elementor: nella fascia 640-767 l'originale mostra due colonne. */
.we-sec-servizi .e-con:has(> .we-card-servizio) {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: stretch;
}
@media (min-width: 640px) {
  .we-sec-servizi .e-con:has(> .we-card-servizio) { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px) {
  .we-sec-servizi .e-con:has(> .we-card-servizio) { grid-template-columns: repeat(4, 1fr) !important; }
}
/* la larghezza la decide la griglia: il --width del contenitore Elementor no */
.we-sec-servizi .we-card-servizio { width: auto !important; max-width: none !important; }

/* ---- form contatti: stesse misure del sito online ----
   Elementor parte da campi da 40px con gronda di 5px (gap 10px); sull'originale
   sono 48px con gap 16px, e la textarea e' 172px invece di 136px. */
.we-form .elementor-form-fields-wrapper { margin: 0 -8px -16px !important; }
.we-form .elementor-field-group { padding-left: 8px !important; padding-right: 8px !important; margin-bottom: 16px !important; }
.we-form .elementor-field-textual { height: 48px !important; padding: 0 16px !important; font-size: 16px !important; line-height: 24px !important; }
.we-form textarea.elementor-field-textual { height: 172px !important; padding: 14px 16px !important; }
/* il pulsante sull'originale e' alto 54,5px: stessi padding, cambia solo
   l'interlinea, che in Elementor resta a 1 */
/* Il pulsante non lo dimensiona width ma il flex-basis: l'allineamento
   "stretch" di Elementor mette .elementor-button-align-stretch
   .elementor-field-type-submit .elementor-button { flex-basis: 100% }, tre
   classi, che batte la regola base del kit. Sull'originale e' largo quanto il
   testo (205px) e allineato a destra. */
.we-form .elementor-button[type=submit] { line-height: 1.5 !important; }
.we-form .elementor-field-type-submit .elementor-button { flex-basis: auto !important; flex-grow: 0 !important; width: auto !important; margin-left: auto !important; }
/* la spunta privacy sull'originale e' 20x20 con 12px di stacco dal testo */
.we-form .elementor-field-type-acceptance input[type=checkbox] { width: 20px !important; height: 20px !important; flex: 0 0 20px; margin: 2px 12px 0 0 !important; accent-color: #2B2B2E; }
.we-form .elementor-field-type-acceptance label { display: flex; align-items: flex-start; }

/* ---- contatti: recapiti e form affiancati ----
   Le due colonne erano due contenitori al 50% con gap 56px: 1024 + 1024 + 56
   dentro 2048 non ci sta, quindi il form andava a capo e finiva SOTTO ai
   recapiti invece che di fianco. Nell'originale e' grid lg:grid-cols-2 gap-14
   items-center. Sotto i 1024px si impilano, come sul sito online.
   La decorazione ::before resta assoluta, quindi non diventa una cella. */
@media (min-width: 1024px) {
  .we-sec-form { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; align-items: center; }
  .we-sec-form > .e-con { width: auto !important; max-width: none !important; }
}

/* ---- peso e interlinea: la tipografia globale di Elementor vinceva dove noi
   non li avevamo dichiarati ----
   Misurato sul sito online: voci di menu e pulsanti peso 400 (Elementor li
   metteva 500 e 600), e interlinea 1.5 ovunque, che su Astro arriva per
   ereditarieta' dal body mentre Elementor la porta a 1.
   Si vedeva soprattutto sui pulsanti (400 contro 600) e sulle etichette dei
   settori, dove il testo va a capo su due righe: 30px di interlinea invece di 46.
   Accumulate, queste differenze allungavano la home di 68px. */
.t-nav, .t-nav a, .t-nav .elementor-button, .t-nav .elementor-item,
.we-header .elementor-nav-menu .elementor-item,
.we-btn-brand .elementor-button, .we-btn-dark .elementor-button,
.we-header-cta .elementor-button {
  font-weight: 400 !important;
  line-height: 1.5 !important;
}
.t-eyebrow, .t-eyebrow .elementor-heading-title,
.t-label, .t-label .elementor-heading-title { line-height: 1.5 !important; }

/* ---- griglia dei 12 settori: da percentuali a griglia ----
   Stesso difetto gia' corretto sulle card servizi, qui era rimasto: i riquadri
   avevano width 45% da mobile, 30% da tablet, 22% da desktop, e il gap di 32px
   non viene sottratto. A 390px due riquadri da 45% (141,3px) piu' il gap fanno
   314,6px dentro 314px: la seconda colonna andava a capo e la griglia scendeva
   a una colonna sola, allungando la home di quasi mille pixel. Sotto i 2560px
   era sfalsata di una colonna a ogni misura: 1 invece di 2, 2 invece di 3,
   3 invece di 4. Sull'originale e' grid-cols-2 sm:grid-cols-3 lg:grid-cols-4
   con i breakpoint di Tailwind (640 / 1024). */
.we-settori {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.we-settori > .elementor-element { width: auto !important; max-width: none !important; }
@media (min-width: 640px) {
  .we-settori { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (min-width: 1024px) {
  .we-settori { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
/* La cella misurava 125px invece di 105, venti pixel per riga e sei righe su
   mobile. Tre cause sommate: l'img del widget immagine resta inline e lascia
   sotto di se' lo spazio di una riga di testo, il widget del testo eredita
   l'interlinea di 24px del contenitore, e soprattutto quel widget ha gia' un
   margine nativo di 16px che replica il mt-4 dell'originale, a cui il gap del
   contenitore flex si sommava. Il distacco lo deve dare uno solo dei due:
   teniamo il margine e azzeriamo il gap. */
.we-settori > .elementor-element { gap: 0 !important; }
.we-settori .elementor-widget-image img { display: block !important; }
.we-settori .elementor-widget-image,
.we-settori .elementor-widget-heading { line-height: 0 !important; }

/* ---- loghi: altezza fissa come sull'originale, non larghezza fissa ----
   Il widget immagine di Elementor porta una larghezza in px (222 header,
   170 footer) giusta solo a 2560: sotto, il contenitore flex si stringe e
   max-width:100% rimpiccioliva il logo (123x44 invece di 175x64 a 390px).
   Su Astro sono h-16 lg:h-20 nell'header e h-20 nel footer, cioe' altezza
   fissa e larghezza automatica. */
.we-header .elementor-widget-image { flex-shrink: 0 !important; width: auto !important; }
.we-header .elementor-widget-image img,
.we-footer-cols .elementor-widget-image img {
  height: 64px !important;
  width: auto !important;
  max-width: none !important;
}
.we-footer-cols .elementor-widget-image img { height: 80px !important; }
@media (min-width: 1024px) {
  .we-header .elementor-widget-image img { height: 80px !important; }
}
/* == allineamento al sito Astro: fine == *//* End custom CSS */