@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap");

:root {
	--body: #fff;
	--black: #000;
	--white: #fff;
	--theme: rgb(4, 79, 139);
	--theme-rgb: 4, 79, 139;
	--theme2: #fff;
	--header: #121315;
	--text: #666666;
	--border: #D4DCED;
	--border-2: #D4DCED;
	--bg: rgb(157, 203, 255);
	--box-shadow: 0px 1px 14px 0pxrgb(157, 203, 255, 0.13);
}

/*______________________________Button_______________________________ */
.theme-btn {
	background-color: var(--theme);
	color: var(--white);
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	border-radius: 0;
	text-transform: uppercase;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	position: relative;
	z-index: 1;
	line-height: 1;
}

.white-btn {
	background-color: var(--white) !important;
	color: var(--theme) !important;
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	border-radius: 0;
	text-transform: uppercase;
	-webkit-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	position: relative;
	z-index: 1;
	line-height: 1;
}

.theme-btn::before,
.white-btn::before {
	content: "";
	background-color: var(--header);
	width: 0;
	height: 50%;
	position: absolute;
	top: 0;
	left: 0;
	-webkit-transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
	transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
	z-index: -1;

}

.theme-btn::after,
.white-btn::after {
	content: "";
	background-color: var(--header);
	height: 50%;
	position: absolute;
	bottom: 0;
	right: 0;
	-webkit-transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
	transition: all 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
	z-index: -1;
}


.theme-btn,
.bordered-btn {
	border: none !important;
}

.white-btn:hover {
	background: #0A0A0A !important;
	border-color: #0A0A0A !important;
	color: #fff !important;
}

.btn-white {
	background-color: #fff;
	color: var(--theme);
}

.btn-white:hover,
.btn-white:focus {
	background-color: #fff;
	color: var(--theme) !important;
}

/* _______________________________Navbar______________________________ */
.navigation .container-fluid {
	padding: 0 50px !important;
}

.img-large {
	height: 50px;
	width: auto;
	transition: transform 0.3s ease;
}

.img-large:hover {
	transform: scale(1.05);
}

.img-footer {
	height: 50px;
	width: auto;
	padding-bottom: 10px;
}

/* Active menu item — evidenzia in blu */
.navlink.active,
.main-menu ul li.active > a,
.main-menu ul li a.active {
	color: var(--theme) !important;
	font-weight: 700;
}

/* Da 0 fino a 1024px: nascondi menu desktop, mostra hamburger */
@media (max-width: 1024px) {
	.d-none.d-lg-flex {
		display: none !important;
	}

	.mobile-nav-bar {
		display: block !important;
	}
}

/* Da 1025px in su: mostra menu desktop, nascondi hamburger */
@media (min-width: 1025px) {
	.d-none.d-lg-flex {
		display: flex !important;
	}

	.mobile-nav-bar {
		display: none !important;
	}
}

.d-none.d-lg-flex {
	white-space: nowrap;
}

.d-none.d-lg-flex .main-menu ul {
	display: flex;
	flex-wrap: nowrap;
	/* importantissimo */
	padding: 0;
	margin: 0;
	list-style: none;
	overflow: hidden;
}

.flag-img {
	width: 26px;
	height: 20px;
	object-fit: cover;
	display: block;
	border-radius: 2px;
}

/* Language flags — riga sempre visibile (no dropdown) */
.header-right .lang-flags {
	margin-left: 20px;
}

.lang-flags {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.lang-flags .lang-switch {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px;
	border: 2px solid transparent;
	border-radius: 4px;
	opacity: 0.55;
	filter: grayscale(0.3);
	transition: opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
	cursor: pointer;
	text-decoration: none;
	background: transparent;
}

.lang-flags .lang-switch:hover {
	opacity: 1;
	filter: grayscale(0);
	transform: translateY(-2px);
}

.lang-flags .lang-switch.is-active {
	opacity: 1;
	filter: grayscale(0);
	border-color: var(--theme);
}

.lang-flags-mobile {
	margin-left: 8px;
}

#mobile-nav .lang-flags .lang-switch {
	opacity: 0.7;
}
#mobile-nav .lang-flags .lang-switch.is-active {
	opacity: 1;
	border-color: #fff;
}

#mobile-nav,
#mobile-nav a,
#mobile-nav .dropdown-toggle,
#mobile-nav .dropdown-item {
	color: white !important;
}

/*_______________________________Home page_____________________________ */
.banner-tab {
	background-size: cover;
	background-position: center;
	position: relative;
	/* Adjust as needed */
	overflow: hidden;
	font-family: 'Manrope', sans-serif !important;
}

.banner-tab {
	height: 100vh;
}

.banner-tab .row {
	height: 100%;
}

/* Common styles for the overlay */
.banner-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0.9;
	/* Adjust opacity as needed */
}

/* Left half overlay */
.banner-overlay.left {
	background-color: #0d659e63;
	/* Blue overlay */
}

/* Right half overlay */
.banner-overlay.right {
	background-color: #d6d5d196;
	/* White overlay */
}

/* Content styles */
.content {
	position: relative;
	z-index: 2;
	/* Ensures content is above the overlay */
	color: #fff;
	padding: 20% 10% !important;
}

/* Adjust padding as needed */

.content h2 {
	font-size: 60px;
	font-weight: bold;
}

.upper-heading {
	margin-bottom: 7rem;
}

.text-primary,
.active {
	color: var(--theme) !important;
}

.text-secondary,
.active {
	color: #fff !important;
	/* font-family: 'Manrope', sans-serif;
	font-weight: 800; */
}

.banner-tab .legal {
	background-image: url('template/assets/img/legal_part_home');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.banner-tab .corporate {
	background-image: url('template/assets/img/corporate_part_home');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.container-fluid {
	padding: 0 !important;
}

@media (max-width: 767.98px) {
	.banner-tab {
		background-image: none;
	}

	.container-fluid {
		padding: 0px 20px !important;
	}
}

/* ____________________Footer__________________________*/
.footer-area .container {
	max-width: 80% !important;
}

.footer-area p {
	padding-right: 60px;
}

.footer-area a[href^="tel:"],
.footer-area a.cmail,
.footer-area .cmail,
.footer-area a.cmail-link,
.footer-area .cmail a {
    color: inherit;
    text-decoration: none;
    font-size: inherit;
    font-weight: inherit;
}



.footer-area h6 {
	font-size: 15px;
	font-weight: 600;
	color: #ffffffe5;
	margin: 20px 0;
}

.header-area .container {
	background: transparent !important;
}

.footer-link {
	color: var(--theme) !important;
	font-size: 12px !important;
}


/* Footer - container più largo rispetto al default 80% */
.footer-area .container-footer {
    max-width: 80% !important;
}

.footer-bottom .container-footer {
    max-width: 80% !important;
}

/* ______________________About_________________*/

span.dropcap_style {
	background-color: transparent;
	color: black;
}

.counter-number span,
.counter-number {
	color: var(--theme) !important;
}

.section-title h6 {
	opacity: unset !important;
}

#service-3 .service-icon i::before {
	font-size: 60px;
	color: var(--theme) !important;
}

#service-3 .single-service-item {
	border: 1px solid var(--theme) !important;
	padding: 30px 50px;
	margin-bottom: 30px;
	height: 380px;
}

.contact-icon {
	width: 50px;
	height: 50px;
	background: var(--theme) !important;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.contact-text p {
	margin: 0;
	font-size: 20px;
	font-weight: 500;
	color: var(--theme);
}

.fill {
	background: var(--theme) !important;
	width: 518.4px;
	transition: width 5s ease-in-out;
}

.overlay {
	opacity: 0.2 !important;
}

/* ______________________Legal e Corporate__________________________ */

.single-blog-item {
	display: flex;
	align-items: flex-start;
	text-decoration: none;
	color: inherit;
	gap: 15px;
	/* spazio tra icona e testo */
}

.blog-icon {
	font-size: 24px;
	color: #0056b3;
	/* oppure il colore che preferisci */
	margin-top: 4px;
	/* leggero allineamento verticale con il titolo */
}



.blog-carousel .owl-dots button.owl-dot.active span {
	background: var(--theme) !important;
}

.theme-bg {
	background: var(--theme) !important;
}

.blog-title .single-blog-item:hover h4 {
	color: var(--theme) !important;
}

.blog-title h4 {
	color: var(--theme) !important;
	text-align: center;
	text-transform: uppercase;
}


.header-inner-box .dropdown {
	display: flex;
	align-items: center;
	margin-left: 30px;
}

.dark-bg {
	background: #373737;
}

.section-title h5 {
	color: #8f8989;
	text-transform: uppercase;
	font-size: 16px;
	font-weight: bold;
	margin-top: 8px;
}

.custom-list li {
	border-bottom: 1px solid #ccc !important;
	padding: 10px 0;
}


.custom-list li:last-child {
	border-bottom: none !important;
}

/* Stile per le icone negli elenchi */
ul.list-unstyled li {
	margin-bottom: 10px;
	font-size: 1rem;
	display: flex;
	align-items: center;
}

ul.list-unstyled li i {
	color: var(--theme);
	/* Colore primario (blu) */
	margin-right: 10px;
	min-width: 20px;
	text-align: center;
}

/* Stile per i titoli delle sezioni */
.section-title h5 {
	margin-top: 30px !important;
	font-weight: 600 !important;
	color: #333 !important;
	border-bottom: 2px solid #007bff !important;
	display: inline-block !important;
	padding-bottom: 5px !important;
	margin-bottom: 15px !important;
}



/* _______________________Contacts_________________ */
/* .contact-form-wrap {
	width: unset !important;
}*/

.contact-form-wrap input[type="submit"] {
	background: var(--theme) !important;
}

.blog-content {
	background: rgba(236, 245, 251, 0.23) !important;
	box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.1) !important;
	flex: 1;
	height: 420px;
}

.blog-content p,
.blog-title h4 {
	margin: 20px !important;
}

.map-responsive {
	overflow: hidden;
	padding-bottom: 56.25%;
	position: relative;
	height: 0;
}

.map-responsive iframe {
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	position: absolute;
}

.single-contact-info {
	height: unset !important;
	border: none !important;
	padding: 0px !important;
	text-align: start !important;
}

.single-contact-info .contact-icon {
	height: 50px !important;
	width: 50px !important;
	display: flex;
	flex-shrink: 0;
	margin-bottom: 0 !important;
}

.section-title {
	margin-bottom: 0px !important;
}

.contact-form-wrap {
	width: unset !important;
	padding: 40px !important;
}

.single-counter-item {
	padding: 25px !important;
}

.single-counter-item p {
	margin-bottom: 0 !important;
}

.privacy-link {
	font-size: inherit !important;
	font-weight: 700 !important;
	color: var(--theme) !important;
	text-decoration: none !important;
	transition: color 0.2s ease;
}

.privacy-link:hover {
	color: var(--header) !important;
	text-decoration: underline !important;
}

input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: black;
	margin-right: 10px;
	margin-top: 3px;
}


/* ______________________Mobile_________________ */
@media only screen and (max-width: 600px) {

	/* Home */
	.content h1 {
		font-size: 3rem;
	}

	.banner-tab {
		height: none !important;
	}

	.upper-heading {
		margin-bottom: 1rem;
	}

	.footer-area .container {
		max-width: 90% !important;
	}
}

@media (max-width: 767.98px) {

	/* Home */
	.banner-tab {
		background-image: none;
	}

	.container-fluid {
		padding: 10px 20px !important;
	}

	.section-padding {
		padding: 0px 10px 150px !important;
	}

	.img-large {
		height: 55px;
		width: auto;
	}
} 


.muted {
	color: #918D89;
}

.section-title h3 {
	font-size: 40px;
	font-weight: 700;
	line-height: 65px;
	color: #0A0A0A;
	letter-spacing: -2px;
}

.section-title h4 {
	font-size: 30px;
	font-weight: 700;
	line-height: 65px;
	color: #0A0A0A;
	letter-spacing: -2px;
}

.services-row {
    display: grid;
    gap: 12px;
    margin-bottom: 12px;
}

.services-row-5 {
    grid-template-columns: repeat(5, 1fr);
}

.services-row:last-child {
    margin-bottom: 0;
}

.service-card-flex {
    background: #fff;
    padding: 15px 15px;
    display: flex;
    gap: 15px;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    border: 1px solid #e2e8f0;
	align-items: center;
}

.service-card-flex:hover {
    box-shadow: 0 4px 12px rgba(66, 153, 225, 0.15);
    border-color: #4299e1;
    transform: translateY(-2px);
}

.service-icon-v2 {
    width: 30px;
    height: 30px;
    min-width: 30px;
    background: linear-gradient(135deg, #06518ea1  0%, #3182ce 100%);
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(66, 153, 225, 0.25);
}

.service-icon-v2 i {
    font-size: 18px;
    color: #fff;
}

.service-card-flex h6 {
    font-size: 14px;
    font-weight: 600;
    color: #2d3748;
    margin: 0;
    line-height: 1.4;
    padding-top: 2px;
}

.blog-section {
    padding: 40px 0;
}

@media (max-width: 992px) {
    .services-row-5 {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 576px) {
    .services-row-5{
        grid-template-columns: 1fr;
    }
}

.services-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 12px;
}

@media (max-width: 992px) {
    .services-row-3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 576px) {
    .services-row-3 {
        grid-template-columns: 1fr;
    }
}




.contact-office-icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
    background: rgba(var(--theme-rgb), 0.08);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--theme);
    font-size: 16px;
}

/* Toggle destinatario */
.contact-recipient-toggle {
    display: flex;
    border: 1px solid #e2e8f0;
    overflow: hidden;
    width: fit-content;
}

.recipient-radio { display: none; }

.recipient-label {
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    background: #fff;
    color: #718096;
    transition: all 0.2s;
    margin: 0;
    border-right: 1px solid #e2e8f0;
}

.recipient-label:last-of-type { border-right: none; }

.recipient-radio:checked + .recipient-label {
    background: var(--theme);
    color: #fff;
}

.contact-input {
    border: 1px solid #e2e8f0 !important;
    border-radius: 0 !important;
    padding: 12px 16px;
    font-size: 14px;
}

.contact-input:focus {
    border-color: var(--theme) !important;
    box-shadow: 0 0 0 3px rgba(var(--theme-rgb), 0.08) !important;
}

/* ==========================================================================
   BATCH A — Hover eleganti home split, about cards, reveal-on-scroll, footer
   ========================================================================== */

/* Footer padding fix */
.footer-up {
	padding: 60px 0 0 0;
}

/* Home: riquadri con zoom dello sfondo contenuto dentro frame con overflow:hidden */
.banner-tab .banner-frame {
	position: relative;
	overflow: hidden;
	cursor: pointer;
}

.banner-tab .banner-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform-origin: center center;
	transition:
		transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
		filter   0.5s ease;
	will-change: transform, filter;
	z-index: 0;
}

.banner-tab .banner-overlay {
	z-index: 1;
	transition: background-color 0.5s ease, opacity 0.5s ease;
}

.banner-tab .content {
	position: relative;
	z-index: 2;
	transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Effetti hover solo su dispositivi con mouse/trackpad reale.
   Su mobile/tablet touch (hover:none) entrambi i riquadri restano pieni e luminosi. */
@media (hover: hover) and (pointer: fine) {

	/* Hover su una metà → zoom dello sfondo interno (frame contiene) */
	.banner-tab .banner-frame:hover .banner-bg {
		transform: scale(1.12);
		filter: brightness(1.05) saturate(1.1);
	}

	/* Metà NON hoverata → scurita e leggermente desaturata */
	.banner-tab:hover .banner-frame:not(:hover) .banner-bg {
		filter: brightness(0.5) saturate(0.6);
	}

	.banner-tab:hover .banner-frame:not(:hover) .banner-overlay {
		opacity: 0.6;
	}

	/* Hover overlay più tematico */
	.banner-tab .legal.banner-frame:hover .banner-overlay.left {
		background-color: rgba(var(--theme-rgb), 0.25);
	}

	.banner-tab .corporate.banner-frame:hover .banner-overlay.right {
		background-color: rgba(214, 213, 209, 0.35);
	}

	/* Contenuto: lieve sollevamento senza uscire dal frame */
	.banner-tab .banner-frame:hover .content {
		transform: translateY(-6px);
	}
}

/* L'intero riquadro è un <a>: ereditarietà colori e reset decorazioni */
.banner-tab .banner-frame-link,
.banner-tab .banner-frame-link:hover,
.banner-tab .banner-frame-link:focus,
.banner-tab .banner-frame-link:active {
	text-decoration: none;
	color: inherit;
}

/* Il <span> .read_more non ha più il default anchor behaviour ma va reso
   cliccabile visivamente come un pulsante */
.banner-tab .banner-frame-link .read_more {
	cursor: pointer;
	display: inline-block;
}

/* About: wrapper <a> che rende l'intera card cliccabile */
.service-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.service-card-link:hover,
.service-card-link:focus {
	text-decoration: none;
	color: inherit;
}

/* About: hover su card Legal/Corporate */
#service-3 .single-service-item {
	transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease, background-color 0.4s ease;
	cursor: pointer;
	position: relative;
	overflow: hidden;
}

#service-3 .single-service-item::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: var(--theme);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.4s ease;
}

#service-3 .single-service-item:hover {
	transform: translateY(-10px);
	box-shadow: 0 18px 40px rgba(var(--theme-rgb), 0.18);
	background-color: #fafcff;
}

#service-3 .single-service-item:hover::before {
	transform: scaleX(1);
}

#service-3 .single-service-item .service-icon {
	transition: transform 0.5s ease;
	display: inline-block;
}

#service-3 .single-service-item:hover .service-icon {
	transform: rotate(-8deg) scale(1.1);
}

#service-3 .single-service-item h4,
#service-3 .single-service-item h3 {
	transition: color 0.3s ease;
}

#service-3 .single-service-item:hover h4,
#service-3 .single-service-item:hover h3 {
	color: var(--theme) !important;
}

/* Reveal on scroll — usato per team members e sezioni */
.reveal-on-scroll {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.8s ease, transform 0.8s ease;
	will-change: opacity, transform;
}

.reveal-on-scroll.is-visible {
	opacity: 1;
	transform: translateY(0);
	visibility: visible !important;
}

.reveal-on-scroll.delay-1 { transition-delay: 0.1s; }
.reveal-on-scroll.delay-2 { transition-delay: 0.2s; }
.reveal-on-scroll.delay-3 { transition-delay: 0.3s; }
.reveal-on-scroll.delay-4 { transition-delay: 0.4s; }
.reveal-on-scroll.delay-5 { transition-delay: 0.5s; }

/* ==========================================================================
   Team blocks — sfondo alternato (bianco / grigio chiarissimo) per separare
   visivamente i membri del team nelle pagine Legal / Corporate.
   ========================================================================== */
.team-block {
	position: relative;
	width: 100%;
}

.team-block.team-block-odd {
	background-color: #ffffff;
}

.team-block.team-block-even {
	background-color: #f5f6f8;
}

/* Transizione bg morbida quando il blocco entra in viewport */
.team-block .faq-section {
	background-color: transparent !important;
}

/* Stile counter image: più coerente con l'alternanza */
.team-block .counter-img img {
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	transition: transform 0.5s ease, box-shadow 0.5s ease;
}

.team-block:hover .counter-img img {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(0, 0, 0, 0.12);
}

/* ================================================================
   Mobile/Tablet fix — evita sovrapposizione del box LINGUE
   Sotto lg (<992px) le colonne stackano: il .counter-content è in
   position:absolute con bottom negativo → usciva dal flusso e si
   sovrapponeva al membro successivo. Lo riporto nel flusso normale.
   ================================================================ */
@media (max-width: 991.98px) {
	/* Foto + badge LINGUE sovrapposto come nella versione desktop */
	.team-block .counter-wrap {
		position: relative;
		margin-top: 20px;
		padding-bottom: 36px;   /* spazio per la sporgenza del badge */
		display: inline-block;  /* il wrap si adatta alla foto, così absolute centra sulla foto */
		max-width: 100%;
	}

	.team-block .counter-img {
		margin-top: 20px;
		text-align: center;
		position: relative;
	}

	.team-block .counter-img img {
		max-width: 420px;
		width: 100%;
		height: auto;
		display: block;
		margin: 0 auto;
	}

	/* Badge LINGUE: absolute in basso al wrap, centrato, sporge un po' sotto la foto */
	.team-block .counter-content {
		position: absolute !important;
		left: 50% !important;
		transform: translateX(-50%);
		bottom: 0 !important;
		margin: 0 !important;
		width: auto;
		display: flex;
		justify-content: center;
	}

	/* Box LINGUE: compatto, coerente con versione desktop ma più piccolo */
	.team-block .single-counter-item {
		width: auto;
		max-width: 260px;
		text-align: center;
		padding: 10px 20px !important;
		border-left: none !important;
		border-radius: 4px;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	}
	.team-block .single-counter-item h6 {
		font-size: 12px;
		letter-spacing: 0.5px;
		margin-bottom: 4px !important;
	}
	.team-block .single-counter-item p {
		font-size: 13px;
		line-height: 1.4;
	}

	/* Centra il wrap nella colonna (inline-block non centra di suo) */
	.team-block .col-xl-6.text-lg-end,
	.team-block .col-lg-6.text-lg-end {
		text-align: center !important;
	}

	/* Su mobile, la foto spinta a destra da text-lg-end non è desiderata:
	   la ricentro per coerenza visiva */
	.team-block .counter-img.d-flex,
	.team-block .col-xl-6.text-lg-end,
	.team-block .col-lg-6.text-lg-end {
		text-align: center !important;
		justify-content: center !important;
	}

	/* Su mobile la foto deve SEMPRE comparire prima del testo, indipendentemente
	   dall'ordine nel markup (nelle righe "pari" il testo viene prima del DOM). */
	.team-block .row {
		display: flex;
		flex-wrap: wrap;
	}
	.team-block .row > .text-lg-end {
		order: -1;
		margin-bottom: 20px;
	}

	/* Spacing verticale tra i blocchi team su mobile */
	.team-block + .team-block {
		margin-top: 10px;
	}

	.team-block .faq-section {
		padding-top: 40px !important;
		padding-bottom: 40px !important;
	}
}

@media (max-width: 575.98px) {
	.team-block .counter-img img {
		max-width: 340px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.reveal-on-scroll {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.banner-tab .banner-bg,
	.banner-tab .content,
	#service-3 .single-service-item {
		transition: none;
	}
	.banner-tab .banner-frame:hover .banner-bg {
		transform: none;
	}
}

/* Grassetti nei testi — stile visivo coerente */
.content-paragraph b,
.single-about-text b,
.first-paragraph-about b {
	color: var(--header);
	font-weight: 700;
}

/* Honeypot anti-bot — completamente invisibile */
.hp-field {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	tab-index: -1;
}

/* ==========================================================================
   Cookie consent banner + map placeholder (lazy-load Google Maps)
   ========================================================================== */
.cookie-consent {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 9999;
	max-width: 980px;
	margin: 0 auto;
	background: #ffffff;
	color: #1a202c;
	border: 1px solid #e2e8f0;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
	border-radius: 6px;
	padding: 18px 22px;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.35s ease, transform 0.35s ease;
}
.cookie-consent.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.cookie-consent[hidden] { display: none !important; }

.cookie-consent-inner {
	display: flex;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
}
.cookie-consent-text { flex: 1 1 320px; }
.cookie-consent-title {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 6px;
	color: var(--header);
}
.cookie-consent-body {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: #4a5568;
}
.cookie-consent-link {
	color: var(--theme);
	font-weight: 600;
	text-decoration: underline;
}
.cookie-consent-actions {
	display: flex;
	gap: 10px;
	flex-shrink: 0;
}
.cookie-consent-btn {
	border: 1px solid var(--theme);
	padding: 10px 22px;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: 3px;
	transition: background-color 0.2s ease, color 0.2s ease;
	line-height: 1;
}
.cookie-consent-reject {
	background: #fff;
	color: var(--theme);
}
.cookie-consent-reject:hover {
	background: #f5f6f8;
}
.cookie-consent-accept {
	background: var(--theme);
	color: #fff;
}
.cookie-consent-accept:hover {
	background: var(--header);
	border-color: var(--header);
}

@media (max-width: 575.98px) {
	.cookie-consent {
		left: 10px;
		right: 10px;
		bottom: 10px;
		padding: 16px 18px;
	}
	.cookie-consent-inner {
		gap: 14px;
	}
	.cookie-consent-actions {
		width: 100%;
		justify-content: stretch;
	}
	.cookie-consent-btn {
		flex: 1;
		padding: 12px 14px;
	}
}

/* ================================================================
   Cookie Preferences Modal — manager con switch per categoria
   ================================================================ */
.cookie-prefs-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
}
.cookie-prefs-modal.is-visible {
	opacity: 1;
	pointer-events: auto;
}
.cookie-prefs-modal[hidden] {
	display: none !important;
}
.cookie-prefs-overlay {
	position: absolute;
	inset: 0;
	background: rgba(8, 24, 43, 0.55);
	backdrop-filter: blur(2px);
}
.cookie-prefs-dialog {
	position: relative;
	background: #fff;
	max-width: 560px;
	width: 100%;
	border-radius: 10px;
	box-shadow: 0 30px 80px rgba(4, 79, 139, 0.35);
	padding: 32px 34px 28px;
	max-height: 90vh;
	overflow-y: auto;
}
.cookie-prefs-close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 34px;
	height: 34px;
	border: none;
	background: transparent;
	color: #666;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	border-radius: 50%;
	transition: all 0.2s;
}
.cookie-prefs-close:hover {
	background: rgba(4, 79, 139, 0.08);
	color: var(--theme);
}
.cookie-prefs-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--header);
	margin: 0 0 10px;
}
.cookie-prefs-description {
	font-size: 14px;
	color: #4a5568;
	line-height: 1.6;
	margin: 0 0 24px;
}
.cookie-prefs-row {
	border-top: 1px solid #e2e8f0;
	padding: 18px 0 16px;
}
.cookie-prefs-row:last-of-type {
	border-bottom: 1px solid #e2e8f0;
	margin-bottom: 22px;
}
.cookie-prefs-row-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 6px;
}
.cookie-prefs-row h6 {
	font-size: 15px;
	font-weight: 700;
	color: var(--header);
	margin: 0;
}
.cookie-prefs-row p {
	font-size: 13px;
	color: #4a5568;
	line-height: 1.55;
	margin: 0;
}
.cookie-prefs-status {
	display: inline-block;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--theme);
}
.cookie-prefs-status.is-rejected {
	color: #c53030;
}
.cookie-prefs-status.is-none {
	color: #888;
}
.cookie-prefs-actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}
.cookie-prefs-actions .cookie-consent-btn {
	min-width: 130px;
}

/* Toggle switch — accessibile (basato su checkbox nativo) */
.cookie-switch {
	position: relative;
	display: inline-block;
	width: 48px;
	height: 26px;
	flex-shrink: 0;
	cursor: pointer;
}
.cookie-switch input {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}
.cookie-switch-slider {
	position: absolute;
	inset: 0;
	background: #cbd5e0;
	border-radius: 26px;
	transition: background 0.25s ease;
}
.cookie-switch-slider::before {
	content: '';
	position: absolute;
	left: 3px;
	top: 3px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	transition: transform 0.25s ease;
}
.cookie-switch input:checked + .cookie-switch-slider {
	background: var(--theme);
}
.cookie-switch input:checked + .cookie-switch-slider::before {
	transform: translateX(22px);
}
.cookie-switch input:focus-visible + .cookie-switch-slider {
	box-shadow: 0 0 0 3px rgba(4, 79, 139, 0.25);
}
.cookie-switch input:disabled + .cookie-switch-slider {
	opacity: 0.6;
	cursor: not-allowed;
}
.cookie-switch input:disabled + .cookie-switch-slider::before {
	background: #edf2f7;
}

.cookie-manage-link {
	cursor: pointer;
	text-decoration: underline dotted;
	text-underline-offset: 2px;
}
.cookie-manage-link:hover {
	color: var(--theme) !important;
}

@media (max-width: 575.98px) {
	.cookie-prefs-dialog {
		padding: 26px 22px 22px;
	}
	.cookie-prefs-actions {
		flex-direction: column-reverse;
	}
	.cookie-prefs-actions .cookie-consent-btn {
		width: 100%;
	}
}

/* Map placeholder (pre-consent o dopo reject) */
.map-embed {
	width: 100%;
	background: #f5f6f8;
	min-height: 200px;
	display: block;
}
.map-embed iframe {
	display: block;
	width: 100%;
	border: 0;
}
.map-placeholder {
	width: 100%;
	min-height: 380px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px 20px;
	background: linear-gradient(135deg, #f5f6f8 0%, #e2e8f0 100%);
	border: 1px dashed #cbd5e0;
	text-align: center;
}
.map-placeholder-inner {
	max-width: 360px;
}
.map-placeholder-inner i {
	font-size: 40px;
	color: var(--theme);
	opacity: 0.55;
	display: block;
	margin-bottom: 12px;
}
.map-placeholder-inner p {
	font-size: 13px;
	color: #4a5568;
	margin: 0 0 16px;
	line-height: 1.45;
}
.map-placeholder-inner .theme-btn {
	padding: 10px 24px;
	font-size: 13px;
	cursor: pointer;
}

@media (max-width: 767.98px) {
	.map-placeholder {
		min-height: 260px;
		padding: 24px 16px;
	}
	.map-placeholder-inner i { font-size: 32px; margin-bottom: 8px; }
}

/* Obfuscated email style — uguale ai link normali */
.cmail a {
	color: inherit;
	text-decoration: none;
}

.cmail a:hover {
	text-decoration: underline;
}

/* ==========================================================================
   MODERN POLISH — rifiniture sobrie, coerenti con l'identità brand
   (tipografia, focus accessibili, micro-interazioni, breadcrumb, footer)
   ========================================================================== */

/* Smooth scroll globale (es. click su link ad ancora) */
html {
	scroll-behavior: smooth;
}

/* Selezione testo coerente con brand */
::selection {
	background: rgba(var(--theme-rgb), 0.18);
	color: var(--header);
}

/* Focus accessibile — anello sottile per tastiera, invisibile per mouse */
:focus-visible {
	outline: 2px solid rgba(var(--theme-rgb), 0.55);
	outline-offset: 2px;
}
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
.theme-btn:focus:not(:focus-visible),
.white-btn:focus:not(:focus-visible) {
	outline: none;
}

/* Disattivo la riga superiore (quella predefinita a bottom:30px nel tema) e
   lascio solo la riga inferiore che animo da sinistra. */
.main-menu ul li a.navlink:before,
.main-menu ul li a.navlink:hover:before {
	content: none !important;
	display: none !important;
}

/* Link nav: underline animato da sinistra a destra — riga inferiore soltanto */
@media (hover: hover) and (pointer: fine) {
	.main-menu ul li > a {
		position: relative;
	}
	.main-menu ul li > a::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 28px;
		width: 100%;
		height: 2px;
		background: var(--theme);
		transform: scaleX(0);
		transform-origin: left center;
		transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	}
	.main-menu ul li > a:hover::after,
	.main-menu ul li.active > a::after,
	.main-menu ul li a.active::after {
		transform: scaleX(1);
	}
}

/* Pulsanti: lift discreto su hover (in aggiunta all'effetto riempimento esistente) */
.theme-btn,
.white-btn {
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
	will-change: transform, box-shadow;
}
@media (hover: hover) and (pointer: fine) {
	.theme-btn:hover,
	.white-btn:hover {
		transform: translateY(-2px);
		box-shadow: 0 8px 18px rgba(var(--theme-rgb), 0.18);
	}
}

/* Breadcrumb: overlay a gradiente, più elegante della piatta opacità */
.breadcrumb-area {
	position: relative;
}
.breadcrumb-area .overlay {
	background: linear-gradient(
		135deg,
		rgba(4, 79, 139, 0.55) 0%,
		rgba(4, 79, 139, 0.35) 55%,
		rgba(10, 10, 10, 0.45) 100%
	);
	opacity: 1 !important;
}
.breadcrumb-area .breadcrumb-title h1 {
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

/* Inputs: micro-raggio + transizione fluida focus */
.contact-input,
.form-control {
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Card servizi & card generiche: shadow più soffice e hover coerente */
.single-blog-item,
.blog-content {
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}
@media (hover: hover) and (pointer: fine) {
	.blog-content:hover {
		box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10) !important;
		transform: translateY(-3px);
	}
}

/* Contact office icon: cerchio tinta brand con hover più vivace */
.contact-office-icon {
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
@media (hover: hover) and (pointer: fine) {
	.d-flex:hover > .contact-office-icon {
		background: var(--theme);
		color: #fff;
		transform: scale(1.06);
	}
}

/* Recipient toggle — segnaletica visiva più chiara */
.contact-recipient-toggle {
	border-radius: 2px;
	transition: box-shadow 0.2s ease;
}
.recipient-label {
	transition: background-color 0.25s ease, color 0.25s ease;
}

/* Team counter item: bordo sinistro tinta brand come accento */
.team-block .single-counter-item {
	border-left: 3px solid rgba(var(--theme-rgb), 0.08);
	background: #fff;
	transition: border-color 0.3s ease, transform 0.3s ease;
}
.team-block.team-block-even .single-counter-item {
	background: #fff;
}
@media (hover: hover) and (pointer: fine) {
	.team-block:hover .single-counter-item {
		border-left-color: var(--theme);
	}
}

/* Footer: leggera sfumatura in alto per separarlo dal body */
.footer-area {
	position: relative;
}
.footer-area::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg,
		rgba(var(--theme-rgb), 0.0) 0%,
		rgba(var(--theme-rgb), 0.45) 50%,
		rgba(var(--theme-rgb), 0.0) 100%);
}

/* Back-to-top: leggero stile coerente se esiste */
.back-to-top,
#back-to-top {
	background: var(--theme) !important;
	box-shadow: 0 4px 14px rgba(var(--theme-rgb), 0.35) !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.back-to-top:hover,
#back-to-top:hover {
	transform: translateY(-3px);
}

/* ==========================================================================
   MOBILE FIXES — verifica ingombri ≤992px, ≤768px, ≤576px, ≤400px
   ========================================================================== */

/* Tablet (≤991.98px): container-fluid nav deve ridurre il padding laterale */
@media (max-width: 1199.98px) {
	.navigation .container-fluid {
		padding: 0 30px !important;
	}
}

@media (max-width: 991.98px) {
	.navigation .container-fluid {
		padding: 0 20px !important;
	}

	/* Home banner: altezza adattiva (non più 100vh forzato su tablet) */
	.banner-tab {
		height: auto !important;
		min-height: 80vh;
	}

	/* Card servizi about: riduci padding e rimuovi altezza fissa */
	#service-3 .single-service-item {
		padding: 25px 25px;
		height: auto;
		min-height: 280px;
	}

	/* Section title h3 — 40px con line-height 65px causa extra verticale */
	.section-title h3 {
		font-size: 32px;
		line-height: 1.3;
	}
	.section-title h4 {
		font-size: 26px;
		line-height: 1.3;
	}

	/* Footer - riduci padding laterale paragrafi */
	.footer-area p {
		padding-right: 20px;
	}
	.footer-area .container,
	.footer-area .container-footer,
	.footer-bottom .container-footer {
		max-width: 92% !important;
	}
}

@media (max-width: 767.98px) {
	/* Hamburger + logo row: assicurati che stia largo tutto */
	.header-inner-box {
		gap: 10px;
	}

	/* Home tiles — riduci padding interno */
	.content {
		padding: 15% 8% !important;
	}
	.content h2 {
		font-size: 2.4rem;
		line-height: 1.15;
	}
	.content h3 {
		font-size: 1.1rem;
		line-height: 1.4;
	}

	/* Banner-tab: passa a colonna verticale */
	.banner-tab {
		min-height: auto;
		height: auto !important;
	}
	.banner-tab .banner-frame {
		min-height: 55vh;
	}

	/* Breadcrumb — dimensioni titolo più sobrie */
	.breadcrumb-area .breadcrumb-title h1 {
		font-size: 2rem;
		line-height: 1.2;
	}
	.breadcrumb-area {
		padding: 70px 0 !important;
	}

	/* Form contatti: padding ridotto */
	.contact-form-wrap {
		padding: 24px !important;
	}

	/* Mappa Google — altezza ridotta per evitare scroll esagerato */
	.map-responsive,
	.contact-form-wrap + .row iframe,
	iframe[src*="google.com/maps"] {
		height: 280px !important;
	}

	/* Section padding troppo aggressivo */
	.section-padding {
		padding: 40px 10px !important;
	}

	/* Card Office contatti: ridimensiona icona */
	.contact-office-icon {
		width: 30px;
		height: 30px;
		min-width: 30px;
		font-size: 14px;
	}

	/* Footer */
	.footer-area .container,
	.footer-area .container-footer,
	.footer-bottom .container-footer {
		max-width: 100% !important;
		padding: 0 20px !important;
	}
	.footer-area p {
		padding-right: 0;
	}

	/* Recipient toggle su mobile: full width diviso a metà */
	.contact-recipient-toggle {
		width: 100%;
	}
	.recipient-label {
		flex: 1;
		text-align: center;
		padding: 10px 14px;
		font-size: 12px;
	}

	/* Lang flags riga desktop nascosta su mobile via display, ma se si vede */
	.header-right .lang-flags {
		margin-left: 10px;
	}
}

@media (max-width: 575.98px) {
	/* Evita overflow orizzontale */
	html, body {
		overflow-x: hidden;
	}

	/* Logo leggermente più contenuto */
	.img-large {
		height: 42px !important;
	}

	/* Home tiles: heading più piccolo */
	.content h2 {
		font-size: 2rem;
	}
	.content h3 {
		font-size: 1rem;
	}

	/* Pulsanti read_more: full width per touch comodo */
	.banner-tab .banner-frame-link .read_more {
		padding: 12px 20px !important;
		font-size: 14px;
	}

	/* Breadcrumb */
	.breadcrumb-area .breadcrumb-title h1 {
		font-size: 1.6rem;
	}

	/* Section title — nessun letter-spacing negativo su piccoli schermi */
	.section-title h3,
	.section-title h4 {
		letter-spacing: -0.5px;
	}

	/* Contact cards map */
	.contact-form-wrap {
		padding: 18px !important;
	}

	/* Single counter item (lingue team) riduci font */
	.single-counter-item {
		padding: 14px 16px !important;
	}

	/* Contacts page address typography */
	.d-flex.align-items-center.gap-3 > span,
	.d-flex.align-items-center.gap-3 > a {
		font-size: 13px !important;
		word-break: break-word;
	}

	/* Iframe mappa ancora più contenuta */
	iframe[src*="google.com/maps"] {
		height: 240px !important;
	}
}

@media (max-width: 399.98px) {
	.content h2 {
		font-size: 1.7rem;
	}
	.img-large {
		height: 38px !important;
	}
	.breadcrumb-area .breadcrumb-title h1 {
		font-size: 1.4rem;
	}
	.recipient-label {
		font-size: 11px;
		padding: 10px 8px;
	}
}

/* Pagina contatti su mobile: form prima, mappe sotto */
@media (max-width: 991.98px) {
	.contacts-sections {
		display: flex;
		flex-direction: column;
	}
	.contacts-sections .contacts-form {
		order: 1;
	}
	.contacts-sections .contacts-maps {
		order: 2;
	}
}

/* Touch-friendly tap targets — nav/footer/privacy link solo, NON flags */
@media (hover: none) and (pointer: coarse) {
	.navlink,
	.footer-area a,
	.privacy-link {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}
}

/* Lingue nel menu mobile — discrete, piccole, senza enfasi */
#mobile-nav .lang-flags-mobile {
	gap: 6px;
	margin-left: 0;
	margin-top: 8px;
	opacity: 0.85;
}
#mobile-nav .lang-flags-mobile .lang-switch {
	padding: 2px;
	border-width: 1px;
	border-radius: 3px;
}
#mobile-nav .lang-flags-mobile .flag-img {
	width: 20px;
	height: 14px;
	border-radius: 1px;
}
#mobile-nav .lang-flags-mobile .lang-switch.is-active {
	border-color: rgba(255, 255, 255, 0.6);
}