:root {
	--color-ink: #233642;
	--color-text: #5d6870;
	--color-muted: #8a9297;
	--color-primary: #122B38;
	--color-primary-rgb: 20, 45, 69;
	--color-primary-dark: #122B38;
	--color-accent: #b89862;
	--color-accent-soft: #eadcc5;
	--color-paper: #ffffff;
	--color-cream: #F4F3EF;
	--color-border: #dedbd4;
	--shadow-soft: 0 18px 45px rgba(20, 45, 69, 0.08);
	--font-body: var(--wp--preset--font-family--public-sans, "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
	--font-heading: var(--wp--preset--font-family--lora, "Lora", "Times New Roman", serif);
	--container-narrow: 1220px;
	--radius-sm: 4px;
	--radius-md: 6px;
	--section-space: clamp(4rem, 8vw, 7rem);
	--bs-primary: var(--color-primary);
	--bs-primary-rgb: var(--color-primary-rgb);
	--bs-secondary-color: var(--color-muted);
	--bs-body-color: var(--color-text);
	--bs-body-bg: var(--color-paper);
	--bs-border-color: var(--color-border);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body,
button,
input,
select,
optgroup,
textarea {
	font-family: var(--font-body);
	color: var(--color-text);
	letter-spacing: 0;
}

body {
	background: var(--color-paper);
	font-size: 1rem;
	line-height: 1.75;
	text-rendering: optimizeLegibility;
}

img,
svg {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--color-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

a:hover {
	color: var(--color-accent);
}

p {
	margin-bottom: 1rem;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
	font-family: var(--font-heading);
	color: var(--color-ink);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: 0;
}

h1,
.h1,
.display-5 {
	font-size: clamp(2.45rem, 5vw, 4.3rem);
}

h2,
.h2 {
	font-size: clamp(2rem, 3.5vw, 3.15rem);
}

h3,
.h3 {
	font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.lead {
	color: inherit;
	font-size: clamp(1rem, 1.35vw, 1.13rem);
	font-weight: 400;
	line-height: 1.7;
}

.container {
	margin-inline: auto;
	max-width: var(--container-narrow);
	padding-inline: max(1.25rem, calc((100vw - var(--container-narrow)) / 2));
	width: 100%;
}

.site-container {
	margin-inline: auto;
	max-width: var(--container-narrow);
	padding-inline: 1.25rem;
	width: min(100%, calc(var(--container-narrow) + 2.5rem));
}

/* Nasconde il sottomenu delle lingue all'avvio */
.wpml-ls-menu-item .sub-menu {
    display: none;
    position: absolute;
    background-color: #0b1d28; /* Cambia con il colore esatto del tuo header */
    padding: 10px 15px;
    list-style: none; /* Rimuove i pallini bianchi */
    margin: 0;
    z-index: 99999;
}

/* Allinea le bandiere nel sottomenu */
.wpml-ls-menu-item .sub-menu li {
    margin: 5px 0;
    list-style: none !important;
}

.py-lg-6 {
	padding-top: var(--section-space) !important;
	padding-bottom: var(--section-space) !important;
}

.bg-light,
.bg-primary-light {
	background-color: var(--color-cream) !important;
}

.bg-white {
	background-color: var(--color-paper) !important;
}

.bg-dark {
	background-color: var(--color-primary) !important;
}

.text-primary {
	color: var(--color-primary) !important;
}

.text-secondary {
	color: var(--color-muted) !important;
}

.border,
.border-bottom {
	border-color: var(--color-border) !important;
}

.rounded-4 {
	border-radius: var(--radius-md) !important;
}

.shadow-sm {
	box-shadow: var(--shadow-soft) !important;
}

.btn {
	--bs-btn-border-radius: var(--radius-sm);
	--bs-btn-font-family: var(--font-body);
	--bs-btn-font-weight: 700;
	--bs-btn-padding-x: 1.7rem;
	--bs-btn-padding-y: 0.88rem;
	align-items: center;
	border-width: 1px;
	display: inline-flex;
	font-size: 0.78rem;
	justify-content: center;
	letter-spacing: 0.14em;
	line-height: 1.2;
	min-height: 3rem;
	text-transform: uppercase;
}

.btn-lg {
	--bs-btn-padding-x: 2rem;
	--bs-btn-padding-y: 1rem;
	--bs-btn-font-size: 0.82rem;
}

.btn-primary {
	--bs-btn-bg: var(--color-accent-soft);
	--bs-btn-border-color: var(--color-accent-soft);
	--bs-btn-color: var(--color-primary);
	--bs-btn-hover-bg: var(--color-accent);
	--bs-btn-hover-border-color: var(--color-accent);
	--bs-btn-hover-color: #ffffff;
	--bs-btn-active-bg: var(--color-accent);
	--bs-btn-active-border-color: var(--color-accent);
}

.btn-outline-primary {
	--bs-btn-color: var(--color-paper);
	--bs-btn-border-color: rgba(255, 255, 255, 0.48);
	--bs-btn-hover-bg: var(--color-paper);
	--bs-btn-hover-border-color: var(--color-paper);
	--bs-btn-hover-color: var(--color-primary);
	background-color: transparent;
}

.bg-white .btn-outline-primary,
.bg-light .btn-outline-primary,
.about-preview .btn-outline-primary {
	--bs-btn-color: var(--color-primary);
	--bs-btn-border-color: var(--color-accent-soft);
	--bs-btn-hover-bg: var(--color-accent-soft);
	--bs-btn-hover-border-color: var(--color-accent-soft);
	--bs-btn-hover-color: var(--color-primary);
	background-color: var(--color-accent-soft);
}

.btn-light {
	--bs-btn-bg: var(--color-paper);
	--bs-btn-border-color: var(--color-paper);
	--bs-btn-color: var(--color-primary);
	--bs-btn-hover-bg: var(--color-accent-soft);
	--bs-btn-hover-border-color: var(--color-accent-soft);
}

.site-header {
	border-bottom: 1px solid rgba(255, 255, 255, 0);
	box-shadow: 0 0 0 rgba(20, 45, 69, 0);
	color: var(--color-paper);
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: background-color 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, padding 0.28s ease;
	z-index: 1030;
}

.site-header__container {
	padding-block: 1rem;
	transition: padding 0.28s ease;
}

.site-header.is-scrolled .site-header__container {
	padding-block: 0.72rem;
}

.site-header__bar {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.admin-bar .site-header {
	top: 0px;
}

.site-header.is-scrolled {
	background: rgba(255, 255, 255, 0.96) !important;
	border-bottom-color: rgba(222, 219, 212, 0.82);
	box-shadow: 0 12px 32px rgba(20, 45, 69, 0.08);
	backdrop-filter: blur(14px);
}

body:not(.home) main,
body:not(.home) #content {
	padding-top: 0px;
}

.site-header a {
	color: var(--color-paper) !important;
}

.site-header.is-scrolled a {
	color: var(--color-primary) !important;
}

.site-logo {
	align-items: center;
	display: inline-flex;
	min-height: 42px;
	position: relative;
	text-decoration: none;
}

.site-logo__text {
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.site-logo__muted {
	color: rgba(255, 255, 255, 0.7);
	font-weight: 400;
}

.site-header.is-scrolled .site-logo__muted {
	color: var(--color-muted);
}

.site-logo__image {
	display: block;
	height: auto;
	max-height: 42px;
	max-width: 220px;
	transition: opacity 0.22s ease, transform 0.22s ease;
	width: 220px;
}

.site-logo__image--light {
	left: 0;
	opacity: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}

.site-header.is-scrolled .site-logo__image--dark {
	opacity: 0;
	transform: translateY(-2px);
}

.site-header.is-scrolled .site-logo__image--light {
	opacity: 1;
	transform: translateY(-50%);
}

.site-header__nav {
	display: block;
}

.site-nav {
	display: flex;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav a {
	color: rgba(255, 255, 255, 0.78) !important;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.site-header.is-scrolled .site-nav a {
	color: var(--color-primary) !important;
}

.site-header .site-nav a:hover,
.site-header .site-nav .current-menu-item > a {
	color: var(--color-accent-soft) !important;
}

.site-header.is-scrolled .site-nav a:hover,
.site-header.is-scrolled .site-nav .current-menu-item > a {
	color: var(--color-accent) !important;
}

.site-menu-toggle {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--radius-sm);
	color: var(--color-paper);
	display: none;
	font-size: 0.76rem;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 0.14em;
	min-height: 2.8rem;
	padding: 0.72rem 1.15rem;
	text-transform: uppercase;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.site-header.is-scrolled .site-menu-toggle {
	border-color: var(--color-accent-soft);
	color: var(--color-primary);
}

.site-mobile-drawer {
	background: var(--color-cream);
	bottom: 0;
	box-shadow: -20px 0 48px rgba(20, 45, 69, 0.16);
	color: var(--color-ink);
	max-width: min(86vw, 24rem);
	padding: 1.5rem;
	position: fixed;
	right: 0;
	top: 0;
	transform: translateX(105%);
	transition: transform 0.28s ease;
	width: 100%;
	z-index: 1045;
}

.site-mobile-drawer.is-open {
	transform: translateX(0);
}

.site-mobile-drawer__header {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 2rem;
}

.site-mobile-drawer__title {
	font-family: var(--font-body);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin: 0;
	text-transform: uppercase;
}

.site-mobile-drawer__close {
	align-items: center;
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	color: var(--color-primary);
	display: inline-flex;
	font-size: 1.4rem;
	height: 2.5rem;
	justify-content: center;
	line-height: 1;
	width: 2.5rem;
}

.site-nav--mobile {
	flex-direction: column;
	gap: 1rem;
}

.site-nav--mobile a {
	color: var(--color-ink) !important;
	display: block;
	font-weight: 700;
	text-decoration: none;
}

.site-mobile-drawer__backdrop {
	background: rgba(18, 43, 56, 0.42);
	inset: 0;
	position: fixed;
	z-index: 1040;
}

body.has-mobile-drawer-open {
	overflow: hidden;
}

.home-hero {
	background:
		radial-gradient(circle at 78% 45%, rgba(255, 255, 255, 0.07) 0 24%, transparent 25%),
		linear-gradient(110deg, #153645 0%, #142d45 52%, #292b29 100%);
	color: rgba(255, 255, 255, 0.82);
	min-height: 680px;
	overflow: hidden;
	padding-top: clamp(7rem, 12vw, 10rem) !important;
	position: relative;
}

.home-hero::before {
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-bottom: 0;
	border-radius: 50% 50% 0 0;
	content: "";
	height: 560px;
	position: absolute;
	right: -90px;
	top: 105px;
	width: 560px;
}

.home-hero::after {
	border: 1px solid rgba(255, 255, 255, 0.07);
	border-bottom: 0;
	border-radius: 50% 50% 0 0;
	content: "";
	height: 430px;
	position: absolute;
	right: 20px;
	top: 190px;
	width: 430px;
}

.home-hero .container,
.home-hero .row {
	position: relative;
	z-index: 2;
}

.home-hero h1 {
	color: var(--color-paper);
	max-width: 720px;
}

.home-hero .lead {
	max-width: 620px;
}

.home-hero img {
	display: block;
	margin-inline: auto;
	max-height: 560px !important;
	object-fit: contain;
	position: relative;
	z-index: 2;
}

.hero-targets {
	margin-top: clamp(2rem, 5vw, 4rem);
}

.hero-targets h3 {
	color: var(--color-paper);
	font-family: var(--font-body);
	font-size: 0.82rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.hero-targets .border {
	background: rgba(255, 255, 255, 0.08) !important;
	border-color: rgba(255, 255, 255, 0.12) !important;
	color: var(--color-paper);
}

.hero-targets .text-secondary {
	color: rgba(255, 255, 255, 0.68) !important;
}

.how-work,
.about-preview,
.contact-block {
	padding-top: var(--section-space) !important;
	padding-bottom: var(--section-space) !important;
}

.how-work .text-center > h2,
.contact-block__title,
.about-preview h2 {
	position: relative;
}

.how-work .text-center > h2::before,
.about-preview h2::after {
	background: var(--color-accent);
	content: "";
	display: block;
	height: 1px;
	margin: 0 auto 1rem;
	width: 42px;
}

.how-work .text-center > h2::after {
	color: var(--color-primary);
	content: "Percorso";
	display: block;
	font-family: var(--font-body);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.22em;
	margin-top: -4.5rem;
	margin-bottom: 3.2rem;
	text-transform: uppercase;
}

.how-work {
	background: var(--color-paper);
}

.how-work .rounded-circle {
	background-color: var(--color-cream);
	color: var(--color-primary);
}

.how-work .rounded-circle svg {
	stroke: var(--color-primary);
}

.how-work .small {
	color: var(--color-accent) !important;
	font-weight: 800;
	letter-spacing: 0.16em;
}

.about-preview {
	background-color: var(--color-paper) !important;
}

.about-preview img {
	aspect-ratio: 1 / 1.08;
	border-radius: var(--radius-sm) !important;
	object-fit: cover;
	width: 100%;
}

.about-preview h2 {
	color: var(--color-primary);
	font-family: var(--font-body);
	font-size: 0.78rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.about-preview h2::after {
	display: inline-block;
	margin: 0 0 0.3rem 0.8rem;
	vertical-align: middle;
}

.about-preview h3 {
	font-size: clamp(1.7rem, 2.8vw, 2.5rem);
}

.contact-block {
	background: var(--color-paper);
	border-top: 1px solid var(--color-border);
	padding-block: var(--section-space);
}

.contact-block__layout {
	align-items: start;
	display: grid;
	gap: clamp(2rem, 5vw, 4rem);
	grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
}

.contact-block__title {
	font-family: var(--font-heading);
	font-size: clamp(1.6rem, 2vw, 2.1rem);
	margin: 0 0 1.25rem;
}

.contact-block__lead {
	color: var(--color-muted);
	font-size: clamp(1rem, 1.35vw, 1.13rem);
	line-height: 1.7;
	margin: 0;
}

.contact-block__list {
	display: grid;
	gap: 0.65rem;
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
}

.contact-block__item {
	align-items: center;
	display: flex;
	gap: 0.55rem;
}

.contact-block__maps {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-block__map {
	color: var(--color-text);
	line-height: 1.6;
}

.contact-block iframe {
	border-radius: var(--radius-sm);
	filter: saturate(0.6);
	margin-bottom: 0.8rem;
}

.contact-block strong {
	color: var(--color-ink);
}

.site-footer {
	background: var(--color-cream);
	border-top: 1px solid var(--color-border);
	padding-block: clamp(3rem, 6vw, 5rem);
}

.site-footer__grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.site-footer__title {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	margin: 0 0 1rem;
}

.site-footer__text {
	margin: 0 0 0.35rem;
}

.site-footer__nav {
	display: grid;
	gap: 0.45rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__nav a {
	color: var(--color-text);
	text-decoration: none;
}

.site-footer__nav a:hover {
	color: var(--color-accent);
}

.site-footer__credits {
	border-top: 1px solid var(--color-border);
	color: var(--color-muted);
	font-size: 0.9rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
}

.page-title-section {
	background: var(--bs-primary);
	padding-top: clamp(6rem, 6vw, 8rem);
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.page-title-section__inner {
	margin-inline: auto;
	max-width: var(--container-narrow);
}

.page-title-section__eyebrow {
	margin-bottom: 1rem;
}

.page-title-section__title {
	font-size: clamp(2.4rem, 5vw, 4rem);
	margin: 0;
	color:#F4F3EF;
	text-align: center;
}

.cta-block {
	background: var(--color-primary) !important;
	padding-block: clamp(2.6rem, 5vw, 4rem) !important;
}

.cta-block .container {
	align-items: center;
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	text-align: left !important;
}

.cta-block h2 {
	color: var(--color-paper) !important;
	font-family: var(--font-body);
	font-size: 0.82rem;
	letter-spacing: 0.18em;
	margin: 0 !important;
	text-transform: uppercase;
}

.cta-block p {
	color: rgba(255, 255, 255, 0.72);
	margin: 0 !important;
	max-width: 560px;
	order: -1;
}

.card {
	border-color: var(--color-border);
}

::selection {
	background: var(--color-accent-soft);
	color: var(--color-primary);
}

@media (max-width: 991.98px) {
	.site-header {
		background: var(--color-primary);
	}

	.site-header__nav {
		display: none;
	}

	.site-menu-toggle {
		display: inline-flex;
	}

	.admin-bar .site-header {
		top: 0px;
	}

	.home-hero {
		min-height: auto;
		padding-top: 7rem !important;
	}

	.home-hero::before,
	.home-hero::after {
		opacity: 0.7;
		right: -240px;
	}

	.hero-targets .d-flex.flex-row {
		align-items: stretch !important;
		flex-direction: column !important;
	}

	.cta-block .container {
		align-items: flex-start;
		flex-direction: column;
	}

	.contact-block__layout,
	.site-footer__grid {
		grid-template-columns: 1fr;
	}

	.contact-block__maps {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575.98px) {
	body {
		font-size: 0.96rem;
	}

	body:not(.home) main,
	body:not(.home) #content {
		padding-top: 30px;
	}

	.site-logo__image {
		max-height: 36px;
		max-width: 180px;
	}



	.home-hero .d-flex.flex-wrap {
		width: 100%;
	}

	.home-hero .d-flex.flex-wrap .btn {
		flex: 1 1 100%;
	}

	.how-work .text-center > h2::after {
		margin-top: -4rem;
	}
}
