/**
 * Elementi grafici del progetto Veronica Manzoni.
 *
 * I token arrivano dal tema child; i fallback servono solo nel caso il
 * plugin venga attivato senza il child, per non lasciare la pagina senza colori.
 */

/* .ug-btn sta nell'elenco perche puo comparire da solo in un blocco di testo,
   fuori da qualsiasi componente: senza i token qui il fondo resterebbe vuoto. */
.ug-hero,
.ug-card,
.ug-tech,
.ug-step,
.ug-quotes,
.ug-section-title,
.ug-contact,
.ug-feature,
.ug-hours,
.ug-area,
.ug-path,
.ug-cblock,
.ug-news,
.ug-badge,
.ug-newsletter,
.ug-map,
.ug-btn {
	--ug-c-nero: var(--ug-nero, #060707);
	--ug-c-bianco: var(--ug-bianco, #ffffff);
	--ug-c-rosa: var(--ug-rosa, #cebcc0);
	--ug-c-rosa-testo: var(--ug-rosa-testo, #8e6068);
	--ug-c-rosa-scuro: var(--ug-rosa-scuro, #b9a3a8);
	--ug-c-grigio: var(--ug-grigio, #d8d8d8);
	--ug-c-bordo: var(--ug-grigio-bordo, #e4e1e1);
	--ug-c-testo: var(--ug-testo, #2b2829);
	--ug-c-testo-tenue: var(--ug-testo-tenue, #6b6265);
	--ug-f-titoli: var(--ug-font-titoli, 'Cormorant', Georgia, serif);
	--ug-f-testi: var(--ug-font-testi, 'Silka', Arial, sans-serif);
}

/* --------------------------------------------------------------------------
   Elementi condivisi
   -------------------------------------------------------------------------- */

.ug-rule {
	display: block;
	width: var(--ug-rule-w, 180px);
	max-width: 100%;
	height: 14px;
	background: var(--ug-rosa, #cebcc0);
}

.ug-rule--grigio { background: var(--ug-grigio, #d8d8d8); }
.ug-rule--nero   { background: var(--ug-nero, #060707); }
.ug-rule--center { margin-inline: auto; }

.ug-eyebrow {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ug-c-rosa-testo);
	margin: 0 0 14px;
}

.ug-btn {
	display: inline-block;
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 17px 40px;
	border: 0;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.ug-btn--rosa {
	background: var(--ug-c-rosa);
	color: var(--ug-c-nero);
}

.ug-btn--rosa:hover,
.ug-btn--rosa:focus {
	background: var(--ug-c-rosa-scuro);
	color: var(--ug-c-nero);
}

.ug-btn--nero {
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
}

.ug-btn--nero:hover,
.ug-btn--nero:focus {
	background: #2b2829;
	color: var(--ug-c-bianco);
}

/* Variante a filo, per le schede non in evidenza */
.ug-btn--o {
	background: transparent;
	color: var(--ug-c-nero);
	border: 1px solid var(--ug-c-nero);
}

.ug-btn--o:hover,
.ug-btn--o:focus {
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
}

.ug-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ug-icon {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.ug-hero {
	position: relative;
	isolation: isolate;
	background: var(--ug-c-bianco);
	min-height: clamp(420px, 56vw, 660px);
	display: flex;
	align-items: center;
}

.ug-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.ug-hero__media .ug-img {
	object-position: 72% center;
}

/* Velo chiaro a sinistra: tiene leggibile il testo senza scurire la foto */
.ug-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		100deg,
		rgba(255, 255, 255, 0.97) 0%,
		rgba(255, 255, 255, 0.93) 28%,
		rgba(255, 255, 255, 0.55) 46%,
		rgba(255, 255, 255, 0) 62%
	);
}

.ug-hero__inner {
	width: 100%;
	max-width: 1360px;
	margin-inline: auto;
	padding-inline: max(var(--ug-gutter, 24px), env(safe-area-inset-left, 0px));
	padding-block: clamp(48px, 8vw, 96px);
}

.ug-hero__text {
	max-width: 30rem;
}

.ug-hero__rule {
	--ug-rule-w: 190px;
	margin-bottom: 30px;
}

.ug-hero__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: clamp(36px, 5.4vw, 66px);
	line-height: 1.06;
	color: var(--ug-c-nero);
	margin: 0;
}

/* La prima riga si distingue con il peso, non con il corsivo */
.ug-hero__title-lead {
	display: block;
	font-weight: 300;
	font-size: 0.78em;
	letter-spacing: 0.015em;
	color: var(--ug-c-testo-tenue);
}

.ug-hero__lede {
	font-family: var(--ug-f-testi);
	font-size: 15px;
	line-height: 1.8;
	color: var(--ug-c-testo-tenue);
	margin: 22px 0 0;
	max-width: 27rem;
}

.ug-hero .ug-btn {
	margin-top: 32px;
}

@media (max-width: 767px) {
	.ug-hero::before {
		background: linear-gradient(
			180deg,
			rgba(255, 255, 255, 0.97) 0%,
			rgba(255, 255, 255, 0.94) 58%,
			rgba(255, 255, 255, 0.62) 100%
		);
	}

	.ug-hero__media .ug-img {
		object-position: 64% top;
	}
}

/* --------------------------------------------------------------------------
   Titolo di sezione
   -------------------------------------------------------------------------- */

.ug-section-title {
	text-align: center;
	max-width: 46rem;
	margin-inline: auto;
}

.ug-section-title--left {
	text-align: left;
	margin-inline: 0;
}

.ug-section-title__eyebrow {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ug-c-rosa-testo);
	margin: 0 0 14px;
}

.ug-section-title .ug-rule {
	height: 3px;
	margin-bottom: 22px;
	margin-inline: auto;
}

.ug-section-title--left .ug-rule {
	margin-inline: 0;
}

.ug-section-title__heading {
	font-family: var(--ug-f-titoli);
	font-weight: 300;
	font-size: clamp(30px, 4vw, 48px);
	line-height: 1.1;
	color: var(--ug-c-nero);
	margin: 0;
}

/* Seconda riga in peso forte: la gerarchia la fa il peso, non il corsivo */
.ug-section-title__plain,
.ug-section-title__accent {
	display: block;
}

.ug-section-title__accent {
	font-weight: 600;
	color: var(--ug-c-rosa-testo);
}

/* Variante su una riga sola, usata nella banda contatti */
.ug-section-title--inline .ug-section-title__plain,
.ug-section-title--inline .ug-section-title__accent {
	display: inline;
}

.ug-section-title--inline .ug-section-title__accent {
	margin-left: 0.22em;
}

.ug-section-title__text {
	font-family: var(--ug-f-testi);
	font-size: 15px;
	line-height: 1.8;
	color: var(--ug-c-testo-tenue);
	margin: 16px auto 0;
	max-width: 36rem;
}

.ug-section-title--left .ug-section-title__text {
	margin-inline: 0;
}

/* Variante su fondo scuro */
.ug-section-title--dark .ug-section-title__heading {
	color: var(--ug-c-bianco);
}

.ug-section-title--dark .ug-section-title__eyebrow,
.ug-section-title--dark .ug-section-title__accent {
	color: var(--ug-c-rosa);
}

.ug-section-title--dark .ug-section-title__text {
	color: #cdc3c5;
}

.ug-section-title--dark .ug-rule {
	background: var(--ug-c-rosa);
}

/* --------------------------------------------------------------------------
   Scheda servizio
   -------------------------------------------------------------------------- */

.ug-card {
	background: var(--ug-c-bianco);
	padding: 40px 28px 34px;
	text-align: center;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ug-card__icon {
	display: block;
	width: 68px;
	height: 68px;
	color: var(--ug-c-nero);
	margin-bottom: 26px;
}

.ug-card__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: 27px;
	line-height: 1.2;
	color: var(--ug-c-nero);
	margin: 0 0 16px;
}

.ug-card__text {
	font-family: var(--ug-f-testi);
	font-size: 13.5px;
	line-height: 1.75;
	color: var(--ug-c-testo-tenue);
	margin: 0 0 22px;
}

.ug-card__link {
	font-family: var(--ug-f-testi);
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--ug-c-rosa-testo);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 3px;
	margin-top: auto;
}

.ug-card__link:hover,
.ug-card__link:focus {
	color: var(--ug-c-nero);
}

/* --------------------------------------------------------------------------
   Riga tecnologia
   -------------------------------------------------------------------------- */

.ug-tech {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: center;
}

.ug-tech + .ug-tech {
	margin-top: clamp(32px, 5vw, 56px);
}

.ug-tech__media {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	min-width: 0;
}

.ug-tech--pair .ug-tech__media {
	grid-template-columns: 1fr 1fr;
}

.ug-tech__media .ug-img {
	aspect-ratio: 4 / 3;
}

.ug-tech--pair .ug-tech__media .ug-img {
	aspect-ratio: 3 / 4;
}

.ug-tech__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: clamp(24px, 2.8vw, 34px);
	line-height: 1.15;
	color: var(--ug-c-nero);
	margin: 0 0 14px;
}

.ug-tech__text {
	font-family: var(--ug-f-testi);
	font-size: 14px;
	line-height: 1.85;
	color: var(--ug-c-testo-tenue);
	margin: 0;
	max-width: 32rem;
}

@media (min-width: 860px) {
	.ug-tech {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(32px, 5vw, 72px);
	}

	.ug-tech--image-right .ug-tech__media {
		order: 2;
	}

	.ug-tech--image-right .ug-tech__body {
		order: 1;
	}
}

/* --------------------------------------------------------------------------
   Voce con icona, per le bande piene
   -------------------------------------------------------------------------- */

.ug-feature {
	display: grid;
	grid-template-columns: 62px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

.ug-feature + .ug-feature {
	margin-top: 34px;
}

.ug-feature__icon {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: var(--ug-c-bianco);
	color: var(--ug-c-nero);
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

.ug-feature__icon .ug-icon {
	width: 30px;
	height: 30px;
}

.ug-feature__title {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	color: var(--ug-c-nero);
	margin: 6px 0 8px;
}

.ug-feature__title-link {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.ug-feature__title-link:hover,
.ug-feature__title-link:focus {
	border-bottom-color: currentColor;
}

.ug-feature__text {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	line-height: 1.75;
	color: #51474a;
	margin: 0;
}

/* --------------------------------------------------------------------------
   Pannello orari
   -------------------------------------------------------------------------- */

.ug-hours {
	min-width: 0;
}

.ug-hours__title {
	font-family: var(--ug-f-titoli);
	font-weight: 300;
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.12;
	color: var(--ug-c-nero);
	margin: 0 0 14px;
}

.ug-hours__text {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	line-height: 1.8;
	color: #51474a;
	margin: 0 0 22px;
}

.ug-hours__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ug-hours__row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-block: 11px;
	border-bottom: 1px solid rgba(6, 7, 7, 0.16);
	font-size: 12.5px;
	min-width: 0;
}

.ug-hours__day {
	font-weight: 700;
	flex: 1;
	min-width: 0;
}

.ug-hours__time {
	color: #51474a;
	white-space: nowrap;
}

.ug-hours__book {
	font-family: var(--ug-f-testi);
	font-size: 9px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	font-weight: 700;
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
	padding: 7px 12px;
	text-decoration: none;
	white-space: nowrap;
}

.ug-hours__book:hover,
.ug-hours__book:focus {
	background: #2b2829;
	color: var(--ug-c-bianco);
}

.ug-hours__note {
	font-family: var(--ug-f-testi);
	font-size: 12.5px;
	color: #51474a;
	margin: 16px 0 0;
}

.ug-hours__cta {
	margin-top: 24px;
}

/* --------------------------------------------------------------------------
   Scheda area
   -------------------------------------------------------------------------- */

.ug-area {
	background: var(--ug-grigio-chiaro, #f7f6f6);
	height: 100%;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.ug-area__media .ug-img {
	aspect-ratio: 4 / 3;
}

/* Filetto pieno sotto l'immagine, come nelle schede del riferimento */
.ug-area__bar {
	display: block;
	height: 3px;
	background: var(--ug-c-rosa);
}

.ug-area__body {
	padding: 22px 24px 24px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.ug-area__category {
	font-family: var(--ug-f-testi);
	font-size: 12px;
	color: var(--ug-c-testo-tenue);
	margin: 0 0 8px;
}

.ug-area__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: 27px;
	line-height: 1.15;
	color: var(--ug-c-nero);
	margin: 0 0 12px;
}

.ug-area__text {
	font-family: var(--ug-f-testi);
	font-size: 13.5px;
	line-height: 1.8;
	color: var(--ug-c-testo-tenue);
	margin: 0 0 20px;
}

.ug-area__foot {
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--ug-c-bianco);
	display: flex;
	justify-content: flex-end;
}

.ug-area__link {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ug-c-rosa-testo);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.ug-area__link:hover,
.ug-area__link:focus {
	color: var(--ug-c-nero);
}

.ug-area__chevron {
	font-size: 15px;
	line-height: 1;
}

/* --------------------------------------------------------------------------
   Scheda percorso
   -------------------------------------------------------------------------- */

.ug-path {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
}

.ug-path__badge {
	position: absolute;
	top: -16px;
	right: -10px;
	z-index: 2;
	width: 74px;
	height: 74px;
	border-radius: 50%;
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
	font-family: var(--ug-f-testi);
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.3;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 8px;
}

.ug-path__head {
	background: var(--ug-c-rosa);
	color: var(--ug-c-nero);
	padding: 28px 26px 30px;
}

.ug-path--featured .ug-path__head {
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
}

.ug-path__title {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin: 0;
	color: inherit;
}

.ug-path__rule {
	height: 3px;
	margin-block: 14px 18px;
}

.ug-path--featured .ug-path__rule {
	background: var(--ug-c-rosa);
}

.ug-path__highlight {
	font-family: var(--ug-f-titoli);
	font-weight: 300;
	font-size: 52px;
	line-height: 1;
	margin: 0;
	color: inherit;
}

.ug-path__caption {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	line-height: 1.6;
	margin: 14px 0 0;
	color: inherit;
	opacity: 0.86;
}

.ug-path__list {
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--ug-grigio-chiaro, #f2f1f1);
	flex: 1;
}

.ug-path__row {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 13px 22px;
	border-bottom: 1px solid var(--ug-c-bianco);
	font-family: var(--ug-f-testi);
	font-size: 12.5px;
	min-width: 0;
}

.ug-path__row:last-child {
	border-bottom: 0;
}

.ug-path__label {
	color: var(--ug-c-testo-tenue);
	min-width: 0;
}

.ug-path__value {
	font-weight: 700;
	color: var(--ug-c-nero);
	white-space: nowrap;
}

.ug-path__foot {
	padding-top: 22px;
	text-align: center;
}

/* --------------------------------------------------------------------------
   Blocco contatto
   -------------------------------------------------------------------------- */

.ug-cblock {
	text-align: center;
	min-width: 0;
}

.ug-cblock__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--ug-c-bianco);
	color: var(--ug-c-nero);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}

.ug-cblock__icon .ug-icon {
	width: 29px;
	height: 29px;
}

.ug-cblock__label {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ug-c-nero);
	margin: 0 0 10px;
}

.ug-cblock__line {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	line-height: 1.7;
	color: #41383a;
	margin: 0;
}

.ug-cblock__line a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid rgba(6, 7, 7, 0.3);
}

.ug-cblock__line a:hover,
.ug-cblock__line a:focus {
	border-bottom-color: currentColor;
}

/* --------------------------------------------------------------------------
   Scheda articolo
   -------------------------------------------------------------------------- */

.ug-news {
	min-width: 0;
}

.ug-news__media .ug-img {
	aspect-ratio: 4 / 3;
	margin-bottom: 16px;
}

.ug-news__date {
	font-family: var(--ug-f-testi);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ug-c-rosa-testo);
	margin: 0 0 8px;
}

.ug-news__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: 23px;
	line-height: 1.25;
	color: var(--ug-c-nero);
	margin: 0;
}

.ug-news__title a {
	color: inherit;
	text-decoration: none;
}

.ug-news__title a:hover,
.ug-news__title a:focus {
	color: var(--ug-c-rosa-testo);
}

/* --------------------------------------------------------------------------
   Passaggio del metodo
   -------------------------------------------------------------------------- */

.ug-step {
	position: relative;
	padding-top: 34px;
}

/* Linea che collega un passaggio al successivo, solo da tablet in su */
.ug-step::before {
	content: "";
	position: absolute;
	top: 16px;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--ug-c-bordo);
}

.ug-step::after {
	content: "";
	position: absolute;
	top: 12px;
	left: 0;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--ug-c-rosa);
}

.ug-step--last::before {
	right: auto;
	width: 0;
}

.ug-step__num {
	display: block;
	font-family: var(--ug-f-titoli);
	font-weight: 300;
	font-size: 46px;
	line-height: 1;
	color: var(--ug-c-rosa);
	margin-bottom: 14px;
}

.ug-step__title {
	font-family: var(--ug-f-titoli);
	font-weight: 400;
	font-size: clamp(22px, 2.4vw, 28px);
	line-height: 1.18;
	color: var(--ug-c-nero);
	margin: 0 0 12px;
}

.ug-step__text {
	font-family: var(--ug-f-testi);
	font-size: 14px;
	line-height: 1.85;
	color: var(--ug-c-testo-tenue);
	margin: 0;
	max-width: 26rem;
}

@media (max-width: 767px) {
	.ug-step::before {
		width: 1px;
		height: 100%;
		top: 12px;
		right: auto;
		left: 4px;
	}

	.ug-step--last::before {
		display: none;
	}

	.ug-step {
		padding-top: 10px;
		padding-left: 26px;
	}

	.ug-step::after {
		top: 8px;
	}

	.ug-step__num {
		font-size: 34px;
		margin-bottom: 8px;
	}
}

/* --------------------------------------------------------------------------
   Testimonianze
   -------------------------------------------------------------------------- */

.ug-quotes {
	position: relative;
	padding-inline: 52px;
}

.ug-quotes__viewport {
	overflow: hidden;
}

.ug-quotes__viewport:focus-visible {
	outline: 2px solid var(--ug-c-rosa-testo);
	outline-offset: 4px;
}

.ug-quotes__track {
	display: flex;
	align-items: stretch;
	gap: 28px;
	transition: transform 0.45s ease;
	will-change: transform;
}

.ug-quote {
	flex: 0 0 100%;
	margin: 0;
	text-align: left;
	display: flex;
	flex-direction: column;
}

.ug-quote__mark {
	width: 30px;
	height: 23px;
	fill: var(--ug-c-grigio);
	display: block;
	margin-bottom: 16px;
	flex: none;
}

.ug-quote__text {
	font-family: var(--ug-f-testi);
	font-size: 14px;
	line-height: 1.85;
	color: var(--ug-c-testo-tenue);
	margin: 0;
	border: 0;
	padding: 0;
	quotes: none;
	flex: 1;
}

.ug-quote__author {
	font-family: var(--ug-f-testi);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--ug-c-rosa-testo);
	text-align: right;
	margin-top: 22px;
}

.ug-quotes__nav {
	position: absolute;
	top: 42%;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 0;
	background: var(--ug-c-grigio);
	color: var(--ug-c-nero);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.ug-quotes__nav:hover,
.ug-quotes__nav:focus {
	background: var(--ug-c-rosa);
}

.ug-quotes__nav--prev { left: 0; }
.ug-quotes__nav--next { right: 0; }

.ug-quotes__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 34px;
}

.ug-quotes__dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: var(--ug-c-grigio);
	cursor: pointer;
}

.ug-quotes__dot[aria-current="true"] {
	background: var(--ug-c-rosa);
}

@media (min-width: 760px) {
	.ug-quote {
		flex-basis: calc((100% - 56px) / 3);
	}
}

/* Senza Javascript il carosello resta un elenco leggibile */
.ug-quotes:not([data-ug-ready]) .ug-quotes__track {
	flex-wrap: wrap;
	justify-content: center;
}

.ug-quotes:not([data-ug-ready]) .ug-quotes__nav,
.ug-quotes:not([data-ug-ready]) .ug-quotes__dots {
	display: none;
}

/* --------------------------------------------------------------------------
   Voce di contatto
   -------------------------------------------------------------------------- */

.ug-contact {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
}

.ug-contact + .ug-contact {
	margin-top: 13px;
}

.ug-contact__icon {
	display: block;
	width: 17px;
	height: 17px;
	flex: none;
	color: var(--ug-c-rosa);
}

.ug-contact__text {
	font-family: var(--ug-f-testi);
	font-size: 12.5px;
	line-height: 1.5;
	color: inherit;
	text-decoration: none;
}

a.ug-contact__text:hover,
a.ug-contact__text:focus {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Pastiglia di sezione, riquadro iscrizione, mappa
   -------------------------------------------------------------------------- */

/* Tondo a cavallo fra due sezioni: meta sopra il bordo, meta sotto */
.ug-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	background: var(--ug-c-rosa);
	color: var(--ug-c-nero);
	margin: -33px auto 0;
	position: relative;
	z-index: 3;
}

.ug-badge .ug-icon {
	width: 30px;
	height: 30px;
}

.ug-newsletter {
	background: var(--ug-c-rosa);
	color: var(--ug-c-nero);
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	padding: 30px 32px;
	align-items: center;
}

@media (min-width: 820px) {
	.ug-newsletter {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 44px;
	}
}

.ug-newsletter__title {
	font-family: var(--ug-f-titoli);
	font-weight: 300;
	font-size: clamp(24px, 3vw, 32px);
	line-height: 1.1;
	color: var(--ug-c-nero);
	margin: 0;
}

.ug-newsletter .ug-rule {
	height: 2px;
	margin-block: 12px;
}

.ug-newsletter__subtitle {
	font-family: var(--ug-f-testi);
	font-size: 13.5px;
	line-height: 1.7;
	color: #4d4144;
	margin: 0;
}

.ug-newsletter__text {
	font-family: var(--ug-f-testi);
	font-size: 12.5px;
	line-height: 1.8;
	color: #51474a;
	margin: 0;
}

.ug-map {
	position: relative;
}

.ug-map__cta {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.ug-map__frame iframe {
	display: block;
	width: 100%;
	height: clamp(300px, 42vw, 520px);
	border: 0;
}

/* Segnaposto dichiarato: senza chiave API non si simula una mappa */
.ug-map__placeholder {
	height: clamp(260px, 34vw, 420px);
	background:
		repeating-linear-gradient(0deg, rgba(6, 7, 7, 0.05) 0 1px, transparent 1px 42px),
		repeating-linear-gradient(90deg, rgba(6, 7, 7, 0.05) 0 1px, transparent 1px 42px),
		var(--ug-grigio-chiaro, #f2f1f1);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ug-map__placeholder span {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ug-c-testo-tenue);
}

/* --------------------------------------------------------------------------
   Specificita

   Uncode imposta titoli e link con selettori che pesano piu di una classe
   singola, per esempio h3:not([class*="fontsize-"]) e .style-light a.
   Qui gli stessi valori gia dichiarati sopra vengono riaffermati con il
   doppio ancoraggio al componente: cosi vincono per peso del selettore e
   non serve ricorrere a !important.
   -------------------------------------------------------------------------- */

/* Titoli */
.ug-hero .ug-hero__title {
	font-size: clamp(36px, 5.4vw, 66px);
	color: var(--ug-c-nero);
}

.ug-section-title .ug-section-title__heading {
	font-size: clamp(30px, 4vw, 48px);
	font-weight: 300;
}

.ug-card .ug-card__title { font-size: 27px; }
.ug-tech .ug-tech__title { font-size: clamp(24px, 2.8vw, 34px); }
.ug-step .ug-step__title { font-size: clamp(22px, 2.4vw, 28px); }
.ug-hours .ug-hours__title { font-size: clamp(26px, 3vw, 34px); }
.ug-area .ug-area__title { font-size: 27px; }
.ug-news .ug-news__title { font-size: 23px; }

.ug-feature .ug-feature__title {
	font-family: var(--ug-f-testi);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.ug-path .ug-path__title {
	font-family: var(--ug-f-testi);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	/* inherit: sulla scheda in evidenza il testo deve restare bianco */
	color: inherit;
}

.ug-quote .ug-quote__text {
	font-family: var(--ug-f-titoli);
	font-size: 19px;
	border: 0;
	padding: 0;
}

/* Bottoni, che sono tag A e quindi ereditano il colore link del tema */
.ug-btn.ug-btn--rosa,
.ug-btn.ug-btn--rosa:hover,
.ug-btn.ug-btn--rosa:focus {
	color: var(--ug-c-nero);
}

.ug-btn.ug-btn--nero,
.ug-btn.ug-btn--nero:hover,
.ug-btn.ug-btn--nero:focus {
	color: var(--ug-c-bianco);
}

.ug-btn.ug-btn--o { color: var(--ug-c-nero); }

.ug-btn.ug-btn--o:hover,
.ug-btn.ug-btn--o:focus {
	color: var(--ug-c-bianco);
}

.ug-hours .ug-hours__book,
.ug-hours .ug-hours__book:hover,
.ug-hours .ug-hours__book:focus {
	color: var(--ug-c-bianco);
}

/* Altri link interni ai componenti */
.ug-area .ug-area__link { color: var(--ug-c-rosa-testo); }
.ug-area .ug-area__link:hover,
.ug-area .ug-area__link:focus { color: var(--ug-c-nero); }

.ug-card .ug-card__link { color: var(--ug-c-rosa-testo); }
.ug-card .ug-card__link:hover,
.ug-card .ug-card__link:focus { color: var(--ug-c-nero); }

.ug-news .ug-news__title a { color: inherit; }
.ug-news .ug-news__title a:hover,
.ug-news .ug-news__title a:focus { color: var(--ug-c-rosa-testo); }

.ug-cblock .ug-cblock__line a { color: inherit; }
.ug-feature .ug-feature__title-link { color: inherit; }

/* Titoli dei nuovi blocchi, con il doppio ancoraggio per la specificita */
.ug-newsletter .ug-newsletter__title { font-size: clamp(24px, 3vw, 32px); }
.ug-area .ug-area__link { color: var(--ug-c-rosa-testo); }
.ug-quote .ug-quote__text { font-family: var(--ug-f-testi); font-size: 14px; }

/* --------------------------------------------------------------------------
   Componenti sul lato profondo della banda sfumata

   Nella banda sfumata il lato destro e scuro: li il testo passa al bianco,
   come nel riferimento. Il lato sinistro resta scuro su chiaro.
   -------------------------------------------------------------------------- */

.ug-sezione-sfumata .ug-hours .ug-hours__title,
.ug-sezione-sfumata .ug-hours .ug-hours__day {
	color: var(--ug-c-bianco);
}

.ug-sezione-sfumata .ug-hours .ug-hours__text,
.ug-sezione-sfumata .ug-hours .ug-hours__time,
.ug-sezione-sfumata .ug-hours .ug-hours__note {
	color: #ece3e5;
}

.ug-sezione-sfumata .ug-hours .ug-hours__row {
	border-bottom-color: rgba(255, 255, 255, 0.28);
}

.ug-sezione-sfumata .ug-cblock .ug-cblock__label {
	color: var(--ug-c-bianco);
}

.ug-sezione-sfumata .ug-cblock .ug-cblock__line,
.ug-sezione-sfumata .ug-cblock .ug-cblock__line a {
	color: #ece3e5;
}

.ug-sezione-sfumata .ug-cblock .ug-cblock__line a {
	border-bottom-color: rgba(255, 255, 255, 0.45);
}

/* Riquadro iscrizione: sfumatura tutta sul lato profondo, cosi il testo
   resta bianco in ogni punto invece di cambiare colore a meta box */
.ug-newsletter {
	background: linear-gradient(100deg, #a8868f 0%, #8d6872 56%, #7e5a64 100%);
	color: var(--ug-c-bianco);
}

.ug-newsletter .ug-newsletter__title {
	color: var(--ug-c-bianco);
}

.ug-newsletter .ug-newsletter__subtitle,
.ug-newsletter .ug-newsletter__text {
	color: #ece3e5;
}

.ug-newsletter .ug-rule {
	background: var(--ug-c-bianco);
}

/* Sul lato chiaro della banda sfumata il fondo e piu carico del bianco:
   i testi scendono di tono per restare sopra il rapporto 4.5:1 */
.ug-sezione-sfumata .ug-feature .ug-feature__title,
.ug-sezione-sfumata .ug-section-title .ug-section-title__accent {
	color: var(--ug-c-nero);
}

.ug-sezione-sfumata .ug-feature .ug-feature__text {
	color: #3a3133;
}

.ug-sezione-sfumata .ug-section-title .ug-section-title__eyebrow {
	color: #5c4c51;
}

.ug-sezione-sfumata .ug-section-title .ug-rule {
	background: var(--ug-c-nero);
}

/* --------------------------------------------------------------------------
   Pastiglia della scheda in evidenza

   Era nera su testata nera: non si leggeva. Passa al rosa con testo scuro,
   cosi stacca sia dalla testata nera sia dal fondo bianco della pagina.
   -------------------------------------------------------------------------- */

.ug-path .ug-path__badge {
	background: var(--ug-c-rosa);
	color: var(--ug-c-nero);
	border: 3px solid var(--ug-c-bianco);
}

/* --------------------------------------------------------------------------
   Modulo di iscrizione dentro il riquadro
   -------------------------------------------------------------------------- */

.ug-newsletter__right {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.ug-newsletter__form form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: stretch;
	margin: 0;
}

.ug-newsletter__form p {
	margin: 0;
	display: contents;
}

.ug-newsletter__form input[type="email"] {
	flex: 1 1 13rem;
	min-width: 0;
	background: rgba(255, 255, 255, 0.92);
	border: 0;
	border-radius: 0;
	padding: 13px 15px;
	font-family: var(--ug-f-testi);
	font-size: 13px;
	color: var(--ug-c-nero);
}

.ug-newsletter__form input[type="email"]::placeholder {
	color: #7b6b70;
}

.ug-newsletter__form input[type="submit"] {
	flex: 0 0 auto;
	background: var(--ug-c-nero);
	color: var(--ug-c-bianco);
	border: 0;
	border-radius: 0;
	padding: 13px 26px;
	font-family: var(--ug-f-testi);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
}

.ug-newsletter__form input[type="submit"]:hover,
.ug-newsletter__form input[type="submit"]:focus {
	background: #2b2829;
}

/* Messaggi e avvisi di Contact Form 7, leggibili sul fondo profondo */
.ug-newsletter__form .wpcf7-not-valid-tip,
.ug-newsletter__form .wpcf7-response-output {
	flex: 1 0 100%;
	font-family: var(--ug-f-testi);
	font-size: 12px;
	color: var(--ug-c-bianco);
	border-color: rgba(255, 255, 255, 0.5);
	margin: 4px 0 0;
	padding: 6px 0 0;
}

.ug-newsletter__form .wpcf7-spinner {
	align-self: center;
}
