.home { --spazio-sezione: clamp(2.5rem, 4.5vw, 4rem); }
.sezione { padding-block: var(--spazio-sezione); }

.etichetta-sezione {
	margin: 0 0 .65rem;
	color: var(--colore-azzurro-testo);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.introduzione-sezione { max-width: 760px; }

.hero-home {
	position: relative;
	display: grid;
	align-items: center;
	min-height: 719px;
	overflow: hidden;
	color: var(--colore-bianco);
	background-color: var(--colore-blu);
}

.hero-home__immagine {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.home .site-header__interno {
	width: calc(100% - 120px);
	max-width: none;
	min-height: 112px;
}

.home .site-header.is-scrolled { background: var(--colore-blu); }

.home .site-logo img { width: 88px; height: 88px; }

.home .menu-principale { gap: 8px; }

.home .menu-principale > li > a {
	padding-inline: 14px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 20px;
}

.home .site-header__cta {
	min-height: 50px;
	padding: 14px 28px 16px;
	font-size: 1rem;
	font-weight: 700;
	box-shadow: 0 10px 12px rgb(0 6 110 / 50%);
}

.hero-home__contenuto {
	position: relative;
	z-index: 1;
	width: min(100% - 2.5rem, 1084px);
	padding-top: 7.625rem;
}

.home .hero-home h1 {
	max-width: 499px;
	margin: 0 0 2rem;
	color: var(--colore-bianco);
	font-size: clamp(3.35rem, 5.56vw, 5rem);
	font-weight: 350;
	letter-spacing: -.05em;
	line-height: .9625;
}

.home .hero-home h1 b,
.home .hero-home h1 strong { font-weight: 780; }

.hero-home__testo {
	max-width: 499px;
	font-size: .93rem;
	line-height: 1.55;
}

.hero-home__testo p:last-child { margin-bottom: 0; }

.sezione-corsi {
	position: relative;
	z-index: 2;
	margin-top: -24px;
	border-radius: var(--raggio-medio) var(--raggio-medio) 0 0;
	background: var(--colore-bianco);
}

.sezione-corsi .contenitore {
	position: relative;
	width: min(100% - 2.5rem, 1084px);
}

.sezione-corsi .etichetta-sezione {
	margin-bottom: 13px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 20px;
}

.sezione-corsi h2 {
	max-width: 689px;
	margin-bottom: 10px;
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 45px;
}

.sezione-corsi .introduzione-sezione {
	max-width: 912px;
	font-size: 1rem;
	line-height: 22px;
}

.sezione-servizi h2 { max-width: 590px; }

.corsi-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 2rem 0;
}

.corsi-tabs [role="tab"] {
	min-height: 44px;
	padding: 8px 22px 10px;
	border: 0;
	border-radius: 999px;
	background: var(--colore-fondo-secondario);
	color: var(--colore-blu);
	font-size: 1rem;
	font-weight: 700;
	line-height: 20px;
	cursor: pointer;
}

.corsi-tabs [aria-selected="true"] {
	background: var(--colore-blu);
	color: var(--colore-bianco);
	box-shadow: var(--ombra-card);
}

.sezione-corsi {
	--home-corsi-allineamento: max(1.25rem, calc((100vw - 1084px) / 2));
}

.corsi-pannello { position: relative; }

.corsi-track {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	padding: .5rem 0 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-padding-left: var(--home-corsi-allineamento);
	scroll-snap-type: inline mandatory;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.corsi-track::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

.corsi-track__interno {
	display: flex;
	box-sizing: content-box;
	width: max-content;
	min-width: calc(100% - var(--home-corsi-allineamento));
	gap: 20px;
	padding-left: var(--home-corsi-allineamento);
}

.corsi-track__interno > .card-corso { flex-basis: 348px; }

.corsi-home__navigazione {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 44px;
	align-items: center;
	width: 100%;
	margin-top: 1.25rem;
	padding-bottom: 2rem;
}

.corsi-home__navigazione [data-carousel-previous],
.corsi-home__navigazione [data-carousel-next] {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--colore-blu);
	border-radius: 50%;
	background: var(--colore-bianco);
	color: var(--colore-blu);
	cursor: pointer;
}

.corsi-home__navigazione [data-carousel-next] { justify-self: end; }

.corsi-home__navigazione [aria-disabled="true"] {
	cursor: default;
	opacity: .45;
}

.corsi-home__navigazione [hidden],
.corsi-home__indicatori[hidden] { display: none; }

.corsi-home__indicatori {
	display: flex;
	justify-content: center;
	gap: .5rem;
}

.corsi-home__indicatori button {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 1px solid var(--colore-blu);
	border-radius: 50%;
	background: var(--colore-azzurro);
}

.corsi-home__indicatori button[aria-current="true"] { background: var(--colore-blu); }

.sezione-corsi > .contenitore > .pulsante {
	position: absolute;
	top: 4.75rem;
	right: 0;
	min-height: 50px;
	padding: 14px 28px 16px;
	font-size: 1rem;
	line-height: 20px;
}

.griglia-benvenuti {
	display: grid;
	grid-template-columns: 496px minmax(0, 1fr);
	gap: 92px;
	align-items: center;
	width: min(100% - 2.5rem, 1084px);
}

.sezione-benvenuti h2 {
	max-width: 496px;
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 45px;
}

.sezione-benvenuti__testo > div {
	max-width: 496px;
	font-size: 1rem;
	line-height: 22px;
}
.sezione-benvenuti__testo > .pulsante { margin-top: 1rem; }
.griglia-benefici { display: grid; gap: 1.25rem; }

.card-beneficio {
	position: relative;
	min-height: 7.5rem;
	padding: 1.35rem 0 1.35rem 184px;
}

.card-beneficio__icona {
	position: absolute;
	top: 50%;
	left: 0;
	width: 108px;
	height: auto;
	transform: translateY(-50%);
	object-fit: contain;
}

.card-beneficio h3 { margin: 0 0 4px; font-size: 1.125rem; font-weight: 800; line-height: 22px; }
.card-beneficio div { font-size: .875rem; line-height: 20px; }
.card-beneficio div p:last-child { margin-bottom: 0; }
.sezione-certificazioni {
	overflow: hidden;
	padding-block: var(--spazio-sezione);
}

.griglia-certificazioni {
	position: relative;
	display: block;
	width: min(100% - 2.5rem, 1084px);
	min-height: 411px;
	margin-inline: auto;
}

.griglia-certificazioni::before {
	content: "";
	position: absolute;
	z-index: 0;
	top: 0;
	left: -41px;
	width: 1182px;
	height: 411px;
	background: #f1f5ff;
	clip-path: polygon(0 19%, 100% 0, 100% 100%, 5% 100%);
}

.lista-certificazioni {
	position: absolute;
	z-index: 2;
	top: 39px;
	left: 91px;
	display: grid;
	grid-template-rows: repeat(2, 175px);
	gap: 34px;
	width: 440px;
	margin: 0;
}

.card-certificazione {
	position: relative;
	z-index: 1;
	width: 440px;
	height: 175px;
	padding: 35px 72px 24px 34px;
	border-top: 5px solid var(--colore-blu);
	background: var(--colore-bianco);
	box-shadow: 0 20px 20px rgb(0 6 110 / 10%);
}

.card-certificazione::after {
	content: "\2192";
	position: absolute;
	top: 50%;
	right: 37px;
	display: grid;
	width: 36px;
	height: 36px;
	border: 2px solid #f1f5ff;
	border-radius: 41px;
	color: var(--colore-blu);
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	place-items: center;
	transform: translateY(-50%);
}

.card-certificazione img {
	display: block;
	width: auto;
	max-width: 177px;
	height: 51px;
	max-height: 51px;
	margin-bottom: 12px;
	object-fit: contain;
	object-position: left center;
}

.card-certificazione div,
.sezione-certificazioni__testo > div { font-size: .875rem; line-height: 20px; }
.card-certificazione div { max-width: 332px; }
.card-certificazione p:last-child,
.sezione-certificazioni__testo p:last-child { margin-bottom: 0; }

.sezione-certificazioni__testo {
	position: absolute;
	z-index: 1;
	top: 112px;
	left: 603px;
	width: 496px;
	padding: 0;
	background: transparent;
}

.sezione-certificazioni__testo::before { content: none; }

.sezione-certificazioni .etichetta-sezione {
	margin-bottom: 12px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 20px;
}

.sezione-certificazioni h2 {
	max-width: 496px;
	margin-bottom: 16px;
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 45px;
}

.sezione-certificazioni__testo > div {
	max-width: 472px;
	font-size: 1rem;
	line-height: 22px;
}

.sezione-servizi {
	overflow: hidden;
	padding-block: var(--spazio-sezione);
}

.sezione-servizi > .contenitore {
	width: min(100% - 2.5rem, 1084px);
}

.sezione-servizi .etichetta-sezione,
.sezione-servizi h2 { margin-left: 3px; }

.sezione-servizi .etichetta-sezione {
	margin-bottom: 16px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 20px;
}

.sezione-servizi h2 {
	width: min(100%, 457px);
	font-size: 1.875rem;
	line-height: 35px;
}

.griglia-servizi {
	display: grid;
	grid-template-columns: repeat(3, 355px);
	justify-content: start;
	gap: 24px;
	width: 1113px;
	margin-top: 49px;
	margin-left: -29px;
}

.card-servizio {
	position: relative;
	isolation: isolate;
	display: flex;
	width: 355px;
	height: 274.5px;
	min-height: 0;
	padding: 66px 27px 28px 58px;
	border: 0;
	background: transparent;
	box-shadow: none;
	flex-direction: column;
}

.card-servizio::before,
.card-servizio::after {
	content: "";
	position: absolute;
	pointer-events: none;
}

.card-servizio::before {
	z-index: -2;
	top: 0;
	left: 0;
	width: 100%;
	height: 157px;
	background: #f3edff;
	clip-path: polygon(0 14%, 94% 0, 100% 100%, 0 100%);
}

.card-servizio::after {
	z-index: -1;
	top: 34px;
	right: 1px;
	bottom: 0;
	left: 32px;
	border-top: 5px solid var(--colore-blu);
	background: var(--colore-bianco);
	box-shadow: 0 6px 18px rgb(17 53 144 / 7%);
}

.card-servizio:nth-child(3n + 2)::before { background: #edf2ff; }
.card-servizio:nth-child(3n + 3)::before { background: #e5faff; }
.card-servizio__icona { width: 32px; height: 32px; margin-bottom: 12px; object-fit: contain; }
.card-servizio h3 { margin-bottom: 8px; font-size: 1.5rem; font-weight: 800; line-height: 27px; }
.card-servizio div { min-height: 40px; font-size: .875rem; line-height: 20px; }
.card-servizio div p:last-child { margin-bottom: .75rem; }

.card-servizio .pulsante {
	align-self: flex-end;
	justify-content: space-between;
	width: 183px;
	margin-top: auto;
	padding: 10px 28px 12px;
	font-size: 1rem;
	line-height: 20px;
}

.card-servizio .pulsante::after {
	content: "\2192";
	display: grid;
	width: 20px;
	height: 20px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1;
	place-items: center;
}

.call-to-action__pannello {
	display: grid;
	grid-template-columns: .95fr 1.05fr;
	align-items: center;
	width: min(100% - 2.5rem, 1172px);
	min-height: 386px;
	padding: 2rem 5rem;
	background: #dcf7ff;
	clip-path: polygon(3% 9%, 100% 0, 97% 95%, 0 100%);
}

.call-to-action img { align-self: end; max-height: 370px; object-fit: contain; }
.call-to-action h2 { max-width: 466px; font-size: 2.5rem; font-weight: 800; line-height: 45px; }
.call-to-action__pannello > div > div { max-width: 472px; font-size: 1rem; line-height: 22px; }
.call-to-action__pannello > div > .pulsante { margin-top: .75rem; }
.partner { padding-top: 2rem; }

.partner .contenitore { width: min(100% - 2.5rem, 1156px); }

.partner__viewport { overflow: visible; }

.partner ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: center;
	gap: 3rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.partner img {
	width: 100%;
	max-height: 72px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: .72;
}

.partner__navigazione { display: none; }

@media (max-width: 1023px) {
	.hero-home { min-height: 560px; }
	.hero-home__immagine { object-position: 42% center; }
	.hero-home__contenuto { padding-top: 5.5rem; }
	.home .site-header__interno {
		width: min(100% - 2.5rem, var(--larghezza-contenuto));
		min-height: 88px;
	}
	.home .site-logo img { width: 56px; height: 56px; }
	.home .menu-principale { gap: 0; }
	.home .menu-principale > li > a { padding-inline: 0; }
	.home .hero-home h1 { max-width: 520px; }
	.sezione-corsi > .contenitore > .pulsante { position: static; margin-top: 1rem; }
	.card-corso { flex-basis: calc((100% - 20px) / 2); }
	.corsi-track__interno > .card-corso { flex-basis: calc((100vw - 3.75rem) / 2); }
	.griglia-benvenuti { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; }
	.card-beneficio { padding-left: 8.5rem; }
	.griglia-certificazioni {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
		min-height: 0;
		padding-block: 40px;
	}
	.griglia-certificazioni::before {
		left: -20px;
		width: calc(100% + 40px);
		height: 100%;
	}
	.lista-certificazioni {
		position: relative;
		top: auto;
		left: auto;
		width: min(100%, 440px);
		margin-inline: auto;
	}
	.card-certificazione { width: 100%; }
	.sezione-certificazioni__testo {
		position: relative;
		top: auto;
		left: auto;
		width: min(100%, 496px);
		margin-inline: auto;
	}
	.griglia-servizi {
		grid-template-columns: repeat(2, minmax(0, 355px));
		justify-content: center;
		width: 100%;
		margin-left: 0;
	}
	.card-servizio { width: 100%; }
	.card-servizio:nth-child(3) { grid-column: 1 / -1; justify-self: center; }
	.call-to-action__pannello { padding-inline: 3rem; }
}

@media (max-width: 767px) {
	.hero-home {
		min-height: 620px;
	}
	.hero-home__immagine { object-position: 55% center; }

	.hero-home__contenuto { width: min(100% - 2rem, 1084px); padding-top: 7rem; }

	.home .hero-home h1 {
		max-width: 270px;
		font-size: clamp(2.65rem, 13vw, 3.6rem);
	}

	.hero-home__testo { max-width: 270px; font-size: .86rem; }
	.sezione-corsi { margin-top: -18px; border-radius: var(--raggio-piccolo) var(--raggio-piccolo) 0 0; }
	.card-corso,
	.corsi-track__interno > .card-corso { flex-basis: min(86vw, 340px); }

	.griglia-benvenuti,
	.griglia-certificazioni,
	.griglia-servizi,
	.call-to-action__pannello { grid-template-columns: minmax(0, 1fr); }

	.griglia-benvenuti,
	.griglia-certificazioni { gap: 3rem; }

	.card-beneficio { padding-right: 0; }
	.sezione-certificazioni { padding-block: var(--spazio-sezione); }
	.sezione-certificazioni__testo { padding: 0; }
	.sezione-servizi { padding-block: var(--spazio-sezione); }
	.griglia-servizi { gap: 2.5rem; }
	.card-servizio:nth-child(3) { grid-column: auto; }
	.call-to-action__pannello,
	.partner .contenitore { width: min(100% - 2rem, 1172px); }
	.card-servizio div { min-height: 40px; }

	.call-to-action__pannello {
		gap: 1rem;
		padding: 3.5rem 2rem;
		clip-path: polygon(3% 3%, 100% 0, 97% 97%, 0 100%);
	}

	.call-to-action img { max-height: 270px; }
	.partner__viewport {
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		scroll-snap-type: inline mandatory;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}

	.partner__viewport::-webkit-scrollbar {
		display: none;
		width: 0;
		height: 0;
	}

	.partner__viewport[data-mouse-drag="true"] { cursor: grab; }
	.partner__viewport.is-mouse-dragging { cursor: grabbing; user-select: none; }

	.partner ul {
		display: flex;
		width: max-content;
		min-width: 100%;
		gap: 1rem;
	}

	.partner li {
		display: grid;
		flex: 0 0 calc(100vw - 3rem);
		min-height: 112px;
		padding: 1.25rem;
		place-items: center;
		scroll-snap-align: start;
	}

	.partner img { max-width: 230px; }

	.partner__navigazione {
		display: grid;
		grid-template-columns: 44px minmax(0, 1fr) 44px;
		align-items: center;
		gap: 1rem;
		margin-top: 1.25rem;
	}

	.partner__navigazione [data-carousel-previous],
	.partner__navigazione [data-carousel-next] {
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid var(--colore-blu);
		border-radius: 50%;
		background: var(--colore-bianco);
		color: var(--colore-blu);
		cursor: pointer;
	}

	.partner__navigazione [data-carousel-next] { justify-self: end; }
	.partner__navigazione [aria-disabled="true"] { cursor: default; opacity: .45; }
	.partner__navigazione [hidden],
	.partner__indicatori[hidden] { display: none; }

	.partner__indicatori {
		display: flex;
		justify-content: center;
		gap: .5rem;
	}

	.partner__indicatori button {
		width: 12px;
		height: 12px;
		padding: 0;
		border: 1px solid var(--colore-blu);
		border-radius: 50%;
		background: var(--colore-azzurro);
	}

	.partner__indicatori button[aria-current="true"] { background: var(--colore-blu); }
}
