.elementor-kit-4{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-weight:800;--e-global-typography-secondary-font-family:"Libre Baskerville";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Libre Baskerville";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;background-color:#f7f8f7;color:#0d1a24;font-family:"Inter", Sans-serif;font-size:1.25rem;font-weight:400;line-height:1.75em;}.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:1000px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:640px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --paper:#f7f8f7; --paper-warm:#e9edec; --sky-wash:#e7f3fb; --ink:#0d1a24; --ink-soft:#33424e; --ink-mute:#66757f; --line:#dbe1e2; --accent:#0284c7; --accent-bright:#0ea5e9; --accent-deep:#075985; --night:#0a141d; --night-soft:#16222d; --night-line:#24313c; --night-text:#b8c4cd; --font:Inter; --font-body:Libre Baskerville; --serif:Georgia; --t-h2:clamp(2.125rem, 4.6vw, 3.75rem); --t-h3:clamp(1.375rem, 2.2vw, 1.75rem); --t-lead:clamp(1.25rem, 1.9vw, 1.5rem); --t-body:1.25rem; --t-small:0.875rem; --t-label:0.75rem; --t-display:clamp(3.25rem, 5.6vw, 5.25rem); --t-hero-role:clamp(2rem, 3.2vw, 2.8rem); --t-tagline:clamp(1.05rem, 1.5vw, 1.35rem); --space-section:clamp(6rem, 12vw, 11rem); --gutter:clamp(1.25rem, 3.5vw, 3.5rem); --grid-gap:clamp(2.5rem, 6vw, 8rem); --radius:4px; }
/* Start custom CSS *//* corsivo serif dentro titoli e paragrafi */
.elementor em{ font-family: var(--serif), Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: -.01em; }
/* grassetto dentro i paragrafi */
.elementor .sp-p strong, .elementor .sp-hero-sub strong{ color: var(--ink); font-weight: 600; }
.elementor .sp-cite strong{ color: var(--accent); font-weight: 700; }
::selection{ background: var(--accent-bright); color: #fff; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior: auto; } }

/* white-space non esiste tra i controlli di stile di Elementor */
.elementor .sp-display{ white-space: nowrap; }
.elementor .sp-client{ white-space: nowrap; }
.elementor .sp-pill-k{ white-space: nowrap; }
.elementor .sp-btn{ white-space: nowrap; }
/* pointer-events non esiste tra i controlli: senza, il brand e la CTA
   dell'header restano cliccabili anche da invisibili */
.elementor .sp-brand, .elementor .sp-nav-cta{ pointer-events: none; }
.elementor .sp-brand-visibile, .elementor .sp-nav-cta-visibile{ pointer-events: auto; }
@media (max-width:640px){ .elementor .sp-display{ white-space: normal; } }

/* break-inside non esiste tra i controlli: senza, gli screenshot si spezzano
   a metà tra una colonna e l'altra. */
.elementor .sp-shot{ break-inside: avoid; }
/* dentro una citazione, il testo evidenziato */
.elementor .sp-pullquote strong{ color: var(--accent); font-weight: inherit; }
/* il nome nella frase del volo a Milano */
.elementor .sp-flight em{ color: var(--accent); }

/* Stati dell'header applicati dal JS mentre si scorre. Non possono essere
   global class: Elementor genera il CSS solo per le classi presenti sugli
   elementi della pagina, e queste compaiono soltanto a runtime. */
.elementor .sp-header.sp-header-fisso{
  background-color: rgba(247,248,247,.86);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--line);
  padding-block: .85rem;
}
.elementor .sp-header.sp-header-scuro.sp-header-fisso{
  background-color: rgba(10,20,29,.82);
  box-shadow: 0 1px 0 var(--night-line);
}
.elementor .sp-brand.sp-brand-visibile{ opacity:1; pointer-events:auto; }
.elementor .sp-nav-cta.sp-nav-cta-visibile{ opacity:1; pointer-events:auto; }
.elementor .sp-brand-nome.sp-brand-nome-chiaro{ color:#fff; }
.elementor .sp-nav-link.sp-nav-link-chiaro{ color: var(--night-text); }
.elementor .sp-nav-toggle.sp-nav-toggle-chiaro,
.elementor .sp-nav-toggle.sp-nav-toggle-aperto{ color:#fff; }
/* fissato, il menu si sposta a destra per far posto al brand */
@media (min-width:1101px){
  .elementor .sp-header-fisso .sp-nav{ justify-content: flex-end; }
}
/* la CTA diventa chiara quando sta su fondo scuro */
.elementor .sp-header-scuro .sp-nav-cta,
.elementor .sp-nav-aperto .sp-nav-cta{ background-color: var(--paper); color: var(--ink); }
@media (max-width:1100px){
  .elementor .sp-nav.sp-nav-aperto{ display:flex; }
  .elementor .sp-nav.sp-nav-aperto .sp-nav-link{ color:#fff; }
}

/* virgolette delle testimonianze */
.elementor .sp-voice-quote span{ color: var(--accent-bright); }

/* torna in cima: compare dopo il primo schermo (classe messa dal JS) */
.elementor .sp-to-top{ pointer-events:none; transform: translateY(14px); }
.elementor .sp-to-top.sp-to-top-visibile{ opacity:1; pointer-events:auto; transform:none; }

/* SOLO NELL'EDITOR. Lì il JS del tema non gira: brand, CTA e "torna in cima"
   resterebbero invisibili, e l'header fisso coprirebbe ciò che si sta modificando. */
.elementor-editor-active .elementor .sp-header{ position: relative; }
.elementor-editor-active .elementor .sp-brand,
.elementor-editor-active .elementor .sp-nav-cta,
.elementor-editor-active .elementor .sp-to-top{ opacity: 1; pointer-events: auto; }
.elementor-editor-active .elementor .sp-to-top{ transform: none; }

/* Marquee clienti sotto i 640px: il binario lo costruisce site.js, l'animazione
   è una @keyframes e nessun controllo Elementor la esprime. */
@media (max-width:640px){
  .elementor .sp-clients{ mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
  .elementor .sp-marquee-track{ display:flex; width:max-content; animation: sp-marquee 35s linear infinite; }
  .elementor .sp-marquee-group{ width:max-content; flex:none; }
}
@keyframes sp-marquee{ to{ transform: translateX(-50%); } }

/* ============================ BLOG ============================ */

/* Card: l'hover sta sulla card (il link) ma cambia i figli — nessun controllo
   di stato arriva da un elemento a un altro. */
.elementor .sp-card:hover .sp-card-img{ transform: scale(1.045); }
.elementor .sp-card:hover .sp-card-title{ color: var(--accent); }
/* separatore tra data e tempo di lettura: è un ::before, non un elemento */
.elementor .sp-meta > * + *::before{ content: "·"; margin-right: 1.1rem; color: var(--accent-bright); }
.elementor .sp-page-title em{ color: var(--accent); }
.elementor .sp-page-btn.e--disabled{ pointer-events: none; }
/* "Copia il link" appena cliccato (classe messa da site.js) */
.elementor .sp-share-btn.sp-share-copiato{ background-color: var(--accent); border-color: var(--accent); color: #fff; }

/* Pagine interne: il brand e la CTA dell'header sono sempre visibili e il
   menu sta a destra (classe messa da site.js fuori dalla home). */
@media (min-width:1101px){
  .elementor .sp-header-interno .sp-nav{ justify-content: flex-end; }
}

/* Testo dell'articolo. È l'HTML del vecchio editor (paragrafi, titoli,
   immagini allineate, didascalie [caption], colori inline): non sono elementi
   Elementor, quindi nessuna global class ci arriva. */
.elementor .sp-prose{ font-family: var(--font-body), Georgia, serif; font-size: var(--t-body); line-height: 1.75; color: var(--ink-soft); }
.elementor .sp-prose .elementor-widget-theme-post-content > *{ margin: 0; }
.elementor .sp-prose .elementor-widget-theme-post-content > * + *{ margin-top: 1.4em; }
.elementor .sp-prose p{ text-wrap: pretty; }
.elementor .sp-prose h2, .elementor .sp-prose h3, .elementor .sp-prose h4, .elementor .sp-prose h5{
  font-family: var(--font), sans-serif; color: var(--ink); clear: both; text-wrap: balance;
}
.elementor .sp-prose h2{ font-size: clamp(1.75rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.12; margin-top: 2.2em; }
.elementor .sp-prose h3{ font-size: var(--t-h3); font-weight: 800; letter-spacing: -.02em; line-height: 1.25; margin-top: 1.9em; }
.elementor .sp-prose h4{ font-size: 1.3rem; font-weight: 700; letter-spacing: -.015em; line-height: 1.3; margin-top: 1.8em; }
.elementor .sp-prose h5{ font-size: var(--t-label); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; margin-top: 1.8em; }
.elementor .sp-prose h2 + *, .elementor .sp-prose h3 + *, .elementor .sp-prose h4 + *, .elementor .sp-prose h5 + *{ margin-top: .8em; }
.elementor .sp-prose strong, .elementor .sp-prose b{ color: var(--ink); font-weight: 700; }
.elementor .sp-prose a{ color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .3s; }
.elementor .sp-prose a:hover{ color: var(--accent-deep); }
.elementor .sp-prose ul, .elementor .sp-prose ol{ padding-left: 1.4em; }
.elementor .sp-prose li + li{ margin-top: .6em; }
.elementor .sp-prose li::marker{ color: var(--accent-bright); font-family: var(--font), sans-serif; font-weight: 700; }
.elementor .sp-prose blockquote{ margin-block: 2.4em; padding-left: 1.6rem; border-left: 2px solid var(--accent-bright); font-family: var(--serif), Georgia, serif; font-style: italic; font-size: clamp(1.25rem, 2vw, 1.5rem); line-height: 1.5; color: var(--ink); }
.elementor .sp-prose img{ max-width: 100%; height: auto; border-radius: var(--radius); }
.elementor .sp-prose .alignleft{ float: left; margin: .35em 1.8em 1em 0; max-width: 45%; }
.elementor .sp-prose .alignright{ float: right; margin: .35em 0 1em 1.8em; max-width: 45%; }
.elementor .sp-prose .aligncenter{ display: block; margin-inline: auto; }
/* WordPress scrive la larghezza della didascalia inline, anche più larga della colonna */
.elementor .sp-prose .wp-caption{ max-width: 100%; }
.elementor .sp-prose .wp-caption img{ display: block; width: 100%; }
.elementor .sp-prose .wp-caption-text{ margin-top: .8rem; display: flex; gap: .7rem; font-family: var(--font), sans-serif; font-size: var(--t-small); line-height: 1.5; color: var(--ink-mute); }
.elementor .sp-prose .wp-caption-text::before{ content: "—"; color: var(--accent-bright); flex: none; }
/* colori inline incollati nel vecchio editor: vince la palette del sito */
.elementor .sp-prose [style*="color"]{ color: inherit !important; }
.elementor .sp-prose a[style*="color"]{ color: var(--accent) !important; }
.elementor .sp-prose .elementor-widget-theme-post-content::after{ content: ""; display: block; clear: both; }
@media (max-width:640px){
  .elementor .sp-prose .alignleft, .elementor .sp-prose .alignright{ float: none; margin: 1.4em 0; max-width: 100%; }
}/* End custom CSS */