
.ems-memory,.ems-source-box,.ems-project-details{--ems-purple:#6e2e91;--ems-purple-dark:#52326f;--ems-green:#3b8a48;--ems-sage:#cde5c8;--ems-blue:#bbddf2;--ems-ochre:#f5cc76;--ems-cream:#fff9ed;--ems-ink:#314037}
.ems-memory{background:var(--ems-cream);color:var(--ems-ink);padding:50px 20px 80px}.ems-memory__container{width:min(1180px,100%);margin:auto}.ems-memory__hero{max-width:900px;margin-bottom:36px}.ems-memory__eyebrow,.ems-source-box__eyebrow{color:var(--ems-green);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.ems-memory__hero h1{color:var(--ems-purple-dark);font-size:clamp(42px,7vw,76px);line-height:1;margin:8px 0}.ems-memory__lead{font-size:20px;max-width:720px}
.ems-memory-filter{background:#fff;border:1px solid rgba(82,50,111,.14);border-radius:22px;padding:18px;margin-bottom:28px}.ems-memory-filter input,.ems-memory-filter select{width:100%;min-height:48px;border:1px solid rgba(82,50,111,.2);border-radius:10px;padding:0 12px}.ems-memory-filter__search{margin-bottom:10px}.ems-memory-filter__fields{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.ems-memory-filter__actions{display:flex;gap:10px;margin-top:12px}
.ems-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:999px;text-decoration:none;font-weight:700}.ems-button--primary{background:var(--ems-purple);color:#fff}.ems-button--ghost{border:1px solid var(--ems-purple);color:var(--ems-purple);background:#fff}
.ems-memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ems-memory-card{display:grid;grid-template-columns:180px 1fr;background:#fff;border:1px solid rgba(82,50,111,.12);border-radius:20px;overflow:hidden}.ems-memory-card__media{background:linear-gradient(145deg,var(--ems-sage),var(--ems-blue));min-height:210px}.ems-memory-card__media img{width:100%;height:100%;object-fit:cover}.ems-memory-card__placeholder{height:100%;padding:20px;display:flex;flex-direction:column;justify-content:space-between;color:var(--ems-purple-dark)}.ems-memory-card__year{font-size:44px;font-weight:900}.ems-memory-card__body{padding:20px}.ems-memory-card__meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}.ems-memory-card__type,.ems-chip{background:var(--ems-sage);border-radius:999px;padding:5px 9px;font-weight:700}.ems-memory-card__title{color:var(--ems-purple-dark);font-size:24px;line-height:1.15}.ems-memory-card__title a{color:inherit;text-decoration:none}.ems-memory-card__source{color:var(--ems-green);font-weight:800}.ems-memory-card__read{color:var(--ems-purple);font-weight:800}.ems-chip-list{display:flex;gap:8px;flex-wrap:wrap}
.ems-source-box,.ems-project-details>section,.ems-project-facts>div{background:var(--ems-cream);border:1px solid rgba(82,50,111,.14);border-radius:18px;padding:20px}.ems-source-box__meta{display:flex;gap:12px;flex-wrap:wrap}.ems-source-box__project{margin-top:16px;padding-top:16px;border-top:1px solid rgba(82,50,111,.12)}.ems-source-box__project span{display:block;font-size:13px}.ems-source-box__project a{font-weight:800;color:var(--ems-purple-dark)}
.ems-project-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.ems-project-facts span{display:block;font-size:12px;text-transform:uppercase}.ems-project-facts strong{display:block;color:var(--ems-purple-dark);font-size:18px}
@media(max-width:900px){.ems-memory-filter__fields{grid-template-columns:repeat(2,1fr)}.ems-memory-grid{grid-template-columns:1fr}}@media(max-width:620px){.ems-memory-filter__fields{grid-template-columns:1fr}.ems-memory-card{grid-template-columns:100px 1fr}.ems-memory-card__excerpt{display:none}.ems-project-facts{grid-template-columns:1fr}}


/* EMS Core 0.4.0 — schede progetto e contenuti correlati */

.ems-project-details {
	margin-top: 36px;
	color: var(--ems-ink);
}

.ems-project-topics {
	margin: 0 0 28px;
}

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

.ems-project-sections > section {
	min-width: 0;
	padding: 24px;
	border: 1px solid rgba(82,50,111,.12);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 8px 28px rgba(49,64,55,.04);
}

.ems-project-sections h2,
.ems-project-summary h2,
.ems-section-heading h2 {
	margin: 4px 0 12px;
	color: var(--ems-purple-dark);
	line-height: 1.1;
}

.ems-project-summary {
	margin: 34px 0;
	padding: 26px;
	border-radius: 22px;
	background:
		radial-gradient(circle at 94% 15%, rgba(187,221,242,.7) 0 58px, transparent 59px),
		var(--ems-cream);
	border: 1px solid rgba(82,50,111,.12);
}

.ems-project-counts {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 18px;
}

.ems-project-count {
	min-width: 120px;
	padding: 16px 18px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.1);
}

.ems-project-count strong {
	display: block;
	color: var(--ems-purple-dark);
	font-size: 30px;
	line-height: 1;
}

.ems-project-count span {
	display: block;
	margin-top: 6px;
	color: #637067;
	font-size: 13px;
	font-weight: 700;
}

.ems-related {
	margin-top: 48px;
	padding-top: 30px;
	border-top: 1px solid rgba(82,50,111,.12);
}

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

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

.ems-related-grid .ems-memory-card__media {
	min-height: 170px;
	max-height: 210px;
}

.ems-related-grid .ems-memory-card__placeholder {
	min-height: 170px;
}

.ems-project-memory {
	margin-top: 40px;
}

.ems-project-memory__all {
	margin: 22px 0 0;
	text-align: center;
}

.ems-section-heading {
	margin-bottom: 18px;
}

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

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

	.ems-related-grid .ems-memory-card {
		grid-template-columns: 160px minmax(0, 1fr);
	}
}

@media (max-width: 620px) {
	.ems-related-grid .ems-memory-card {
		grid-template-columns: 100px minmax(0, 1fr);
	}

	.ems-project-summary {
		padding: 20px;
	}

	.ems-project-count {
		flex: 1 1 120px;
	}
}


/* EMS Core 0.6.0 — Home dinamica e archivio Articoli */

.ems-dynamic-home-section,
.ems-articles {
	color: var(--ems-ink);
}

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

.ems-dynamic-home-section__heading {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 18px;
	margin-bottom: 22px;
}

.ems-dynamic-home-section__heading h2,
.ems-articles__hero h1 {
	margin: 4px 0 0;
	color: var(--ems-purple-dark);
	font-size: clamp(32px, 5vw, 54px);
	line-height: 1.02;
	letter-spacing: -.03em;
}

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

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

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

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

.ems-home-card__placeholder {
	height: 100%;
	display: grid;
	place-items: center;
	padding: 18px;
	color: var(--ems-purple-dark);
	font-size: 44px;
	font-weight: 900;
	text-align: center;
}

.ems-home-card__placeholder--project {
	font-size: 28px;
}

.ems-home-card__body {
	padding: 20px;
}

.ems-home-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 10px;
	color: #68776e;
	font-size: 12px;
	font-weight: 700;
}

.ems-home-card h3 {
	margin: 0 0 10px;
	color: var(--ems-purple-dark);
	font-size: 24px;
	line-height: 1.15;
}

.ems-home-card h3 a {
	color: inherit;
	text-decoration: none;
}

.ems-home-card__body > p {
	color: #59675e;
	line-height: 1.5;
}

.ems-home-card__place {
	color: var(--ems-green) !important;
	font-weight: 800;
}

.ems-home-card__link {
	color: var(--ems-purple);
	font-weight: 800;
	text-decoration: none;
}

.ems-dynamic-empty {
	padding: 28px;
	border: 1px solid rgba(82,50,111,.12);
	border-radius: 20px;
	background: var(--ems-cream);
}

.ems-dynamic-empty h2,
.ems-dynamic-empty h3 {
	margin-top: 0;
	color: var(--ems-purple-dark);
}

.ems-articles {
	width: min(1180px, calc(100% - 28px));
	margin: 0 auto;
	padding: 54px 0 80px;
}

.ems-articles__hero {
	max-width: 780px;
	margin-bottom: 28px;
}

.ems-articles__hero > p:last-child {
	font-size: 19px;
	line-height: 1.5;
}

.ems-articles__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-bottom: 26px;
}

.ems-articles__filters a {
	display: inline-flex;
	padding: 9px 15px;
	border-radius: 999px;
	border: 1px solid rgba(82,50,111,.18);
	background: #fff;
	color: var(--ems-purple-dark);
	font-weight: 750;
	text-decoration: none;
}

.ems-articles__filters a.is-active {
	background: var(--ems-purple);
	color: #fff;
	border-color: var(--ems-purple);
}

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

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

	.ems-home-card__media {
		height: auto;
		min-height: 190px;
	}
}

@media (max-width: 620px) {
	.ems-dynamic-home-section__heading {
		align-items: flex-start;
		flex-direction: column;
	}

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

	.ems-home-card__media {
		min-height: 180px;
	}

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

	.ems-home-card__body > p:not(.ems-home-card__place) {
		display: none;
	}
}


/* EMS Core 0.9.0 — Moduli */
.ems-contact-form-wrap {
	max-width: 900px;
	margin-top: 24px;
}

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

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

.ems-form-grid label,
.ems-form-check {
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-weight: 700;
}

.ems-form-grid__wide {
	grid-column: 1 / -1;
}

.ems-form-grid input,
.ems-form-grid select,
.ems-form-grid textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid rgba(49,64,55,.25);
	border-radius: 12px;
	background: #fff;
	color: #314037;
	font: inherit;
}

.ems-form-grid textarea {
	resize: vertical;
}

.ems-form-grid small {
	font-weight: 400;
	color: #66746b;
}

.ems-form-check {
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	margin-top: 18px;
	font-weight: 500;
	line-height: 1.45;
}

.ems-form-check input {
	margin-top: 4px;
	flex: 0 0 auto;
}

.ems-form-check a {
	color: #6e2e91;
	font-weight: 750;
}

.ems-form-submit {
	margin-top: 20px;
	cursor: pointer;
}

.ems-form-notice {
	margin: 0 0 18px;
	padding: 16px 18px;
	border-radius: 14px;
}

.ems-form-notice p {
	margin: 5px 0 0;
}

.ems-form-notice--success {
	background: #edf7ec;
	border: 1px solid #b8d9b5;
}

.ems-form-notice--error {
	background: #fff2f0;
	border: 1px solid #e5b2aa;
}

.ems-form-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

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

	.ems-form-grid__wide {
		grid-column: auto;
	}
}


/* EMS Core 0.9.1 — Home dinamica */
.ems-home-band {
	width: min(1180px, calc(100% - 32px));
	margin: 72px auto;
}

.ems-home-band__heading {
	max-width: 820px;
	margin-bottom: 28px;
}

.ems-home-band__heading--row {
	max-width: none;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
}

.ems-home-band__eyebrow {
	margin: 0 0 6px;
	color: var(--ems-green);
	font-size: 13px;
	font-weight: 900;
	text-transform: uppercase;
	letter-spacing: .1em;
}

.ems-home-band__heading h2 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: clamp(36px, 6vw, 62px);
	line-height: 1;
	letter-spacing: -.04em;
}

.ems-home-band__heading p:last-child {
	font-size: 18px;
	line-height: 1.55;
}

.ems-home-band__button {
	display: inline-flex;
	flex: 0 0 auto;
	padding: 12px 19px;
	border-radius: 999px;
	background: var(--ems-purple);
	color: #fff;
	text-decoration: none;
	font-weight: 850;
}

.ems-home-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

.ems-home-column {
	min-width: 0;
	padding: 24px;
	border-radius: 26px;
	background: rgba(255,255,255,.72);
	border: 1px solid rgba(82,50,111,.1);
}

.ems-home-column__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 18px;
}

.ems-home-column__heading h3 {
	margin: 0;
	color: var(--ems-purple-dark);
	font-size: 29px;
	line-height: 1.1;
}

.ems-home-column__heading > a {
	color: var(--ems-purple);
	font-weight: 800;
	text-decoration: none;
}

.ems-preview-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.ems-preview-grid--press {
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.ems-preview-card {
	overflow: hidden;
	display: grid;
	grid-template-columns: 150px minmax(0,1fr);
	border-radius: 18px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.1);
	box-shadow: 0 8px 24px rgba(49,64,55,.04);
}

.ems-preview-grid--press .ems-preview-card {
	display: block;
}

.ems-preview-card__media {
	display: block;
	min-height: 160px;
	background: linear-gradient(145deg,var(--ems-sage),var(--ems-blue));
}

.ems-preview-grid--press .ems-preview-card__media {
	height: 210px;
}

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

.ems-preview-card__placeholder {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	min-height: inherit;
	color: var(--ems-purple-dark);
	font-size: 30px;
	font-weight: 900;
}

.ems-preview-card__body {
	padding: 16px;
}

.ems-preview-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-bottom: 8px;
	color: #718078;
	font-size: 11px;
	font-weight: 800;
}

.ems-preview-card h3 {
	margin: 0 0 8px;
	font-size: 19px;
	line-height: 1.18;
}

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

.ems-preview-card__body > p {
	margin: 0 0 10px;
	color: #59675e;
	font-size: 14px;
	line-height: 1.45;
}

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

.ems-home-band--press {
	padding: 38px;
	border-radius: 34px;
	background: var(--ems-sage);
}

.ems-home-empty {
	padding: 22px;
	border-radius: 18px;
	background: var(--ems-cream);
}

.ems-home-empty h4 {
	margin-top: 0;
	color: var(--ems-purple-dark);
}

/* Sostienici */
.ems-donation-box {
	margin-top: 22px;
	padding: 24px;
	border-radius: 20px;
	background: #fff;
	border: 1px solid rgba(82,50,111,.12);
}

.ems-donation-box__row {
	display: grid;
	grid-template-columns: 160px minmax(0,1fr);
	gap: 18px;
	padding: 10px 0;
	border-bottom: 1px solid rgba(49,64,55,.1);
}

.ems-donation-box__row:last-child {
	border-bottom: 0;
}

.ems-donation-box__row span {
	color: #69776f;
	font-size: 13px;
	font-weight: 800;
}

.ems-donation-box__iban {
	letter-spacing: .04em;
	word-break: break-word;
}

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

	.ems-preview-grid--press {
		grid-template-columns: 1fr;
	}

	.ems-preview-grid--press .ems-preview-card {
		display: grid;
		grid-template-columns: 130px minmax(0,1fr);
	}

	.ems-preview-grid--press .ems-preview-card__media {
		height: auto;
	}
}

@media (max-width: 640px) {
	.ems-home-band {
		margin: 48px auto;
	}

	.ems-home-band__heading--row,
	.ems-home-column__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.ems-home-band--press {
		padding: 22px 16px;
		border-radius: 24px;
	}

	.ems-preview-card,
	.ems-preview-grid--press .ems-preview-card {
		grid-template-columns: 105px minmax(0,1fr);
	}

	.ems-preview-card__media {
		min-height: 145px;
	}

	.ems-preview-card__body > p {
		display: none;
	}

	.ems-donation-box__row {
		grid-template-columns: 1fr;
		gap: 3px;
	}
}


/* EMS Core 1.0.1 — Tabelle Trasparenza */
.ems-transparency-table {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0 18px;
	font-size: 14px;
}

.ems-transparency-table th,
.ems-transparency-table td {
	padding: 9px 10px;
	border-bottom: 1px solid rgba(49,64,55,.12);
	text-align: left;
	vertical-align: top;
}

.ems-transparency-table th {
	color: #52326F;
	background: #FFF9ED;
	font-weight: 850;
}

.ems-transparency-table td:last-child,
.ems-transparency-table th:last-child {
	width: 150px;
	text-align: right;
	white-space: nowrap;
}

@media (max-width: 620px) {
	.ems-transparency-table {
		font-size: 12px;
	}
	.ems-transparency-table th,
	.ems-transparency-table td {
		padding: 7px 6px;
	}
	.ems-transparency-table td:last-child,
	.ems-transparency-table th:last-child {
		width: auto;
	}
}


/* EMS Core 1.1.0 — Documenti progetto e memoria storica */
.ems-project-documents {
	display: grid;
	gap: 12px;
	margin: 22px 0 30px;
}

.ems-project-document {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr) 24px;
	gap: 14px;
	align-items: center;
	padding: 16px 18px;
	border: 1px solid rgba(82,50,111,.12);
	border-radius: 17px;
	background: #fff;
	color: inherit;
	text-decoration: none;
}

.ems-project-document__type {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background: #6E2E91;
	color: #fff;
	font-size: 11px;
	font-weight: 900;
}

.ems-project-document__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ems-project-document__body strong {
	color: #52326F;
	font-size: 16px;
}

.ems-project-document__body small {
	color: #67746c;
	font-size: 12px;
}

.ems-memory-timeline {
	display: grid;
	gap: 12px;
	margin: 20px 0 30px;
}

.ems-memory-timeline > div {
	display: grid;
	grid-template-columns: 145px minmax(0,1fr);
	gap: 18px;
	padding: 16px 18px;
	border-radius: 16px;
	background: #FFF9ED;
	border: 1px solid rgba(82,50,111,.1);
}

.ems-memory-timeline strong {
	color: #6E2E91;
}

@media (max-width: 640px) {
	.ems-memory-timeline > div {
		grid-template-columns: 1fr;
		gap: 5px;
	}
}


/* EMS Core 1.1.1 — Direttivo */
.ems-directivo-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px 20px;
	max-width: 900px;
	margin: 24px auto 42px;
}

.ems-directivo-card {
	text-align: center;
}

.ems-directivo-card__photo {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 16px;
	background: #eef2f6;
	border: 1px solid rgba(82,50,111,.10);
}

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

.ems-directivo-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-top: 12px;
}

.ems-directivo-card__body strong {
	color: #9a2a91;
	font-size: 16px;
	line-height: 1.2;
}

.ems-directivo-card__body small {
	color: #737373;
	font-size: 12px;
}

@media (max-width: 720px) {
	.ems-directivo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 440px) {
	.ems-directivo-grid {
		grid-template-columns: 1fr;
		max-width: 320px;
	}
}
