/**
 * Theme Name: Blocksy Child
 * Description: Blocksy Child theme
 * Author: Creative Themes
 * Template: blocksy
 * Text Domain: blocksy
 */

/* ===== Font Inter servito dal nostro server (non da Google: niente IP dei visitatori a Google) =====
   File in fonts/, solo latin + latin-ext. Font variabile: un solo file per tutti i pesi (400-700).
   Google Fonts viene tolto in functions.php, che sostituisce anche il vecchio 'Ubuntu' scritto nei moduli e nelle landing. */
@font-face {
	font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap;
	src: url('fonts/inter-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap;
	src: url('fonts/inter-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Font di tutto il sito: vale qualunque font sia scelto nel Personalizza di Blocksy (testo, titoli, menu). */
:root, h1, h2, h3, h4, h5, h6, [data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a { --theme-font-family: 'Inter', sans-serif !important; }
.ncc-form { font-family: 'Inter', sans-serif !important; }   /* modulo di prenotazione: prima usava il font di sistema per i campi */

/* ===== Forme del sito: pulsanti a pillola, card con angoli morbidi 16px,
   quadratini delle icone 12px, foto nel contenuto 16px. Fasce a tutta larghezza, header e footer restano dritti. ===== */
.elementor-button, .ct-header-cta .ct-button, .ct-header-cta .ct-button-ghost, .wpforms-container button.wpforms-submit { border-radius: 999px !important; }
.elementor-widget-button { border-radius: 999px; }   /* alcuni pulsanti hanno il colore anche sul riquadro del widget (es. "Prenota ora" in fondo alla Home) */
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial { border-radius: 16px; overflow: hidden; }   /* card dei servizi (Home, Servizi) */
@media (max-width: 767px) {   /* card dei servizi su telefono: icona centrata, testo allineato a sinistra */
	.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon-box-content,
	.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon-box-title,
	.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon-box-description { text-align: left !important; }
}
.elementor-shape-square .elementor-icon { border-radius: 12px; }                                                    /* quadratini arancio delle icone */
.elementor-widget-image:not(.ncc-dest) img[class*="wp-image-"] { border-radius: 16px; }                              /* foto nel contenuto */
.ncc-c-chips .elementor-icon-list-item { border-radius: 999px; }

/* ===== Titolo principale delle pagine: classe ncc-title (Avanzate > Classi CSS) su un widget Titolo,
   o su un Editor di testo che contiene l'H1. Misure come la home: 46px su computer, scende fino a 30px su telefono.
   Sempre allineato a sinistra, sullo stesso bordo del testo e dei contenuti sotto. Il colore resta quello scelto in Elementor. */
.elementor-widget.ncc-title { align-self: stretch !important; }
.ncc-title, .ncc-title .elementor-heading-title, .ncc-title h1 { text-align: left !important; }
.ncc-title .elementor-heading-title, .ncc-title h1 {
	font-family: 'Inter', sans-serif !important; font-size: clamp(30px, calc(2.5vw + 12px), 46px) !important;
	font-weight: 700 !important; line-height: 1.15 !important;
	display: inline-block; padding-bottom: 0; border-bottom: 1px solid #F4A300; }   /* sottolineatura arancio sottile, lunga quanto il titolo, subito sotto le lettere */

/* ===== Sottotitolo sotto l'H1, nelle fasce scure in alto: classe ncc-subtitle (Avanzate > Classi CSS) su un Editor di testo.
   Blocco a sinistra sotto il titolo (largo al massimo 760px); un eventuale titoletto dentro (H2-H4) diventa bianco e in grassetto. ===== */
.ncc-subtitle, .ncc-subtitle p { text-align: left !important; color: #D7DBDE !important; font-size: 18px !important; line-height: 1.6 !important; }
.ncc-subtitle { width: 100% !important; max-width: 760px !important; margin-left: 0 !important; margin-right: auto !important; align-self: flex-start !important; }
.ncc-subtitle p { margin: 0 0 10px !important; } .ncc-subtitle p:last-child { margin-bottom: 0 !important; }
.ncc-subtitle strong { color: #fff; }
.ncc-subtitle h2, .ncc-subtitle h3, .ncc-subtitle h4 { text-align: left !important; color: #fff !important; font-size: 24px !important; font-weight: 700 !important; line-height: 1.3 !important; margin: 0 0 10px !important; }
@media (max-width: 767px) {
	.ncc-subtitle, .ncc-subtitle p { font-size: 16px !important; }
	.ncc-subtitle h2, .ncc-subtitle h3, .ncc-subtitle h4 { font-size: 20px !important; }
}

/* ===== Gerarchia dei titoli: un solo sistema per tutte le pagine =====
   H1 = titolo della pagina (ncc-title, sopra) · H2 = titolo di sezione · H3 = titolo di card o di blocco.
   Tutto allineato a sinistra. Le fasce di invito all'azione ("Prenota ora…", "Maggiori dettagli?") restano centrate:
   classe ncc-cta (Avanzate > Classi CSS) sul loro contenitore. La pagina Contatti (620) ha misure sue (classi ncc-c-*). */
.elementor-widget-heading:has(h2.elementor-heading-title):not(.ncc-cta *) { align-self: stretch; text-align: left !important; }
.elementor-widget-heading h2.elementor-heading-title:not(.ncc-cta *) {
	font-size: clamp(28px, calc(1.6vw + 14px), 36px) !important; font-weight: 700 !important; line-height: 1.2 !important;
	letter-spacing: -0.02em; text-align: left !important; }
/* etichetta sopra il titolo di sezione (es. "DESTINAZIONI IN EVIDENZA", un Editor di testo subito prima dell'H2):
   scura, piccola, maiuscola e spaziata (l'arancio come testo piccolo su bianco non è leggibile) */
.elementor-widget-text-editor:has(+ .elementor-widget-heading h2):not(.ncc-cta *) { align-self: stretch; }
.elementor-widget-text-editor:has(+ .elementor-widget-heading h2):not(.ncc-cta *),
.elementor-widget-text-editor:has(+ .elementor-widget-heading h2):not(.ncc-cta *) :is(p, span, strong) {
	color: #10263A !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: .08em !important; text-align: left !important; }
/* testo introduttivo sotto il titolo di sezione: a sinistra come il titolo */
.e-con:has(> .elementor-widget-heading h2):not(.ncc-cta):not(.ncc-cta *) > .elementor-widget-text-editor:not(.ncc-subtitle),
.e-con:has(> .elementor-widget-heading h2):not(.ncc-cta):not(.ncc-cta *) > .elementor-widget-text-editor:not(.ncc-subtitle) p { text-align: left !important; }
/* tutti gli altri widget Titolo (titoli di blocco, numeri #1-#4): a sinistra anche dentro contenitori centrati */
body:not(.page-id-620) .elementor-widget-heading:not(.ncc-title):not(.ncc-cta *) { align-self: stretch; text-align: left !important; }
body:not(.page-id-620) .elementor-widget-heading:not(.ncc-title):not(.ncc-cta *) .elementor-heading-title { text-align: left !important; }
/* titoli di card e di blocco (H3, e gli H4 rimasti) */
body:not(.page-id-620) .elementor-widget-heading :is(h3, h4).elementor-heading-title:not(.ncc-cta *),
body:not(.page-id-620) .elementor-widget-icon-box .elementor-icon-box-title:not(.ncc-cta *),
body:not(.page-id-620) .elementor-widget-text-editor:not(.ncc-subtitle):not(.ncc-cta *) :is(h3, h4) {
	font-size: clamp(20px, calc(.6vw + 14px), 22px) !important; font-weight: 700 !important; line-height: 1.3 !important;
	letter-spacing: -0.01em; text-align: left !important; }
/* voci numerate (#1-#4 in "Perché scegliere noi?": numero = widget Titolo con tag div, in un contenitore a sé):
   su telefono numero a sinistra e titolo + testo a destra, come su computer, invece del numero sopra */
@media (max-width: 767px) {
	:is(.e-con, .e-con-inner):has(> .e-con > .elementor-widget-heading div.elementor-heading-title) { flex-direction: row !important; flex-wrap: nowrap !important; align-items: flex-start !important; gap: 14px !important; }
	.e-con:has(> .elementor-widget-heading div.elementor-heading-title) { flex: 0 0 46px !important; width: 46px !important; padding: 0 !important; }
	:is(.e-con, .e-con-inner):has(> .e-con > .elementor-widget-heading div.elementor-heading-title) > .e-con:not(:has(> .elementor-widget-heading div.elementor-heading-title)) { flex: 1 1 auto !important; width: auto !important; min-width: 0; padding-top: 0 !important; padding-left: 0 !important; }
	.elementor-widget-heading div.elementor-heading-title { line-height: 1.1 !important; }
}
/* titoletti dentro i testi lunghi (Privacy, Cookie, articoli): un gradino sotto i titoli di sezione */
.elementor-widget-text-editor:not(.ncc-subtitle):not(.ncc-cta *) h2 {
	font-size: clamp(24px, calc(.9vw + 14px), 28px) !important; font-weight: 700 !important; line-height: 1.25 !important; letter-spacing: -0.01em; }

/* ===== Menu da telefono e tablet: la X di chiusura compare esattamente sopra l'icona del menu (stessa posizione e misura),
   così si apre e si chiude toccando lo stesso punto. Valori presi dall'icona del menu nell'header:
   telefono (sotto 690px) 50x50, 10px dall'alto, a destra il 6% dello schermo; tablet (690-999px) 40x40, 15px dall'alto, 5%.
   Se si cambiano misura o margini dell'icona del menu nel Personalizza, vanno aggiornati anche qui.
   z-index: spostata così la X finisce sopra l'area del menu, che altrimenti le sta davanti e blocca il tocco sulla parte bassa. ===== */
#offcanvas .ct-toggle-close { z-index: 10 !important; }
@media (max-width: 689.98px) {
	#offcanvas .ct-toggle-close { position: fixed !important; top: 10px !important; right: 6vw !important; width: 50px !important; height: 50px !important; margin: 0 !important; }
}
@media (min-width: 690px) and (max-width: 999.98px) {
	#offcanvas .ct-toggle-close { position: fixed !important; top: 15px !important; right: 5vw !important; width: 40px !important; height: 40px !important; margin: 0 !important; }
}

/* ===== Pulsante "Scrivi la tua recensione" sotto le recensioni Google: widget Pulsante con classe ncc-review.
   Azione secondaria: pillola bianca con bordo chiaro e ombra morbida, 5 stelline arancio accanto al testo (aggiunte qui, non nel testo);
   al passaggio del mouse bordo arancio e leggero sollevamento. ===== */
.elementor-widget-button.ncc-review { align-self: center; text-align: center; background: none !important; }
html body .ncc-review .elementor-button { background: #fff !important; color: #10263A !important; border: 1px solid #DDE1E4 !important; border-radius: 999px !important;
	padding: 14px 26px !important; font: 600 15px/1.2 'Inter', sans-serif !important; letter-spacing: 0 !important; text-transform: none !important;
	box-shadow: 0 6px 18px -6px rgba(17,21,24,.18) !important; transition: border-color .2s, box-shadow .2s, transform .2s; }
html body .ncc-review .elementor-button-content-wrapper { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 12px; }
html body .ncc-review .elementor-button-content-wrapper::before { content: "\2605\2605\2605\2605\2605"; color: #F4A300; font-size: 15px; letter-spacing: 2px; line-height: 1; }
html body .ncc-review .elementor-button:hover, html body .ncc-review .elementor-button:focus-visible {
	background: #fff !important; color: #10263A !important; border-color: #F4A300 !important; box-shadow: 0 10px 24px -8px rgba(244,163,0,.45) !important; transform: translateY(-1px); }

/* ===== Colore del testo: blu del sito #10263A su fondo chiaro (contrasto 15:1), anche per le note piccole.
   È il colore 3 della tavolozza di Blocksy, quello del testo: vale per tutto il sito. ===== */
:root { --theme-palette-color-3: #10263A !important; --theme-palette-color-4: #10263A !important; }   /* testo e titoli: blu del sito */
.ct-footer :is(h1, h2, h3, h4, h5, h6) { color: #fff !important; }   /* footer blu: titoli bianchi */
#header nav[class*="menu"] > ul > li > a { --theme-link-initial-color: #10263A !important; }   /* voci del menu (la voce attiva e il passaggio del mouse restano arancio) */
.ncc-form { --ncc-dark: #10263A !important; --ncc-gray: #10263A !important; }   /* modulo di prenotazione: titolo, etichette, note */
.ncc-form label span[style*="color"] { color: #10263A !important; }   /* "(opzionale)" con colore scritto nel modulo */
.ncc-wpforms-privacy { color: #10263A !important; }
.single-post .entry-content .elementor-icon-list-text { color: #10263A !important; }

/* ===== Pagina Contatti (Elementor nativo, pagina 620): aspetto dei widget con classi ncc-c-* =====
   Contenuti, link, immagini e ordine si modificano in Elementor; qui solo colori, ombre e disposizione. */
.ncc-c-top, .ncc-c-actions, .ncc-c-main, .ncc-c-reviews { --o: #F4A300; --od: #D98F00; --ink: #10263A; --sl: #10263A; --ln: #E9EBEC; --mi: #F4F5F6; --wa: #25D366; --wad: #1DA851; }

/* intestazione su fascia scura: frase chiara, etichette bianche semitrasparenti */
/* la frase ha anche la classe ncc-subtitle: dimensione, colore e larghezza vengono da lì, uguali a Servizi e FAQ */
.ncc-c-chips .elementor-icon-list-items { gap: 8px; }
.ncc-c-chips .elementor-icon-list-item { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); padding: 6px 12px !important; margin: 0 !important; }   /* etichette su fascia scura */
.ncc-c-chips .elementor-icon-list-item::after { display: none !important; }
.ncc-c-chips .elementor-icon-list-text { color: #fff !important; font-size: 13.5px; font-weight: 500; padding-left: 7px !important; }
.ncc-c-chips .elementor-icon-list-icon i, .ncc-c-chips .elementor-icon-list-icon svg { color: #F4A300 !important; fill: #F4A300 !important; font-size: 12px; width: 12px; }
.ncc-c-chips .elementor-icon-list-item:first-child .elementor-icon-list-icon i { color: #2bd46b !important; font-size: 9px; }
.ncc-c-chips .elementor-icon-list-item:first-child .elementor-icon-list-icon svg { fill: #2bd46b !important; width: 9px; }

/* tre azioni */
.ncc-c-act { background: #fff; padding: 22px; border-top: 5px solid var(--ln); border-radius: 16px; box-shadow: 0 18px 44px -14px rgba(17,21,24,.35); transition: transform .2s ease, box-shadow .2s ease; }
.ncc-c-act:hover { transform: translateY(-3px); box-shadow: 0 24px 50px -14px rgba(17,21,24,.4); }
.ncc-c-act .elementor-icon-box-wrapper, .ncc-c-row .elementor-icon-box-wrapper, .ncc-c-card-h .elementor-icon-box-wrapper { display: flex !important; flex-direction: row !important; align-items: center; gap: 16px; text-align: left !important; }
.ncc-c-act .elementor-icon-box-icon, .ncc-c-row .elementor-icon-box-icon, .ncc-c-card-h .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.ncc-c-act .elementor-icon { width: 56px; height: 56px; display: grid !important; place-items: center; font-size: 26px; border-radius: 12px; }
.ncc-c-act .elementor-icon svg { width: 26px; height: 26px; }
.ncc-c-act .elementor-icon-box-title { margin: 0 0 2px !important; font-size: 20px !important; font-weight: 700; line-height: 1.25; overflow-wrap: anywhere; }
.ncc-c-act .elementor-icon-box-title a, .ncc-c-act .elementor-icon-box-title span { color: var(--ink) !important; text-decoration: none; }
.ncc-c-act .elementor-icon-box-description { margin: 0; font-size: 14px; color: var(--sl) !important; }
.ncc-c-act { border-bottom: 5px solid var(--ln); }   /* bordo anche sotto, stesso colore di quello sopra */
.ncc-c-act.is-wa { border-top-color: var(--wa); border-bottom-color: var(--wa); } .ncc-c-act.is-wa .elementor-icon { background: var(--wa); color: #fff !important; fill: #fff !important; }
.ncc-c-act.is-tel { border-top-color: var(--o); border-bottom-color: var(--o); } .ncc-c-act.is-tel .elementor-icon { background: var(--o); color: #fff !important; fill: #fff !important; }
.ncc-c-act.is-mail { border-top-color: #C27C00; border-bottom-color: #C27C00; } .ncc-c-act.is-mail .elementor-icon { background: #C27C00;   /* arancio scuro: distinto dal telefono */ color: #fff !important; fill: #fff !important; }

/* card del modulo */
.e-con.ncc-c-card { background: #fff; border-radius: 16px; border-top: 5px solid var(--o); box-shadow: 0 6px 28px rgba(244,163,0,.12), 0 1px 3px rgba(17,21,24,.08); align-self: start; }
.ncc-c-card-h { padding: 16px 24px; border-bottom: 1px solid var(--ln); }
.ncc-c-card-h .elementor-icon { width: 42px; height: 42px; border-radius: 12px; background: rgba(244,163,0,.1); display: grid !important; place-items: center; font-size: 20px; color: var(--o) !important; fill: var(--o) !important; }
.ncc-c-card-h .elementor-icon svg { width: 20px; height: 20px; }
.ncc-c-card-h .elementor-icon-box-title { margin: 0 !important; font-size: 20px !important; font-weight: 700; color: var(--ink) !important; }
.ncc-c-card-h .elementor-icon-box-description { margin: 0; font-size: 13px; color: var(--sl) !important; }
.ncc-c-form { padding: 18px 24px 22px; }

/* modulo WPForms 151: griglia a 6 colonne, stile della card di prenotazione */
.ncc-c-form .wpforms-container { margin: 0 !important; }
.ncc-c-form .wpforms-field-container { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px 14px; }
.ncc-c-form .wpforms-field { grid-column: span 6; padding: 0 !important; margin: 0 !important; }
.ncc-c-form #wpforms-151-field_2-container  { grid-column: span 3; order: 1; }
.ncc-c-form #wpforms-151-field_5-container  { grid-column: span 3; order: 2; }
.ncc-c-form #wpforms-151-field_13-container { grid-column: span 3; order: 3; }
.ncc-c-form #wpforms-151-field_14-container { grid-column: span 3; order: 4; }
.ncc-c-form #wpforms-151-field_11-container { grid-column: span 2; order: 5; }
.ncc-c-form #wpforms-151-field_12-container { grid-column: span 2; order: 6; }
.ncc-c-form #wpforms-151-field_15-container { grid-column: span 2; order: 7; }
.ncc-c-form #wpforms-151-field_8-container  { order: 8; }
.ncc-c-form #wpforms-151-field_9-container  { order: 9; }
.ncc-c-form .wpforms-field-label { font-family: 'Inter', sans-serif !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .5px; text-transform: uppercase; margin: 0 0 5px !important; color: var(--ink) !important; }
.ncc-c-form .wpforms-field-label.wpforms-label-hide { position: static !important; width: auto !important; height: auto !important; clip: auto !important; overflow: visible !important; }
.ncc-c-form .wpforms-required-label { color: #fd7c47 !important; }
.ncc-c-form #wpforms-151-field_8-container .wpforms-field-label::after { content: " (facoltativa)"; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--sl); }
.ncc-c-form .wpforms-field-limit-text { display: none !important; }
.ncc-c-form .wpforms-field input, .ncc-c-form .wpforms-field select, .ncc-c-form .wpforms-field textarea {
	width: 100% !important; max-width: none !important; min-height: 44px; border: 1.5px solid var(--ln) !important; border-radius: 8px !important;
	background-color: var(--mi) !important; padding: 10px 14px !important; font-size: 14px !important; color: var(--ink) !important; box-shadow: none !important; }
.ncc-c-form .wpforms-field textarea { min-height: 96px; height: 96px; }
.ncc-c-form .wpforms-field input:focus, .ncc-c-form .wpforms-field select:focus, .ncc-c-form .wpforms-field textarea:focus {
	border-color: var(--o) !important; box-shadow: 0 0 0 3px rgba(244,163,0,.13) !important; background-color: #fff !important; }
.ncc-c-form .wpforms-submit-container { padding: 16px 0 0 !important; margin: 0 !important; }
/* stesso stile del pulsante del modulo della Home (pillola, luce dall'alto, ombra colorata), in arancio perché invia una email e non apre WhatsApp */
.ncc-c-form button.wpforms-submit { width: 100% !important; min-height: 54px; border: 0 !important; border-radius: 999px !important;
	background: linear-gradient(180deg, #FFB11F 0%, #EE9D00 100%) !important; color: #fff !important; font: 700 16px 'Inter', sans-serif !important;
	text-transform: none !important; box-shadow: 0 10px 22px -8px rgba(238,157,0,.65) !important; transition: filter .2s, box-shadow .2s; }
.ncc-c-form button.wpforms-submit:hover, .ncc-c-form button.wpforms-submit:focus-visible { filter: brightness(.94); box-shadow: 0 12px 24px -8px rgba(238,157,0,.75) !important; }

/* colonna destra: foto e informazioni */
.ncc-c-photo { flex-shrink: 0; width: 100%; aspect-ratio: 4 / 3; height: auto !important; }
.ncc-c-photo figure { position: relative; margin: 0; border-radius: 16px; overflow: hidden; height: 100%; }
.ncc-c-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; object-position: 70% 72%; }
.ncc-c-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0 !important; padding: 14px 16px; background: linear-gradient(0deg, rgba(17,21,24,.85), transparent); color: #fff !important; font-size: 14px; font-weight: 500; text-align: left; }
.e-con.ncc-c-info { border: 1px solid var(--ln); border-radius: 16px; padding: 6px 18px !important; }
.ncc-c-row { padding: 13px 0; border-bottom: 1px solid var(--ln); }
.ncc-c-row .elementor-icon-box-wrapper { align-items: flex-start !important; gap: 12px; }
.ncc-c-row .elementor-icon { font-size: 20px; width: 28px; color: var(--od) !important; fill: var(--od) !important; }
.ncc-c-row .elementor-icon svg { width: 20px; height: 20px; }
.ncc-c-row .elementor-icon-box-title { margin: 0 !important; font-size: 15px !important; font-weight: 700; color: var(--ink) !important; }
.ncc-c-row .elementor-icon-box-description { margin: 0; font-size: 14px; color: var(--sl) !important; }
.ncc-c-maplink { margin: -8px 0 6px 40px !important; }
.ncc-c-maplink .elementor-button { background: none !important; padding: 0 !important; color: #A86E00 !important; font-size: 14px; font-weight: 500; text-decoration: underline; }
.ncc-c-row:has(+ .ncc-c-maplink) { border-bottom: 0; padding-bottom: 6px; }
.ncc-c-maplink { padding-bottom: 13px !important; border-bottom: 1px solid var(--ln); }
.ncc-c-row:nth-last-child(2) { border-bottom: 0; padding-bottom: 4px; }   /* "Pagamenti", seguita dalle icone */
.ncc-c-pay { margin: 0 0 12px 40px !important; }
.ncc-c-pay p { margin: 0; }
.ncc-c-pay img { width: 153px !important; height: 21px !important; max-width: none; display: block; }

@media (max-width: 767px) {
	.ncc-c-card-h, .ncc-c-form { padding-inline: 16px; }
	/* modulo Contatti a tutta larghezza su telefono, come il modulo della Home (un solo modulo nella pagina, niente copie) */
	.e-con.ncc-c-card { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; border-radius: 20px 20px 0 0; }
	.ncc-c-form .wpforms-field-container > .wpforms-field { grid-column: span 6 !important; }
}
@media (prefers-reduced-motion: reduce) { .ncc-c-act { transition: none; } }

/* ===== Footer: Privacy Policy, Cookie Policy e Preferenze cookie più vicini, come una lista ===== */
footer .ct-widget p:has(> a[href*="privacy-policy"]) { margin-bottom: 0; }
footer .ct-widget:has(.wpconsent-open-preferences) { margin-top: 0 !important; }

/* ===== Barra fissa WhatsApp / Chiama (stampata da functions.php in tutte le pagine), solo su telefono ===== */
.ncc-sticky { display: none; }
@media (max-width: 767px) {
	/* barra divisa in due metà a tutta altezza: a sinistra WhatsApp (verde), a destra Chiama (arancio), separate da una linea bianca;
	   icona sopra e scritta sotto */
	.ncc-sticky { display: flex; gap: 0; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: #F4A300;
		padding: 0 0 env(safe-area-inset-bottom, 0px); box-shadow: 0 -8px 24px -10px rgba(17,21,24,.35); }
	.ncc-sticky a { flex: 1 1 0; min-height: 68px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
		border-radius: 0; font: 700 14px/1.1 'Inter', sans-serif; text-transform: none;
		text-decoration: none; transition: filter .2s; }
	.ncc-sticky svg { width: 22px; height: 22px; fill: currentColor; flex: none; }
	.ncc-sticky { border-top: 1px solid #fff; border-bottom: 1px solid #fff; box-shadow: 0 -6px 18px -4px rgba(17,21,24,.28) !important; }   /* linee bianche sottili sopra, sotto e al centro + ombra verso l'alto */
	.ncc-sticky a.ncc-sticky-wa { background: #25D366; color: #fff !important; border-right: 1px solid #fff; }
	.ncc-sticky a.ncc-sticky-tel { background: #C27C00; color: #fff !important; }   /* arancio scuro, come la card email dei Contatti */
	.ncc-sticky a.ncc-sticky-tel svg { width: 19px; height: 22px; }   /* la cornetta piena sembra più grande dell'icona WhatsApp a contorno */
	.ncc-sticky a:hover, .ncc-sticky a:active { filter: brightness(.9); }   /* al tocco: più scuro, come le altre CTA */
	body { padding-bottom: 68px !important; }   /* spazio per la barra, così non copre il fondo della pagina (Blocksy azzera il padding del body) */
	/* articoli del blog: su telefono i pulsanti WhatsApp / Chiama ripetono la barra fissa, si nasconde il contenitore che ha solo pulsanti */
	.single-post .e-con:has(a.elementor-button[href*="wa.me"]):not(:has(.elementor-widget:not(.elementor-widget-button))) { display: none !important; }
}
@media print { .ncc-sticky { display: none !important; } }

/* ===== Card scorrevoli (ncc-scroller + ncc-dest) ===== */
.e-con.ncc-scroller {
	display: flex !important; flex-wrap: nowrap !important; gap: 18px !important;
	overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 14px;
	scrollbar-width: thin; scrollbar-color: #F4A300 #E9EBEC;
}
.ncc-scroller > .ncc-dest {
	flex: 0 0 clamp(250px, 26vw, 300px) !important; width: auto !important; max-width: none !important;
	margin: 0 !important; scroll-snap-align: start;
}
.ncc-dest > .elementor-widget-container, .ncc-dest figure { display: block; width: 100%; }
.ncc-dest figure { position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: #E9EBEC; }
.ncc-dest img {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important;
	object-fit: cover; transition: transform .6s ease;
}
.ncc-dest:hover img { transform: scale(1.06); }
.ncc-dest figure::after {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(0deg, rgba(17,21,24,.88) 0%, rgba(17,21,24,.25) 55%, transparent 75%);
}
.ncc-dest figcaption {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; margin: 0 !important; padding: 20px;
	text-align: left !important; color: rgba(255,255,255,.85) !important; font-size: 14px; line-height: 1.45;
}
.ncc-dest figcaption::first-line { color: #fff; font-size: 20px; font-weight: 700; letter-spacing: .04em; } /* nome destinazione */
.ncc-dest figcaption > div { width: auto !important; height: 0; margin: 6px 0 !important; }           /* va a capo dopo il nome */
.ncc-dest figcaption > div > * { display: none !important; }                                           /* nasconde la lineetta */

/* frecce, aggiunte da js/ncc-scroller.js */
.ncc-scroller-nav { display: flex; justify-content: flex-end; gap: 10px; margin-bottom: 16px; width: 100%; }
.ncc-scroller-nav button {
	width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid #E9EBEC; background: #fff; color: #10263A;
	display: grid; place-items: center; cursor: pointer; padding: 0; transition: border-color .2s, color .2s;
}
.ncc-scroller-nav button:hover { border-color: #F4A300; color: #D98F00; }
.ncc-scroller-nav button:disabled { opacity: .35; cursor: default; }

@media (max-width: 767px) {
	.ncc-scroller > .ncc-dest { flex-basis: 78vw !important; }
	.ncc-scroller-nav { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ncc-dest img { transition: none; }
}

/* ===== Hero (ncc-hero): foto del contenitore con zoom Ken Burns e velatura sfumata ===== */
.e-con.ncc-hero { position: relative; overflow: hidden; isolation: isolate; box-shadow: 0 60px 90px -30px rgba(16,16,16,.3); }   /* angoli dritti */
.e-con.ncc-hero::after {                                   /* copia della foto di sfondo che fa lo zoom */
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: inherit; transform-origin: 70% 70%;
	animation: ncc-kenburns 12s ease-in-out infinite alternate;
}
.e-con.ncc-hero::before {                                  /* velatura: stesso blu di prima, più leggera a destra */
	z-index: 1 !important; opacity: 1 !important; background-color: transparent !important;
	background-image: linear-gradient(90deg, rgba(0,11,39,.82) 0%, rgba(0,11,39,.6) 42%, rgba(0,11,39,.12) 75%, rgba(0,11,39,.05) 100%) !important;
}
.e-con.ncc-hero > * { position: relative; z-index: 2; max-width: 900px; }
.ncc-hero-ctas { max-width: 460px !important; }
.ncc-hero-ctas .elementor-widget { margin-bottom: 0 !important; }
.e-con.ncc-hero-ctas { --row-gap: 12px !important; row-gap: 12px !important; }   /* su telefono i pulsanti vanno in colonna: spazio tra i due */
@keyframes ncc-kenburns { from { transform: scale(1); } to { transform: scale(1.15); } }

/* ===== Pulsante "Invia richiesta su WhatsApp" del modulo di prenotazione (in tutte le pagine dove è copiato):
   stile "pillola", come gli altri pulsanti del sito. ===== */
body .ncc-form .ncc-btn-wa { background: linear-gradient(180deg, #2EDB6F 0%, #1FBE5A 100%); border-radius: 999px; min-height: 54px;
	font-size: 16px; text-transform: none; letter-spacing: 0; box-shadow: 0 10px 22px -8px rgba(31,190,90,.65); transition: filter .2s, box-shadow .2s; }
body .ncc-form .ncc-btn-wa:hover, body .ncc-form .ncc-btn-wa:focus-visible { filter: brightness(.94); transform: none; box-shadow: 0 12px 24px -8px rgba(31,190,90,.75); }

/* ===== Riga privacy sotto il modulo di prenotazione (FAQ, Servizi e ovunque sia copiato): attaccata al fondo della card,
   come in Home (fascia grigio chiaro, testo grigio, link arancio scuro) ===== */
.e-con:has(.ncc-form):has(> .elementor-widget-text-editor a[href*="privacy-policy"]) .ncc-form .ncc-card,
.e-con:has(.ncc-form):has(> .e-con-inner > .elementor-widget-text-editor a[href*="privacy-policy"]) .ncc-form .ncc-card { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.e-con:has(.ncc-form) .elementor-widget-text-editor:has(a[href*="privacy-policy"]) {
	margin-top: calc(-1 * var(--row-gap, 20px)) !important; margin-bottom: 0 !important; padding: 10px 24px;
	background: #F4F5F6; border-top: 1px solid #E9EBEC; border-radius: 0 0 16px 16px;
	font-size: 12px !important; line-height: 1.5; text-align: center !important; color: #10263A !important; }
.e-con:has(.ncc-form) .elementor-widget-text-editor:has(a[href*="privacy-policy"]) p { margin: 0; color: #10263A !important; }
.e-con:has(.ncc-form) .elementor-widget-text-editor:has(a[href*="privacy-policy"]) a { color: #A86E00 !important; font-weight: 500; text-decoration: underline; }

/* ===== Barra di prenotazione (ncc-booking): il form esistente disposto in orizzontale ===== */
.e-con.ncc-booking {
	position: relative; z-index: 3; width: 100%; max-width: 1100px;
	margin: -20px auto 0 !important;   /* su desktop la barra parte dal fondo della foto: il van si vede tutto */
}
@media (min-width: 1025px) {
	/* foto più alta: entrano la torre della Colombaia e le ruote del van */
	.e-con.ncc-hero {
		--padding-top: 60px !important; --padding-bottom: 320px !important;
		background-position: center 76% !important;
	}
	.e-con.ncc-hero::after { transform-origin: 30% 50%; }   /* zoom ancorato a sinistra: la Colombaia non esce dal bordo */
	.e-con.ncc-hero::before {
		background-image: linear-gradient(90deg, rgba(0,11,39,.7) 0%, rgba(0,11,39,.5) 42%, rgba(0,11,39,.12) 75%, rgba(0,11,39,.05) 100%) !important;
	}
}
.ncc-booking .ncc-form .ncc-card { max-width: none; box-shadow: 0 18px 50px -12px rgba(17,21,24,.35); border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
/* testo privacy = fondo della card: fascia grigio chiaro attaccata sotto il modulo */
.e-con.ncc-booking .elementor-widget-text-editor {
	position: relative; margin: 0 !important; padding: 10px 24px;
	background: #F4F5F6; border-top: 1px solid #E9EBEC; border-radius: 0 0 16px 16px;
	box-shadow: 0 18px 50px -12px rgba(17,21,24,.35);
	font-size: 12px !important; line-height: 1.5; text-align: center !important; color: #10263A !important;
}
.e-con.ncc-booking .elementor-widget-text-editor p { margin: 0; }
.e-con.ncc-booking .elementor-widget-text-editor a { color: #A86E00; font-weight: 500; text-decoration: underline; }   /* arancio scuro: leggibile sul grigio */
@media (max-width: 767px) {
	/* telefono: modulo a tutta larghezza, come un foglio che sale sulla foto (angoli arrotondati solo in alto) */
	.e-con.ncc-booking { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; }
	.ncc-booking .ncc-form .ncc-card { border-radius: 20px 20px 0 0; }
	.e-con.ncc-booking .elementor-widget-text-editor { border-radius: 0; }
}

@media (min-width: 768px) {
	.ncc-booking .ncc-form .ncc-card { position: relative; overflow: visible; }   /* le tendine possono uscire dalla card */
	.ncc-booking .ncc-form .ncc-card-header { padding: 11px 24px; border-radius: 16px 16px 0 0; }
	.ncc-booking .ncc-form .ncc-card-body { padding: 12px 24px 16px; }
	.ncc-booking .ncc-form .ncc-card-footer {                                       /* "Risposta garantita" nell'intestazione */
		position: absolute; top: 5px; right: 0; padding: 22px 24px; background: none; border: 0;
	}
	.ncc-booking #ncc-transfer-form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px 12px; align-items: end; }
	.ncc-booking #ncc-transfer-form > * { margin: 0 !important; }
	.ncc-booking #ncc-transfer-form > .ncc-divider { display: none; }
	.ncc-booking #ncc-transfer-form .ncc-row2 { gap: 12px; }
	.ncc-booking #ncc-transfer-form .ncc-row2 .ncc-group { margin: 0; }
	/* figli del form: 1 partenza, 2 destinazione, 4 data+ora, 5 passeggeri, 6 prezzo, 8 nome, 9 note, 10 pulsante */
	.ncc-booking #ncc-transfer-form > :nth-child(1)  { grid-area: 1 / 1 / 2 / 4; }
	.ncc-booking #ncc-transfer-form > :nth-child(2)  { grid-area: 1 / 4 / 2 / 7; }
	.ncc-booking #ncc-transfer-form > :nth-child(4)  { grid-area: 2 / 1 / 3 / 5; }
	.ncc-booking #ncc-transfer-form > :nth-child(5)  { grid-area: 2 / 5 / 3 / 7; }
	.ncc-booking #ncc-transfer-form > :nth-child(8)  { grid-area: 3 / 1 / 4 / 4; }
	.ncc-booking #ncc-transfer-form > :nth-child(9)  { grid-area: 3 / 4 / 4 / 7; }
	.ncc-booking #ncc-transfer-form > :nth-child(6)  { grid-area: 4 / 1 / 5 / 4; }
	.ncc-booking #ncc-transfer-form > :nth-child(10) { grid-area: 4 / 4 / 5 / 7; }
	.ncc-booking #ncc-note { height: 42px; min-height: 42px; padding-top: 11px; padding-bottom: 11px; line-height: 18px; white-space: nowrap; resize: none; overflow: hidden; }
	.ncc-booking .ncc-form .ncc-cs-wrapper { min-width: 0; }
	.ncc-booking .ncc-form .ncc-cs-trigger { height: 42px; min-height: 42px; }
	.ncc-booking .ncc-form .ncc-cs-trigger > span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.ncc-booking .ncc-form input[type="date"],
	.ncc-booking .ncc-form input[type="text"] { height: 42px !important; min-height: 0 !important; min-width: 0; padding-top: 0; padding-bottom: 0; }
	.ncc-booking #ncc-transfer-form .ncc-row2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.ncc-booking .ncc-form .ncc-card-header { padding-top: 8px; padding-bottom: 8px; }
	.ncc-booking .ncc-form .ncc-card-footer { padding-top: 19px; }
	.ncc-booking .ncc-form .ncc-price-label strong { font-size: 12px; }
	.ncc-booking .ncc-form .ncc-price-box { min-height: 42px; padding: 4px 14px; border-radius: 8px; }
	.ncc-booking .ncc-form .ncc-price-value { font-size: 24px; }
	.ncc-booking .ncc-form .ncc-price-placeholder { font-size: 11px; max-width: none; }
	.ncc-booking .ncc-form .ncc-btn-wa { min-height: 42px; padding: 8px 14px; font-size: 14px; border-radius: 999px; gap: 8px; white-space: nowrap; }   /* barra su computer: una sola riga */
	.ncc-booking .ncc-form .ncc-btn-wa svg { width: 18px; height: 18px; }
}
@media (min-width: 1025px) {
	.ncc-booking #ncc-transfer-form { grid-template-columns: repeat(12, minmax(0, 1fr)); }
	.ncc-booking #ncc-transfer-form > :nth-child(1)  { grid-area: 1 / 1 / 2 / 4; }
	.ncc-booking #ncc-transfer-form > :nth-child(2)  { grid-area: 1 / 4 / 2 / 7; }
	.ncc-booking #ncc-transfer-form > :nth-child(4)  { grid-area: 1 / 7 / 2 / 11; }
	.ncc-booking #ncc-transfer-form > :nth-child(5)  { grid-area: 1 / 11 / 2 / 13; }
	.ncc-booking #ncc-transfer-form > :nth-child(8)  { grid-area: 2 / 1 / 3 / 3; }
	.ncc-booking #ncc-transfer-form > :nth-child(9)  { grid-area: 2 / 3 / 3 / 6; }
	.ncc-booking #ncc-transfer-form > :nth-child(6)  { grid-area: 2 / 6 / 3 / 10; }
	.ncc-booking #ncc-transfer-form > :nth-child(10) { grid-area: 2 / 10 / 3 / 13; }
}
@media (max-width: 1024px) {
	.e-con.ncc-booking { margin-top: -120px !important; }
}
@media (max-width: 767px) {
	.e-con.ncc-hero::before { background-image: linear-gradient(180deg, rgba(0,11,39,.78) 0%, rgba(0,11,39,.55) 60%, rgba(0,11,39,.35) 100%) !important; }
	.e-con.ncc-booking { margin-top: -100px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.e-con.ncc-hero::after { animation: none; }
}

/* ===== Landing page per Google Ads (Transfer aeroporto, Airport transfer, Destinazioni): blocco HTML personalizzato
   dentro <div class="ncc-lp">. Stessi colori, font, titoli e pulsanti del resto del sito. Niente menu (pagina di atterraggio):
   in alto logo + telefono, in basso la barra fissa del sito (.ncc-sticky, solo telefono).
   Le conversioni Ads le contano i link wa.me / tel: e la classe lp-btn-wa del pulsante del modulo: non vanno cambiati. ===== */
.ncc-lp { --o: #F4A300; --od: #A86E00; --ink: #10263A; --tx: #10263A; --sl: #10263A; --ln: #E9EBEC; --mi: #F4F5F6; --wa: #25D366;
	color: var(--tx); font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.6; overflow-x: hidden; background: #fff; }
.ncc-lp *, .ncc-lp *::before, .ncc-lp *::after { box-sizing: border-box; }
.ncc-lp :is(h1, h2, h3, p, ul) { margin: 0; padding: 0; }
.ncc-lp ul { list-style: none; }
.ncc-lp svg { flex-shrink: 0; }
.ncc-lp .lp-wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding: 0 24px; }
@media (max-width: 767px) { .ncc-lp .lp-wrap { padding: 0 20px; } }
/* in alto: logo a sinistra, telefono a destra (da tablet in su; su telefono c'è la barra fissa) */
.ncc-lp .lp-top { background: #fff; border-bottom: 1px solid var(--ln); }
.ncc-lp .lp-top .lp-wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.ncc-lp .lp-top img { height: 44px; width: auto; display: block; }
.ncc-lp .lp-top-call { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 999px; background: var(--o); color: #fff !important;
	font-weight: 600; font-size: 15px; text-decoration: none; transition: filter .2s; }
.ncc-lp .lp-top-call svg { width: 15px; height: 15px; fill: currentColor; }
.ncc-lp .lp-top-call:hover { filter: brightness(.92); }
@media (max-width: 767px) { .ncc-lp .lp-top-call { display: none; } .ncc-lp .lp-top .lp-wrap { justify-content: center; min-height: 64px; } }
/* intestazione: foto vera del van alla Colombaia con velatura scura, testo a sinistra */
.ncc-lp .lp-hero { position: relative; color: #fff; padding: 88px 0 96px;
	background: linear-gradient(90deg, rgba(16,38,58,.94) 0%, rgba(16,38,58,.82) 42%, rgba(16,38,58,.35) 75%, rgba(16,38,58,.15) 100%),
		url('/wp-content/uploads/2025/12/NCCTRAPANI_transfer_vista_colombaia.webp') center 70% / cover no-repeat #10263A; }
.ncc-lp .lp-hero-text { max-width: 600px; }
.ncc-lp .lp-badge { display: inline-block; margin-bottom: 20px; padding: 6px 14px; border-radius: 999px; background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.ncc-lp h1 { display: inline-block; color: #fff; font-size: clamp(30px, calc(2.5vw + 12px), 46px); font-weight: 700; line-height: 1.15; border-bottom: 1px solid var(--o); margin-bottom: 18px; }
.ncc-lp .lp-hero-sub { color: #D7DBDE; font-size: 18px; line-height: 1.6; margin-bottom: 24px; }
.ncc-lp .lp-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.ncc-lp .lp-pills li { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.18); color: #fff; font-size: 14px; }
.ncc-lp .lp-pills svg { width: 15px; height: 15px; stroke: var(--o); }
.ncc-lp .lp-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.ncc-lp .btn-wa, .ncc-lp .btn-call { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; padding: 0 28px;
	border-radius: 999px; font-size: 16px; font-weight: 600; text-decoration: none; transition: filter .2s; }
.ncc-lp .btn-wa { background: linear-gradient(180deg, #2EDB6F 0%, #1FBE5A 100%); color: #fff !important; box-shadow: 0 8px 20px -8px rgba(37,211,102,.7); }
.ncc-lp .btn-call { background: var(--o); color: #fff !important; }
.ncc-lp .btn-wa svg, .ncc-lp .btn-call svg { width: 19px; height: 19px; fill: currentColor; }
.ncc-lp .btn-wa:hover, .ncc-lp .btn-call:hover { filter: brightness(.92); }
@media (max-width: 767px) {
	.ncc-lp .lp-hero { padding: 48px 0 56px; background: linear-gradient(180deg, rgba(16,38,58,.82) 0%, rgba(16,38,58,.62) 55%, rgba(16,38,58,.5) 100%),
		url('/wp-content/uploads/2025/12/NCCTRAPANI_transfer_vista_colombaia.webp') 62% 70% / cover no-repeat #10263A; }
	.ncc-lp .lp-hero-sub { font-size: 16px; }
	.ncc-lp .lp-btns { flex-direction: column; }
	.ncc-lp .btn-wa, .ncc-lp .btn-call { width: 100%; }
}
/* sezioni: titoli come il resto del sito (etichetta scura piccola, H2 36→28px a sinistra), testo grigio quasi nero */
.ncc-lp .section { padding: 72px 0; }
.ncc-lp .section-alt { background: var(--mi); }
.ncc-lp .eyebrow, .ncc-lp .lp-form-eyebrow { color: var(--ink); font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 8px; }
.ncc-lp .section-title, .ncc-lp .lp-form-title { color: var(--ink); font-size: clamp(28px, calc(1.6vw + 14px), 36px); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; margin-bottom: 28px; }
.ncc-lp .lp-form-title { margin-bottom: 8px; }
@media (max-width: 767px) { .ncc-lp .section { padding: 52px 0; } }
/* aeroporti */
.ncc-lp .airport-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ncc-lp .airport-card { background: #fff; border: 1px solid var(--ln); border-left: 4px solid var(--o); border-radius: 16px; padding: 24px; }
.ncc-lp .airport-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.ncc-lp .airport-name { color: var(--ink); font-size: 20px; font-weight: 700; }
.ncc-lp .iata-badge { background: var(--o); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; letter-spacing: .06em; }
.ncc-lp .airport-desc { color: var(--tx); font-size: 16px; }
/* vantaggi: icona nel quadratino arancio come nel resto del sito */
.ncc-lp .feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ncc-lp .feat-card { background: #fff; border: 1px solid var(--ln); border-radius: 16px; padding: 24px; }
.ncc-lp .feat-icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--o); margin-bottom: 14px; }
.ncc-lp .feat-icon svg { width: 22px; height: 22px; stroke: #fff; }
.ncc-lp .feat-title { color: var(--ink); font-size: 18px; font-weight: 700; line-height: 1.3; margin-bottom: 6px; }
.ncc-lp .feat-desc { color: var(--tx); font-size: 15px; line-height: 1.55; }
/* destinazioni e tour */
.ncc-lp .dest-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ncc-lp .dest-card { background: #fff; border: 1px solid var(--ln); border-top: 3px solid var(--o); border-radius: 16px; padding: 20px; }
.ncc-lp .dest-name { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.ncc-lp .dest-name svg { width: 17px; height: 17px; stroke: var(--o); }
.ncc-lp .dest-desc { color: var(--tx); font-size: 15px; line-height: 1.55; }
.ncc-lp .dest-tag { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--ln); border-radius: 999px; padding: 12px 16px; color: var(--ink); font-size: 15px; font-weight: 500; }
.ncc-lp .dest-tag svg { width: 16px; height: 16px; stroke: var(--o); }
.ncc-lp .tour-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ncc-lp .tour-card { background: #fff; border: 1px solid var(--ln); border-left: 4px solid var(--o); border-radius: 16px; padding: 22px 24px; }
.ncc-lp .tour-name { color: var(--ink); font-size: 19px; font-weight: 700; margin-bottom: 6px; }
.ncc-lp .tour-desc { color: var(--tx); font-size: 16px; }
/* come funziona: 3 passi affiancati su computer, in colonna su telefono */
.ncc-lp .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ncc-lp .step { display: flex; gap: 16px; }
.ncc-lp .step-line { display: none; }
.ncc-lp .step-num { width: 42px; height: 42px; min-width: 42px; border-radius: 999px; background: var(--o); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 17px; font-weight: 700; }
.ncc-lp .step-title { color: var(--ink); font-size: 18px; font-weight: 700; line-height: 1.3; margin: 8px 0 6px; }
.ncc-lp .step-desc { color: var(--tx); font-size: 15px; line-height: 1.55; }
@media (max-width: 991px) {
	.ncc-lp .feat-grid { grid-template-columns: 1fr 1fr; }
	.ncc-lp .dest-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
	.ncc-lp .airport-grid, .ncc-lp .tour-grid, .ncc-lp .steps { grid-template-columns: 1fr; }
	.ncc-lp .feat-grid { gap: 12px; }
	.ncc-lp .feat-card { padding: 18px; }
	.ncc-lp .feat-title { font-size: 16px; }
	.ncc-lp .feat-desc { font-size: 14px; }
}
@media (max-width: 420px) { .ncc-lp .feat-grid, .ncc-lp .dest-grid { grid-template-columns: 1fr; } }
/* fascia finale di invito (centrata, come le fasce ncc-cta) */
.ncc-lp .cta-bottom { background: var(--ink); color: #fff; text-align: center; padding: 72px 0; }
.ncc-lp .cta-bottom h2 { color: #fff; font-size: clamp(28px, calc(1.6vw + 14px), 36px); font-weight: 700; line-height: 1.2; margin-bottom: 10px; }
.ncc-lp .cta-bottom p { color: #D7DBDE; font-size: 16px; margin-bottom: 28px; }
.ncc-lp .cta-bottom .lp-btns { justify-content: center; }
/* piede */
.ncc-lp .lp-foot { background: #0A0C0E; padding: 22px 0; text-align: center; color: rgba(255,255,255,.6); font-size: 13px; }
.ncc-lp .lp-foot a { color: rgba(255,255,255,.8); text-decoration: underline; }
/* modulo con prezzo: card come quella della Home, pulsante a pillola (la classe lp-btn-wa resta: la usa Ads) */
.ncc-lp .lp-form-section { padding: 72px 0; background: #fff; }
.ncc-lp .lp-form-inner { max-width: 600px; margin: 0 auto; }
.ncc-lp .lp-form-sub { color: var(--tx); font-size: 16px; margin-bottom: 24px; }
.ncc-lp .lp-card { background: #fff; border-radius: 16px; border-top: 4px solid var(--o); box-shadow: 0 10px 34px -12px rgba(17,21,24,.25); overflow: visible; }
.ncc-lp .lp-card-body { padding: 26px 26px 28px; }
.ncc-lp .lp-group { margin-bottom: 14px; position: relative; }
.ncc-lp .lp-group label { display: block; color: var(--ink); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 6px; }
.ncc-lp .lp-group label .req { color: #E5533D; }
.ncc-lp .lp-group input[type="text"], .ncc-lp .lp-group input[type="date"], .ncc-lp .lp-group textarea, .ncc-lp .lp-cs-trigger {
	width: 100%; min-height: 46px; padding: 11px 14px; border: 1px solid #DDE1E4 !important; border-radius: 12px !important; background: var(--mi) !important;
	color: var(--ink); font-size: 15px; font-family: inherit; box-shadow: none; outline: none; -webkit-appearance: none; appearance: none; }
.ncc-lp .lp-group textarea { min-height: 80px; resize: vertical; }
.ncc-lp .lp-group input:focus, .ncc-lp .lp-group textarea:focus, .ncc-lp .lp-cs-wrapper.open .lp-cs-trigger, .ncc-lp .lp-cs-trigger:focus {
	border-color: var(--o) !important; background: #fff !important; box-shadow: 0 0 0 3px rgba(244,163,0,.15); }
.ncc-lp .lp-group input.lp-invalid, .ncc-lp .lp-cs-wrapper.lp-invalid .lp-cs-trigger { border-color: #E53935 !important; box-shadow: 0 0 0 3px rgba(229,57,53,.10); }
.ncc-lp .lp-err { display: none; color: #C62828; font-size: 13px; margin-top: 4px; }
.ncc-lp .lp-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ncc-lp .lp-sep { display: flex; align-items: center; gap: 10px; margin: 8px 0 14px; color: var(--sl); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ncc-lp .lp-sep::before, .ncc-lp .lp-sep::after { content: ''; flex: 1; height: 1px; background: var(--ln); }
.ncc-lp .lp-price-box { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; margin-bottom: 18px; padding: 14px 18px;
	background: var(--mi); border: 1px solid #DDE1E4; border-radius: 12px; transition: border-color .25s, background .25s; }
.ncc-lp .lp-price-box.has-price { background: rgba(244,163,0,.07); border-color: var(--o); }
.ncc-lp .lp-price-box.no-price { background: rgba(244,163,0,.05); border-color: var(--od); }
.ncc-lp .lp-price-label { flex: 1; min-width: 0; color: var(--sl); font-size: 13px; }
.ncc-lp .lp-price-label strong { display: block; color: var(--ink); font-size: 14px; font-weight: 700; }
.ncc-lp .lp-price-value { color: var(--ink); font-size: 32px; font-weight: 700; line-height: 1; white-space: nowrap; }
.ncc-lp .lp-price-value .lp-currency { font-size: 20px; vertical-align: super; margin-right: 2px; }
.ncc-lp .lp-price-value.lp-price-placeholder { color: var(--sl); font-size: 13px; font-weight: 400; font-style: normal; line-height: 1.4; text-align: right; white-space: normal; }
.ncc-lp .lp-price-value.no-price-text { color: var(--od); font-size: 14px; line-height: 1.4; text-align: right; }
.ncc-lp button.lp-btn-wa { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; padding: 0 22px; border: 0 !important;
	border-radius: 999px !important; background: linear-gradient(180deg, #2EDB6F 0%, #1FBE5A 100%) !important; color: #fff !important; font-family: inherit;
	font-size: 16px; font-weight: 600; text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: 0 8px 20px -8px rgba(37,211,102,.7); transition: filter .2s; }
.ncc-lp button.lp-btn-wa:hover { filter: brightness(.94); }
.ncc-lp .lp-btn-wa svg { width: 20px; height: 20px; fill: currentColor; }
.ncc-lp .lp-card-footer { background: var(--mi); border-top: 1px solid var(--ln); border-radius: 0 0 16px 16px; padding: 12px 24px; text-align: center; color: var(--sl); font-size: 13px; }
.ncc-lp .lp-card-footer strong { color: var(--ink); }
.ncc-lp .lp-privacy { margin-top: 12px; text-align: center; color: var(--sl); font-size: 12px; line-height: 1.5; }
.ncc-lp .lp-privacy a { color: var(--od); text-decoration: underline; }
/* tendine personalizzate del modulo */
.ncc-lp .lp-cs-wrapper { position: relative; }
.ncc-lp .lp-cs-trigger { display: flex; align-items: center; padding-right: 36px; color: var(--sl); cursor: pointer; user-select: none; position: relative; }
.ncc-lp .lp-cs-trigger.has-value { color: var(--ink); }
.ncc-lp .lp-cs-trigger::after { content: ''; position: absolute; right: 14px; top: 50%; width: 11px; height: 7px; transform: translateY(-50%); pointer-events: none; transition: transform .2s;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath fill='%23F4A300' d='M5.5 7L0 0h11z'/%3E%3C/svg%3E") no-repeat center / contain; }
.ncc-lp .lp-cs-wrapper.open .lp-cs-trigger::after { transform: translateY(-50%) rotate(180deg); }
.ncc-lp .lp-cs-panel { display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 9999; max-height: 260px; overflow-y: auto;
	background: #fff; border: 1px solid var(--o); border-radius: 12px; box-shadow: 0 10px 26px rgba(17,21,24,.14); }
.ncc-lp .lp-cs-wrapper.open .lp-cs-panel { display: block; }
.ncc-lp .lp-cs-group-label { position: sticky; top: 0; padding: 8px 14px 6px; background: var(--mi); border-bottom: 1px solid var(--ln); color: var(--sl); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ncc-lp .lp-cs-item { padding: 10px 14px; color: var(--ink); font-size: 15px; cursor: pointer; }
.ncc-lp .lp-cs-item:hover { background: rgba(244,163,0,.08); }
.ncc-lp .lp-cs-item.lp-cs-selected { background: rgba(244,163,0,.08); color: var(--ink); font-weight: 700; }
.ncc-lp .lp-cs-item.lp-cs-disabled { color: #B8C0C6; pointer-events: none; }
@media (max-width: 767px) {
	.ncc-lp .lp-form-section { padding: 48px 0; }
	.ncc-lp .lp-card-body { padding: 22px 18px 24px; }
	.ncc-lp .lp-row2 { grid-template-columns: 1fr; gap: 0; }
	.ncc-lp .lp-price-box { flex-direction: column; align-items: flex-start; gap: 6px; }
	.ncc-lp .lp-price-value { font-size: 28px; align-self: flex-end; }
	.ncc-lp .lp-price-value.lp-price-placeholder, .ncc-lp .lp-price-value.no-price-text { align-self: flex-start; text-align: left; }
}

/* ===== Pagina Blog (elenco articoli): fascia scura con H1 e sottotitolo come Servizi, FAQ e Contatti.
   Stampata da functions.php sopra le card; il contenitore è quello di Blocksy, così il titolo parte dal bordo delle card. ===== */
.ncc-blog-head { background: #10263A; padding: 80px 0 50px; }
.ncc-blog-head .ct-container { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.ncc-blog-head .ncc-title h1 { color: #fff; margin: 0; }
.ncc-blog-head .ncc-subtitle p { margin: 0 !important; }
@media (max-width: 767px) { .ncc-blog-head { padding: 50px 0 40px; } }

/* ===== Articoli del blog: la fascia del titolo (primo contenitore Elementor dell'articolo, con l'H1) diventa scura
   come nelle pagine interne, con l'H1 nello stile ncc-title. Vale per tutti gli articoli, anche i nuovi, senza toccare Elementor. ===== */
.single-post .entry-content > .elementor > .e-con:first-child:has(h1) { background: #10263A !important; padding-top: 80px !important; padding-bottom: 50px !important; min-height: 0 !important; }
.single-post .entry-content > .elementor > .e-con:first-child:has(h1) > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; min-height: 0 !important; }   /* lo spazio lo dà la fascia: dentro c'erano 100/50px su computer e 300px sotto su telefono */
.single-post .entry-content > .elementor > .e-con:first-child:has(h1) .elementor-widget-heading { align-self: stretch; text-align: left !important; margin: 0 !important; }
.single-post .entry-content > .elementor > .e-con:first-child h1.elementor-heading-title {
	display: inline-block; color: #fff !important; font-family: 'Inter', sans-serif !important; font-size: clamp(30px, calc(2.5vw + 12px), 46px) !important;
	font-weight: 700 !important; line-height: 1.15 !important; text-align: left !important; padding-bottom: 0; border-bottom: 1px solid #F4A300; margin: 0 !important; }
@media (max-width: 767px) { .single-post .entry-content > .elementor > .e-con:first-child:has(h1) { padding-top: 50px !important; padding-bottom: 40px !important; } }

/* ===== Link nel testo degli articoli e "Leggi tutto" del Blog: arancio scuro (leggibile su bianco, contrasto 4,3:1 come i link
   delle righe privacy) e sottolineati, così si riconoscono come link. L'arancio chiaro resta per pulsanti e icone. ===== */
.single-post .entry-content .elementor-widget-text-editor a { color: #A86E00 !important; text-decoration: underline; text-underline-offset: 2px; }
.single-post .entry-content .elementor-widget-text-editor a:hover { color: #8F5D00 !important; }
.blog .entries .entry-button { color: #A86E00 !important; }
.blog .entries .entry-button:hover { color: #8F5D00 !important; }

/* ===== Blu del sito #10263A: fasce dei titoli, fascia "Prenota ora" e icone delle card dei servizi ===== */
/* fasce dei titoli delle pagine interne (contenitore principale con il titolo ncc-title; esclusa la Home, che ha la foto) */
.elementor > .e-con:has(.ncc-title):not(.ncc-hero):not(:has(.ncc-hero)), .elementor > .e-con.ncc-c-top { background-color: #10263A !important; }
/* card dei servizi (Home, Servizi): card bianca con bordo blu 2px, titolo e testo blu, link arancio scuro; icona bianca in un quadrato blu */
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial { border: 2px solid #10263A !important; box-shadow: 0 10px 30px -12px rgba(16,38,58,.18) !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial,
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial > .elementor-widget-container { background-color: #fff !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial :is(.elementor-icon-box-title, .elementor-icon-box-title a, .elementor-icon-box-description, .elementor-icon-box-description p) { color: #10263A !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon-box-description a { color: #A86E00 !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon {
	background-color: #10263A !important; color: #fff !important; fill: #fff !important; border-color: #10263A !important; box-shadow: none !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon svg { fill: currentColor !important; }
/* ===== Spaziature uniformi tra le sezioni di Home, Servizi, FAQ e Contatti (96px computer, 72px tablet, 64px telefono).
   Margini per ID dei contenitori Elementor: se si cambia la struttura di una pagina, questi valori vanno ricontrollati.
   Non valgono dentro l'editor di Elementor (lì restano le distanze impostate nei contenitori). ===== */
/* Desktop (oltre 1024px): 96px tra le sezioni */
@media (min-width: 1025px) {
  /* Home */
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-3381690 { margin-top: 32px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-12dc575 { margin-top: 76px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-3bd6514 { margin-top: -8px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-526c7de { margin-top: 81px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-b97e6f6 { margin-top: 42px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-bbc0266 { margin-bottom: 0px !important; }
  /* Servizi */
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-53d3af9 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-14070e6 { margin-top: 96px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-4d3213e { margin-top: 67px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-f193994 { margin-top: 86px !important; }
  body:not(.elementor-editor-active).page-id-624 footer.ct-footer { margin-top: -34px !important; }
  /* FAQ */
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-55a7d46 { margin-top: 71px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-257524e { margin-top: -67px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-103b490 { margin-top: 96px !important; }
  body:not(.elementor-editor-active).page-id-622 footer.ct-footer { margin-top: -34px !important; }
  /* Contatti */
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-46aca7f { margin-top: 64px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-00a5f05 { margin-top: 64px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-8de012f { margin-top: -1px !important; }
  body:not(.elementor-editor-active).page-id-620 footer.ct-footer { margin-top: 46px !important; }
}

/* Tablet (768-1024px): 72px tra le sezioni */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Home */
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-3381690 { margin-top: 8px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-bbc0266 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-526c7de { margin-top: 57px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-b97e6f6 { margin-top: 18px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-f3c4bfb { margin-top: 22px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-3bd6514 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-12dc575 { margin-top: 52px !important; }
  body:not(.elementor-editor-active).page-id-626 footer.ct-footer { margin-top: -8px !important; }
  /* Servizi */
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-53d3af9 { margin-top: 47px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-14070e6 { margin-top: 72px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-4d3213e { margin-top: 62px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-f193994 { margin-top: 62px !important; }
  body:not(.elementor-editor-active).page-id-624 footer.ct-footer { margin-top: -8px !important; }
  /* FAQ */
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-17176b5 { margin-top: 22px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-55a7d46 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-257524e { margin-top: -48px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-103b490 { margin-top: 72px !important; }
  body:not(.elementor-editor-active).page-id-622 footer.ct-footer { margin-top: -8px !important; }
  /* Contatti */
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-46aca7f { margin-top: 40px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-00a5f05 { margin-top: 40px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-8de012f { margin-top: -25px !important; }
  body:not(.elementor-editor-active).page-id-620 footer.ct-footer { margin-top: 22px !important; }
}

/* Telefono (fino a 767px): 64px tra le sezioni */
@media (max-width: 767px) {
  /* Home */
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-bbc0266 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-526c7de { margin-top: 49px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-b97e6f6 { margin-top: 10px !important; }
  body:not(.elementor-editor-active).page-id-626 .elementor-element.elementor-element-f3c4bfb { margin-top: 14px !important; }
  body:not(.elementor-editor-active).page-id-626 footer.ct-footer { margin-top: -36px !important; }
  /* Servizi */
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-53d3af9 { margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-14070e6 { margin-top: 64px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-624 .elementor-element.elementor-element-4d3213e { margin-top: 54px !important; }
  body:not(.elementor-editor-active).page-id-624 footer.ct-footer { margin-top: -26px !important; }
  /* FAQ */
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-55a7d46 { margin-top: 39px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-17176b5 { margin-top: 14px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-257524e { margin-top: -56px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-1d68ce5 { margin-top: 4px !important; }
  body:not(.elementor-editor-active).page-id-622 .elementor-element.elementor-element-103b490 { margin-top: 64px !important; }
  /* Contatti */
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-46aca7f { margin-top: 32px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-00a5f05 { margin-top: 32px !important; margin-bottom: 0px !important; }
  body:not(.elementor-editor-active).page-id-620 .elementor-element.elementor-element-8de012f { margin-top: -33px !important; }
  body:not(.elementor-editor-active).page-id-620 footer.ct-footer { margin-top: -36px !important; }
}


/* ===== Pulsanti di invito (CTA): arancio #F4A300 con testo e icona blu #10263A. WhatsApp resta verde con testo bianco.
   Esclusi: pulsante recensioni (bianco), link "Apri in Google Maps", pulsanti dei moduli WhatsApp. ===== */
.elementor-widget-button:not(.ncc-review):not(.ncc-c-maplink) a.elementor-button:not([href*="wa.me"]),
.ncc-sticky a.ncc-sticky-tel, .ncc-lp .btn-call, .ncc-lp .lp-top-call, .wpforms-container button.wpforms-submit {
	background: #F4A300 !important; background-image: none !important; color: #10263A !important; border-color: #F4A300 !important; }
.elementor-widget-button:not(.ncc-review):not(.ncc-c-maplink) a.elementor-button:not([href*="wa.me"]) :is(.elementor-button-text, .elementor-button-icon, svg, i),
.ncc-sticky a.ncc-sticky-tel svg, .ncc-lp .btn-call svg, .ncc-lp .lp-top-call svg { color: #10263A !important; fill: #10263A !important; }
.elementor-widget-button:not(.ncc-review):not(.ncc-c-maplink) a.elementor-button:not([href*="wa.me"]):hover,
.ncc-sticky a.ncc-sticky-tel:hover, .ncc-sticky a.ncc-sticky-tel:active, .ncc-lp .btn-call:hover, .ncc-lp .lp-top-call:hover, .wpforms-container button.wpforms-submit:hover {
	background: #D98F00 !important; color: #10263A !important; filter: none !important; }
/* WhatsApp: verde con testo e icona bianchi */
.elementor-widget-button a.elementor-button[href*="wa.me"], .elementor-widget-button a.elementor-button[href*="wa.me"] :is(.elementor-button-text, .elementor-button-icon, svg, i) { color: #fff !important; fill: #fff !important; }
.elementor-widget-button a.elementor-button[href*="wa.me"]:hover, .elementor-widget-button a.elementor-button[href*="wa.me"]:focus-visible { background: #1DA851 !important; color: #fff !important; }
/* fascia arancio "Maggiori dettagli?" della FAQ: lì i pulsanti sono blu con testo bianco, altrimenti sparirebbero sull'arancio */
.e-con.ncc-cta:not(:has(.elementor-widget-icon-list)) .elementor-widget-button a.elementor-button,
.e-con.ncc-cta:not(:has(.elementor-widget-icon-list)) .elementor-widget-button a.elementor-button :is(.elementor-button-text, .elementor-button-icon, svg, i) { background: #10263A !important; color: #fff !important; fill: #fff !important; border-color: #10263A !important; }
.e-con.ncc-cta:not(:has(.elementor-widget-icon-list)) .elementor-widget-button a.elementor-button:hover { background: #1B3A55 !important; }
/* card dei servizi al passaggio del mouse: card blu, testo bianco, link arancio chiaro, quadrato dell'icona bianco con icona blu */
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial,
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial > .elementor-widget-container,
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial .elementor-icon { transition: background-color .25s, color .25s; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial:hover,
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial:hover > .elementor-widget-container { background-color: #10263A !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial:hover :is(.elementor-icon-box-title, .elementor-icon-box-title a, .elementor-icon-box-description, .elementor-icon-box-description p) { color: #fff !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial:hover .elementor-icon-box-description a { color: #F4A300 !important; }
.elementor-widget-icon-box.ct-iconbox.elementor-widget__width-initial:hover .elementor-icon { background-color: #fff !important; color: #10263A !important; fill: #10263A !important; border-color: #fff !important; }

/* ===== Riga valutazione Google nell'hero (shortcode [ncc_google_rating] in functions.php) ===== */
.ncc-rating { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 14px 0 4px; font-family: 'Inter', sans-serif; font-size: 16px; line-height: 1.4; color: rgba(255,255,255,.82); text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.ncc-rating-stars { display: inline-flex; gap: 3px; }
.ncc-rating-stars svg { width: 20px; height: 20px; fill: #F4A300; filter: drop-shadow(0 1px 1px rgba(0,0,0,.3)); }
.ncc-rating strong { color: #fff; font-weight: 700; }
@media (max-width: 767px) {
	.ncc-rating { font-size: 14px; margin: 10px 0 0; }
	.ncc-rating-count { display: none; }   /* su telefono versione corta: stelle + "Eccellente su Google" */
	.ncc-rating-stars svg { width: 17px; height: 17px; }
}