/*
 * Istituti Atlante - ritocchi grafici (tema child)
 * Solo CSS: non cambia contenuti né pagine Elementor. Per tornare indietro basta svuotare questo file.
 * I selettori partono da #header / body per vincere sul CSS aggiuntivo del Customizer.
 */

:root {
	--atl-blu: #0b3a6e;
	--atl-blu-scuro: #082b5c;
	--atl-azzurro: #447991;
	--atl-oro: #e8b52f;
	--atl-testo: #2b3440;
	--atl-raggio: 12px;
	--atl-ombra: 0 6px 24px rgba(8, 43, 92, .08);
}

/* ==========================================================================
   1. HEADER DESKTOP - menu su due righe ordinate (voci sopra, pulsanti sotto)
   ========================================================================== */
@media (min-width: 992px) {
	#header .header_main_menu_wrapper .header-menu {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-end;
		column-gap: 18px;
		row-gap: 10px;
		width: auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/* il ::before del clearfix sarebbe un elemento flex vuoto che si prende uno spazio in più */
	#header .header_main_menu_wrapper .header-menu::before {
		display: none !important;
	}

	/* a capo forzato tra voci di testo e pulsanti */
	#header .header_main_menu_wrapper .header-menu::after {
		content: "";
		flex-basis: 100%;
		height: 0;
		order: 1;
		display: block !important;
	}

	#header .header_main_menu_wrapper .header-menu > li {
		float: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	#header .header_main_menu_wrapper .header-menu > li > a {
		padding: 6px 0;
		transition: color .2s ease, opacity .2s ease;
	}

	/* i 5 pulsanti colorati: stessa misura, tutti sulla seconda riga */
	#header .header_main_menu_wrapper .header-menu > li.menu-item-12601,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-12710,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-green,
	#header .header_main_menu_wrapper .header-menu > li.euwb-open-guest-modal,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-13003 {
		order: 2;
		display: flex !important;
		width: auto !important;
		flex-basis: auto !important;
		margin: 0 0 0 -10px !important; /* column-gap 18 - 10 = 8px tra i pulsanti */
	}
	#header .header_main_menu_wrapper .header-menu > li.menu-item-12601 {
		margin-left: 0 !important;
	}
	/* "Servizi" è tra le ultime voci: il sottomenu si apre verso sinistra, altrimenti esce dallo schermo */
	#header .header_main_menu_wrapper .header-menu > li.menu-item-5698 > .sub-menu {
		left: auto !important;
		right: 0 !important;
	}

	/* schermi piccoli: voci più vicine, così stanno tutte sulla prima riga */
	@media (max-width: 1279px) {
		#header .header_main_menu_wrapper .header-menu {
			column-gap: 15px;
		}
		#header .header_main_menu_wrapper .header-menu > li.menu-item-12710,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-green,
		#header .header_main_menu_wrapper .header-menu > li.euwb-open-guest-modal,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-13003 {
			margin-left: -7px !important;
		}
		#header .header_main_menu_wrapper .header-menu > li:not(.menu-item-12601):not(.menu-item-12710):not(.menu-item-green):not(.euwb-open-guest-modal):not(.menu-item-13003) > a {
			font-size: 14px !important;
		}
	}

	#header .header_main_menu_wrapper .header-menu > li.menu-item-12601 > a,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-12710 > a,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-green > a,
	#header .header_main_menu_wrapper .header-menu > li.euwb-open-guest-modal > a,
	#header .header_main_menu_wrapper .header-menu > li.menu-item-13003 > a {
		padding: 9px 15px !important;
		font-size: 14px !important;
		font-weight: 600 !important;
		line-height: 1.15 !important;
		border-radius: 8px !important;
		box-shadow: 0 2px 6px rgba(0, 0, 0, .12) !important;
		text-shadow: none !important;
	}

	/* 992-1199 (tablet orizzontale, portatili piccoli): la colonna del logo è larga 1/4 ma il logo
	   è 150px; la stringo e do lo spazio al menu, voci e pulsanti un po' più compatti */
	@media (max-width: 1199px) {
		#header .header_default > .container > .row > .col-md-3 {
			width: 180px;
		}
		#header .header_default > .container > .row > .col-md-9 {
			width: calc(100% - 180px);
		}
		#header .header_main_menu_wrapper .header-menu {
			column-gap: 12px;
		}
		#header .header_main_menu_wrapper .header-menu > li.menu-item-12710,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-green,
		#header .header_main_menu_wrapper .header-menu > li.euwb-open-guest-modal,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-13003 {
			margin-left: -6px !important;
		}
		#header .header_main_menu_wrapper .header-menu > li.menu-item-12601 > a,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-12710 > a,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-green > a,
		#header .header_main_menu_wrapper .header-menu > li.euwb-open-guest-modal > a,
		#header .header_main_menu_wrapper .header-menu > li.menu-item-13003 > a {
			padding: 8px 11px !important;
			font-size: 13px !important;
		}
	}
}

/* Home: voci bianche sopra la foto, più leggibili */
body.home #header .header-menu > li:not([class*="menu-item-12"]):not(.menu-item-green):not(.euwb-open-guest-modal):not(.menu-item-13003) > a {
	text-shadow: 0 1px 4px rgba(0, 0, 0, .55);
}

/* ==========================================================================
   2. BANNER TITOLO DELLE PAGINE INTERNE + BRICIOLE DI PANE
   ========================================================================== */
body:not(.home) .entry-header {
	padding-top: 46px !important;
	padding-bottom: 46px !important;
	background-image: linear-gradient(135deg, rgba(255, 255, 255, .06), rgba(0, 0, 0, .18));
}

body:not(.home) .entry-header .entry-title h1,
body:not(.home) .entry-header .entry-title .h1 {
	color: #fff !important;
	font-size: clamp(24px, 2.6vw, 36px) !important;
	line-height: 1.25 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	max-width: 960px;
	margin: 0 auto !important;
}

.stm_breadcrumbs_unit .navxtBreads {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-transform: none;
	font-size: 13px;
}

/* ==========================================================================
   3. TESTI DELLE PAGINE VECCHIE (indirizzi di studio, licei...)
   Il testo arriva dal vecchio sito con Verdana 14pt scritto "a mano": lo uniformiamo.
   ========================================================================== */
.dmNewParagraph span[style*="Verdana"],
.dmNewParagraph span[style*="font-size"] {
	font-family: inherit !important;
	font-size: 17px !important;
}

div.dmNewParagraph {
	line-height: 1.75;
	color: var(--atl-testo);
}

h2.dmNewParagraph,
h3.dmNewParagraph {
	font-size: clamp(22px, 2.4vw, 32px) !important;
	line-height: 1.3 !important;
}
h2.dmNewParagraph span,
h3.dmNewParagraph span {
	font-size: inherit !important;
}

.dmNewParagraph > div:empty {
	height: .55em;
}

/* le righe tutte in grassetto sono di fatto dei sottotitoli */
.dmNewParagraph > div:has(> span > strong:only-child) {
	margin-top: 1.1em;
	color: var(--atl-blu);
}
.dmNewParagraph > div:has(> span > strong:only-child) span {
	font-size: 19px !important;
}

/* Pagine scritte con l'editor classico (es. Chi siamo): stesso trattamento del Verdana "a mano" */
body.page .post_type_exist > p span[style*="Verdana"],
body.page .post_type_exist > h3 span[style*="Verdana"],
body.page .post_type_exist > ul span[style*="Verdana"] {
	font-family: inherit !important;
	font-size: 17px !important;
}
body.page .post_type_exist > p {
	line-height: 1.75;
	color: var(--atl-testo);
}
body.page .post_type_exist > h3 {
	font-size: 19px !important;
	line-height: 1.5 !important;
	color: var(--atl-blu) !important;
}
body.page .post_type_exist > h3 span[style*="Verdana"] {
	font-size: inherit !important;
	font-weight: 600;
}

/* ==========================================================================
   4. HOME - card dei corsi in evidenza e articoli recenti
   ========================================================================== */
/* nascondo i contatori "0 commenti / 0 iscritti" che non dicono nulla */
.stm_featured_product_footer {
	display: none !important;
}

.stm_featured_product_single_unit {
	border-radius: var(--atl-raggio);
	overflow: hidden;
	box-shadow: var(--atl-ombra);
	transition: transform .2s ease, box-shadow .2s ease;
}
.stm_featured_product_single_unit:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 30px rgba(8, 43, 92, .14);
}
.stm_featured_product_single_unit .stm_featured_product_body {
	border: 0 !important;
}

/* prezzo sotto l'immagine invece che sopra (copriva le locandine) */
.stm_featured_product_single_unit .stm_featured_product_image {
	display: flex;
	flex-direction: column;
}
.stm_featured_product_single_unit .stm_featured_product_price {
	position: static !important;
	order: 2;
	margin: 12px 14px 0;
	top: auto !important;
	left: auto !important;
}
.stm_featured_product_single_unit .stm_featured_product_price .price {
	display: inline-block;
	position: static !important;
	padding: 5px 12px !important;
	border-radius: 999px;
}
.stm_featured_product_single_unit .stm_featured_product_price .price::after,
.stm_featured_product_single_unit .stm_featured_product_price .price::before {
	display: none !important;
}
.stm_featured_product_single_unit .stm_featured_product_price h5 {
	margin: 0 !important;
	font-size: 15px !important;
	line-height: 1.2 !important;
	color: #fff !important;
}
.stm_featured_product_single_unit .stm_featured_product_body {
	padding-top: 8px !important;
}

.post_list_featured_image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--atl-raggio);
}

.post_list_content_unit .post_list_item_title {
	font-weight: 600;
	line-height: 1.3;
	color: var(--atl-blu);
}

/* estratti: massimo 4 righe, così le card restano allineate */
.post_list_content_unit .post_list_item_excerpt p {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Titoli di sezione della home (widget "custom heading" del tema): stesso stile di
   "Indirizzi di Studio", e niente maiuscolo (il testo è scritto in maiuscolo nel widget) */
body.home .masterstudy-custom-title {
	font-size: 26px !important;
	line-height: 1.25 !important;
	font-weight: 800 !important;
	color: #003057 !important;
	margin: 0 0 4px !important;
}
body.home .elementor-element-c1c86d6 .masterstudy-custom-title {
	text-transform: lowercase;
}
body.home .elementor-element-c1c86d6 .masterstudy-custom-title::first-letter {
	text-transform: uppercase;
}

/* Griglia certificazioni in home (shortcode [atlante_certificazioni], inc/certificazioni.php) */
.atl-certs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	margin: 0 auto;
	max-width: 1170px;
}

.atl-cert {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(8, 43, 92, .08);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: var(--atl-ombra);
	transition: transform .2s ease, box-shadow .2s ease;
}
.atl-cert:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 32px rgba(8, 43, 92, .14);
}
.atl-cert--evidenza {
	border: 2px solid var(--atl-oro);
}

.atl-cert__img {
	position: relative;
	display: block;
	background: #f4f7fb;
}
.atl-cert__img img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0 !important;
}
.atl-cert__badge {
	align-self: flex-start;
	margin-bottom: 10px;
	background: var(--atl-oro);
	color: var(--atl-blu-scuro);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .02em;
	padding: 5px 10px;
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

.atl-cert__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 18px 18px 20px;
}
.atl-cert__title {
	margin: 0 0 8px !important;
	font-size: 18px !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	text-transform: none !important;
}
.atl-cert__title a {
	color: var(--atl-blu) !important;
	text-decoration: none !important;
}
.atl-cert__text {
	margin: 0 0 16px !important;
	font-size: 14.5px;
	line-height: 1.55;
	color: #55606e;
	flex: 1;
}

.atl-cert__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}
.atl-cert__price {
	font-size: 18px;
	font-weight: 700;
	color: var(--atl-blu-scuro);
	line-height: 1.2;
}
.atl-cert__price del {
	font-size: 13px;
	font-weight: 400;
	opacity: .6;
}
.atl-cert__price ins {
	text-decoration: none;
}
.atl-cert__price .woocommerce-price-suffix,
.atl-cert__da {
	font-size: 12px;
	font-weight: 400;
	color: #6b7684;
	text-transform: none;
}
.atl-cert__price .woocommerce-price-suffix {
	display: block;
}
.atl-cert__btn {
	display: inline-block;
	background: var(--atl-blu);
	color: #fff !important;
	font-size: 14px;
	font-weight: 600;
	padding: 9px 18px;
	border-radius: 8px;
	text-decoration: none !important;
	transition: background-color .2s ease;
}
.atl-cert__btn:hover {
	background: var(--atl-blu-scuro);
}

.atl-certs__more {
	text-align: center;
	margin: 28px 0 0 !important;
}
.atl-certs__more a {
	font-weight: 600;
	color: var(--atl-blu) !important;
	text-decoration: none !important;
	border-bottom: 2px solid var(--atl-oro);
	padding-bottom: 2px;
}

@media (max-width: 991px) {
	.atl-certs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}
}
@media (max-width: 480px) {
	.atl-certs {
		gap: 12px;
	}
	.atl-cert__body {
		padding: 12px 12px 14px;
	}
	.atl-cert__title {
		font-size: 15.5px !important;
	}
	.atl-cert__text {
		font-size: 13px;
		margin-bottom: 12px !important;
	}
	.atl-cert__foot {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.atl-cert__btn {
		text-align: center;
	}
	.atl-cert__badge {
		font-size: 10.5px;
		padding: 4px 8px;
	}
}

/* Sezione gialla "Iscrizioni aperte" + modulo "Non puoi chiamarci adesso?" */
body.home .elementor-element.elementor-element-c1cfcd4 {
	border-radius: 20px !important;
	overflow: hidden;
	padding: 44px 28px !important;
	box-shadow: var(--atl-ombra);
}
body.home .elementor-element-c1d0185 > .elementor-widget-wrap {
	align-content: center !important;
	align-items: center;
}
body.home .elementor-element-c1d05e0 p {
	margin: 0 0 10px !important;
	line-height: 1.5 !important;
}
body.home .elementor-element-c1d05e0 span[style*="Verdana"] {
	font-family: inherit !important;
	font-size: 17px !important;
}
body.home .elementor-element-c1d05e0 strong {
	font-weight: 600;
}
/* primo paragrafo = titolo della sezione */
body.home .elementor-element-c1d05e0 p:first-child {
	margin-bottom: 18px !important;
}
body.home .elementor-element-c1d05e0 p:first-child span[style*="Verdana"] {
	font-family: "Montserrat", sans-serif !important;
	font-size: 24px !important;
	font-weight: 800;
	line-height: 1.25;
}
body.home .elementor-element-c1d05e0 p:first-child em span,
body.home .elementor-element-c1d05e0 p:first-child em {
	font-size: 18px !important;
	font-weight: 600;
}
/* l'ultimo paragrafo (CHIAMA ORA) diventa un pulsante */
body.home .elementor-element-c1d05e0 p:last-child {
	display: inline-block;
	margin-top: 12px !important;
	background: var(--atl-blu-scuro);
	border-radius: 10px;
	padding: 12px 20px;
}
body.home .elementor-element-c1d05e0 p:last-child,
body.home .elementor-element-c1d05e0 p:last-child * {
	color: #fff !important;
}

.stm_sign_up_now_inner {
	border-radius: 16px !important;
	box-shadow: 0 12px 34px rgba(8, 43, 92, .14);
	padding: 36px 34px 18px !important;
}
body .stm_sign_up_now .stm_sign_up_now_inner h2 {
	font-family: "Montserrat", sans-serif !important;
	font-size: 19px !important;
	line-height: 1.4 !important;
	color: var(--atl-blu-scuro) !important;
	margin-bottom: 22px !important;
}
.stm_sign_up_now_inner .form-control {
	border: 1px solid #d5dbe3 !important;
	background: #f7f9fc !important;
	border-radius: 10px !important;
	text-align: left !important;
	padding-left: 14px !important;
}
.stm_sign_up_now_inner .form-control:focus {
	border-color: var(--atl-blu) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(11, 58, 110, .12) !important;
}
.stm_sign_up_now_inner button[type="submit"] {
	background: var(--atl-blu) !important;
	border: 0 !important;
	border-radius: 10px !important;
	padding: 13px 34px !important;
	font-size: 15px !important;
	letter-spacing: .03em;
	transition: background-color .2s ease;
}
.stm_sign_up_now_inner button[type="submit"]:hover {
	background: var(--atl-blu-scuro) !important;
}

/* Video "La nostra scuola" (inc/video.php) */
.atl-video {
	max-width: 400px;
	margin: 0 auto;
}
.atl-video video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	border-radius: 18px;
	box-shadow: 0 14px 36px rgba(8, 43, 92, .18);
	background: #000;
}

/* ==========================================================================
   MODULI (Contact Form 7) - classe "atl-form" aggiunta da inc/moduli.php
   ========================================================================== */
/* Contact Form 7 mette un <br> dopo ogni etichetta/icona e paragrafi con margini: da qui i vuoti */
body .atl-form label + br,
body .atl-form i + br,
body .atl-form .form-group > p:empty {
	display: none !important;
}
body .atl-form .form-group p,
body .atl-form .cf7-col p,
body .atl-form .input-icon-wrap p {
	margin: 0 !important;
}

body .atl-form .form-group,
body .atl-form .cf7-col,
body .atl-form .cf7-row {
	margin-bottom: 16px !important;
}
body .atl-form .cf7-row .cf7-col {
	margin-bottom: 0 !important;
}
@media (max-width: 768px) {
	/* su telefono le colonne si impilano: serve lo stesso spazio che c'è tra le righe */
	body .atl-form .cf7-row {
		gap: 16px !important;
	}
	/* il fumetto del chatbot copriva i campi: resta solo il pulsante */
	#atlante-chat-teaser {
		display: none !important;
	}
	/* chatbot in basso a destra (era alzato per il badge reCAPTCHA, ora nascosto) */
	body #atlante-chat-widget {
		bottom: 20px !important;
		right: 16px !important;
	}
}

body .atl-form label {
	display: block;
	margin: 0 0 6px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2d3d !important;
	text-align: left !important;
	line-height: 1.4 !important;
}
body .atl-form label i {
	color: var(--atl-blu) !important;
	margin-right: 6px;
}

body .atl-form input[type="text"],
body .atl-form input[type="email"],
body .atl-form input[type="tel"],
body .atl-form input[type="number"],
body .atl-form input[type="date"],
body .atl-form input[type="url"],
body .atl-form select,
body .atl-form textarea {
	width: 100% !important;
	min-height: 48px;
	padding: 12px 14px !important;
	border: 1px solid #d5dbe3 !important;
	border-radius: 10px !important;
	background: #f7f9fc !important;
	color: var(--atl-testo) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
body .atl-form textarea {
	min-height: 130px;
	resize: vertical;
}
body .atl-form input::placeholder,
body .atl-form textarea::placeholder {
	color: #9aa5b1 !important;
	opacity: 1;
}
body .atl-form input:focus,
body .atl-form select:focus,
body .atl-form textarea:focus {
	outline: none !important;
	border-color: var(--atl-blu) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(11, 58, 110, .12) !important;
}

/* campi con l'icona dentro (modulo Contatti) */
body .atl-form .input-icon-wrap {
	position: relative;
}
body .atl-form .input-icon-wrap .input-icon {
	position: absolute;
	left: 14px;
	top: 24px;
	transform: translateY(-50%);
	z-index: 1;
	color: #9aa5b1;
	pointer-events: none;
}
body .atl-form .input-icon-wrap-textarea .input-icon {
	top: 22px;
}
body .atl-form .input-icon-wrap input,
body .atl-form .input-icon-wrap textarea {
	padding-left: 42px !important;
}

/* menu a tendina: il tema li sostituisce con Select2 */
body .atl-form .select2-container .select2-selection--single {
	height: 48px !important;
	border: 1px solid #d5dbe3 !important;
	border-radius: 10px !important;
	background: #f7f9fc !important;
	box-shadow: none !important;
}
body .atl-form .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 46px !important;
	padding-left: 14px !important;
	padding-right: 36px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	color: var(--atl-testo) !important;
	text-transform: none !important;
}
body .atl-form .select2-container .select2-selection--single .select2-selection__arrow {
	height: 46px !important;
	right: 8px !important;
}
body .atl-form .select2-container--open .select2-selection--single,
body .atl-form .select2-container--focus .select2-selection--single {
	border-color: var(--atl-blu) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(11, 58, 110, .12) !important;
}

/* caricamento file */
body .atl-form input[type="file"] {
	display: block;
	width: 100%;
	padding: 10px !important;
	border: 1px dashed #b9c3cf !important;
	border-radius: 10px !important;
	background: #fbfcfe !important;
	font-size: 14px !important;
	color: #55606e;
	cursor: pointer;
}
body .atl-form input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 8px 14px;
	border: 0;
	border-radius: 8px;
	background: var(--atl-blu);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

/* privacy */
body .atl-form .wpcf7-acceptance .wpcf7-list-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 4px 0 0 !important;
	text-align: left;
}
body .atl-form .privacy-check,
body .atl-form .privacy-check label {
	justify-content: flex-start !important;
	text-align: left !important;
}
body .atl-form input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	margin: 2px 0 0 !important;
	flex: 0 0 auto;
	accent-color: var(--atl-blu);
	cursor: pointer;
}
body .atl-form .wpcf7-list-item-label,
body .atl-form .privacy-simple {
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: #3b4653 !important;
}

/* pulsante di invio */
body .atl-form input[type="submit"],
body .atl-form button[type="submit"] {
	display: inline-block;
	width: auto !important;
	min-width: 200px;
	margin-top: 6px;
	padding: 14px 30px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--atl-blu) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: .02em;
	text-transform: none !important;
	box-shadow: 0 6px 16px rgba(11, 58, 110, .2) !important;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease;
}
body .atl-form input[type="submit"]:hover,
body .atl-form button[type="submit"]:hover {
	background: var(--atl-blu-scuro) !important;
	transform: translateY(-1px);
}
body .atl-form .wpcf7-spinner {
	vertical-align: middle;
}

/* messaggi di errore e di conferma */
body .atl-form input.wpcf7-not-valid,
body .atl-form select.wpcf7-not-valid,
body .atl-form textarea.wpcf7-not-valid {
	border-color: #d64545 !important;
	background: #fff7f7 !important;
}
body .atl-form .wpcf7-not-valid-tip {
	margin-top: 5px;
	font-size: 13px;
	color: #c0392b;
}
.wpcf7 form .wpcf7-response-output {
	margin: 16px 0 0 !important;
	padding: 12px 16px !important;
	border-radius: 10px;
	font-size: 14px;
}

/* carrello flottante: un po' più su della pila di Chaty (WhatsApp, email, chiudi), che toccava */
@media (min-width: 768px) {
	body .xoo-wsc-basket {
		bottom: 216px !important;
	}
}

/* nota reCAPTCHA (sostituisce il badge flottante) */
.atl-recaptcha-note {
	margin: 14px 0 0 !important;
	font-size: 12px !important;
	line-height: 1.5 !important;
	color: #7b8794 !important;
	text-align: left;
}
.atl-recaptcha-note a {
	color: inherit !important;
	text-decoration: underline !important;
}
.stm_sign_up_form .atl-recaptcha-note {
	text-align: center;
}

/* modulo Consulenza (design proprio): l'icona copriva il testo del menu a tendina */
.field-input select.wpcf7-select,
.field-input .select2-container .select2-selection__rendered {
	padding-left: 42px !important;
}
.field-input .select2-container .select2-selection__rendered {
	font-weight: 400 !important;
	text-transform: none !important;
}
.field-input textarea {
	min-height: 120px !important;
}

/* ==========================================================================
   5. FOOTER
   ========================================================================== */
/* in home l'ultima sezione è già scura: niente fascia bianca prima del footer */
body.home #main {
	padding-bottom: 0 !important;
}

/* fascia "Registro elettronico" (home) */
body.home .elementor-element-124d3aeb {
	padding: 34px 0 !important;
}
body.home .elementor-element-7b533c03 p {
	margin: 0 0 12px !important;
}
body.home .elementor-element-7b533c03 p:first-child span {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .8;
}
body.home .elementor-element-7b533c03 a {
	display: inline-block;
	min-width: 220px;
	padding: 11px 18px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 10px;
	color: #fff !important;
	text-decoration: none !important;
	transition: background-color .2s ease, border-color .2s ease;
}
body.home .elementor-element-7b533c03 a::after {
	content: " →";
}
body.home .elementor-element-7b533c03 a:hover {
	background: rgba(255, 255, 255, .1);
	border-color: rgba(255, 255, 255, .7);
}

#footer_copyright .copyright_text {
	line-height: 1.75;
}
@media (min-width: 992px) {
	#footer_copyright .row > .col-md-6:first-child {
		width: 80%;
	}
	#footer_copyright .row > .col-md-6:last-child {
		width: 20%;
	}
}
#footer_copyright .footer_logo {
	margin-right: 16px;
}
#footer_copyright .copyright_text a {
	opacity: .9;
}
#footer_copyright .copyright_text a:hover {
	opacity: 1;
}

/* ==========================================================================
   6. TELEFONO E TABLET
   ========================================================================== */
@media (max-width: 991px) {
	/* barra in alto: niente slogan e indirizzo; telefono e social sulla prima riga, orari sotto */
	.header_top_bar .top_bar_info li.hidden-info,
	.header_top_bar .pull-left:has(li.hidden-info),
	.header_top_bar .top_bar_info li:has(.fa-map-marker-alt),
	.header_top_bar .top_bar_info li:has(.fa-map-marker) {
		display: none !important;
	}
	.header_top_bar .container > .clearfix {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 2px 12px;
		padding: 7px 0;
	}
	.header_top_bar .container > .clearfix::before,
	.header_top_bar .container > .clearfix::after {
		display: none;
	}
	.header_top_bar .xs-pull-left,
	.header_top_bar .xs-pull-left > .top_bar_info {
		display: contents;
	}
	.header_top_bar .pull-right {
		float: none !important;
		order: 2;
	}
	.header_top_bar .top_bar_info li {
		font-size: 12.5px !important;
		line-height: 1.6 !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	.header_top_bar .top_bar_info li:has(.fa-phone) {
		order: 1;
		margin-right: auto !important;
		font-weight: 600;
	}
	.header_top_bar .top_bar_info li:has(.fa-clock) {
		order: 3;
		flex-basis: 100%;
		opacity: .85;
	}
	.header_top_bar .header_top_bar_socs {
		margin: 0 !important;
		padding: 0 !important;
	}

	/* logo: l'immagine è un quadrato con molto spazio vuoto sopra e sotto */
	.header_5 .logo-unit img {
		width: 150px !important;
		height: 72px !important;
		object-fit: cover;
		object-position: center 50%;
	}
	.header_default.header_5 {
		padding-top: 10px !important;
		padding-bottom: 10px !important;
	}
	.header_5 .navbar-toggle {
		margin-top: 10px !important;
	}

	/* menu mobile aperto: voci un po' più compatte, pulsanti colorati larghi e distanziati */
	.header-menu-mobile .header-menu > li > a {
		padding-top: 15px !important;
		padding-bottom: 15px !important;
	}
	.header-menu-mobile .header-menu > li.menu-item-12601,
	.header-menu-mobile .header-menu > li.menu-item-12710,
	.header-menu-mobile .header-menu > li.menu-item-green,
	.header-menu-mobile .header-menu > li.euwb-open-guest-modal,
	.header-menu-mobile .header-menu > li.menu-item-13003 {
		border: 0 !important;
		padding: 0 16px !important;
		margin: 8px 0 0 !important;
		background: transparent !important;
	}
	.header-menu-mobile .header-menu > li.menu-item-13003 {
		margin-bottom: 12px !important;
	}
	.header-menu-mobile .header-menu > li.menu-item-12601 > a,
	.header-menu-mobile .header-menu > li.menu-item-12710 > a,
	.header-menu-mobile .header-menu > li.menu-item-green > a,
	.header-menu-mobile .header-menu > li.euwb-open-guest-modal > a,
	.header-menu-mobile .header-menu > li.menu-item-13003 > a {
		display: block !important;
		width: 100% !important;
		text-align: center !important;
		text-transform: none !important;
		padding: 13px 16px !important;
		font-size: 15px !important;
		line-height: 1.2 !important;
		border-radius: 10px !important;
		color: #fff !important;
	}
}

@media (max-width: 767px) {
	/* banner titolo più basso */
	body:not(.home) .entry-header {
		padding-top: 28px !important;
		padding-bottom: 28px !important;
	}
	body:not(.home) .entry-header .entry-title h1,
	body:not(.home) .entry-header .entry-title .h1 {
		font-size: 22px !important;
	}

	/* card "Diventa Point": niente spazio vuoto prima del pulsante */
	/* (in colonna il flex-basis di 300px diventava altezza) */
	.atl-point-text {
		flex: 0 0 auto !important;
	}

	/* pulsanti flottanti più piccoli, coprono meno la pagina */
	.chaty-widget,
	.xoo-wsc-basket {
		zoom: .8;
	}
	/* il pulsante del chatbot si rimpicciolisce da solo (mu-plugins/atlante-chatbot.php) */

	/* sezione gialla, modulo e video */
	body.home .elementor-element.elementor-element-c1cfcd4 {
		padding: 28px 6px !important;
		border-radius: 16px !important;
	}
	body.home .elementor-element-c1d05e0 p:first-child span[style*="Verdana"] {
		font-size: 21px !important;
	}
	.stm_sign_up_now_inner {
		padding: 26px 18px 12px !important;
		width: auto !important;
		max-width: none !important;
	}
	body .stm_sign_up_now .stm_sign_up_now_inner h2 {
		font-size: 17px !important;
	}
	.atl-video {
		margin: 0 16px;
	}
	body.home .elementor-element-7b533c03 {
		padding: 0 6px;
	}

	/* testi vecchie pagine un filo più piccoli */
	.dmNewParagraph span[style*="Verdana"],
	.dmNewParagraph span[style*="font-size"] {
		font-size: 16px !important;
	}
}

/* ==========================================================================
   7. VARIE
   ========================================================================== */
/* da loggati: il tema mette la barra di amministrazione "in linea" (position: relative)
   ma WordPress lascia il margine per la barra fissa, da qui la striscia bianca sopra */
html:not(.stm-lms-lesson-opened):has(> body.admin-bar) {
	margin-top: 0 !important;
}

/* movimento ridotto per chi lo ha impostato sul dispositivo */
@media (prefers-reduced-motion: reduce) {
	.stm_featured_product_single_unit,
	.stm_featured_product_single_unit:hover {
		transition: none;
		transform: none;
	}
}
