/* ── Override Elementor / WordPress reset ── */
.elementor-widget-container { padding: 0 !important; }
.elementor-section { margin: 0 !important; }
.elementor-widget-html img { height: revert !important; max-width: revert !important; }
.elementor-widget-html p { margin: 0 !important; }
.elementor-widget-html a { color: inherit; }
.wp-block-group, .entry-content { padding: 0 !important; }
.elementor-section.elementor-section-boxed { background: transparent; }
/* Ensure full-width sections stretch properly */
.elementor-section.elementor-section-full_width { width: 100vw; margin-left: calc(-50vw + 50%); }
/* Fix column wrapping — Elementor rows with columns totaling >100% must wrap */
.elementor-row, .elementor-container { flex-wrap: wrap !important; margin: 0 !important; }
.elementor-row > .elementor-column, .elementor-container > .elementor-column {
  flex-shrink: 0 !important;
}
/* Ensure images are responsive */
.elementor-widget-image img { max-width: 100%; height: auto; }
/* Gallery/image grid: enforce equal heights when images are in multi-column sections */
.elementor-section .elementor-row .elementor-column .elementor-widget-image img,
.elementor-section .elementor-container .elementor-column .elementor-widget-image img {
  width: 100%; object-fit: cover;
}
/* Fix icon-box alignment */
.elementor-icon-box-wrapper { text-align: inherit; }
/* Counter widget number sizing */
.elementor-counter .elementor-counter-number-wrapper { display: block; }
/* Testimonial widget spacing */
.elementor-testimonial-wrapper { padding: 0; }
/* Accordion/tabs borders */
.elementor-accordion .elementor-accordion-item { border-color: #e5e7eb; }
.elementor-tab-title { cursor: pointer; }

/* ── Sezioni custom ThemeLab (.tl-custom-grid, vedi render_custom_section
   in themelab_builder_php.rb): il numero di colonne desktop è fissato via
   style inline (dipende dai dati salvati), che un @media query non può
   sormontare senza !important — da qui questo file invece che il markup
   stesso. Senza questo, una sezione a card (es. team/servizi) creata o
   modificata con l'assistente AI resta N colonne fisse anche su mobile. */
@media (max-width: 900px) {
  .tl-custom-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px) {
  .tl-custom-grid { grid-template-columns: 1fr !important; }
}


/* ── Override sezioni Elementor via data-id (no cache required) ── */
.elementor-section { margin: 0 !important; }
.elementor-section-boxed > .elementor-container { max-width: none !important; }
.elementor-widget-container { padding: 0 !important; }
[data-id="s1"] { background-image: linear-gradient(rgba(26,107,154,0.75), rgba(26,107,154,0.75)), url('https://images.unsplash.com/photo-1555400038-63f5ba517a47?w=1920&q=85&auto=format&fit=crop') !important; background-size: cover !important; background-position: center center !important; background-repeat: no-repeat !important; padding: 0px 0px 0px 0px !important; }
[data-id="s1"] .elementor-heading-title { color: #fff !important; }
[data-id="s1"] .elementor-counter-number, [data-id="s1"] .elementor-counter-title { color: #fff !important; }
[data-id="s1"] .elementor-widget-text-editor { color: #fff !important; }
[data-id="s1"] .elementor-icon-box-title, [data-id="s1"] .elementor-icon-box-description { color: #fff !important; }
[data-id="s1"] .elementor-testimonial-content, [data-id="s1"] .elementor-testimonial-name { color: #fff !important; }
[data-id="s1"] .elementor-icon-list-text { color: #fff !important; }
[data-id="c1_1"] > .elementor-column-wrap, [data-id="c1_1"] > .elementor-widget-wrap { padding: 80px 24px 80px 24px !important; }
[data-id="w1"] .elementor-widget-container { color: #7dd3fc !important; }
[data-id="w2"] .elementor-heading-title { color: #ffffff !important; font-size: 68px !important; font-weight: 800 !important; line-height: 1.1em !important; font-family: 'Playfair Display', sans-serif !important; }
[data-id="w3"] .elementor-widget-container { color: #e2e8f0 !important; font-size: 19px !important; line-height: 1.7em !important; }
[data-id="s2"] { background-color: #ffffff !important; padding: 48px 0px 48px 0px !important; }
[data-id="c2_1"] > .elementor-column-wrap, [data-id="c2_1"] > .elementor-widget-wrap { padding: 0px 24px 0px 24px !important; }
[data-id="s3"] { background-color: #ffffff !important; padding: 24px 0px 16px 0px !important; }
[data-id="c3_1"] > .elementor-column-wrap, [data-id="c3_1"] > .elementor-widget-wrap { padding: 0px 24px 0px 24px !important; }
[data-id="w7"] .elementor-heading-title { color: #1a2332 !important; font-size: 44px !important; font-weight: 800 !important; line-height: 1.2em !important; font-family: 'Playfair Display', sans-serif !important; }
[data-id="w8"] .elementor-widget-container { color: #6b7a8d !important; font-size: 17px !important; line-height: 1.7em !important; }
[data-id="s4"] { background-color: #ffffff !important; padding: 0px 24px 64px 24px !important; }
[data-id="c4_1"] > .elementor-column-wrap, [data-id="c4_1"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w9"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w11"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="c4_2"] > .elementor-column-wrap, [data-id="c4_2"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w12"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w14"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="c4_3"] > .elementor-column-wrap, [data-id="c4_3"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w15"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w17"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="s5"] { background-color: #ffffff !important; padding: 0px 24px 64px 24px !important; }
[data-id="c5_1"] > .elementor-column-wrap, [data-id="c5_1"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w18"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w20"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="c5_2"] > .elementor-column-wrap, [data-id="c5_2"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w21"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w23"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="c5_3"] > .elementor-column-wrap, [data-id="c5_3"] > .elementor-widget-wrap { padding: 0px 12px 24px 12px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 4px 24px 0px rgba(26,107,154,0.10) !important; }
[data-id="w24"] img { border-radius: 12px 12px 0px 0px !important; }
[data-id="w26"] .elementor-button { background-color: #003580 !important; color: #ffffff !important; border-radius: 8px 8px 8px 8px !important; padding: 12px 24px 12px 24px !important; font-weight: 600 !important; }
[data-id="s6"] { background-color: #f8f6f1 !important; padding: 80px 0px 24px 0px !important; }
[data-id="c6_1"] > .elementor-column-wrap, [data-id="c6_1"] > .elementor-widget-wrap { padding: 0px 24px 0px 24px !important; }
[data-id="w28"] .elementor-heading-title { color: #1a2332 !important; font-size: 44px !important; font-weight: 800 !important; line-height: 1.2em !important; font-family: 'Playfair Display', sans-serif !important; }
[data-id="w29"] .elementor-widget-container { color: #6b7a8d !important; font-size: 17px !important; line-height: 1.7em !important; }
[data-id="s7"] { background-color: #f8f6f1 !important; padding: 0px 24px 24px 24px !important; }
[data-id="c7_1"] > .elementor-column-wrap, [data-id="c7_1"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c7_2"] > .elementor-column-wrap, [data-id="c7_2"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c7_3"] > .elementor-column-wrap, [data-id="c7_3"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c7_4"] > .elementor-column-wrap, [data-id="c7_4"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="s8"] { background-color: #f8f6f1 !important; padding: 0px 24px 80px 24px !important; }
[data-id="c8_1"] > .elementor-column-wrap, [data-id="c8_1"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c8_2"] > .elementor-column-wrap, [data-id="c8_2"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c8_3"] > .elementor-column-wrap, [data-id="c8_3"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c8_4"] > .elementor-column-wrap, [data-id="c8_4"] > .elementor-widget-wrap { padding: 24px 16px 24px 16px !important; border: 0px solid #2e9dc8 !important; border-radius: 12px 12px 12px 12px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="s9"] { background-color: #ffffff !important; padding: 80px 0px 24px 0px !important; }
[data-id="c9_1"] > .elementor-column-wrap, [data-id="c9_1"] > .elementor-widget-wrap { padding: 0px 24px 0px 24px !important; }
[data-id="w39"] .elementor-heading-title { color: #1a2332 !important; font-size: 44px !important; font-weight: 800 !important; line-height: 1.2em !important; font-family: 'Playfair Display', sans-serif !important; }
[data-id="w40"] .elementor-widget-container { color: #6b7a8d !important; font-size: 17px !important; line-height: 1.7em !important; }
[data-id="s10"] { background-color: #ffffff !important; padding: 0px 24px 24px 24px !important; }
[data-id="c10_1"] > .elementor-column-wrap, [data-id="c10_1"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c10_2"] > .elementor-column-wrap, [data-id="c10_2"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c10_3"] > .elementor-column-wrap, [data-id="c10_3"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c10_4"] > .elementor-column-wrap, [data-id="c10_4"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="s11"] { background-color: #ffffff !important; padding: 0px 24px 80px 24px !important; }
[data-id="c11_1"] > .elementor-column-wrap, [data-id="c11_1"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c11_2"] > .elementor-column-wrap, [data-id="c11_2"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c11_3"] > .elementor-column-wrap, [data-id="c11_3"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }
[data-id="c11_4"] > .elementor-column-wrap, [data-id="c11_4"] > .elementor-widget-wrap { padding: 28px 20px 28px 20px !important; border-radius: 16px 16px 16px 16px !important; box-shadow: 0px 2px 12px 0px rgba(26,107,154,0.08) !important; }