/* Archivio iniziative Pro — layout. Colori e tipografia dai controlli Elementor. */

.stm-ia {
	--stm-ia-anim-duration: 600ms;
	--stm-ia-filter-active-gap: 1.5rem;
	--stm-ia-filter-row-gap: 56px;
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.elementor-widget-stm_initiative_archive,
.elementor-widget-stm_initiative_archive > .elementor-widget-container {
	width: 100%;
	max-width: 100%;
}

.stm-ia *,
.stm-ia *::before,
.stm-ia *::after {
	box-sizing: border-box;
}

.stm-ia-zone {
	width: 100%;
	max-width: 100%;
}

.stm-ia-zone + .stm-ia-zone {
	margin-top: 2.5rem;
}

.stm-ia-zone--featured[hidden] {
	display: none !important;
	margin: 0 !important;
}

.stm-ia-zone__title {
	margin: 0 0 1.25rem;
}

.stm-ia-grid {
	display: grid;
	grid-template-columns: repeat(var(--stm-ia-cols, 1), minmax(0, 1fr));
	gap: var(--stm-ia-gap, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.stm-ia-item {
	--stm-ia-transition: 0.35s;
	position: relative;
	min-width: 0;
}

.stm-ia-item__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--stm-ia-media-gap, 16px);
	height: 100%;
	overflow: hidden;
	padding: var(--stm-ia-card-pt, 0px) var(--stm-ia-card-pr, 0px) var(--stm-ia-card-pb, 0px) var(--stm-ia-card-pl, 0px);
	transition: background-color var(--stm-ia-transition) ease,
		border-color var(--stm-ia-transition) ease,
		box-shadow var(--stm-ia-transition) ease,
		transform var(--stm-ia-transition) ease;
}

.stm-ia-item--stretch .stm-ia-item__inner {
	height: 100%;
}

.stm-ia-item__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

.stm-ia-item__content {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.stm-ia-item--img-left .stm-ia-item__inner,
.stm-ia-item--img-right .stm-ia-item__inner {
	flex-direction: row;
	align-items: flex-start;
}

.stm-ia-item--img-right .stm-ia-item__inner {
	flex-direction: row-reverse;
}

.stm-ia-item--img-left .stm-ia-item__media,
.stm-ia-item--img-right .stm-ia-item__media {
	flex: 0 0 var(--stm-ia-media-w, 34%);
	max-width: var(--stm-ia-media-w, 34%);
}

.stm-ia-item--img-bottom .stm-ia-item__inner {
	flex-direction: column-reverse;
}

.stm-ia-item--overlay .stm-ia-item__inner {
	display: block;
}

.stm-ia-item--overlay .stm-ia-item__body {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	padding: 1.25rem;
	color: #fff;
}

.stm-ia-item--overlay .stm-ia-item__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0) 60%);
	pointer-events: none;
}

.stm-ia-item__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: var(--stm-ia-card-ratio, var(--stm-ia-ratio, 16 / 9));
	width: 100%;
	max-height: var(--stm-ia-card-h, none);
	background: rgba(0, 0, 0, 0.04);
}

.stm-ia-item__media-link {
	display: block;
	width: 100%;
	height: 100%;
}

.stm-ia-item__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--stm-ia-transition) ease, filter var(--stm-ia-transition) ease;
}

.stm-ia-item__media-overlay {
	position: absolute;
	inset: 0;
	transition: background var(--stm-ia-transition) ease;
	pointer-events: none;
}

.stm-ia-item__badge-wrap {
	--stm-ia-badge-x: 16px;
	--stm-ia-badge-y: 16px;
	position: absolute;
	z-index: 4;
}

.stm-ia-badge--left { left: var(--stm-ia-badge-x); right: auto; }
.stm-ia-badge--right { right: var(--stm-ia-badge-x); left: auto; }
.stm-ia-badge--hcenter,
.stm-ia-badge--center {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
}
.stm-ia-badge--top { top: var(--stm-ia-badge-y); bottom: auto; }
.stm-ia-badge--bottom { bottom: var(--stm-ia-badge-y); top: auto; }

.stm-ia-el { min-width: 0; }
.stm-ia-el--left { text-align: left; }
.stm-ia-el--center { text-align: center; }
.stm-ia-el--right { text-align: right; }

.stm-ia-terms,
.stm-ia-term {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	padding: 0.2em 0.6em;
	background: #1e3a5f;
	color: #fff;
	border-radius: 999px;
}

:where(.stm-ia-term) {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.stm-ia-term--community_event {
	background: #0f766e;
}

.stm-ia-item__title {
	margin: 0;
	overflow-wrap: break-word;
}

.stm-ia-item .stm-ia-item__title a,
.stm-ia-item .stm-ia-item__title a:visited {
	color: inherit;
	text-decoration: none;
}

.stm-ia-item--overlay .stm-ia-item__title a,
.stm-ia-item--overlay .stm-ia-item__title a:visited,
.stm-ia-zone--mosaic-overlay .stm-ia-item__title a,
.stm-ia-zone--mosaic-overlay .stm-ia-item__title a:visited {
	color: inherit;
}

.stm-ia-item__excerpt,
.stm-ia-item__dates,
.stm-ia-item__destinations,
.stm-ia-item__price,
.stm-ia-item__spots,
.stm-ia-item__level,
.stm-ia-item__pace,
.stm-ia-item__audience,
.stm-ia-item__skipass,
.stm-ia-item__season {
	margin: 0;
}

:where(.stm-ia-item__price-value) {
	font-weight: 700;
}

.stm-ia-item__price-currency {
	display: inline;
	font-weight: inherit;
}

.stm-ia-item__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.stm-ia-meta__item:not(:last-child)::after {
	content: none;
}

.stm-ia-item__more {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

button.stm-ia-item__more {
	appearance: none;
	cursor: pointer;
	font: inherit;
}

.stm-ia-divider {
	display: block;
	width: 100%;
	height: 1px;
	background: currentColor;
	opacity: 0.15;
}

.stm-ia-item__stretch {
	position: absolute;
	inset: 0;
	z-index: 5;
}

.stm-ia-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 1.5rem;
}

.stm-ia.is-filtered .stm-ia-filters {
	margin-bottom: var(--stm-ia-filter-active-gap, 1.5rem);
}

.stm-ia.is-filtered .stm-ia-zone--main .stm-ia-grid {
	row-gap: var(--stm-ia-filter-row-gap, var(--stm-ia-gap, 28px));
}

.stm-ia-filter {
	appearance: none;
	border: 1px solid currentColor;
	background: transparent;
	cursor: pointer;
	padding: 0.4em 0.9em;
	font: inherit;
	border-radius: 999px;
	transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.stm-ia-filter:hover:not(.is-active),
.stm-ia-filter:focus-visible:not(.is-active) {
	background: rgba(30, 58, 95, 0.08);
}

.stm-ia-filter.is-active {
	background: #1e3a5f;
	color: #fff;
	border-color: #1e3a5f;
}

.stm-ia-filter.is-active:hover,
.stm-ia-filter.is-active:focus-visible {
	background: #162b47;
	border-color: #162b47;
}

.stm-ia-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 2.5rem;
}

.stm-ia-pagination a,
.stm-ia-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	min-width: 2.2em;
	padding: 0.35em 0.7em;
	transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.stm-ia-pagination a:hover,
.stm-ia-pagination a:focus-visible {
	background: rgba(30, 58, 95, 0.08);
}

.stm-ia-pagination--ajax {
	flex-direction: column;
}

.stm-ia-load-more {
	appearance: none;
	border: 1px solid currentColor;
	background: transparent;
	cursor: pointer;
	font: inherit;
	padding: 0.7em 1.6em;
}

.stm-ia-load-more:hover,
.stm-ia-load-more:focus-visible {
	background: rgba(30, 58, 95, 0.08);
}

.stm-ia-load-more[disabled] {
	opacity: 0.5;
	cursor: default;
}

.stm-ia-spinner {
	display: none;
	width: 22px;
	height: 22px;
	margin-top: 12px;
	border: 2px solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	animation: stm-ia-spin 0.8s linear infinite;
}

.stm-ia.is-loading .stm-ia-spinner {
	display: block;
}

@keyframes stm-ia-spin {
	to { transform: rotate(360deg); }
}

.stm-ia-end { margin: 12px 0 0; opacity: 0.7; }
.stm-ia-sentinel { width: 100%; height: 1px; }

.stm-ia-skeleton .stm-ia-skeleton__media,
.stm-ia-skeleton .stm-ia-skeleton__line {
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.06));
	background-size: 200% 100%;
	animation: stm-ia-shimmer 1.2s ease-in-out infinite;
	border-radius: 4px;
}

.stm-ia-skeleton__media {
	aspect-ratio: var(--stm-ia-ratio, 16 / 9);
	margin-bottom: 12px;
}

.stm-ia-skeleton__line { height: 12px; margin-bottom: 8px; }
.stm-ia-skeleton__line--short { width: 45%; }

@keyframes stm-ia-shimmer {
	from { background-position: 200% 0; }
	to { background-position: -200% 0; }
}

.stm-ia-empty { padding: 2rem 0; }
.stm-ia-empty p:last-child { margin-bottom: 0; }

.stm-ia-live {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.stm-ia-zone--mosaic { display: block; width: 100%; max-width: 100%; }

.stm-ia-zone--mosaic .stm-ia-grid {
	--stm-ia-mosaic-hero: 34%;
	--stm-ia-mosaic-hero-ratio: 3 / 4;
	display: grid !important;
	grid-template-columns: var(--stm-ia-mosaic-hero) minmax(0, 1fr);
	align-items: stretch;
	gap: var(--stm-ia-gap, 6px);
	width: 100%;
}

.stm-ia-zone--mosaic .stm-ia-item--mosaic-hero {
	aspect-ratio: var(--stm-ia-card-ratio, var(--stm-ia-mosaic-hero-ratio));
	width: 100%;
	max-width: 100%;
	height: var(--stm-ia-card-h, auto);
	align-self: start;
	justify-self: stretch;
}

.stm-ia-zone--mosaic .stm-ia-mosaic-side {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: var(--stm-ia-gap, 6px);
	min-height: 100%;
	height: 100%;
}

.stm-ia-zone--mosaic .stm-ia-mosaic-side .stm-ia-item {
	min-height: 0;
	height: 100%;
}

.stm-ia-zone--mosaic .stm-ia-item__inner {
	position: absolute;
	top: var(--stm-ia-card-pt, 0px);
	right: var(--stm-ia-card-pr, 0px);
	bottom: var(--stm-ia-card-pb, 0px);
	left: var(--stm-ia-card-pl, 0px);
	padding: 0;
	display: block;
	gap: 0;
	overflow: hidden;
}

.stm-ia-zone--mosaic .stm-ia-item__media {
	position: absolute !important;
	inset: 0 !important;
	aspect-ratio: auto !important;
	width: 100% !important;
	height: 100% !important;
}

.stm-ia-zone--mosaic .stm-ia-item__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.stm-ia-zone--mosaic-overlay .stm-ia-item__body {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	padding: 0.7rem 0.85rem 0.85rem;
	color: #fff;
}

.stm-ia-zone--mosaic-card .stm-ia-item__inner {
	display: flex;
	flex-direction: column;
}

.stm-ia-zone--mosaic-card .stm-ia-item__media {
	position: relative !important;
	inset: auto;
	flex: 1 1 auto;
}

.stm-ia-zone--mosaic-card .stm-ia-item__body {
	position: relative;
	flex: 0 0 auto;
	padding: 0.7rem 0.15rem 0;
}

@media (max-width: 1024px) {
	.stm-ia-zone--mosaic .stm-ia-grid { grid-template-columns: repeat(var(--stm-ia-mosaic-cols, 1), minmax(0, 1fr)); }
	.stm-ia-zone--mosaic .stm-ia-item--mosaic-hero {
		aspect-ratio: var(--stm-ia-card-ratio, 16 / 9);
		width: 100%;
		max-width: 100%;
		height: var(--stm-ia-card-h, auto);
	}
	.stm-ia-zone--mosaic .stm-ia-mosaic-side {
		height: auto;
		grid-template-rows: auto auto;
	}
	.stm-ia-zone--mosaic .stm-ia-mosaic-side .stm-ia-item {
		aspect-ratio: var(--stm-ia-card-ratio, 16 / 10);
		width: 100%;
		max-width: 100%;
		height: var(--stm-ia-card-h, auto);
		min-height: var(--stm-ia-card-h, 160px);
	}
}

@media (max-width: 767px) {
	.stm-ia-zone--mosaic .stm-ia-mosaic-side { grid-template-columns: 1fr; }
	.stm-ia-zone--mosaic .stm-ia-item--mosaic-hero,
	.stm-ia-zone--mosaic .stm-ia-mosaic-side .stm-ia-item {
		aspect-ratio: var(--stm-ia-card-ratio, 4 / 3);
		width: 100%;
		max-width: 100%;
		height: var(--stm-ia-card-h, auto);
		min-height: 0;
		justify-self: stretch;
	}

	.stm-ia-item {
		margin-top: var(--stm-ia-card-pt, 0px);
		margin-right: var(--stm-ia-card-pr, 0px);
		margin-bottom: var(--stm-ia-card-pb, 0px);
		margin-left: var(--stm-ia-card-pl, 0px);
	}
}

.stm-ia--anim .stm-ia-anim {
	opacity: 0;
	transition: opacity var(--stm-ia-anim-duration) ease var(--stm-ia-anim-delay, 0ms),
		transform var(--stm-ia-anim-duration) ease var(--stm-ia-anim-delay, 0ms);
}

.stm-ia--anim-fade-up .stm-ia-anim { transform: translateY(24px); }
.stm-ia--anim-fade-left .stm-ia-anim { transform: translateX(-24px); }
.stm-ia--anim-zoom .stm-ia-anim { transform: scale(0.94); }
.stm-ia--anim .stm-ia-anim.is-in { opacity: 1; transform: none; }
.stm-ia--anim .stm-ia-zone--mosaic .stm-ia-anim { opacity: 1; transform: none; }

.stm-ia a:focus-visible,
.stm-ia button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.stm-ia [hidden] { display: none !important; }

.stm-ia .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.stm-ia *,
	.stm-ia *::before,
	.stm-ia *::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
	.stm-ia--anim .stm-ia-anim { opacity: 1; transform: none; }
}
