/*
 * Restart Archivio — stili pubblici.
 * Usa le variabili colore del tema Gamic (--theme-color-*), con valori di riserva per altri temi.
 */
.rsa-single,
.rsa-archive,
.rsa-grid,
.rsa-carousel {
	--rsa-accent: var(--theme-color-text_link, #e1ff64);
	--rsa-accent-hover: var(--theme-color-text_hover, #ff02cc);
	--rsa-heading: var(--theme-color-text_dark, #ffffff);
	--rsa-text: var(--theme-color-text, #d6d6de);
	--rsa-muted: var(--theme-color-text_light, #a9a9b1);
	--rsa-border: var(--theme-color-bd_color, #32323e);
	--rsa-surface: var(--theme-color-alter_bg_color, #14141d);
	--rsa-radius: 12px;
	--rsa-gap: 24px;
}

.rsa-single,
.rsa-archive {
	padding: 40px 0 80px;
}
/*
 * Intestazione del tema sovrapposta al contenuto (come nelle pagine del sito): il contenuto parte sotto
 * il menu e la fascia decorativa. frontend.js imposta il valore esatto (--rsa-header-offset) in base
 * all'altezza reale dell'intestazione; questi sono i valori di riserva.
 */
.header_position_over .rsa-single,
.header_position_over .rsa-archive {
	padding-top: var(--rsa-header-offset, 230px);
}
@media (max-width: 1023px) {
	.header_position_over .rsa-single,
	.header_position_over .rsa-archive {
		padding-top: var(--rsa-header-offset, 160px);
	}
}
/*
 * La fascia pixelata in fondo all'intestazione, nelle pagine del sito, sfuma nella sezione colorata
 * sottostante; nelle pagine dell'archivio (che non hanno quella sezione) lascerebbe solo uno spazio vuoto.
 */
.rsa-archive-page .top_panel .elementor-top-section:last-child:not(:first-child) {
	display: none;
}

/* Blocco principale: foto quadrata a sinistra, testo a destra */
.rsa-hero {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 56px;
	align-items: start;
	margin-bottom: 72px;
}
.rsa-hero--no-image {
	grid-template-columns: 1fr;
}
.rsa-hero__media {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--rsa-radius);
	background: var(--rsa-surface);
}
.rsa-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rsa-hero__media--embed {
	aspect-ratio: auto;
	background: none;
}
.rsa-hero__media--embed .rsa-embed {
	margin: 0;
}
.rsa-kicker {
	margin: 0 0 12px;
	color: var(--rsa-accent);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.rsa-kicker a {
	display: inline-block;
	padding: 6px 0; /* Area di tocco più comoda da telefono. */
	color: inherit;
}
.rsa-hero__title {
	margin: 0 0 24px;
	color: var(--rsa-heading);
	overflow-wrap: anywhere;
}
.rsa-hero__date {
	margin: 0 0 8px;
	color: var(--rsa-muted);
	font-size: 16px;
	font-weight: 600;
}
.rsa-hero__subtitle {
	margin: -12px 0 24px;
	color: var(--rsa-accent);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
}
.rsa-hero__description {
	color: var(--rsa-text);
}
.rsa-hero__info {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 12px;
	margin: 0;
	padding: 10px 0;
	border-top: 1px solid var(--rsa-border);
	color: var(--rsa-heading);
}
.rsa-hero__info:last-of-type {
	border-bottom: 1px solid var(--rsa-border);
}
.rsa-hero__info-label {
	color: var(--rsa-muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding-top: 2px;
}
.rsa-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 20px 0 0;
}
/* Espositori: il logo resta intero, su fondo chiaro. */
.rsa-card--espositore .rsa-card__media {
	aspect-ratio: 1 / 1;
	background: #fff;
}
.rsa-card--espositore .rsa-card__media img {
	object-fit: contain;
	padding: 16%;
}
.rsa-single--espositore .rsa-hero__media {
	background: #fff;
}
.rsa-single--espositore .rsa-hero__media img {
	object-fit: contain;
	padding: 12%;
}
.rsa-hero__description > :last-child {
	margin-bottom: 0;
}
.rsa-hero__extra {
	margin-top: 24px;
}
.rsa-hero__place,
.rsa-hero__theme {
	margin: 0 0 8px;
	color: var(--rsa-heading);
	font-weight: 600;
}

/* Carosello */
.rsa-carousel__nav {
	display: flex;
	align-items: center;
	gap: 8px;
}
.rsa-carousel__nav .rsa-section__more {
	margin-right: 12px;
}
.rsa-carousel__btn {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--rsa-border);
	border-radius: 50%;
	background: transparent;
	color: var(--rsa-heading);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}
.rsa-carousel__btn:hover:not(:disabled),
.rsa-carousel__btn:focus-visible {
	border-color: var(--rsa-accent);
	color: var(--rsa-accent);
}
.rsa-carousel__btn:disabled {
	opacity: 0.35;
	cursor: default;
}
/* Le frecce compaiono solo se lo script è attivo (alcuni gestori dei cookie bloccano gli script fino al consenso);
   senza script il carosello resta scorrevole con dito, trackpad o barra di scorrimento. */
.rsa-carousel__btn,
.rsa-carousel--static .rsa-carousel__btn {
	display: none;
}
.rsa-carousel--ready:not(.rsa-carousel--static) .rsa-carousel__btn {
	display: inline-block;
}
.rsa-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--rsa-carousel-columns, 4) - 1) * var(--rsa-gap)) / var(--rsa-carousel-columns, 4));
	gap: var(--rsa-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var(--rsa-border) transparent;
	padding-bottom: 12px;
}
.rsa-carousel--ready .rsa-carousel__track {
	scrollbar-width: none;
	padding-bottom: 4px;
}
.rsa-carousel--ready .rsa-carousel__track::-webkit-scrollbar {
	display: none;
}
.rsa-carousel__item {
	scroll-snap-align: start;
	min-width: 0;
}
.rsa-section__head--nav-only {
	justify-content: flex-end;
}
.rsa-section__head--nav-only:not(:has(.rsa-section__more)) {
	margin-bottom: 0;
}
/* Carosello delle edizioni (es. in home): immagini grandi, titolo in evidenza. */
.rsa-carousel .rsa-card--edizione .rsa-card__title {
	font-size: 26px;
}

/* Rimando all'edizione */
.rsa-edition-link {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 24px;
	border: 1px solid var(--rsa-border);
	border-radius: var(--rsa-radius);
	background: var(--rsa-surface);
	color: var(--rsa-text);
	text-decoration: none;
}
.rsa-edition-link + .rsa-edition-link {
	margin-top: 16px;
}
.rsa-edition-link:hover .rsa-button,
.rsa-edition-link:focus-visible .rsa-button {
	background: var(--rsa-accent);
	color: #0b0b10;
}
.rsa-edition-link__media img {
	display: block;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 8px;
}
.rsa-edition-link__text {
	flex: 1;
	min-width: 0;
}
.rsa-edition-link__text .rsa-kicker {
	display: block;
	margin-bottom: 4px;
}
.rsa-edition-link__title {
	display: block;
	color: var(--rsa-heading);
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
}

/* Sezioni */
.rsa-section {
	margin: 0 0 56px;
}
.rsa-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 24px;
	margin-bottom: 24px;
}
.rsa-section__title {
	margin: 0 0 24px;
	color: var(--rsa-heading);
}
.rsa-section__head .rsa-section__title {
	margin: 0;
}
.rsa-section__more {
	color: var(--rsa-accent);
	font-weight: 700;
}

/* Griglia e schede */
.rsa-grid {
	display: grid;
	grid-template-columns: repeat(var(--rsa-columns, 3), minmax(0, 1fr));
	gap: var(--rsa-gap);
}
.rsa-card {
	min-width: 0;
}
.rsa-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--rsa-border);
	border-radius: var(--rsa-radius);
	background: var(--rsa-surface);
	color: var(--rsa-text);
	text-decoration: none;
	transition: border-color 0.2s, transform 0.2s;
}
.rsa-card__link:hover,
.rsa-card__link:focus-visible {
	border-color: var(--rsa-accent);
	transform: translateY(-3px);
}
.rsa-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rsa-border);
}
.rsa-card--ospite .rsa-card__media,
.rsa-card--edizione .rsa-card__media {
	aspect-ratio: 1 / 1;
}
.rsa-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.rsa-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--rsa-accent);
	font-size: 64px;
	font-weight: 700;
}
.rsa-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--rsa-accent);
	color: #0b0b10;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.rsa-card__body {
	padding: 18px 20px 22px;
}
.rsa-card__title {
	margin: 0 0 8px;
	color: var(--rsa-heading);
	font-size: 20px;
	line-height: 1.25;
	overflow-wrap: anywhere;
}
.rsa-card__meta,
.rsa-card__excerpt {
	margin: 0;
	color: var(--rsa-muted);
	font-size: 15px;
	line-height: 1.5;
}
.rsa-card__excerpt {
	margin-top: 8px;
}

/* Galleria */
.rsa-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
}
.rsa-gallery__item {
	display: block;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 8px;
}
.rsa-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}
a.rsa-gallery__item:hover img {
	transform: scale(1.04);
}
.rsa-section__count {
	color: var(--rsa-muted);
	font-weight: 600;
}
.rsa-gallery__more {
	margin-top: 12px;
}
.rsa-gallery__more > summary {
	list-style: none;
	margin: 12px 0;
}
.rsa-gallery__more > summary::-webkit-details-marker {
	display: none;
}
.rsa-gallery__more[open] > summary {
	display: none;
}
.rsa-gallery--logos {
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	align-items: center;
}
.rsa-gallery--logos .rsa-gallery__item {
	aspect-ratio: 3 / 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: #fff;
}
.rsa-gallery--logos .rsa-gallery__item img {
	object-fit: contain;
}

/* Media incorporati */
.rsa-embed {
	position: relative;
	margin-bottom: 32px;
}
.rsa-embed iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	border: 0;
	border-radius: var(--rsa-radius);
}
.rsa-embed iframe[src*="youtube"],
.rsa-embed iframe[src*="vimeo"] {
	height: auto;
	aspect-ratio: 16 / 9;
}
.rsa-media-image img {
	max-width: 100%;
	height: auto;
	border-radius: var(--rsa-radius);
}

/* Link e pulsanti */
.rsa-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.rsa-button {
	display: inline-block;
	padding: 12px 22px;
	border: 1px solid var(--rsa-accent);
	border-radius: 999px;
	background: transparent;
	color: var(--rsa-accent);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.rsa-button:hover,
.rsa-button:focus-visible {
	background: var(--rsa-accent);
	color: #0b0b10;
}

/* Archivio e filtri */
.rsa-archive__head {
	margin-bottom: 32px;
}
.rsa-archive__intro {
	max-width: 720px;
	color: var(--rsa-text);
}
.rsa-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 40px;
	padding: 20px;
	border: 1px solid var(--rsa-border);
	border-radius: var(--rsa-radius);
}
.rsa-filters label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 180px;
	color: var(--rsa-muted);
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.rsa-filters select {
	min-width: 180px;
}
.rsa-filters__reset {
	align-self: center;
	color: var(--rsa-muted);
}
.rsa-empty {
	color: var(--rsa-muted);
}

/* Responsive */
@media (max-width: 1023px) {
	.rsa-grid {
		grid-template-columns: repeat(min(var(--rsa-columns, 3), 2), minmax(0, 1fr));
	}
	.rsa-hero {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.rsa-hero__media {
		max-width: 560px;
	}
	.rsa-carousel__track {
		grid-auto-columns: calc((100% - (min(var(--rsa-carousel-columns, 4), 2) - 1) * var(--rsa-gap)) / min(var(--rsa-carousel-columns, 4), 2));
	}
}
@media (max-width: 599px) {
	.rsa-grid {
		grid-template-columns: 1fr;
	}
	.rsa-carousel__track {
		grid-auto-columns: 82%;
	}
	.rsa-filters label,
	.rsa-filters select {
		width: 100%;
		min-width: 0;
	}
	.rsa-edition-link {
		flex-wrap: wrap;
	}
	.rsa-edition-link__title {
		font-size: 22px;
	}
	.rsa-hero__info {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* Titoli per i lettori di schermo, non visibili. */
.rsa-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media (prefers-reduced-motion: reduce) {
	.rsa-carousel__track {
		scroll-behavior: auto;
	}
}

/* Galleria in carosello (pagina edizione) e pagina con tutte le foto. */
.rsa-carousel .rsa-gallery__item {
	width: 100%;
}
.rsa-archive--galleria .rsa-gallery {
	margin-bottom: 32px;
}
