.elementor-kit-5{--e-global-color-primary:#0F279B;--e-global-color-secondary:#2EAE9F;--e-global-color-text:#0F182B;--e-global-color-accent:#EF7E3C;--e-global-color-grigio:#58677C;--e-global-color-superficie:#F5F8FB;--e-global-color-bordo:#E2E8F0;--e-global-color-azzurro:#E7F0FC;--e-global-color-verde:#90C045;--e-global-color-rosso:#D15B5E;--e-global-color-bianco:#FFFFFF;--e-global-color-notte:#0F172A;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-size:36px;--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.11em;--e-global-typography-primary-letter-spacing:-0.025em;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:18px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.4em;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:700;--e-global-typography-accent-line-height:1.43em;--e-global-typography-titolo_hero-font-family:"Montserrat";--e-global-typography-titolo_hero-font-size:60px;--e-global-typography-titolo_hero-font-weight:800;--e-global-typography-titolo_hero-line-height:1.1em;--e-global-typography-titolo_hero-letter-spacing:-0.025em;--e-global-typography-titolo_pagina-font-family:"Montserrat";--e-global-typography-titolo_pagina-font-size:40px;--e-global-typography-titolo_pagina-font-weight:800;--e-global-typography-titolo_pagina-line-height:1.15em;--e-global-typography-titolo_pagina-letter-spacing:-0.025em;--e-global-typography-titolo_sezione-font-family:"Montserrat";--e-global-typography-titolo_sezione-font-size:36px;--e-global-typography-titolo_sezione-font-weight:800;--e-global-typography-titolo_sezione-line-height:1.11em;--e-global-typography-titolo_sezione-letter-spacing:-0.025em;--e-global-typography-titolo_card_grande-font-family:"Montserrat";--e-global-typography-titolo_card_grande-font-size:24px;--e-global-typography-titolo_card_grande-font-weight:800;--e-global-typography-titolo_card_grande-line-height:1.375em;--e-global-typography-titolo_card-font-family:"Montserrat";--e-global-typography-titolo_card-font-size:20px;--e-global-typography-titolo_card-font-weight:800;--e-global-typography-titolo_card-line-height:1.4em;--e-global-typography-titolo_news-font-family:"Montserrat";--e-global-typography-titolo_news-font-size:18px;--e-global-typography-titolo_news-font-weight:800;--e-global-typography-titolo_news-line-height:1.375em;--e-global-typography-occhiello-font-family:"Montserrat";--e-global-typography-occhiello-font-size:12px;--e-global-typography-occhiello-font-weight:700;--e-global-typography-occhiello-text-transform:uppercase;--e-global-typography-occhiello-line-height:2em;--e-global-typography-occhiello-letter-spacing:0.1em;--e-global-typography-testo_grande-font-family:"Montserrat";--e-global-typography-testo_grande-font-size:18px;--e-global-typography-testo_grande-font-weight:400;--e-global-typography-testo_grande-line-height:1.625em;--e-global-typography-testo_piccolo-font-family:"Montserrat";--e-global-typography-testo_piccolo-font-size:14px;--e-global-typography-testo_piccolo-font-weight:400;--e-global-typography-testo_piccolo-line-height:1.625em;--e-global-typography-meta-font-family:"Montserrat";--e-global-typography-meta-font-size:12px;--e-global-typography-meta-font-weight:600;--e-global-typography-meta-line-height:1.33em;--e-global-typography-nota-font-family:"Montserrat";--e-global-typography-nota-font-size:12px;--e-global-typography-nota-font-weight:400;--e-global-typography-nota-line-height:1.625em;--e-global-typography-menu-font-family:"Montserrat";--e-global-typography-menu-font-size:13px;--e-global-typography-menu-font-weight:600;--e-global-typography-menu-line-height:1.54em;--e-global-typography-titolo_footer-font-family:"Montserrat";--e-global-typography-titolo_footer-font-size:14px;--e-global-typography-titolo_footer-font-weight:800;--e-global-typography-titolo_footer-text-transform:uppercase;--e-global-typography-titolo_footer-line-height:1.43em;--e-global-typography-titolo_footer-letter-spacing:0.025em;background-color:#FFFFFF;color:#0F182B;font-family:"Montserrat", Sans-serif;font-size:16px;line-height:1.5em;}.elementor-kit-5 button,.elementor-kit-5 input[type="button"],.elementor-kit-5 input[type="submit"],.elementor-kit-5 .elementor-button{background-color:#0F279B;font-family:"Montserrat", Sans-serif;font-size:14px;font-weight:700;color:#FFFFFF;border-radius:12px 12px 12px 12px;padding:10px 20px 10px 20px;}.elementor-kit-5 button:hover,.elementor-kit-5 button:focus,.elementor-kit-5 input[type="button"]:hover,.elementor-kit-5 input[type="button"]:focus,.elementor-kit-5 input[type="submit"]:hover,.elementor-kit-5 input[type="submit"]:focus,.elementor-kit-5 .elementor-button:hover,.elementor-kit-5 .elementor-button:focus{background-color:#0F279B;color:#FFFFFF;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5 a{color:#0F279B;}.elementor-kit-5 a:hover{color:#0F182B;}.elementor-kit-5 h1{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-5 h2{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-5 h3{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-5 h4{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-5 h5{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-5 h6{color:#0F182B;font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1232px;}.e-con{--container-max-width:1232px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1023px){.elementor-kit-5{--e-global-typography-titolo_hero-font-size:48px;--e-global-typography-titolo_pagina-font-size:34px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-5{--e-global-typography-titolo_hero-font-size:36px;--e-global-typography-titolo_pagina-font-size:28px;--e-global-typography-titolo_sezione-font-size:30px;--e-global-typography-titolo_sezione-line-height:1.2em;--e-global-typography-titolo_card_grande-font-size:20px;--e-global-typography-testo_grande-font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//*
 * Be Stream Power — rifiniture CSS del sito.
 *
 * Finisce in Impostazioni del sito › CSS personalizzato: lo copia
 * config/03-brand.php. Modificare QUI e rilanciare lo script, non nel pannello
 * (la modifica fatta nel pannello verrebbe sovrascritta al prossimo lancio).
 *
 * Contiene solo cio' che i controlli di Elementor non esprimono: ombre doppie,
 * effetti al passaggio del mouse, header fisso con sfocatura, icone a tratto.
 * Colori e caratteri vengono dalle variabili globali del kit (--e-global-*).
 */

:root {
	--bsp-ombra-card: 0 1px 2px rgba(0, 26, 145, .06), 0 8px 24px rgba(0, 26, 145, .08);
	--bsp-ombra-card-hover: 0 2px 4px rgba(0, 26, 145, .08), 0 16px 40px rgba(0, 26, 145, .14);
	--bsp-ombra-header: 0 1px 2px rgba(15, 24, 43, .04), 0 4px 14px rgba(15, 24, 43, .06);
	--bsp-curva: cubic-bezier(.4, 0, .2, 1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Icone Lucide: sono disegnate a tratto. Elementor colora le icone con "fill",
   che sulle Lucide riempirebbe le forme: qui si usa il colore come tratto. */
svg.lucide,
svg[stroke="currentColor"] { fill: none !important; stroke: currentColor; }
/* Alcuni widget (JetEngine) colorano i singoli tracciati, non l'SVG. */
svg.lucide *,
svg[stroke="currentColor"] * { fill: none !important; }

/* ---------------------------------------------------------------- Header -- */

/* Fisso in alto. Va sul contenitore del Theme Builder, figlio diretto di body:
   sul contenitore interno non funzionerebbe, perche' sticky resta dentro il
   genitore, che e' alto quanto l'header stesso. */
.elementor-location-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
.bsp-header {
	border-bottom: 1px solid rgba(226, 232, 240, .7) !important;
	background-color: rgba(255, 255, 255, .8) !important;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	box-shadow: var(--bsp-ombra-header);
}

/* Icone dei pulsanti dell'header e del pannello. */
.bsp-icona-20 .elementor-button-icon svg { width: 20px; height: 20px; }
.bsp-icona-24 .elementor-button-icon svg { width: 24px; height: 24px; }
.bsp-icona-20 .elementor-button-content-wrapper,
.bsp-icona-24 .elementor-button-content-wrapper { align-items: center; }
.bsp-logo img { display: block; }
.bsp-azioni { flex: none; width: auto !important; }

/* Login: solo icona sotto i 768 px, come nella grafica. */
@media (max-width: 767px) { .bsp-login .elementor-button-text { display: none; } }

/* Voci di menu: sottolineatura che cresce da sinistra, come nella grafica. */
.bsp-menu .elementor-nav-menu .elementor-item { position: relative; }
.bsp-menu .elementor-nav-menu--main .elementor-item::after {
	content: "";
	position: absolute;
	left: var(--bsp-menu-pad, 0px);
	right: var(--bsp-menu-pad, 0px);
	bottom: -4px;
	height: 2px;
	border-radius: 9999px;
	background: var(--e-global-color-primary);
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform .3s var(--bsp-curva);
	opacity: 1;
}
.bsp-menu .elementor-nav-menu--main .elementor-item:hover::after,
.bsp-menu .elementor-nav-menu--main .elementor-item.elementor-item-active::after { transform: scaleX(1); }
.bsp-menu .elementor-nav-menu--main .elementor-item { transition: color .2s; }

/* Elementor rientra le voci dei sottomenu con un bordo sinistro trasparente
   di 8 px: qui gli allineamenti li danno i padding, il bordo va tolto. */
.bsp-menu .sub-menu .elementor-sub-item,
.bsp-lingua .sub-menu .elementor-sub-item,
.bsp-pannello-menu .sub-menu .elementor-sub-item { border-inline-start: 0 !important; }

/* Freccina dei sottomenu e del selettore lingua. */
.bsp-menu .sub-arrow, .bsp-lingua .sub-arrow { padding: 0 0 0 4px !important; }
.bsp-menu .sub-arrow svg, .bsp-lingua .sub-arrow svg { width: 9px; height: 9px; fill: currentColor; opacity: .7; }

/* Sottomenu (Osservatorio, Pillole): aperti in CSS, non affidati a SmartMenus
   (vedi trappole.md, "I sottomenu non si aprono"). */
.bsp-menu .elementor-nav-menu--main .menu-item-has-children { position: relative; }
.bsp-menu .elementor-nav-menu--main .sub-menu {
	display: block !important;
	visibility: hidden;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity .15s, transform .15s, visibility .15s;
	min-width: 220px !important;
	margin-top: 10px !important;
	padding: 6px !important;
	background: #fff !important;
	border: 1px solid var(--e-global-color-bordo);
	border-radius: 12px;
	box-shadow: var(--bsp-ombra-card);
}
.bsp-menu .elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
.bsp-menu .elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: none;
}
.bsp-menu .elementor-nav-menu--main .sub-menu::before {   /* ponte per non perdere l'hover */
	content: "";
	position: absolute;
	left: 0; right: 0; top: -12px; height: 12px;
}
.bsp-menu .elementor-nav-menu--main .sub-menu .elementor-sub-item {
	border-radius: 8px;
	padding: 10px 12px !important;
	font-size: 13px;
	font-weight: 600;
	color: var(--e-global-color-text) !important;
	background: transparent !important;
}
.bsp-menu .elementor-nav-menu--main .sub-menu .elementor-sub-item:hover,
.bsp-menu .elementor-nav-menu--main .sub-menu .elementor-sub-item.elementor-item-active {
	background: var(--e-global-color-azzurro) !important;
	color: var(--e-global-color-primary) !important;
}
.bsp-menu .elementor-nav-menu--main .sub-menu .elementor-sub-item::after { display: none; }

/* Selettore lingua: FR visibile ma non cliccabile finche' non c'e' WPML. */
.bsp-lingua .menu-item.bsp-lingua-off > a {
	pointer-events: none;
	cursor: default;
	opacity: .45;
}
.bsp-lingua .elementor-nav-menu--main .elementor-nav-menu > .menu-item > .elementor-item {
	border: 1px solid var(--e-global-color-bordo);
	border-radius: 12px;
}
.bsp-lingua .elementor-nav-menu--main .sub-menu {
	display: block !important;
	visibility: hidden;
	opacity: 0;
	min-width: 0 !important;
	width: 100%;
	margin-top: 4px !important;
	padding: 4px !important;
	background: #fff !important;
	border: 1px solid var(--e-global-color-bordo);
	border-radius: 8px;
	box-shadow: var(--bsp-ombra-card);
	transition: opacity .15s, visibility .15s;
}
.bsp-lingua .menu-item-has-children:hover > .sub-menu,
.bsp-lingua .menu-item-has-children:focus-within > .sub-menu { visibility: visible; opacity: 1; }
.bsp-lingua .sub-menu .elementor-sub-item {
	/* FR allineato al testo di IT: 1 bordo + 4 + 6 = 11 px, come 1 + 10 sopra. */
	justify-content: flex-start !important;
	text-align: left;
	padding: 6px 6px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	color: var(--e-global-color-text) !important;
	background: transparent !important;
}

/* Icone social: il colore arriva dal tratto (currentColor), non dal fill. */
.bsp-social .elementor-social-icon { color: #fff; transition: background-color .15s, border-color .15s; }
.bsp-social .elementor-social-icon:hover { border-color: rgba(255, 255, 255, .6) !important; }
.bsp-social .elementor-social-icon svg { width: 18px; height: 18px; }

/* Footer: i link rapidi ripetono il menu principale, senza i sottomenu. */
.bsp-menu-piatto .sub-menu,
.bsp-menu-piatto .sub-arrow { display: none !important; }
.bsp-menu-piatto .elementor-nav-menu--main .elementor-item::after { display: none; }

/* -------------------------------------------------------------- Pannello -- */

.bsp-pannello { --e-off-canvas-width: min(85vw, 384px); }
.bsp-pannello .e-off-canvas__main { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); }
.bsp-pannello-corpo { display: flex; flex-direction: column; }
.bsp-sopra { position: relative; z-index: 1; }

.bsp-pannello .e-off-canvas__overlay {
	background-color: rgba(15, 23, 42, .5);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.bsp-pannello-menu .elementor-nav-menu--layout-vertical .elementor-item {
	border-radius: 12px;
	transition: background-color .15s;
}
.bsp-pannello-menu .elementor-nav-menu--layout-vertical .elementor-item:hover { background-color: rgba(255, 255, 255, .15); }
/* Nel pannello i sottomenu restano aperti, in colonna sotto la voce madre
   (Elementor li posizionerebbe come tendine bianche sopra le altre voci). */
.bsp-pannello-menu .sub-menu {
	display: block !important;
	position: static !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.bsp-pannello-menu .sub-arrow { display: none !important; }
.bsp-pannello-menu .sub-menu .elementor-sub-item {
	padding: 8px 16px 8px 32px !important;
	border-radius: 12px;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: rgba(255, 255, 255, .85) !important;
	background: transparent !important;
}
.bsp-pannello-menu .sub-menu .elementor-sub-item:hover { background: rgba(255, 255, 255, .15) !important; color: #fff !important; }

/* ----------------------------------------------------------------- Card -- */

.bsp-card {
	box-shadow: var(--bsp-barra, 0 0 #0000), var(--bsp-ombra-card);
	transition: transform .15s var(--bsp-curva), box-shadow .15s var(--bsp-curva);
}
.bsp-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--bsp-barra, 0 0 #0000), var(--bsp-ombra-card-hover);
}
.bsp-card-ferma { box-shadow: var(--bsp-ombra-card); }

/* Riquadro icona: niente spazio sotto (l'icona e' in linea nel widget). */
.bsp-icona-box .elementor-icon-wrapper { display: flex; }

/* Barra colorata in alto (le tre anime): ombra interna, segue gli angoli. */
.bsp-barra-blu { --bsp-barra: inset 0 6px 0 var(--e-global-color-primary); }
.bsp-barra-teal { --bsp-barra: inset 0 6px 0 var(--e-global-color-secondary); }
.bsp-barra-arancio { --bsp-barra: inset 0 6px 0 var(--e-global-color-accent); }

/* Immagine che si ingrandisce al passaggio sulla card. */
.bsp-zoom { overflow: hidden; }
.bsp-zoom img { transition: transform .5s var(--bsp-curva); }
.bsp-card:hover .bsp-zoom img { transform: scale(1.05); }

/* Pulsanti-link con freccia: senza la riga di testo attorno (+4 px). */
/* Sul link e non sul widget: sul widget scavalcherebbe le classi
   elementor-hidden-* e ricomparirebbero pulsanti nascosti. */
.bsp-freccia .elementor-button { display: flex; width: fit-content; }

/* Freccia che scorre a destra. */
.bsp-freccia svg,
.bsp-freccia .elementor-button-icon { transition: transform .15s var(--bsp-curva); }
.bsp-card:hover .bsp-freccia svg,
.bsp-freccia:hover svg,
.bsp-freccia a:hover .elementor-button-icon { transform: translateX(4px); }

/* Card con foto di sfondo (home): la foto e' un widget Immagine portato dietro
   al testo, cosi' puo' ingrandirsi; la sfumatura scura rende leggibile il testo. */
.bsp-card-foto { position: relative; overflow: hidden; isolation: isolate; }
.bsp-card-foto > .bsp-card-foto__img {
	position: absolute !important;
	inset: 0;
	z-index: -2;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}
.bsp-card-foto > .bsp-card-foto__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s var(--bsp-curva);
}
.bsp-card-foto:hover > .bsp-card-foto__img img { transform: scale(1.05); }
.bsp-card-foto::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to top, rgba(15, 23, 42, .8), rgba(15, 23, 42, .3) 50%, rgba(15, 23, 42, 0));
	pointer-events: none;
}

/* Date: WordPress in italiano scrive i mesi con la maiuscola ("Ottobre");
   in italiano e nella grafica vanno in minuscolo. */
.bsp-data, .bsp-data .elementor-heading-title { text-transform: lowercase; }

/* Utilita' di impaginazione per le schede dei listing. */
.bsp-cresci { flex-grow: 1; }
.bsp-in-fondo { margin-top: auto !important; padding-top: 16px; }
.bsp-news-media { position: relative; }
.bsp-news-foto img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.bsp-logo-card img { display: block; width: auto; height: auto; max-height: 72px; max-width: min(100%, 200px); object-fit: contain; }

/* Colonne di testo accanto a un'immagine: senza min-width 0 un elemento flex
   non si restringe sotto la larghezza del testo e deborda dalla card. */
.bsp-flessibile { flex: 1 1 0 !important; min-width: 0; }

/* Righe info: indirizzi email lunghi vanno a capo invece di uscire dalla card. */
.bsp-riga-info .elementor-heading-title { overflow-wrap: anywhere; }
.bsp-link-testo a { color: var(--e-global-color-primary); }

/* Copertine dei documenti. */
.bsp-copertina img { display: block; width: 100%; height: auto; border: 1px solid var(--e-global-color-bordo); border-radius: 8px; box-shadow: var(--bsp-ombra-card); transition: transform .2s var(--bsp-curva); }
.bsp-copertina a:hover img { transform: translateY(-2px); }

/* Icone nei pulsanti: 16 px come nella grafica (Elementor le fa grandi 1em). */
.elementor-button .elementor-button-icon svg { width: 16px; height: 16px; }

/* Pulsanti che si alzano. */
.bsp-bottone .elementor-button { transition: transform .15s var(--bsp-curva), box-shadow .15s var(--bsp-curva), background-color .15s; }
.bsp-bottone .elementor-button:hover { transform: translateY(-2px); box-shadow: var(--bsp-ombra-card-hover); }
.bsp-bottone-ombra .elementor-button { box-shadow: var(--bsp-ombra-card); }

/* Etichetta categoria sopra le foto delle news. */
.bsp-etichetta .jet-listing-dynamic-terms__link,
.bsp-etichetta .elementor-heading-title {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 10px;
	background: var(--e-global-color-primary);
	color: #fff !important;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .025em;
	text-transform: uppercase;
}
.bsp-etichetta .jet-listing-dynamic-terms__delimiter { display: none; }

/* Elementi decorativi (vele): non intercettano il mouse. */
.bsp-decoro { pointer-events: none; user-select: none; }

/* ------------------------------------------------------------------ Home -- */

/* Sfumatura verso il grigio in fondo all'hero (h-40 della grafica). */
.bsp-hero { background-image: linear-gradient(180deg, rgba(245, 248, 251, 0) calc(100% - 160px), var(--e-global-color-superficie) 100%); }
.bsp-blu { color: var(--e-global-color-primary); }
@media (min-width: 1024px) { .bsp-una-riga .elementor-heading-title { white-space: nowrap; } }
.bsp-sezione-vele, .bsp-footer { position: relative; }

/* --------------------------------------------------------- Ricerca home -- */
/* Modulo GET verso l'app (Daniele, 14/10): unico punto in HTML del sito,
   nessun plugin sa inviare un modulo a un sito esterno. Le schede sono due
   pulsanti radio: niente JavaScript, e si usano anche da tastiera. */

.bsp-ricerca { position: relative; }
.bsp-ricerca__radio { position: absolute; opacity: 0; pointer-events: none; }
.bsp-ricerca__schede {
	display: inline-flex;
	padding: 4px;
	border-radius: 16px;
	background: var(--e-global-color-superficie);
}
.bsp-ricerca__scheda {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	color: var(--e-global-color-grigio);
	cursor: pointer;
	transition: color .15s, background-color .15s;
}
.bsp-ricerca__scheda:hover { color: var(--e-global-color-primary); }
.bsp-ricerca__scheda svg { width: 16px; height: 16px; flex: none; }
#bsp-tipo-annunci:checked ~ .bsp-ricerca__schede [for="bsp-tipo-annunci"],
#bsp-tipo-corsi:checked ~ .bsp-ricerca__schede [for="bsp-tipo-corsi"] {
	background: var(--e-global-color-primary);
	color: #fff;
	box-shadow: var(--bsp-ombra-card);
}
#bsp-tipo-annunci:focus-visible ~ .bsp-ricerca__schede [for="bsp-tipo-annunci"],
#bsp-tipo-corsi:focus-visible ~ .bsp-ricerca__schede [for="bsp-tipo-corsi"] { outline: 2px solid var(--e-global-color-primary); outline-offset: 2px; }
#bsp-tipo-annunci:checked ~ .bsp-ricerca__form--corsi,
#bsp-tipo-corsi:checked ~ .bsp-ricerca__form--annunci { display: none; }

.bsp-ricerca__form {
	display: grid;
	gap: 12px;
	margin-top: 16px;
}
@media (min-width: 1024px) {
	.bsp-ricerca__form { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; }
}
.bsp-ricerca__campo {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 12px 14px;
	border: 1px solid var(--e-global-color-bordo);
	border-radius: 16px;
	background: #fff;
	color: var(--e-global-color-primary);
	cursor: text;
	transition: border-color .15s;
}
.bsp-ricerca__campo:focus-within { border-color: var(--e-global-color-primary); }
.bsp-ricerca__campo svg { width: 16px; height: 16px; flex: none; }
.bsp-ricerca .bsp-ricerca__campo input {
	flex: 1;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	outline: none;
	font-family: inherit;
	font-size: 14px;
	line-height: 20px;
	height: 20px;   /* campo da 46 px; su desktop la griglia lo porta a 48 come "Cerca" */
	color: var(--e-global-color-text);
}
.bsp-ricerca__campo input::placeholder { color: var(--e-global-color-grigio); opacity: 1; }
.bsp-ricerca__campo input::-webkit-search-cancel-button { display: none; }
.bsp-ricerca .bsp-ricerca__invio {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 14px 28px;
	border: 0;
	border-radius: 16px;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	cursor: pointer;
	transition: transform .15s var(--bsp-curva), box-shadow .15s var(--bsp-curva);
}
.bsp-ricerca .bsp-ricerca__invio:hover,
.bsp-ricerca .bsp-ricerca__invio:focus { background: var(--e-global-color-primary); color: #fff; transform: translateY(-2px); box-shadow: var(--bsp-ombra-card-hover); }
.bsp-ricerca .bsp-ricerca__invio svg { width: 16px; height: 16px; }
.bsp-sr {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
@media (max-width: 767px) {
	.bsp-ricerca__scheda { padding: 8px 12px; font-size: 12px; line-height: 16px; }
}

/* ------------------------------------------------------- Pagine interne -- */

/* Testo lungo (articoli, partner, pagine): misura e ritmo leggibili. */
.bsp-testo { font-size: 16px; line-height: 1.75; color: var(--e-global-color-grigio); }
.bsp-testo p { margin: 0 0 1.1em; }
.bsp-testo p:last-child { margin-bottom: 0; }
.bsp-testo h2, .bsp-testo h3 { color: var(--e-global-color-text); font-weight: 800; letter-spacing: -.01em; line-height: 1.3; margin: 1.6em 0 .6em; }
.bsp-testo h2 { font-size: 22px; }
.bsp-testo h3 { font-size: 18px; }
.bsp-testo a { color: var(--e-global-color-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.bsp-testo ul, .bsp-testo ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.bsp-testo li { margin-bottom: .4em; }
.bsp-testo img { border-radius: 12px; height: auto; }
.bsp-testo strong { color: var(--e-global-color-text); }
/* Grassetti negli elenchi e nei testi brevi delle card: scuri sul grigio, come nei paragrafi. */
.bsp-elenco strong,
.bsp-card .elementor-heading-title strong { color: var(--e-global-color-text); font-weight: 700; }

/* Alone luminoso nella fascia blu di testa delle pagine interne (Figma). */
.bsp-testata { position: relative; overflow: hidden; isolation: isolate; }
.bsp-testata::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: -120px;
	right: -80px;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(255, 255, 255, .14), rgba(255, 255, 255, 0));
	pointer-events: none;
}

/* Etichetta su fondo blu (dettaglio news). */
.bsp-etichetta-chiara .elementor-heading-title { background: rgba(255, 255, 255, .16); }

/* Dettaglio news: foto in apertura. */
.bsp-foto-articolo img { display: block; width: 100%; max-height: 480px; object-fit: cover; border-radius: 12px; }

/* Dettaglio partner: logo. */
.bsp-logo-dettaglio img { display: block; width: auto; max-width: min(100%, 320px); max-height: 120px; object-fit: contain; }

/* Righe contatto del partner (campi JetEngine): icona in riquadro, etichetta sopra il valore. */
.bsp-contatto .jet-listing-dynamic-field__inline-wrap { display: flex; align-items: flex-start; gap: 12px; }
.bsp-contatto .jet-listing-dynamic-field__icon {
	display: flex; align-items: center; justify-content: center; flex: none;
	width: 36px; height: 36px; margin: 0 !important; border-radius: 10px;
	background: var(--e-global-color-azzurro);
}
.bsp-contatto .jet-listing-dynamic-field__icon svg { width: 16px; height: 16px; }
.bsp-contatto .jet-listing-dynamic-field__content { min-width: 0; overflow-wrap: anywhere; }
.bsp-contatto__etichetta { display: block; margin-bottom: 2px; font-size: 12px; font-weight: 500; line-height: 1.33; color: var(--e-global-color-grigio); }
.bsp-contatto__valore a { color: var(--e-global-color-primary); }

/* Link social e sito del partner: pillole con bordo. */
.bsp-social-partner .jet-listing-dynamic-link__link {
	display: inline-flex; align-items: center;
	padding: 8px 12px; border: 1px solid var(--e-global-color-bordo); border-radius: 12px;
	background: #fff; transition: border-color .15s, background-color .15s;
}
.bsp-social-partner .jet-listing-dynamic-link__link:hover { border-color: var(--e-global-color-primary); background: var(--e-global-color-azzurro); }
.bsp-social-partner svg { width: 16px; height: 16px; }
.bsp-social-partner .jet-listing-dynamic-link__link { gap: 6px; }
.bsp-fonte .jet-listing-dynamic-link__link { gap: 6px; }

/* Link "Torna a…" nelle testate. */
.bsp-indietro a { display: inline-flex; align-items: center; gap: 6px; }

/* Elenco documenti: pulsanti di scaricamento affiancati. */
.bsp-scarica .elementor-button { gap: 8px; }

/* Pulsante play: cerchio blu pieno (quello di Elementor e' bianco
   semitrasparente e sparisce sulle miniature chiare). */
.bsp-video .elementor-custom-embed-play {
	display: flex; align-items: center; justify-content: center;
	width: 72px; height: 72px; border-radius: 50%;
	background: var(--e-global-color-primary);
	box-shadow: var(--bsp-ombra-card-hover);
	transition: transform .2s var(--bsp-curva);
}
.bsp-video .elementor-custom-embed-play svg,
.bsp-video .elementor-custom-embed-play i { width: 28px; height: 28px; font-size: 28px; margin-left: 4px; fill: #fff; color: #fff; opacity: 1; filter: none; }
.bsp-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play { transform: translate(-50%, -50%) scale(1.08); }

/* Video incorporati: angoli come le card. */
.bsp-video .elementor-wrapper,
.bsp-video .elementor-custom-embed-image-overlay { border-radius: 12px; overflow: hidden; }

/* Listing JetEngine: le card riempiono l'altezza della riga. */
.bsp-griglia .jet-listing-grid__item > .elementor,
.bsp-griglia .jet-listing-grid__item > div > .elementor { height: 100%; }
.bsp-griglia .jet-listing-grid__item .e-con.bsp-card { height: 100%; }

/* Fascia loghi dei partner: tutti con lo stesso ingombro visivo. */
.bsp-loghi .jet-listing-grid__items { align-items: center; }
.bsp-logo-partner img {
	width: auto !important;
	max-width: 100% !important;
	max-height: 90px;
	object-fit: contain;
	transition: transform .2s var(--bsp-curva);
}
.bsp-logo-partner a:hover img { transform: scale(1.04); }
@media (max-width: 1023px) { .bsp-logo-partner img { max-height: 90px; } }
@media (max-width: 767px) { .bsp-logo-partner img { max-height: 64px; } }

/* Modulo contatti (JetFormBuilder) nello stile del sito. */
.bsp-modulo .jet-form-builder__label-text { font-size: 13px; font-weight: 700; color: var(--e-global-color-text); }
.bsp-modulo input[type="text"], .bsp-modulo input[type="email"], .bsp-modulo textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--e-global-color-bordo);
	border-radius: 16px;
	background: #fff;
	font-family: inherit;
	font-size: 14px;
	color: var(--e-global-color-text);
	transition: border-color .15s;
}
.bsp-modulo input:focus, .bsp-modulo textarea:focus { border-color: var(--e-global-color-primary); outline: none; }
.bsp-modulo .jet-form-builder__action-button {
	padding: 14px 28px;
	border: 0;
	border-radius: 16px;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	transition: transform .15s var(--bsp-curva), box-shadow .15s var(--bsp-curva);
}
.bsp-modulo .jet-form-builder__action-button:hover { transform: translateY(-2px); box-shadow: var(--bsp-ombra-card-hover); }
.bsp-modulo .jet-form-builder-row { margin-bottom: 16px; }
.bsp-modulo .checkradio-wrap label, .bsp-modulo .jet-form-builder__field-label { font-size: 13px; color: var(--e-global-color-grigio); }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 300 900;
	font-display: auto;
	src: url('https://bestreampower-sito.digiside.it/wp-content/uploads/2026/10/montserrat-300-900-latin.woff2') format('woff2');
}
@font-face {
	font-family: 'Montserrat';
	font-style: italic;
	font-weight: 400;
	font-display: auto;
	src: url('https://bestreampower-sito.digiside.it/wp-content/uploads/2026/10/montserrat-400-italic-latin.woff2') format('woff2');
}
/* End Custom Fonts CSS */