/**
 * Dante Galli – Elements
 *
 * Stili autonomi degli shortcode dg_* (nessuna dipendenza da classi eltdf-* o vc_*).
 * Le misure replicano quelle calcolate del tema Ambient + WPBakery 6.6 (vedi commenti).
 * Tipografia globale (h1-h6, p, body) lasciata al tema.
 */

/* ==========================================================================
   Riga: larghezza "grid" (tema: .eltdf-row-grid-section con body.eltdf-grid-1300)
   ========================================================================== */
.dg-row-grid {
	position: relative;
	width: 1100px;
	margin: 0 auto;
	z-index: 20;
}

@media only screen and (min-width: 1400px) {
	.dg-row-grid {
		width: 1300px;
	}
}

@media only screen and (max-width: 1200px) {
	.dg-row-grid {
		width: 950px;
	}
}

@media only screen and (max-width: 1024px) {
	.dg-row-grid {
		width: 768px;
	}
}

@media only screen and (max-width: 800px) {
	.dg-row-grid {
		width: 600px;
	}
}

@media only screen and (max-width: 680px) {
	.dg-row-grid {
		width: 420px;
	}
}

@media only screen and (max-width: 480px) {
	.dg-row-grid {
		width: 300px;
	}
}

@media only screen and (max-width: 320px) {
	.dg-row-grid {
		width: 95%;
	}
}

/* ==========================================================================
   Riga e colonne (WPBakery: .vc_row, .vc_column_container, .vc_column-inner)
   ========================================================================== */
.dg-row {
	margin-left: -15px;
	margin-right: -15px;
}

.dg-row::before,
.dg-row::after,
.dg-col__inner::before,
.dg-col__inner::after {
	content: " ";
	display: table;
}

.dg-row::after,
.dg-col__inner::after {
	clear: both;
}

.dg-row--align-left {
	text-align: left;
}

.dg-row--align-center {
	text-align: center;
}

.dg-row--align-right {
	text-align: right;
}

/* Sfondo fisso: effetto reale della riga "parallax" del tema (spec § 6.4). */
.dg-row--fixed-bg {
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	background-attachment: fixed;
	overflow: hidden;
}

.dg-touch .dg-row--fixed-bg {
	background-attachment: scroll;
}

.dg-col {
	position: relative;
	min-height: 1px;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

.dg-col__inner {
	box-sizing: border-box;
	width: 100%;
	padding-left: 15px;
	padding-right: 15px;
}

/* vc_row-has-fill / vc_col-has-fill: colonne con padding-top 35px (anche nella riga successiva). */
.dg-row--fill > .dg-col > .dg-col__inner,
.dg-row--fill + .dg-row > .dg-col > .dg-col__inner,
.dg-col--fill > .dg-col__inner {
	padding-top: 35px;
}

@media (min-width: 768px) {
	.dg-col--sm-1,
	.dg-col--sm-2,
	.dg-col--sm-3,
	.dg-col--sm-4,
	.dg-col--sm-5,
	.dg-col--sm-6,
	.dg-col--sm-7,
	.dg-col--sm-8,
	.dg-col--sm-9,
	.dg-col--sm-10,
	.dg-col--sm-11,
	.dg-col--sm-12,
	.dg-col--sm-1-5,
	.dg-col--sm-2-5,
	.dg-col--sm-3-5,
	.dg-col--sm-4-5,
	.dg-col--sm-5-5 {
		float: left;
	}
	.dg-col--sm-12 {
		width: 100%;
	}
	.dg-col--sm-11 {
		width: 91.66666667%;
	}
	.dg-col--sm-10 {
		width: 83.33333333%;
	}
	.dg-col--sm-9 {
		width: 75%;
	}
	.dg-col--sm-8 {
		width: 66.66666667%;
	}
	.dg-col--sm-7 {
		width: 58.33333333%;
	}
	.dg-col--sm-6 {
		width: 50%;
	}
	.dg-col--sm-5 {
		width: 41.66666667%;
	}
	.dg-col--sm-4 {
		width: 33.33333333%;
	}
	.dg-col--sm-3 {
		width: 25%;
	}
	.dg-col--sm-2 {
		width: 16.66666667%;
	}
	.dg-col--sm-1 {
		width: 8.33333333%;
	}
	.dg-col--sm-1-5 {
		width: 20%;
	}
	.dg-col--sm-2-5 {
		width: 40%;
	}
	.dg-col--sm-3-5 {
		width: 60%;
	}
	.dg-col--sm-4-5 {
		width: 80%;
	}
	.dg-col--sm-5-5 {
		width: 100%;
	}
	.dg-col--sm-offset-11 {
		margin-left: 91.66666667%;
	}
	.dg-col--sm-offset-10 {
		margin-left: 83.33333333%;
	}
	.dg-col--sm-offset-9 {
		margin-left: 75%;
	}
	.dg-col--sm-offset-8 {
		margin-left: 66.66666667%;
	}
	.dg-col--sm-offset-7 {
		margin-left: 58.33333333%;
	}
	.dg-col--sm-offset-6 {
		margin-left: 50%;
	}
	.dg-col--sm-offset-5 {
		margin-left: 41.66666667%;
	}
	.dg-col--sm-offset-4 {
		margin-left: 33.33333333%;
	}
	.dg-col--sm-offset-3 {
		margin-left: 25%;
	}
	.dg-col--sm-offset-2 {
		margin-left: 16.66666667%;
	}
	.dg-col--sm-offset-1 {
		margin-left: 8.33333333%;
	}
	.dg-col--sm-offset-0 {
		margin-left: 0;
	}
}

@media (min-width: 992px) {
	.dg-col--md-1,
	.dg-col--md-2,
	.dg-col--md-3,
	.dg-col--md-4,
	.dg-col--md-5,
	.dg-col--md-6,
	.dg-col--md-7,
	.dg-col--md-8,
	.dg-col--md-9,
	.dg-col--md-10,
	.dg-col--md-11,
	.dg-col--md-12,
	.dg-col--md-1-5,
	.dg-col--md-2-5,
	.dg-col--md-3-5,
	.dg-col--md-4-5,
	.dg-col--md-5-5 {
		float: left;
	}
	.dg-col--md-12 {
		width: 100%;
	}
	.dg-col--md-11 {
		width: 91.66666667%;
	}
	.dg-col--md-10 {
		width: 83.33333333%;
	}
	.dg-col--md-9 {
		width: 75%;
	}
	.dg-col--md-8 {
		width: 66.66666667%;
	}
	.dg-col--md-7 {
		width: 58.33333333%;
	}
	.dg-col--md-6 {
		width: 50%;
	}
	.dg-col--md-5 {
		width: 41.66666667%;
	}
	.dg-col--md-4 {
		width: 33.33333333%;
	}
	.dg-col--md-3 {
		width: 25%;
	}
	.dg-col--md-2 {
		width: 16.66666667%;
	}
	.dg-col--md-1 {
		width: 8.33333333%;
	}
	.dg-col--md-1-5 {
		width: 20%;
	}
	.dg-col--md-2-5 {
		width: 40%;
	}
	.dg-col--md-3-5 {
		width: 60%;
	}
	.dg-col--md-4-5 {
		width: 80%;
	}
	.dg-col--md-5-5 {
		width: 100%;
	}
	.dg-col--md-offset-11 {
		margin-left: 91.66666667%;
	}
	.dg-col--md-offset-10 {
		margin-left: 83.33333333%;
	}
	.dg-col--md-offset-9 {
		margin-left: 75%;
	}
	.dg-col--md-offset-8 {
		margin-left: 66.66666667%;
	}
	.dg-col--md-offset-7 {
		margin-left: 58.33333333%;
	}
	.dg-col--md-offset-6 {
		margin-left: 50%;
	}
	.dg-col--md-offset-5 {
		margin-left: 41.66666667%;
	}
	.dg-col--md-offset-4 {
		margin-left: 33.33333333%;
	}
	.dg-col--md-offset-3 {
		margin-left: 25%;
	}
	.dg-col--md-offset-2 {
		margin-left: 16.66666667%;
	}
	.dg-col--md-offset-1 {
		margin-left: 8.33333333%;
	}
	.dg-col--md-offset-0 {
		margin-left: 0;
	}
}

@media (min-width: 1200px) {
	.dg-col--lg-1,
	.dg-col--lg-2,
	.dg-col--lg-3,
	.dg-col--lg-4,
	.dg-col--lg-5,
	.dg-col--lg-6,
	.dg-col--lg-7,
	.dg-col--lg-8,
	.dg-col--lg-9,
	.dg-col--lg-10,
	.dg-col--lg-11,
	.dg-col--lg-12,
	.dg-col--lg-1-5,
	.dg-col--lg-2-5,
	.dg-col--lg-3-5,
	.dg-col--lg-4-5,
	.dg-col--lg-5-5 {
		float: left;
	}
	.dg-col--lg-12 {
		width: 100%;
	}
	.dg-col--lg-11 {
		width: 91.66666667%;
	}
	.dg-col--lg-10 {
		width: 83.33333333%;
	}
	.dg-col--lg-9 {
		width: 75%;
	}
	.dg-col--lg-8 {
		width: 66.66666667%;
	}
	.dg-col--lg-7 {
		width: 58.33333333%;
	}
	.dg-col--lg-6 {
		width: 50%;
	}
	.dg-col--lg-5 {
		width: 41.66666667%;
	}
	.dg-col--lg-4 {
		width: 33.33333333%;
	}
	.dg-col--lg-3 {
		width: 25%;
	}
	.dg-col--lg-2 {
		width: 16.66666667%;
	}
	.dg-col--lg-1 {
		width: 8.33333333%;
	}
	.dg-col--lg-1-5 {
		width: 20%;
	}
	.dg-col--lg-2-5 {
		width: 40%;
	}
	.dg-col--lg-3-5 {
		width: 60%;
	}
	.dg-col--lg-4-5 {
		width: 80%;
	}
	.dg-col--lg-5-5 {
		width: 100%;
	}
	.dg-col--lg-offset-11 {
		margin-left: 91.66666667%;
	}
	.dg-col--lg-offset-10 {
		margin-left: 83.33333333%;
	}
	.dg-col--lg-offset-9 {
		margin-left: 75%;
	}
	.dg-col--lg-offset-8 {
		margin-left: 66.66666667%;
	}
	.dg-col--lg-offset-7 {
		margin-left: 58.33333333%;
	}
	.dg-col--lg-offset-6 {
		margin-left: 50%;
	}
	.dg-col--lg-offset-5 {
		margin-left: 41.66666667%;
	}
	.dg-col--lg-offset-4 {
		margin-left: 33.33333333%;
	}
	.dg-col--lg-offset-3 {
		margin-left: 25%;
	}
	.dg-col--lg-offset-2 {
		margin-left: 16.66666667%;
	}
	.dg-col--lg-offset-1 {
		margin-left: 8.33333333%;
	}
	.dg-col--lg-offset-0 {
		margin-left: 0;
	}
}

/* ==========================================================================
   Spaziatore, testo, immagine
   ========================================================================== */

/* vc_column_text: l'ultimo elemento non ha margine inferiore. */
.dg-text :last-child,
.dg-text p:last-child {
	margin-bottom: 0;
}

.dg-image--align-left {
	text-align: left;
}

.dg-image--align-center {
	text-align: center;
}

.dg-image--align-right {
	text-align: right;
}

.dg-image__figure {
	display: inline-block;
	vertical-align: top;
	max-width: 100%;
	margin: 0;
}

.dg-image__wrap {
	display: inline-block;
	vertical-align: top;
	max-width: 100%;
}

a.dg-image__wrap {
	border: none;
	outline: 0;
}

.dg-image__img {
	height: auto;
	max-width: 100%;
	vertical-align: top;
}

/* ==========================================================================
   Blocchi (tema: .eltdf-elements-holder / -item)
   ========================================================================== */
.dg-blocks {
	width: 100%;
	display: table;
	table-layout: fixed;
}

.dg-blocks--border {
	border: 1px solid #ebebeb;
}

.dg-block {
	position: relative;
	display: table-cell;
	vertical-align: middle;
	height: 100%;
	background-position: center;
	background-size: cover;
}

.dg-block--w-1-1 {
	width: 100%;
}

.dg-block--w-1-2 {
	width: 50%;
}

.dg-block--w-1-3 {
	width: 33.3333%;
}

.dg-block--w-2-3 {
	width: 66.6666%;
}

.dg-block--w-1-4 {
	width: 25%;
}

.dg-block--w-3-4 {
	width: 75%;
}

.dg-block--w-1-5 {
	width: 20%;
}

.dg-block--w-2-5 {
	width: 40%;
}

.dg-block--w-3-5 {
	width: 60%;
}

.dg-block--w-4-5 {
	width: 80%;
}

.dg-block--w-1-6 {
	width: 16.6666%;
}

.dg-block--w-5-6 {
	width: 83.3333%;
}

.dg-block--valign-top {
	vertical-align: top;
}

.dg-block--valign-bottom {
	vertical-align: bottom;
}

.dg-block--align-left {
	text-align: left;
}

.dg-block--align-center {
	text-align: center;
}

.dg-block--align-right {
	text-align: right;
}

.dg-block__link {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	width: 100%;
	height: 100%;
	line-height: 0;
}

/*
 * Zoom (spec § 3): immagine in un livello dedicato dietro al contenuto.
 * isolation crea il contesto di impilamento sul blocco, così z-index:-1 resta sopra
 * gli sfondi degli antenati anche senza il tema.
 */
.dg-block--zoom {
	overflow: hidden;
	isolation: isolate;
}

.dg-block__bg {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	transition: transform 0.4s ease;
	will-change: transform;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
}

.dg-block--zoom:hover > .dg-block__bg {
	transform: scale(1.03);
}

/*
 * Padding del contenuto. Base del tema: 0 20px (0 10px sotto 480px).
 * Le fasce replicano le media query generate dal JS del tema (SC.js), nello stesso ordine:
 * 1280-1600 (padding_1440), 1024-1280, 768-1024, 600-768, 480-600, <=480.
 * Ai bordi (1280, 1024, 768, 600, 480 px) due fasce si sovrappongono e vince la più stretta,
 * con ripiego sulla più larga se la più stretta non è impostata: le regole "width:" lo replicano.
 */
.dg-block {
	--dg-p: initial;
	--dg-p-1440: initial;
	--dg-p-1280: initial;
	--dg-p-1024: initial;
	--dg-p-768: initial;
	--dg-p-600: initial;
	--dg-p-480: initial;
}

.dg-block__content {
	padding: var(--dg-p, 0 20px);
}

@media only screen and (max-width: 480px) {
	.dg-block__content {
		padding: var(--dg-p, 0 10px);
	}
}

@media only screen and (min-width: 1280px) and (max-width: 1600px) {
	.dg-block__content {
		padding: var(--dg-p-1440, var(--dg-p, 0 20px));
	}
}

@media only screen and (min-width: 1024px) and (max-width: 1280px) {
	.dg-block__content {
		padding: var(--dg-p-1280, var(--dg-p, 0 20px));
	}
}

@media only screen and (width: 1280px) {
	.dg-block__content {
		padding: var(--dg-p-1280, var(--dg-p-1440, var(--dg-p, 0 20px)));
	}
}

@media only screen and (min-width: 768px) and (max-width: 1024px) {
	.dg-block__content {
		padding: var(--dg-p-1024, var(--dg-p, 0 20px));
	}
}

@media only screen and (width: 1024px) {
	.dg-block__content {
		padding: var(--dg-p-1024, var(--dg-p-1280, var(--dg-p, 0 20px)));
	}
}

@media only screen and (min-width: 600px) and (max-width: 768px) {
	.dg-block__content {
		padding: var(--dg-p-768, var(--dg-p, 0 20px));
	}
}

@media only screen and (width: 768px) {
	.dg-block__content {
		padding: var(--dg-p-768, var(--dg-p-1024, var(--dg-p, 0 20px)));
	}
}

@media only screen and (min-width: 480px) and (max-width: 600px) {
	.dg-block__content {
		padding: var(--dg-p-600, var(--dg-p, 0 20px));
	}
}

@media only screen and (width: 600px) {
	.dg-block__content {
		padding: var(--dg-p-600, var(--dg-p-768, var(--dg-p, 0 20px)));
	}
}

@media only screen and (max-width: 480px) {
	.dg-block__content {
		padding: var(--dg-p-480, var(--dg-p, 0 10px));
	}
}

@media only screen and (width: 480px) {
	.dg-block__content {
		padding: var(--dg-p-480, var(--dg-p-600, var(--dg-p, 0 10px)));
	}
}

/* Passaggio a una colonna (tema: .eltdf-responsive-mode-N). */
@media only screen and (max-width: 1440px) {
	.dg-blocks--stack-1440 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-1440.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-1440.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-1440.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}

@media only screen and (max-width: 1280px) {
	.dg-blocks--stack-1280 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-1280.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-1280.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-1280.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}

@media only screen and (max-width: 1024px) {
	.dg-blocks--stack-1024 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-1024.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-1024.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-1024.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}

@media only screen and (max-width: 768px) {
	.dg-blocks--stack-768 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-768.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-768.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-768.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}

@media only screen and (max-width: 600px) {
	.dg-blocks--stack-600 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-600.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-600.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-600.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}

@media only screen and (max-width: 480px) {
	.dg-blocks--stack-480 > .dg-block {
		display: inline-block;
		width: 100%;
		height: auto;
	}

	.dg-blocks--stack-480.dg-blocks--one-col-left > .dg-block > .dg-block__content {
		text-align: left;
	}

	.dg-blocks--stack-480.dg-blocks--one-col-center > .dg-block > .dg-block__content {
		text-align: center;
	}

	.dg-blocks--stack-480.dg-blocks--one-col-right > .dg-block > .dg-block__content {
		text-align: right;
	}
}


/* ==========================================================================
   Animazioni di comparsa (spec § 0-2)
   Lo stato iniziale nascosto vale solo con html.dg-js e senza prefers-reduced-motion.
   La classe dg-animated viene aggiunta da dg-elements.js (IntersectionObserver).
   ========================================================================== */

/* from-bottom: layout del contenitore come .eltdf-element-from-bottom (sempre attivo). */
.dg-animate.dg-anim--from-bottom,
.dg-animate.dg-anim--from-bottom > .dg-animate__inner {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: middle;
}

@keyframes dg-from-bottom {
	0% {
		opacity: 0;
		transform: translate3d(0, 30%, 0);
	}

	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@media (prefers-reduced-motion: no-preference) {

	/* from-bottom: anima il figlio diretto, 0.55s ease, una volta; il ritardo è un setTimeout in JS. */
	.dg-js .dg-anim--from-bottom > .dg-anim__target {
		opacity: 0;
	}

	.dg-js .dg-anim--from-bottom.dg-animated > .dg-anim__target {
		opacity: 1;
		animation: dg-from-bottom 0.55s 1 ease;
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
	}

	/* fade-in: anima l'elemento stesso, solo opacity, 1s ease; il ritardo è transition-delay inline. */
	.dg-js .dg-anim--fade-in {
		opacity: 0;
		transition: opacity 1s ease;
	}

	.dg-js .dg-anim--fade-in.dg-animated {
		opacity: 1;
	}
}

/* ==========================================================================
   Utilità
   ========================================================================== */
.dg-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* SVG generati da Icons::svg(): alti 1em come il glifo del font d'origine. */
.dg-svg {
	display: block;
	overflow: visible;
}

/* ==========================================================================
   Separatore (tema: .eltdf-separator-holder / .eltdf-separator)
   ========================================================================== */
.dg-separator-holder {
	position: relative;
	height: auto;
	font-size: 0;
	line-height: 1em;
}

.dg-separator-holder::before,
.dg-separator-holder::after {
	content: " ";
	display: table;
}

.dg-separator-holder::after {
	clear: both;
}

.dg-separator-holder--center {
	text-align: center;
}

.dg-separator-holder--left {
	text-align: left;
}

.dg-separator-holder--right {
	text-align: right;
}

.dg-separator {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	margin: 10px 0;
	border-bottom: 1px solid #c3b380;
}

.dg-separator-holder--full-width .dg-separator {
	width: 100% !important;
}

/* ==========================================================================
   Icon box (tema: .eltdf-iwt)
   ========================================================================== */
.dg-icon-box {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: middle;
}

.dg-icon-box::before,
.dg-icon-box::after {
	content: " ";
	display: table;
}

.dg-icon-box::after {
	clear: both;
}

.dg-icon-box__icon a {
	position: relative;
	display: inline-block;
	vertical-align: middle;
}

/* Glifo: come .eltdf-icon-shortcode (inline-block, line-height 1) con l'icona in un blocco alto 1em. */
.dg-icon-box__glyph {
	position: relative;
	display: inline-block;
	vertical-align: middle;
	line-height: 1;
	transition: color 0.15s ease-out;
}

.dg-icon-box__title {
	margin: 0;
}

.dg-icon-box__text {
	margin: 9px 0 0;
}

.dg-icon-box--icon-left {
	width: auto;
}

.dg-icon-box--icon-left > .dg-icon-box__icon,
.dg-icon-box--icon-left > .dg-icon-box__content {
	display: table-cell;
	vertical-align: top;
}

.dg-icon-box--icon-left > .dg-icon-box__icon {
	position: relative;
	top: 1px;
}

.dg-icon-box--icon-left > .dg-icon-box__icon img {
	max-width: none;
}

.dg-icon-box--icon-left > .dg-icon-box__content {
	padding: 0 0 0 11px;
}

.dg-icon-box--icon-top {
	text-align: center;
}

.dg-icon-box--icon-top > .dg-icon-box__content {
	padding: 13px 0 0;
}

/* ==========================================================================
   Icona singola / social (tema: .eltdf-icon-shortcode eltdf-normal)
   Il glifo occupa una riga alta quanto la line-height ereditata, centrato come il carattere.
   ========================================================================== */
.dg-icon {
	position: relative;
	display: inline-block;
	vertical-align: middle;
}

.dg-icon__glyph {
	display: block;
	color: var(--dg-icon-color, inherit);
	transition: color 0.15s ease-out;
}

.dg-icon__glyph .dg-svg {
	margin: calc((1lh - 1em) / 2) 0;
}

.dg-icon:hover .dg-icon__glyph,
.dg-icon__link:focus-visible .dg-icon__glyph {
	color: var(--dg-icon-hover-color, var(--dg-icon-color, inherit));
}

/* ==========================================================================
   Accordion (tema: .eltdf-accordion-holder.eltdf-ac-boxed, spec § 8.3)
   ========================================================================== */
.dg-accordion {
	position: relative;
	display: inline-block;
	width: 100%;
	vertical-align: middle;
}

.dg-accordion::before,
.dg-accordion::after {
	content: " ";
	display: table;
}

.dg-accordion::after {
	clear: both;
}

.dg-accordion__header {
	margin: 15px 0 0;
	padding: 0;
}

.dg-accordion__header:first-child {
	margin: 0;
}

.dg-accordion__trigger {
	position: relative;
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 11px 0 11px 40px;
	border: 0;
	border-radius: 0;
	background-color: #ebebeb;
	color: #373737;
	font: inherit;
	font-weight: 400;
	line-height: 26px;
	letter-spacing: 1px;
	text-align: left;
	text-transform: uppercase;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transform: translateZ(0);
	transition: color 0.2s ease-out, background-color 0.2s ease-out;
}

.dg-accordion__title {
	display: block;
	color: #373737;
	font-weight: 400;
	line-height: inherit;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.dg-accordion__mark {
	position: absolute;
	top: 50%;
	left: 10px;
	width: 20px;
	height: 18px;
	margin: -1px 0 0;
	color: #373737;
	font-size: 18px;
	line-height: 18px;
	text-align: center;
	transform: translateY(-50%);
}

.dg-accordion__plus,
.dg-accordion__minus {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	transition: opacity 0.2s ease-out;
}

.dg-accordion__mark .dg-svg {
	margin: 0 auto;
}

.dg-accordion__plus {
	opacity: 1;
}

.dg-accordion__minus {
	opacity: 0;
}

.dg-accordion__header.is-active .dg-accordion__trigger,
.dg-accordion__trigger:hover {
	background-color: #373737;
	color: #fff;
}

.dg-accordion__header.is-active .dg-accordion__title,
.dg-accordion__header.is-active .dg-accordion__mark,
.dg-accordion__trigger:hover .dg-accordion__title,
.dg-accordion__trigger:hover .dg-accordion__mark {
	color: #fff;
}

.dg-accordion__header.is-active .dg-accordion__plus,
.dg-accordion__trigger:hover .dg-accordion__plus {
	opacity: 0;
}

.dg-accordion__header.is-active .dg-accordion__minus,
.dg-accordion__trigger:hover .dg-accordion__minus {
	opacity: 1;
}

.dg-accordion__panel {
	box-sizing: content-box;
	padding: 21px 0 6px;
}

.dg-accordion__panel p {
	margin: 0;
}

/* Pannelli chiusi nascosti solo se il JS è attivo. */
.dg-js .dg-accordion__panel:not(.is-open) {
	display: none;
}

/* Mappa come immagine: altezza in proporzione alla larghezza, quadrata su mobile (come la mappa sostituita). */
.dg-map {
	position: relative;
	overflow: hidden;
	height: 0;
	padding-bottom: var(--dg-map-ratio, 30%);
	background-color: #e8e8e8;
}

.dg-map__link {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: block;
	color: inherit;
}

.dg-map__img {
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: none;
	object-position: center center;
}

.dg-map__pin {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 25px;
	height: 41px;
	transform: translate(-50%, -100%);
}

.dg-map__pin svg {
	display: block;
	filter: drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.35));
}

.dg-map__popup {
	position: absolute;
	bottom: calc(50% + 50px);
	left: 50%;
	display: block;
	padding: 10px 16px;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 3px 14px rgba(0, 0, 0, 0.3);
	color: #333;
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 13px;
	line-height: 1.4;
	text-align: center;
	white-space: nowrap;
	opacity: 0;
	transform: translateX(-50%);
	transition: opacity 0.2s;
	pointer-events: none;
}

.dg-map__link:hover .dg-map__popup,
.dg-map__link:focus-visible .dg-map__popup {
	opacity: 1;
}

.dg-map__credit {
	position: absolute;
	right: 0;
	bottom: 0;
	padding: 0 5px;
	background: rgba(255, 255, 255, 0.7);
	color: #333;
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 11px;
	line-height: 1.5;
}

@media only screen and (max-width: 576px) {
	.dg-map {
		padding-bottom: 100%;
	}
}

/* Oltre la larghezza dell'immagine si ingrandisce, altrimenti resterebbero bordi vuoti. */
@media only screen and (min-width: 2561px) {
	.dg-map__img {
		object-fit: cover;
	}
}

/* Mappa interattiva sopra l'immagine: se le tile mancano, attraverso lo sfondo trasparente resta l'immagine. */
.dg-map {
	isolation: isolate;
}

.dg-map__live {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
}

.dg-map .leaflet-container {
	background: transparent;
}

.dg-map .leaflet-tile-pane {
	filter: grayscale(1) contrast(0.85) brightness(1.08);
}

/* Lo stile Mapbox ha già i suoi colori. */
.dg-map--mapbox .leaflet-tile-pane {
	filter: none;
}

.dg-map__mapbox-logo {
	display: block;
	margin: 0 0 6px 6px;
	line-height: 0;
}

.dg-map__mapbox-logo img {
	display: block;
	width: 88px;
	height: 23px;
}

/*
 * Con il JS attivo, finché le tile non sono arrivate si vede solo il fondo grigio, poi la mappa compare in dissolvenza.
 * L'immagine statica è la riserva: compare dopo 8 secondi se la mappa non è pronta (Leaflet o tile che non
 * arrivano, script bloccato). Senza JS non si applica nulla e resta visibile l'immagine.
 */
.dg-js .dg-map[data-dg-map] .dg-map__link,
.dg-js .dg-map[data-dg-map] .dg-map__credit {
	visibility: hidden;
	animation: dg-map-fallback 0s 8s forwards;
}

.dg-js .dg-map[data-dg-map] .dg-map__live {
	visibility: hidden;
	opacity: 0;
}

.dg-js .dg-map[data-dg-map].is-ready .dg-map__live {
	visibility: visible;
	opacity: 1;
	transition: opacity 0.4s ease-out;
}

.dg-js .dg-map[data-dg-map].is-ready .dg-map__link,
.dg-js .dg-map[data-dg-map].is-ready .dg-map__credit {
	visibility: hidden;
	animation: none;
}

/* Finché Leaflet non l'ha riempito il contenitore è vuoto: non deve coprire il link dell'immagine. */
.dg-map:not(.is-live) .dg-map__live {
	pointer-events: none;
}

@keyframes dg-map-fallback {
	to {
		visibility: visible;
	}
}

.dg-map__marker svg {
	display: block;
	filter: drop-shadow(1px 2px 2px rgba(0, 0, 0, 0.35));
}

.dg-map .leaflet-popup-content {
	text-align: center;
}

.dg-map__hint {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	max-width: 80%;
	padding: 10px 16px;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.72);
	color: #fff;
	font-size: 14px;
	line-height: 1.4;
	text-align: center;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -50%);
	transition: opacity 0.2s;
}

.dg-map__hint.is-visible {
	opacity: 1;
}

@media only screen and (max-width: 576px) {
	.dg-map .leaflet-control-zoom {
		display: none;
	}
}
