
:root{
	--ems-purple:#6e2e91;
	--ems-purple-dark:#52326f;
	--ems-green:#3b8a48;
	--ems-sage:#cde5c8;
	--ems-blue:#bbddf2;
	--ems-ochre:#f5cc76;
	--ems-coral:#ef8979;
	--ems-cream:#fff9ed;
	--ems-ink:#314037;
}

.ems-child-main{
	background:var(--ems-cream);
	color:var(--ems-ink);
	min-height:70vh;
	padding:48px 20px 80px;
}

.ems-child-shell{
	width:min(1180px,100%);
	margin:0 auto;
}

.ems-child-eyebrow{
	margin:0 0 10px;
	color:var(--ems-green);
	font-size:13px;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
}

.ems-child-hero{
	margin-bottom:34px;
}

.ems-child-hero h1,
.ems-child-project__header h1,
.ems-child-press__header h1{
	margin:0;
	color:var(--ems-purple-dark);
	font-size:clamp(42px,7vw,76px);
	line-height:.98;
	letter-spacing:-.04em;
}

.ems-child-hero>p:last-child{
	max-width:720px;
	font-size:20px;
	line-height:1.5;
}

.ems-project-archive-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:22px;
}

.ems-project-archive-card{
	overflow:hidden;
	border-radius:22px;
	background:#fff;
	border:1px solid rgba(82,50,111,.12);
	box-shadow:0 10px 32px rgba(49,64,55,.05);
}

.ems-project-archive-card__media{
	display:block;
	height:260px;
	background:linear-gradient(145deg,var(--ems-sage),var(--ems-blue));
}

.ems-project-archive-card__media img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
}

.ems-project-archive-card__placeholder{
	height:100%;
	display:grid;
	place-items:center;
	color:var(--ems-purple-dark);
	font-size:56px;
	font-weight:900;
}

.ems-project-archive-card__body{
	padding:24px;
}

.ems-project-archive-card__meta,
.ems-child-project__quick{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	align-items:center;
	color:#68776e;
	font-size:13px;
	font-weight:700;
}

.ems-project-badge{
	display:inline-flex;
	padding:5px 9px;
	border-radius:999px;
	background:var(--ems-ochre);
	color:var(--ems-purple-dark);
}

.ems-project-archive-card h2{
	margin:12px 0 8px;
	font-size:28px;
	line-height:1.12;
}

.ems-project-archive-card h2 a{
	color:var(--ems-purple-dark);
	text-decoration:none;
}

.ems-project-place{
	color:var(--ems-green);
	font-weight:800;
}

.ems-child-link{
	display:inline-flex;
	align-items:center;
	gap:6px;
	color:var(--ems-purple);
	font-weight:800;
	text-decoration:none;
}

.ems-child-project__header{
	width:min(1180px,100%);
	margin:0 auto 30px;
}

.ems-child-project__quick{
	margin:16px 0 22px;
}

.ems-child-project__quick span{
	padding:7px 11px;
	border-radius:999px;
	background:#fff;
	border:1px solid rgba(82,50,111,.12);
}

.ems-child-project__image,
.ems-child-press__image{
	margin-top:24px;
	overflow:hidden;
	border-radius:26px;
	max-height:620px;
}

.ems-child-project__image img,
.ems-child-press__image img{
	display:block;
	width:100%;
	height:auto;
}

.ems-child-project__content,
.ems-child-press__content{
	max-width:900px;
	font-size:18px;
	line-height:1.7;
}

.ems-child-project__content{
	margin-top:26px;
}

.ems-child-project__footer,
.ems-child-press__footer{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	gap:16px;
	margin-top:36px;
	padding-top:22px;
	border-top:1px solid rgba(82,50,111,.14);
}

.ems-child-press{
	max-width:1000px;
}

.ems-child-press__header{
	margin-bottom:22px;
}

.ems-child-press__date{
	margin:14px 0 0;
	color:var(--ems-green);
	font-weight:800;
}

.ems-child-empty{
	padding:36px;
	border-radius:22px;
	background:#fff;
	border:1px solid rgba(82,50,111,.12);
}

.ems-child-pagination{
	margin-top:34px;
}

@media(max-width:800px){
	.ems-project-archive-grid{
		grid-template-columns:1fr;
	}
}

@media(max-width:620px){
	.ems-child-main{
		padding-left:14px;
		padding-right:14px;
	}

	.ems-project-archive-card__media{
		height:210px;
	}

	.ems-child-project__footer,
	.ems-child-press__footer{
		flex-direction:column;
	}
}


/* Home: anni reali della Biblioteca della Memoria */
[data-ems-memory-year]:focus-visible {
	outline: 3px solid var(--ems-purple);
	outline-offset: 3px;
}


/* Home dinamica: i blocchi EMS Core ereditano lo spazio del tema. */
.ems-dynamic-home-host {
	width: 100%;
}

#ems-home-dynamic-templates[hidden] {
	display: none !important;
}


/* EMS Theme Child 0.4.0 — navigazione Home e mappa */

[data-ems-nav-link="1"],
[data-ems-map-linked="1"] {
	cursor: pointer;
}

[data-ems-nav-link="1"]:focus-visible,
[data-ems-map-linked="1"]:focus-visible {
	outline: 3px solid var(--ems-purple);
	outline-offset: 4px;
}

/*
 * La 0.4.0 non aggiunge più automaticamente sezioni Articoli/Progetti
 * in fondo alla Home. Le sezioni dinamiche verranno integrate soltanto
 * negli spazi grafici corretti del layout.
 */
.ems-dynamic-home-host {
	display: contents;
}


/* EMS Theme Child 0.5.0 — Contatti e Condividiamo i nostri ricordi */

.ems-info-page__hero {
	max-width: 850px;
	margin-bottom: 34px;
}

.ems-info-page__hero h1 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: clamp(42px, 7vw, 72px);
	line-height: 1;
	letter-spacing: -.04em;
}

.ems-info-page__hero > p:last-child {
	max-width: 720px;
	font-size: 20px;
	line-height: 1.5;
}

.ems-info-page__content {
	max-width: 1000px;
}

.ems-contact-intro,
.ems-memory-contribution-intro {
	margin-bottom: 26px;
	padding: 24px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
}

.ems-contact-kicker {
	margin: 0 0 8px;
	color: var(--ems-green);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ems-contact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.ems-contact-card {
	padding: 22px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
}

.ems-contact-card--wide {
	grid-column: 1 / -1;
}

.ems-contact-card h2,
.ems-contact-cta h2,
.ems-contribution-rules h2,
.ems-contribution-auth h2,
.ems-contribution-send h2,
.ems-memory-contribution-intro h2 {
	margin-top: 0;
	color: var(--ems-purple-dark);
}

.ems-contact-card a {
	color: var(--ems-purple);
	font-weight: 750;
	text-decoration: none;
	word-break: break-word;
}

.ems-contact-cta,
.ems-contribution-rules,
.ems-contribution-auth,
.ems-contribution-send {
	margin-top: 20px;
	padding: 24px;
	border-radius: 22px;
	background: var(--ems-cream);
	border: 1px solid rgba(82,50,111,.12);
}

.ems-contribution-rules ol {
	margin: 18px 0 0;
	padding-left: 22px;
}

.ems-contribution-rules li + li {
	margin-top: 14px;
}

.ems-contribution-auth blockquote {
	margin: 18px 0;
	padding: 20px 22px;
	border-left: 5px solid var(--ems-purple);
	border-radius: 0 16px 16px 0;
	background: #fff;
	color: var(--ems-ink);
	font-style: italic;
}

.ems-contribution-send {
	background:
		radial-gradient(circle at 90% 20%, rgba(187,221,242,.72) 0 62px, transparent 63px),
		var(--ems-sage);
}

.ems-page-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border-radius: 999px;
	background: var(--ems-purple);
	color: #fff;
	text-decoration: none;
	font-weight: 800;
}

.ems-page-actions {
	display: grid;
	gap: 16px;
	margin-top: 22px;
}

.ems-page-action-card {
	display: block;
	padding: 22px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	text-decoration: none;
}

.ems-page-action-card strong {
	display: block;
	color: var(--ems-purple-dark);
	font-size: 22px;
}

.ems-page-action-card span {
	display: block;
	margin-top: 7px;
	color: #59675e;
	line-height: 1.5;
}

@media (max-width: 700px) {
	.ems-contact-grid {
		grid-template-columns: 1fr;
	}

	.ems-contact-card--wide {
		grid-column: auto;
	}
}


/* EMS Theme Child 0.6.1 — Materiali della Biblioteca */
.ems-memory-single__header {
	max-width: 920px;
	margin-bottom: 28px;
}

.ems-memory-single__header h1 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: clamp(38px, 6vw, 68px);
	line-height: 1.02;
	letter-spacing: -.035em;
}

.ems-memory-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 9px 16px;
	margin-top: 16px;
	color: #66746b;
	font-size: 14px;
	font-weight: 700;
}

.ems-memory-single__cover {
	margin: 0 0 28px;
	overflow: hidden;
	border-radius: 22px;
}

.ems-memory-single__cover img {
	display: block;
	width: 100%;
	height: auto;
}

.ems-memory-single__content {
	max-width: 920px;
	font-size: 18px;
	line-height: 1.65;
}

.ems-memory-single__content .wp-block-image {
	margin: 24px 0;
}

.ems-memory-single__content .wp-block-image img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.ems-memory-single__details {
	max-width: 920px;
	margin-top: 32px;
	padding: 22px;
	border-radius: 20px;
	background: var(--ems-cream);
	border: 1px solid rgba(82,50,111,.12);
}

.ems-memory-single__details h2 {
	margin-top: 0;
	color: var(--ems-purple-dark);
}

.ems-memory-single__details a {
	color: var(--ems-purple);
	font-weight: 750;
}

.ems-memory-single__footer {
	margin-top: 30px;
}


/* EMS Theme Child 0.6.2 — Moduli */
.ems-info-page__content .ems-contact-form-wrap {
	margin-top: 26px;
}

.ems-info-page__content .ems-contact-form {
	box-shadow: 0 14px 40px rgba(82,50,111,.06);
}

.ems-info-page__content .ems-form-submit {
	min-height: 48px;
	border: 0;
	border-radius: 999px;
	padding: 0 22px;
	background: var(--ems-purple);
	color: #fff;
	font-weight: 800;
}


/* EMS Theme Child 0.7.0 — Home e Sostienici */

#ems-home-templates-070[hidden] {
	display: none !important;
}

.ems-home-support-strip {
	width: min(1180px, calc(100% - 32px));
	margin: 60px auto;
	padding: 32px 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	border-radius: 30px;
	background:
		radial-gradient(circle at 88% 25%, rgba(245,204,118,.55) 0 85px, transparent 86px),
		var(--ems-purple-dark);
	color: #fff;
}

.ems-home-support-strip__eyebrow {
	margin: 0 0 7px;
	color: var(--ems-ochre);
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .1em;
}

.ems-home-support-strip h2 {
	margin: 0;
	font-size: clamp(31px, 5vw, 50px);
	line-height: 1;
}

.ems-home-support-strip p:last-child {
	max-width: 760px;
	margin-bottom: 0;
	font-size: 17px;
	line-height: 1.5;
}

.ems-home-support-strip > a {
	display: inline-flex;
	flex: 0 0 auto;
	padding: 13px 20px;
	border-radius: 999px;
	background: #fff;
	color: var(--ems-purple-dark);
	text-decoration: none;
	font-weight: 900;
}

.ems-support-page__content {
	max-width: 1000px;
}

.ems-support-story,
.ems-support-five,
.ems-support-impact,
.ems-support-voluntary,
.ems-support-close {
	margin: 0 0 22px;
	padding: clamp(24px, 4vw, 38px);
	border-radius: 26px;
	border: 1px solid rgba(82,50,111,.11);
	background: #fff;
}

.ems-support-five {
	background:
		radial-gradient(circle at 92% 12%, rgba(245,204,118,.7) 0 95px, transparent 96px),
		var(--ems-cream);
}

.ems-support-impact {
	background: var(--ems-sage);
}

.ems-support-close {
	background: var(--ems-purple-dark);
	color: #fff;
}

.ems-support-close h2 {
	color: #fff;
}

.ems-support-tax-code {
	display: inline-block;
	margin: 18px 0;
	padding: 18px 24px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(82,50,111,.08);
}

.ems-support-tax-code p,
.ems-support-tax-code h3 {
	margin: 0;
}

.ems-support-tax-code h3 {
	margin-top: 4px;
	color: var(--ems-purple-dark);
	font-size: clamp(28px, 5vw, 46px);
	letter-spacing: .06em;
}

@media (max-width: 720px) {
	.ems-home-support-strip {
		align-items: flex-start;
		flex-direction: column;
		padding: 24px 20px;
	}
}


/* EMS Theme Child 0.8.0 — mappa uniforme, Progetti, Associazione */

.map-hotspot__content {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.map-hotspot__label {
	display: block;
	color: var(--ems-purple-dark);
	font-size: 15px;
	font-weight: 900;
	line-height: 1.12;
}

.map-hotspot__text {
	display: block;
	color: #59675e;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.28;
}

.map-hotspot .map-hotspot__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.ems-project-archive-card__media,
.ems-child-project__image {
	overflow: hidden;
	border-radius: 22px;
	background: linear-gradient(135deg, var(--ems-sage), #f3ecd9);
}

.ems-project-archive-card__media img,
.ems-child-project__image img,
.ems-project-visual__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ems-project-visual {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 230px;
	padding: 22px;
	background:
		radial-gradient(circle at 18% 18%, rgba(255,255,255,.65) 0 18px, transparent 19px),
		radial-gradient(circle at 86% 26%, rgba(255,255,255,.55) 0 26px, transparent 27px),
		linear-gradient(145deg, rgba(94,45,140,.92), rgba(78,143,84,.86));
	color: #fff;
}

.ems-child-project__image .ems-project-visual {
	min-height: 340px;
	border-radius: 26px;
}

.ems-project-visual--concluso {
	background: linear-gradient(145deg, rgba(122,99,184,.95), rgba(79,120,170,.85));
}

.ems-project-visual--idea {
	background: linear-gradient(145deg, rgba(201,79,118,.92), rgba(233,182,79,.88));
}

.ems-project-visual--sospeso {
	background: linear-gradient(145deg, rgba(49,64,55,.92), rgba(122,99,184,.85));
}

.ems-project-visual__eyebrow {
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
	opacity: .9;
}

.ems-project-visual__title {
	max-width: 15ch;
	margin-top: 8px;
	font-size: clamp(20px, 2.4vw, 32px);
	line-height: 1.04;
	letter-spacing: -.04em;
}

.ems-project-visual__line {
	width: 84px;
	height: 4px;
	margin: 12px 0 10px;
	border-radius: 999px;
	background: rgba(255,255,255,.9);
}

.ems-project-visual__subtitle {
	max-width: 28ch;
	font-size: 13px;
	line-height: 1.35;
	font-weight: 700;
}

.ems-child-press__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 10px;
	color: #66756d;
	font-size: 13px;
	font-weight: 800;
}

.ems-association-page .ems-info-page__content > * + * {
	margin-top: 18px;
}

.ems-association-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
}

.ems-association-card {
	display: block;
	padding: 22px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	box-shadow: 0 10px 30px rgba(49,64,55,.05);
	color: inherit;
	text-decoration: none;
}

.ems-association-card__eyebrow {
	display: block;
	margin-bottom: 8px;
	color: var(--ems-purple);
	font-size: 11px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .12em;
}

.ems-association-card strong {
	display: block;
	color: var(--ems-purple-dark);
	font-size: 22px;
	line-height: 1.1;
}

.ems-association-card small {
	display: block;
	margin-top: 10px;
	color: #5d6b63;
	font-size: 14px;
	line-height: 1.45;
}

.ems-transparency-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-top: 18px;
}

.ems-transparency-item {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 20px;
	border-radius: 18px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	text-decoration: none;
}

.ems-transparency-item span {
	color: var(--ems-purple-dark);
	font-size: 18px;
	font-weight: 900;
}

.ems-transparency-item small {
	color: #5f6e66;
	font-size: 13px;
	font-weight: 700;
}

.ems-transparency-item--empty {
	background: var(--ems-cream);
}

@media (max-width: 780px) {
	.ems-association-grid,
	.ems-transparency-list {
		grid-template-columns: 1fr;
	}
}


/* EMS Theme Child 0.9.0 — Home compatta e menu a scomparsa */

#ems-home-compact-templates-090[hidden] {
	display: none !important;
}

.ems-home-compact-host {
	width: 100%;
}

.ems-home-compact-section {
	width: min(1180px, calc(100% - 32px));
	margin: 56px auto;
}

.ems-home-compact-section__head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 26px;
	margin-bottom: 20px;
}

.ems-home-compact-section__head > div {
	max-width: 780px;
}

.ems-home-compact-section__eyebrow {
	margin: 0 0 5px;
	color: var(--ems-green);
	font-size: 12px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .11em;
}

.ems-home-compact-section__head h2 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: clamp(31px, 4.5vw, 48px);
	line-height: 1.02;
	letter-spacing: -.035em;
}

.ems-home-compact-section__head p:last-child {
	margin: 9px 0 0;
	color: #607067;
	font-size: 16px;
	line-height: 1.45;
}

.ems-home-compact-section__head > a {
	flex: 0 0 auto;
	color: var(--ems-purple);
	font-size: 14px;
	font-weight: 850;
	text-decoration: none;
}

.ems-home-mini-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ems-home-mini-card {
	min-width: 0;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.11);
	box-shadow: 0 8px 24px rgba(49,64,55,.04);
}

.ems-home-mini-card__media {
	display: block;
	height: 145px;
	overflow: hidden;
	background: linear-gradient(145deg, var(--ems-sage), var(--ems-blue));
}

.ems-home-mini-card__media img,
.ems-home-mini-card__media .ems-project-visual {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 145px;
	object-fit: cover;
}

.ems-home-mini-card__media .ems-project-visual {
	box-sizing: border-box;
	padding: 14px;
}

.ems-home-mini-card__media .ems-project-visual__title {
	font-size: 19px;
}

.ems-home-mini-card__fallback {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: var(--ems-purple-dark);
	font-size: 28px;
	font-weight: 900;
}

.ems-home-mini-card__body {
	padding: 14px 15px 16px;
}

.ems-home-mini-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-bottom: 7px;
	color: #758178;
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.ems-home-mini-card h3 {
	margin: 0 0 7px;
	font-size: 18px;
	line-height: 1.15;
}

.ems-home-mini-card h3 a {
	color: var(--ems-purple-dark);
	text-decoration: none;
}

.ems-home-mini-card p {
	margin: 0 0 8px;
	color: #5d6b63;
	font-size: 13px;
	line-height: 1.4;
}

.ems-home-mini-card__link {
	color: var(--ems-purple);
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}

.ems-home-mini-empty {
	padding: 18px;
	border-radius: 16px;
	background: var(--ems-cream);
	color: #5d6b63;
}

.ems-home-compact-section--memory {
	padding: 24px;
	border-radius: 26px;
	background: rgba(205,229,200,.48);
}

.map-hotspot__content,
.map-mobile-card__content {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.map-mobile-card__content strong {
	color: var(--ems-purple-dark);
	font-size: 15px;
	line-height: 1.15;
}

.map-mobile-card__content small {
	color: #5c6b63;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.3;
}

/* Dropdown desktop: invisibile finché non serve */
header .menu-item-has-children,
.site-header .menu-item-has-children {
	position: relative;
}

header .menu-item-has-children > .sub-menu,
.site-header .menu-item-has-children > .sub-menu {
	position: absolute;
	z-index: 999;
	top: calc(100% + 8px);
	left: 0;
	min-width: 230px;
	margin: 0;
	padding: 8px;
	border-radius: 15px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	box-shadow: 0 15px 38px rgba(49,64,55,.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

header .menu-item-has-children:hover > .sub-menu,
header .menu-item-has-children:focus-within > .sub-menu,
header .menu-item-has-children.is-submenu-open > .sub-menu,
.site-header .menu-item-has-children:hover > .sub-menu,
.site-header .menu-item-has-children:focus-within > .sub-menu,
.site-header .menu-item-has-children.is-submenu-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

header .sub-menu a,
.site-header .sub-menu a {
	display: block;
	padding: 10px 12px;
	border-radius: 10px;
	white-space: nowrap;
}

header .sub-menu a:hover,
header .sub-menu a:focus,
.site-header .sub-menu a:hover,
.site-header .sub-menu a:focus {
	background: var(--ems-cream);
}

.ems-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: 2px;
	border: 0;
	background: transparent;
	color: currentColor;
	cursor: pointer;
	vertical-align: middle;
}

.ems-submenu-toggle span {
	font-size: 18px;
	line-height: 1;
	transition: transform .18s ease;
}

.menu-item-has-children.is-submenu-open > .ems-submenu-toggle span {
	transform: rotate(180deg);
}

.ems-archive-choice-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 22px;
}

.ems-archive-choice-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px;
	border-radius: 22px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	box-shadow: 0 10px 30px rgba(49,64,55,.05);
	color: inherit;
	text-decoration: none;
}

.ems-archive-choice-card__icon {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ems-purple);
	color: #fff;
	font-weight: 900;
}

.ems-archive-choice-card strong {
	color: var(--ems-purple-dark);
	font-size: 22px;
	line-height: 1.1;
}

.ems-archive-choice-card small {
	color: #5d6b63;
	font-size: 14px;
	line-height: 1.45;
}

@media (max-width: 820px) {
	.ems-home-mini-grid {
		grid-template-columns: 1fr;
	}

	.ems-home-mini-card {
		display: grid;
		grid-template-columns: 118px minmax(0, 1fr);
	}

	.ems-home-mini-card__media {
		height: 100%;
		min-height: 145px;
	}

	.ems-home-compact-section__head {
		align-items: flex-start;
		flex-direction: column;
	}

	.ems-archive-choice-grid {
		grid-template-columns: 1fr;
	}

	header .menu-item-has-children > .sub-menu,
	.site-header .menu-item-has-children > .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		margin-top: 5px;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		pointer-events: auto;
	}

	header .menu-item-has-children.is-submenu-open > .sub-menu,
	.site-header .menu-item-has-children.is-submenu-open > .sub-menu {
		display: block;
	}
}


/* EMS Theme Child 1.0.0 — Biblioteca uniforme + area Associazione */

/* --- MENU ASSOCIAZIONE: tutta la voce è il controllo --- */
header .ems-parent-menu-link,
.site-header .ems-parent-menu-link {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	cursor: pointer;
}

.ems-parent-menu-arrow {
	display: inline-block;
	font-size: 18px;
	line-height: 1;
	transition: transform .18s ease;
}

.menu-item-has-children.is-submenu-open > .ems-parent-menu-link .ems-parent-menu-arrow {
	transform: rotate(180deg);
}

/* --- ARTICOLI RASSEGNA STAMPA --- */
.ems-child-press {
	max-width: 1180px;
}

.ems-child-press__header {
	max-width: 900px;
	margin: 0 auto 28px;
}

.ems-child-press__header h1 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: clamp(38px, 6vw, 64px);
	line-height: 1.04;
	letter-spacing: -.035em;
}

.ems-child-press__image {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 1040px;
	max-height: 620px;
	margin: 0 auto 34px;
	padding: 12px;
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.1);
}

.ems-child-press__image img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 590px;
	object-fit: contain;
}

.ems-child-press__content {
	max-width: 860px;
	margin: 0 auto;
	color: #34433a;
	font-size: 18px;
	line-height: 1.72;
}

.ems-child-press__content > * {
	max-width: 100%;
}

.ems-child-press__content .article__subtitle {
	margin: 0 0 28px;
	padding: 18px 22px;
	border-left: 5px solid var(--ems-purple);
	border-radius: 0 15px 15px 0;
	background: var(--ems-cream);
	color: var(--ems-purple-dark);
	font-size: 20px;
	font-weight: 750;
	line-height: 1.5;
}

.ems-child-press__content img,
.ems-child-press__content .ems-press-image {
	display: block;
	width: auto;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 auto;
	border-radius: 16px;
}

.ems-child-press__content figure,
.ems-child-press__content .wp-caption,
.ems-child-press__content .ems-press-caption {
	float: none !important;
	width: 100% !important;
	max-width: 760px !important;
	margin: 28px auto !important;
	text-align: center;
}

.ems-child-press__content figcaption,
.ems-child-press__content .wp-caption-text {
	margin-top: 8px;
	color: #68756d;
	font-size: 13px;
	line-height: 1.45;
	text-align: center;
}

.ems-child-press__content .alignleft,
.ems-child-press__content .alignright,
.ems-child-press__content .aligncenter {
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.ems-child-press__content .wp-block-columns.ems-press-image-grid,
.ems-child-press__content .wp-block-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	align-items: start;
	margin: 28px 0;
}

.ems-child-press__content .wp-block-column {
	min-width: 0;
}

.ems-child-press__content iframe {
	display: block;
	width: min(100%, 760px);
	aspect-ratio: 16/9;
	height: auto;
	margin: 28px auto;
	border: 0;
	border-radius: 16px;
}

.ems-child-press__source,
.ems-child-press__footer {
	max-width: 860px;
	margin: 30px auto 0;
}

/* --- ELDA --- */
.ems-elda-profile .wp-block-columns {
	gap: clamp(24px, 5vw, 52px);
}

.ems-elda-profile .wp-block-image {
	margin: 0;
}

.ems-elda-profile .wp-block-image img {
	width: 100%;
	height: auto;
	border-radius: 20px;
}

.ems-editable-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 20px;
}

.ems-editable-gallery a {
	display: block;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	border-radius: 16px;
	background: #eee;
}

.ems-editable-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .2s ease;
}

.ems-editable-gallery a:hover img {
	transform: scale(1.035);
}

/* --- GEMELLAGGIO --- */
.ems-gemellaggio-logo {
	max-width: 620px;
	margin: 34px auto !important;
	text-align: center;
}

.ems-gemellaggio-logo img {
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

/* --- ATTIVITÀ --- */
.ems-year-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 20px 0 26px;
}

.ems-year-filter button {
	padding: 9px 15px;
	border: 1px solid rgba(82,50,111,.18);
	border-radius: 999px;
	background: #fff;
	color: var(--ems-purple-dark);
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}

.ems-year-filter button.is-active {
	background: var(--ems-purple);
	border-color: var(--ems-purple);
	color: #fff;
}

.ems-activity-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ems-activity-card {
	margin: 0;
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.1);
}

.ems-activity-card[hidden] {
	display: none !important;
}

.ems-activity-card > a {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
}

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

.ems-activity-card__overlay {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 34px 15px 14px;
	background: linear-gradient(transparent, rgba(33,28,41,.86));
	color: #fff;
}

.ems-activity-card__overlay strong {
	font-size: 15px;
	line-height: 1.25;
}

.ems-activity-card__overlay small {
	font-size: 12px;
	font-weight: 800;
}

/* --- ISTITUTO LUCE --- */
.ems-luce-logo {
	max-width: 310px;
	margin: 0 auto 28px !important;
}

.ems-luce-logo img {
	width: 100%;
	height: auto;
	border-radius: 14px;
}

.ems-luce-links {
	display: grid;
	gap: 12px;
}

.ems-luce-links a {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 18px 20px;
	border-radius: 17px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	color: inherit;
	text-decoration: none;
}

.ems-luce-links strong {
	color: var(--ems-purple-dark);
	font-size: 17px;
}

.ems-luce-links span {
	color: #5f6d65;
	font-size: 14px;
	line-height: 1.45;
}

/* --- PARTNER --- */
.ems-partner-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin: 24px 0 36px;
}

.ems-partner-card {
	overflow: hidden;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
}

.ems-partner-card__logo {
	display: grid;
	place-items: center;
	height: 180px;
	padding: 18px;
	background: #fff;
}

.ems-partner-card__logo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ems-partner-card__body {
	padding: 16px 18px 19px;
	border-top: 1px solid rgba(82,50,111,.08);
}

.ems-partner-card__body h3 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: 18px;
	line-height: 1.15;
}

.ems-partner-card__body p {
	margin: 6px 0;
	color: #637068;
	font-size: 13px;
}

.ems-partner-card__body a {
	color: var(--ems-purple);
	font-size: 13px;
	font-weight: 850;
	text-decoration: none;
}

/* --- TRASPARENZA --- */
.ems-transparency-cards {
	display: grid;
	gap: 14px;
}

.ems-transparency-card {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr);
	overflow: hidden;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
}

.ems-transparency-card[hidden] {
	display: none !important;
}

.ems-transparency-card__year {
	display: grid;
	place-items: center;
	padding: 20px;
	background: var(--ems-purple-dark);
	color: #fff;
	font-size: 26px;
	font-weight: 900;
}

.ems-transparency-card__body {
	padding: 20px 22px;
}

.ems-transparency-card__body h3 {
	margin: 0 0 8px;
	color: var(--ems-purple-dark);
}

.ems-transparency-card__body .ems-page-button {
	margin-top: 10px;
}

/* --- LIGHTBOX --- */
html.ems-lightbox-open,
html.ems-lightbox-open body {
	overflow: hidden;
}

.ems-lightbox {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(20,18,24,.9);
}

.ems-lightbox.is-open {
	display: flex;
}

.ems-lightbox figure {
	margin: 0;
	max-width: min(1100px, 88vw);
	max-height: 88vh;
	text-align: center;
}

.ems-lightbox img {
	display: block;
	max-width: 100%;
	max-height: 80vh;
	margin: 0 auto;
	object-fit: contain;
	border-radius: 12px;
}

.ems-lightbox figcaption {
	margin-top: 10px;
	color: #fff;
	font-size: 14px;
}

.ems-lightbox__close,
.ems-lightbox__prev,
.ems-lightbox__next {
	position: fixed;
	z-index: 2;
	border: 0;
	background: rgba(255,255,255,.95);
	color: var(--ems-purple-dark);
	cursor: pointer;
}

.ems-lightbox__close {
	top: 20px;
	right: 20px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 30px;
}

.ems-lightbox__prev,
.ems-lightbox__next {
	top: 50%;
	width: 46px;
	height: 58px;
	border-radius: 12px;
	font-size: 38px;
	transform: translateY(-50%);
}

.ems-lightbox__prev { left: 18px; }
.ems-lightbox__next { right: 18px; }

@media (max-width: 820px) {
	.ems-child-press__content .wp-block-columns.ems-press-image-grid,
	.ems-child-press__content .wp-block-columns,
	.ems-partner-grid {
		grid-template-columns: 1fr;
	}

	.ems-editable-gallery,
	.ems-activity-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ems-transparency-card {
		grid-template-columns: 1fr;
	}

	.ems-transparency-card__year {
		place-items: start;
	}

	.ems-child-press__content {
		font-size: 17px;
	}

	.ems-lightbox__prev,
	.ems-lightbox__next {
		width: 40px;
		height: 50px;
	}
}

@media (max-width: 520px) {
	.ems-editable-gallery,
	.ems-activity-grid {
		grid-template-columns: 1fr;
	}
}


/* EMS Theme Child 1.0.1 — Rifiniture */
.ems-child-press__content > .entry-image:empty,
.ems-child-press__content .buttons-wrapper:empty,
.ems-child-press__content .share-toggler:empty {
	display: none !important;
}

.ems-child-press__content .article__content {
	display: block;
}

.ems-child-press__content .article__content > div:not(.wp-block-columns):not(.wp-caption) {
	margin-bottom: 1.1em;
}

.ems-partner-card__logo {
	min-height: 180px;
}

.ems-transparency-card__body {
	overflow-x: auto;
}


/* EMS Theme Child 1.0.3 — indice Associazione ripulito */
.ems-association-grid--clean .ems-association-card {
	min-height: 128px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.ems-association-grid--clean .ems-association-card small {
	margin-top: 9px;
}

@media (min-width: 960px) {
	.ems-association-grid--clean {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}


/* EMS Theme Child 1.0.5 — Contatti, Elda, Privacy */

.ems-contact-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 24px 0 30px;
}

.ems-contact-group {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr);
	gap: 15px;
	padding: 22px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
	box-shadow: 0 8px 24px rgba(49,64,55,.04);
}

.ems-contact-group__icon {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--ems-purple);
	color: #fff;
	font-size: 20px;
	font-weight: 900;
}

.ems-contact-group h2 {
	margin: 0 0 10px;
	color: var(--ems-purple-dark);
	font-size: 22px;
}

.ems-contact-group p {
	margin: 0 0 12px;
	line-height: 1.5;
}

.ems-contact-group p:last-child {
	margin-bottom: 0;
}

.ems-contact-group a {
	color: var(--ems-purple);
	font-weight: 750;
	overflow-wrap: anywhere;
}

.ems-contact-map-section {
	margin-top: 34px;
	padding-top: 26px;
	border-top: 1px solid rgba(82,50,111,.12);
}

.ems-contact-map-section h2 {
	margin: 0 0 8px;
	color: var(--ems-purple-dark);
}

.ems-contact-map {
	overflow: hidden;
	margin: 20px 0 18px;
	border-radius: 22px;
	border: 1px solid rgba(82,50,111,.12);
	box-shadow: 0 10px 30px rgba(49,64,55,.06);
}

.ems-contact-map iframe {
	display: block;
	width: 100%;
	height: 430px;
	border: 0;
}

.ems-elda-profile .wp-block-columns {
	align-items: center !important;
}

.ems-elda-profile .wp-block-column:first-child .wp-block-image {
	max-width: 420px;
	margin: 0 auto;
}

.ems-elda-profile .wp-block-column:first-child img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 20px;
}

.ems-editable-gallery {
	margin-top: 18px;
}

.ems-editable-gallery a {
	min-height: 220px;
}

.ems-editable-gallery img {
	object-fit: cover;
}

.ems-privacy-page__content {
	max-width: 900px;
}

.ems-privacy-page__content h2,
.ems-privacy-page__content h3,
.ems-privacy-page__content h4 {
	color: var(--ems-purple-dark);
	line-height: 1.2;
}

.ems-privacy-page__content p,
.ems-privacy-page__content li {
	line-height: 1.7;
}

.ems-privacy-page__content ul,
.ems-privacy-page__content ol {
	padding-left: 1.5em;
}

@media (max-width: 760px) {
	.ems-contact-groups {
		grid-template-columns: 1fr;
	}

	.ems-contact-map iframe {
		height: 340px;
	}

	.ems-elda-profile .wp-block-columns {
		display: block;
	}

	.ems-elda-profile .wp-block-column:first-child {
		margin-bottom: 24px;
	}
}


/* EMS Theme Child 1.0.6 — pagina Elda fedele alla struttura originale */

.ems-elda-profile--original {
	margin-top: 10px;
}

.ems-elda-profile--original > .wp-block-columns {
	display: grid !important;
	grid-template-columns: minmax(240px, 31%) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

.ems-elda-profile--original .wp-block-column {
	width: auto !important;
	flex-basis: auto !important;
}

.ems-elda-portrait {
	width: min(100%, 310px);
	margin: 0 auto !important;
}

.ems-elda-portrait a {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 50%;
}

.ems-elda-portrait img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 50% !important;
}

.ems-elda-name {
	margin: 0 0 2px !important;
	color: #9a2a91 !important;
	font-size: clamp(34px, 4.1vw, 52px) !important;
	font-weight: 400 !important;
	line-height: 1.05 !important;
}

.ems-elda-subtitle {
	margin: 0 0 14px !important;
	color: #969696 !important;
	font-size: clamp(30px, 3.7vw, 44px) !important;
	font-weight: 300 !important;
	line-height: 1.05 !important;
}

.ems-elda-profile--original .wp-block-column:nth-child(2) p {
	color: #878787;
	font-size: 15px;
	line-height: 1.6;
}

.ems-editable-gallery--elda-original {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin-top: 46px;
	padding: 18px;
	border-radius: 20px;
	background:
		linear-gradient(rgba(235,240,247,.88), rgba(235,240,247,.88)),
		linear-gradient(135deg, #eef2f7, #e5ecf3);
}

.ems-editable-gallery--elda-original a {
	display: block;
	min-height: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 0;
	background: #e7e7e7;
}

.ems-editable-gallery--elda-original img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	transition: transform .2s ease;
}

.ems-editable-gallery--elda-original a:hover img,
.ems-editable-gallery--elda-original a:focus img {
	transform: scale(1.035);
}

@media (max-width: 840px) {
	.ems-elda-profile--original > .wp-block-columns {
		grid-template-columns: 1fr !important;
	}

	.ems-elda-portrait {
		width: min(68vw, 290px);
	}

	.ems-editable-gallery--elda-original {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding: 12px;
	}
}

@media (max-width: 520px) {
	.ems-editable-gallery--elda-original {
		grid-template-columns: 1fr;
	}
}


/* EMS Theme Child 1.0.7 — pagine percorso e consolidamento */
.ems-pathway-shell .ems-info-page__content {
	max-width: 980px;
}

.ems-pathway-page {
	padding: clamp(22px,4vw,38px);
	border-radius: 28px;
	background:
		radial-gradient(circle at 92% 12%, rgba(245,204,118,.48) 0 90px, transparent 91px),
		#fff;
	border: 1px solid rgba(82,50,111,.1);
}

.ems-pathway-page > h2 {
	margin-top: 0;
	color: var(--ems-purple-dark);
}

.ems-pathway-empty {
	margin-top: 26px;
	padding: 24px;
	border-radius: 20px;
	background: var(--ems-cream);
	border: 1px dashed rgba(82,50,111,.22);
}

.ems-pathway-empty h3 {
	margin: 0 0 8px;
	color: var(--ems-purple-dark);
}


/* EMS Theme Child 1.0.8 — rifiniture migrazione finale */
.ems-child-project__content .ems-project-documents {
	max-width: 900px;
}

.ems-association-detail .ems-memory-timeline {
	max-width: 900px;
}

.ems-association-detail .ems-transparency-table {
	display: table;
	width: 100%;
}

@media (max-width: 680px) {
	.ems-child-project__content .ems-project-document {
		grid-template-columns: 44px minmax(0,1fr);
	}
	.ems-child-project__content .ems-project-document > span:last-child {
		display: none;
	}
}


/* EMS Theme Child 1.0.9 — indice Associazione definitivo */
.ems-association-page .ems-association-grid--clean {
	margin-top: 8px;
}

.ems-association-page .ems-association-grid--clean .ems-association-card {
	min-height: 132px;
}


/* EMS Theme Child 1.1.0 — doppio logo e footer strutturato */

.ems-dual-logo {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: nowrap;
}

.ems-dual-logo__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.ems-dual-logo__item img {
	display: block;
	height: auto;
	max-width: 100%;
}

.ems-dual-logo__item--elda img {
	width: 66px;
}

.ems-dual-logo__item--gemellaggio img {
	width: 135px;
}

body.ems-has-dual-logo .site-branding .site-title,
body.ems-has-dual-logo .site-branding .site-description,
body.ems-has-dual-logo .site-branding .custom-logo,
body.ems-has-dual-logo .site-branding img.custom-logo,
body.ems-has-dual-logo .custom-logo-link + .site-title,
body.ems-has-dual-logo .custom-logo-link + .site-description,
body.ems-has-dual-logo .site-title,
body.ems-has-dual-logo .site-description {
	display: none !important;
}

body.ems-has-dual-logo .site-branding,
body.ems-has-dual-logo .navbar-brand,
body.ems-has-dual-logo .site-logo,
body.ems-has-dual-logo header .brand {
	min-width: 0;
}

.ems-site-footer {
	background: linear-gradient(180deg, #7d2f95 0%, #652d8b 100%);
	color: #fff;
	margin-top: 56px;
}

.ems-site-footer__inner {
	width: min(1180px, calc(100% - 32px));
	margin: 0 auto;
	padding: 34px 0 18px;
}

.ems-site-footer__grid {
	display: grid;
	grid-template-columns: 1.25fr .95fr 1fr;
	gap: 22px;
}

.ems-site-footer__col {
	padding: 24px;
	border-radius: 22px;
	background: rgba(255,255,255,.11);
	backdrop-filter: blur(4px);
}

.ems-site-footer__logo {
	display: block;
	width: 84px;
	height: auto;
	margin-bottom: 16px;
}

.ems-site-footer__tagline {
	margin: 0 0 12px;
	font-size: 1.35rem;
	line-height: 1.35;
	font-weight: 700;
}

.ems-site-footer__association {
	margin: 0;
	font-size: 1rem;
	line-height: 1.45;
	color: rgba(255,255,255,.92);
}

.ems-site-footer__col h2 {
	margin: 0 0 16px;
	font-size: 1.15rem;
	color: #fff;
}

.ems-footer-contact {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.ems-footer-contact__link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	min-height: 28px;
}

.ems-footer-contact__link svg {
	width: 21px;
	height: 21px;
	flex: 0 0 21px;
}

.ems-footer-contact__link span {
	word-break: break-word;
}

.ems-site-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 16px;
}

.ems-site-footer__links a {
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.ems-site-footer__links a:hover,
.ems-footer-contact__link:hover,
.ems-site-footer__bottom a:hover {
	text-decoration: underline;
}

.ems-site-footer__bottom {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(255,255,255,.24);
}

.ems-site-footer__bottom p {
	margin: 0;
	font-size: .98rem;
	line-height: 1.5;
	color: rgba(255,255,255,.92);
}

.ems-site-footer__bottom a {
	color: #fff;
	font-weight: 700;
}

@media (max-width: 960px) {
	.ems-site-footer__grid {
		grid-template-columns: 1fr;
	}

	.ems-site-footer__links {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.ems-dual-logo {
		gap: 10px;
	}

	.ems-dual-logo__item--elda img {
		width: 54px;
	}

	.ems-dual-logo__item--gemellaggio img {
		width: 114px;
	}

	.ems-site-footer__inner {
		width: min(100%, calc(100% - 22px));
		padding-top: 24px;
	}

	.ems-site-footer__col {
		padding: 18px;
	}

	.ems-site-footer__tagline {
		font-size: 1.15rem;
	}

	.ems-site-footer__links {
		grid-template-columns: 1fr;
	}
}


/* EMS Theme Child 1.1.1 — correzioni header/footer */
.ems-site-footer__logo {
	filter: brightness(0) invert(1);
	opacity: .98;
}

.ems-site-footer__kicker {
	margin: 0 0 8px;
	font-size: .82rem;
	font-weight: 900;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #fff;
}

.ems-branding-holder {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
}

header .ems-dual-logo,
.site-header .ems-dual-logo,
#masthead .ems-dual-logo {
	position: relative;
	z-index: 5;
}

/* EMS Theme Child 1.1.2 — loghi header uniformati */
.ems-dual-logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ems-dual-logo__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    width: auto;
}

.ems-dual-logo__item--elda img,
.ems-dual-logo__item--gemellaggio img {
    display: block;
    width: auto !important;
    height: 58px !important;
    max-width: 96px !important;
    max-height: 58px !important;
    object-fit: contain;
}

@media (max-width: 640px) {
    .ems-dual-logo {
        gap: 8px;
    }

    .ems-dual-logo__item {
        height: 48px;
    }

    .ems-dual-logo__item--elda img,
    .ems-dual-logo__item--gemellaggio img {
        height: 46px !important;
        max-height: 46px !important;
        max-width: 76px !important;
    }
}


/* EMS Theme Child 1.1.3 — spaziatura Memoria + sito progetto */
/* La Biblioteca include già il proprio padding: evitiamo il doppio spazio del wrapper child. */
.ems-child-main.ems-child-memory-page {
    padding: 0;
}

.ems-child-project__website {
    margin: 18px 0 0;
}

.ems-project-website-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 17px;
    border-radius: 999px;
    background: var(--ems-purple);
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 850;
    box-shadow: 0 8px 22px rgba(110,46,145,.16);
}

.ems-project-website-button:hover,
.ems-project-website-button:focus-visible {
    background: var(--ems-purple-dark);
    transform: translateY(-1px);
}

/* EMS Theme Child 1.1.11 — ripristino hero originale del parent */
.ems-original-home-hero__image {
	object-fit: cover;
	object-position: center;
}

/* Tablet: nella mappa manteniamo solo icona e titolo, come richiesto. */
@media (min-width: 720px) and (max-width: 1100px) {
	.map-hotspot__text,
	.map-hotspot__content small,
	.map-mobile-card__content small {
		display: none !important;
	}

	.map-hotspot__content,
	.map-mobile-card__content {
		gap: 0;
	}
}

/* Mobile: centra davvero la scritta Menu/Menù nel proprio controllo. */
@media (max-width: 719px) {
	header .ems-mobile-menu-control,
	.site-header .ems-mobile-menu-control {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		line-height: 1.15 !important;
		box-sizing: border-box !important;
	}

	header .ems-mobile-menu-control > *,
	.site-header .ems-mobile-menu-control > * {
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center !important;
	}
}


/* EMS Theme Child 1.1.12 — override nativi e rifiniture pre-pubblicazione */
.ems-header-brand {
	display: flex;
	align-items: center;
	min-width: 0;
}

.ems-header-brand .ems-dual-logo {
	margin: 0;
}

.ems-native-home-hero__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.ems-footer-contact__icon {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	border: 1px solid rgba(255,255,255,.38);
	border-radius: 50%;
	font-size: 15px;
	font-weight: 900;
	line-height: 1;
}

/* Tablet: menu compatto, hero stabile e mappa leggibile senza descrizioni. */
@media (min-width: 720px) and (max-width: 1100px) {
	.site-header__inner {
		grid-template-columns: minmax(0,1fr) auto !important;
		gap: .8rem !important;
		min-height: 76px;
	}

	.site-header__toggle {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		justify-self: end !important;
		text-align: center !important;
	}

	.site-nav {
		display: none !important;
		grid-column: 1 / -1;
		width: 100%;
		justify-self: stretch;
	}

	.site-nav.is-open {
		display: block !important;
	}

	.site-nav__list {
		display: grid !important;
		gap: .4rem !important;
		padding: .8rem 0 1rem !important;
	}

	.site-nav a {
		display: block !important;
		padding: .72rem 0 !important;
	}

	.site-header__cta {
		display: none !important;
	}

	.ems-dual-logo__item {
		height: 52px;
	}

	.ems-dual-logo__item--elda img,
	.ems-dual-logo__item--gemellaggio img {
		height: 50px !important;
		max-height: 50px !important;
		max-width: 88px !important;
	}

	.home-hero {
		min-height: 0 !important;
		padding: 2.5rem 0 2.4rem !important;
		gap: 1.35rem !important;
	}

	.home-hero h1 {
		font-size: clamp(3rem, 7vw, 5.1rem) !important;
	}

	.map-hotspot__text,
	.map-mobile-card small {
		display: none !important;
	}

	.map-hotspot__label {
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		line-height: 1.08 !important;
	}
}

@media (max-width: 900px) {
	.home-hero {
		grid-template-columns: 1fr !important;
	}

	.home-hero__copy,
	.home-hero__image {
		width: 100%;
	}

	.home-hero__image {
		aspect-ratio: 16 / 9;
	}
}

/* Mobile: testo Menu realmente centrato nel pulsante. */
@media (max-width: 719px) {
	.site-header__toggle {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		min-width: 86px;
	}

	.site-header__toggle > span {
		display: block;
		width: 100%;
		text-align: center !important;
	}

	.home-hero {
		padding-top: 2rem !important;
		padding-bottom: 2rem !important;
	}

	.home-hero h1 {
		font-size: clamp(2.65rem, 15vw, 3.4rem) !important;
	}

	.home-hero p:not(.eyebrow) {
		font-size: 1.05rem !important;
	}
}
