.elementor-21918 .elementor-element.elementor-element-5ba70ee{--display:flex;}:root{--page-title-display:none;}/* Start custom CSS *//* ========== BASE (compatibile, senza :root / var / grid-gap) ========== */
* { box-sizing: border-box; }
body { margin:0; font:16px/1.5 system-ui, Segoe UI, Roboto, Arial; color:#111; background:#fff; }

.wrap { max-width:1120px; margin:0 auto; padding:24px; }
.hero { background: linear-gradient(135deg,#f6f6f6,#fff); border-bottom:2px solid #ff6a00; }
.badge { display:inline-block; background:#ff6a00; color:#fff; padding:6px 10px; border-radius:999px; font-weight:700; letter-spacing:.2px; }
h1 { font-size:36px; margin:.4em 0 .2em; color:#111; }
@media (max-width:900px){ h1{ font-size:28px; } }
.sub { color:#444; font-size:18px; max-width:60ch; }

/* ========== LAYOUT FLEX (invece di CSS Grid) ========== */
.grid-2,
.cols{
  display:flex;
  flex-wrap:wrap;
  margin-left:-12px;   /* simula gap 24 */
  margin-right:-12px;
}
.grid-2 > * ,
.cols > * {
  flex: 1 1 0;
  min-width:300px;
  margin:0 12px 24px;  /* simula gap 24 */
}

/* Hero: equilibrio colonne e card video */
.hero .wrap { align-items:center; }
@media (min-width:900px){
  .hero .grid-2 > div:first-child{ padding-right:12px; }
  .hero .grid-2 > div:last-child{ padding-left:12px; }
  .hero .card{ height:100%; display:flex; }
}

/* ========== CARD COERENTI / ALTEZZE ========== */
.card{
  background:#fff;
  border:1px solid #eee;
  border-radius:16px;
  padding:20px;
  box-shadow:0 6px 20px rgba(0,0,0,.04);
  display:flex;
  flex-direction:column;
  height:100%;
}
.card h2, .card h3 { margin:0 0 10px 0; line-height:1.2; }
.card p { margin:8px 0; }
.card ul { margin:10px 0 0 0; padding-left:0; list-style:none; }
.card ul li { display:flex; align-items:baseline; margin:6px 0; }
.list { margin:0; padding:0; list-style:none; } /* utilità per liste generiche */
.tick { width:18px; display:inline-block; color:#ff6a00; font-weight:900; margin-right:10px; }

/* pulizia margini Elementor */
.card .elementor-widget{ margin:0 !important; }
.card > *:last-child{ margin-bottom:0 !important; }
.card p:empty { display:none; }

/* bottone in basso alle card (default) */
.card .cta { margin-top:auto; }

/* ========== CTA / BOTTONI (testo bianco su arancione) ========== */
.cta{
  display:inline-flex; align-items:center;
  padding:14px 20px; border-radius:12px; border:0;
  background:#111; color:#fff; font-weight:700; text-decoration:none; cursor:pointer; line-height:1;
  transition:.15s ease;
}
.cta:hover{ filter:brightness(0.92); transform: translateY(-1px); }
.cta:focus{ outline:2px solid #111; outline-offset:2px; }

.cta.alt{ background:#ff6a00 !important; color:#fff !important; }
.cta.alt *{ color:#fff !important; }
.cta.alt:hover{ box-shadow:0 6px 18px rgba(255,106,0,.25); transform: translateY(-1px); }
.cta.alt:focus{ outline:2px solid #111; outline-offset:2px; }

/* ========== KPI COUNTDOWN ========== */
.kpis{
  display:flex; flex-wrap:wrap;
  margin-left:-8px; margin-right:-8px; margin-top:10px;
}
.kpis .kpi{
  background:#f6f6f6; border-radius:12px; padding:12px; text-align:center;
  width: calc(33.333% - 16px); margin:0 8px 8px;
}
.count{ font-weight:900; font-size:22px; }

/* ========== TAG / BADGE / PILL ========== */
.brandbar{ display:flex; flex-wrap:wrap; margin-top:14px; }
.brandbar .tag{ background:#eee; border-radius:8px; padding:6px 10px; font-size:13px; margin:0 8px 8px 0; }
.pill{
  display:inline-block; font-size:20px;
  background:#ffe9d8; color:#8a3b00; border:1px solid #ffd2ad;
  padding:8px 12px; border-radius:999px; font-weight:700; line-height:1;
  box-shadow:0 4px 10px rgba(255,106,0,.12);
}

/* ========== BLOCCO SPLIT per video affiancati e allineati ========== */
.split{
  display:flex;
  flex-wrap:nowrap;         /* non andare a capo su desktop */
  gap:16px;
}
.split-col{
  width:50%; min-width:0;
}
@media (max-width:900px){
  .split{ flex-wrap:wrap; }
  .split-col{ width:100%; }
}

/* Wrapper 16:9 per video */
.ratio{
  position:relative;
  padding-bottom:56.25%;
  height:0;
  overflow:hidden;
  border-radius:12px;
  box-shadow:0 4px 20px rgba(0,0,0,0.06);
}
.ratio > video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; border:0; display:block; border-radius:12px;
}
.media-note{ margin-top:8px; }

/* --- CTA dentro il form: NO full-width --- */
#contatti form .cta,
#contatti form [type="submit"],
#contatti .elementor-field-type-submit .elementor-button,
#contatti .elementor-button {
  display:inline-flex !important;
  width:auto !important;
  max-width:none !important;
  justify-self:start !important;
  align-self:start !important;
  padding-left:18px !important;
  padding-right:18px !important;
  border-radius:12px !important;
}

/* se Elementor mette il wrapper del bottone a block */
#contatti .elementor-field-type-submit,
#contatti .elementor-button-wrapper {
  display:inline-block !important;
  width:auto !important;
}

/* ========== FAQ (spazi perfetti) ========== */
.card.faq{ padding:24px 24px 18px; }
.card.faq h2{ margin:0 0 12px; }
.card.faq dl{ margin:0; }
.card.faq dt{ margin:14px 0 4px; font-weight:800; }
.card.faq dt:first-child{ margin-top:6px; }
.card.faq dd{ margin:0 0 12px; color:#333; }
.card.faq dd:last-child{ margin-bottom:0; }

/* ========== MEDIA ELEMENTS ========== */
.card iframe{ display:block; border:0; border-radius:12px; } /* YouTube nell'hero */

/* ========== TIPOGRAFIA / UTILITY ========== */
.price{ font-size:24px; font-weight:800; color:#111; }
.strike{ color:#999; text-decoration:line-through; margin-right:6px; }
.note{ font-size:14px; color:#555; }

/* ========== CONTATTI / GRAVITY FORMS FIX ========== */
/* Mantieni GF dentro la colonna e rendi i testi leggibili */
#contatti .gform_wrapper{ width:100% !important; max-width:100% !important; }
#contatti .gform_wrapper form{ margin:0 !important; padding:0 !important; }
#contatti .gform_wrapper input,
#contatti .gform_wrapper select,
#contatti .gform_wrapper textarea{
  color:#111 !important;
  background:#fff !important;
  border:1px solid #ccc !important;
  border-radius:6px !important;
  padding:10px 12px !important;
  font-size:15px !important;
  line-height:1.4 !important;
  box-shadow:none !important;
}
#contatti .gform_wrapper label,
#contatti .gform_wrapper .gfield_label,
#contatti .gform_wrapper ::placeholder{
  color:#333 !important; opacity:1 !important;
}
/* Spazio tra campi */
#contatti .gform_wrapper .gfield{ margin-bottom:14px !important; }

/* Card consulenza: CTA non spinta in fondo */
#contatti .consult-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:auto !important;
}
#contatti .consult-card .cta{
  margin-top:6px !important;   /* override del push-to-bottom globale */
  position:static !important;
  align-self:flex-start;
}
/* Immagine 16:9 nella card consulenza */
#contatti .consult-card .ratio-img{
  position:relative; width:100%; aspect-ratio:16/9;
  overflow:hidden; border-radius:10px; background:#f6f6f6;
}
#contatti .consult-card .ratio-img img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}

/* ========== MOBILE RIFINITURE ========== */
@media (max-width:900px){
  .wrap{ padding-left:18px; padding-right:18px; }
  .card{ padding:18px; }
  .kpis .kpi{ padding:10px; }
  .count{ font-size:18px; }
}
/* ========== PULSANTI UNIFORMI ARANCIONI BRAND ========== */

/* CTA generali */
.cta,
.cta.alt,
#gform_submit_button_1,
#contatti form [type="submit"],
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="button"],
.gform_wrapper .gform_drop_area .gform_button_select_files {
  background-color: #ff6a00 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  padding: 14px 22px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  box-shadow: 0 4px 12px rgba(255,106,0,0.25);
}

.cta:hover,
.cta.alt:hover,
#gform_submit_button_1:hover,
#contatti form [type="submit"]:hover,
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer input[type="button"]:hover,
.gform_wrapper .gform_drop_area .gform_button_select_files:hover {
  filter: brightness(0.92);
  transform: translateY(-1px);
}

/* Fix testo bianco anche dentro bottoni Gravity Forms */
.gform_wrapper .gform_button_select_files span,
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="button"] {
  color: #fff !important;
}

/* Hover coerente anche su pulsanti upload */
.gform_wrapper .gform_button_select_files:hover {
  background-color: #e65f00 !important;
}

/* Facoltativo: bordo sottile se vuoi richiamo al tuo arancione su fondo bianco */
.cta:focus,
.gform_wrapper .gform_button_select_files:focus {
  outline: 2px solid #ff6a00;
  outline-offset: 2px;
}
/* Nasconde la scritta "* indica i campi obbligatori" in tutti i form */
.gform_required_legend {
  display: none !important;
}
/* Mostra/occulta i form per lingua (WPML imposta html[lang="it-IT"] ecc.) */
.only-it, .only-en, .only-fr, .only-de, .only-es { display: none; }

/* HTML lang startswith body.elementor-page-21918 per robustezza (it, it-IT, en-US, ecc.) */
html[lang^="it"] .only-it { display:block; }
html[lang^="en"] .only-en { display:block; }
html[lang^="fr"] .only-fr { display:block; }
html[lang^="de"] .only-de { display:block; }
html[lang^="es"] .only-es { display:block; }

/* Mantieni la card in equilibrio anche quando gli altri form sono nascosti */
#contatti .card.contact-card{ display:flex; flex-direction:column; }
#contatti .card.contact-card .gf-holder{ 
  flex:1 1 auto; 
  min-height:420px; /* regola a gusto per pareggiare la card destra */
}

/* Gravity Forms: larghezza e leggibilità */
#contatti .gform_wrapper{ width:100%!important; max-width:100%!important; }
#contatti .gform_wrapper .gfield{ margin-bottom:14px!important; }
#contatti .gform_wrapper input,
#contatti .gform_wrapper select,
#contatti .gform_wrapper textarea{
  color:#111!important; background:#fff!important; border:1px solid #ccc!important;
  border-radius:6px!important; padding:10px 12px!important; font-size:15px!important;
}
/* Bottoni arancioni brand */
.cta, .cta.alt,
#gform_submit_button_1, #gform_submit_button_2, #gform_submit_button_3, #gform_submit_button_4, #gform_submit_button_5,
.gform_wrapper .gform_footer input[type="submit"]{
  background:#ff6a00!important; color:#fff!important; border:none!important; border-radius:12px!important;
  font-weight:700!important; text-transform:uppercase!important; padding:14px 22px!important;
  box-shadow:0 4px 12px rgba(255,106,0,.25); transition:.2s ease;
}
/* ---- CONTATTI: 2 colonne affiancate + stessa altezza (solo desktop) ---- */
@media (min-width: 900px){
  #contatti.wrap.grid-2{
    display: flex;
    flex-wrap: nowrap;          /* niente a capo: 2 colonne */
    align-items: stretch;       /* le card diventano alte uguali (come la più alta) */
  }
  #contatti.wrap.grid-2 > .card{
    flex: 1 1 0;                /* 50% ciascuna */
    margin: 0 12px 24px;        /* gap coerente col resto */
    width: auto !important;     /* ignora eventuali larghezze ereditate */
  }
}

/* la card contatti e consulenza restano flex-column */
#contatti .card{ display:flex; flex-direction:column; }

/* NON spingere la CTA della consulenza in fondo */
#contatti .consult-card .cta{ margin-top:8px !important; position:static !important; }

/* togli il vincolo di altezza che può falsare la parità e causare wrap */
#contatti .card.contact-card .gf-holder{ min-height: unset !important; }

/* Mostra SOLO il form della lingua corrente */
.only-it,.only-en,.only-fr,.only-de,.only-es{ display:none !important; }
html[lang^="it"] .only-it{ display:block !important; }
html[lang^="en"] .only-en{ display:block !important; }
html[lang^="fr"] .only-fr{ display:block !important; }
html[lang^="de"] .only-de{ display:block !important; }
html[lang^="es"] .only-es{ display:block !important; }

/* Evita che i contenuti interni allarghino la colonna */
#contatti.wrap.grid-2 > .card{ min-width:0 !important; }

/* ==== FORCE BRAND ORANGE ON GF SUBMIT ==== */
/* 1) Target ultra-specifico per tutti i form 1..5 */
#gform_1 .gform_footer input#gform_submit_button_1.gform_button.button,
#gform_2 .gform_footer input#gform_submit_button_2.gform_button.button,
#gform_3 .gform_footer input#gform_submit_button_3.gform_button.button,
#gform_4 .gform_footer input#gform_submit_button_4.gform_button.button,
#gform_5 .gform_footer input#gform_submit_button_5.gform_button.button {
  background:#ff6a00 !important;
  color:#fff !important;
  border: none !important;
  border-radius:12px !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  padding:14px 22px !important;
  box-shadow:0 4px 12px rgba(255,106,0,.25) !important;
  transition:all .2s ease !important;
}

/* 2) Copertura generica per eventuali varianti "button" */
.gform_wrapper form .gform_footer .gform_button.button,
.gform_wrapper form .gform_page_footer .gform_button.button {
  background:#ff6a00 !important;
  color:#fff !important;
  border:none !important;
}

/* 3) Hover */
#gform_1 #gform_submit_button_1:hover,
#gform_2 #gform_submit_button_2:hover,
#gform_3 #gform_submit_button_3:hover,
#gform_4 #gform_submit_button_4:hover,
#gform_5 #gform_submit_button_5:hover,
.gform_wrapper form .gform_footer .gform_button.button:hover {
  filter:brightness(.92);
  transform:translateY(-1px);
}/* End custom CSS */