/*
 * Token ripresi dal sito Sinergie (Divi): verde CTA, bordeaux per gli eyebrow,
 * Roboto per i titoli, Open Sans per il corpo del testo. Look volutamente sobrio,
 * pensato per inserirsi nella grafica esistente senza un proprio "stile".
 */
.sincorsi-calendario,
.sincorsi-single {
	--sincorsi-verde: #48ad1d;
	--sincorsi-accento: #6e141a;
	--sincorsi-titolo: #333333;
	--sincorsi-testo: #666666;
	--sincorsi-bordo: #e2e2e2;
	--sincorsi-sfondo: #f7f7f7;
	--font-titoli: Roboto, Helvetica, Arial, sans-serif;
	--font-occhiello: Arimo, Helvetica, Arial, sans-serif;
	--font-testo: "Open Sans", Arial, sans-serif;

	/* Scala tipografica unica: tutto il modulo (card, sidebar, testo, tabella)
	   usa questi riferimenti, invece di taglie scelte punto per punto.
	   Valori allineati a quelli misurati sulle schede corso già pubblicate sul
	   sito: paragrafo ~18px, etichette sidebar (h3 "DURATA" ecc.) ~20px,
	   h1 Roboto 300 ~50px, eyebrow Arimo 700 ~20px. */
	--fs-testo: 18px;
	--fs-piccolo: 15px;
	--fs-etichetta: 12px;
	--fs-sidebar-label: 18px;
	--fs-occhiello: 20px;
	--fs-h1: 46px;
	--fs-h2: 24px;
	--fs-h3-card: 18px;

	color: var(--sincorsi-testo);
	font-family: var(--font-testo);
	font-size: var(--fs-testo);
	line-height: 1.6;
}

.sincorsi-calendario p,
.sincorsi-calendario li,
.sincorsi-single p,
.sincorsi-single li {
	font-size: var(--fs-testo);
}

.sincorsi-calendario h1,
.sincorsi-calendario h2,
.sincorsi-calendario h3,
.sincorsi-single h1,
.sincorsi-single h2,
.sincorsi-single h3 {
	font-family: var(--font-titoli);
	color: var(--sincorsi-titolo);
	font-weight: 500;
}

.sincorsi-single h2 {
	font-size: var(--fs-h2);
	margin: 34px 0 14px;
}

.sincorsi-container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---- Filtri ---- */
.sincorsi-filtri {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 26px;
}

.sincorsi-filtro {
	padding: 9px 12px;
	border: 1px solid var(--sincorsi-bordo);
	border-radius: 4px;
	background: #fff;
	font-family: var(--font-testo);
	color: var(--sincorsi-titolo);
	font-size: var(--fs-piccolo);
	min-width: 160px;
}

.sincorsi-filtro[type="search"] {
	flex: 1 1 220px;
}

/* ---- Griglia corsi ---- */
/* Elastica: parte da 4 colonne su desktop e si adatta agli spazi più stretti. */
.sincorsi-griglia {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

@media (max-width: 1180px) {
	.sincorsi-griglia {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 860px) {
	.sincorsi-griglia {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 560px) {
	.sincorsi-griglia {
		grid-template-columns: 1fr;
	}
}

.sincorsi-card {
	border: 1px solid var(--sincorsi-bordo);
	border-radius: 6px;
	overflow: hidden;
	background: #fff;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.sincorsi-card:hover {
	border-color: #c9c9c9;
	transform: translateY(-4px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .08);
}

.sincorsi-card-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.sincorsi-card-img {
	aspect-ratio: 16 / 10;
	background: var(--sincorsi-sfondo);
	overflow: hidden;
}

.sincorsi-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}

.sincorsi-card:hover .sincorsi-card-img img {
	transform: scale(1.05);
}

.sincorsi-card-img-placeholder {
	width: 100%;
	height: 100%;
	background: var(--sincorsi-sfondo);
}

.sincorsi-badge {
	display: block;
	text-transform: uppercase;
	letter-spacing: .03em;
	font-size: var(--fs-etichetta);
	font-weight: 700;
	color: var(--sincorsi-accento);
	margin: 0 0 8px;
}

.sincorsi-card-body {
	padding: 14px 16px 18px;
}

.sincorsi-card-body h3 {
	margin: 0 0 10px;
	font-size: var(--fs-h3-card);
	line-height: 1.35;
	font-weight: 500;
}

.sincorsi-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 10px;
}

.sincorsi-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	padding: 3px 9px;
	border-radius: 3px;
	margin-top: 0;
}

.sincorsi-tag-modalita {
	background: var(--sincorsi-sfondo);
	border: 1px solid var(--sincorsi-bordo);
	color: var(--sincorsi-testo);
}

.sincorsi-card-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	row-gap: 6px;
	column-gap: 8px;
}

.sincorsi-card-data {
	margin: 0;
	font-size: var(--fs-piccolo);
	color: var(--sincorsi-testo);
}

.sincorsi-prezzo {
	flex: 0 0 auto;
	background: var(--sincorsi-sfondo);
	border: 1px solid var(--sincorsi-bordo);
	color: var(--sincorsi-titolo);
	font-family: var(--font-titoli);
	font-weight: 700;
	font-size: var(--fs-piccolo);
	padding: 4px 10px;
	border-radius: 100px;
}

.sincorsi-stato {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	padding: 3px 9px;
	border-radius: 3px;
}

.sincorsi-stato-programmato,
.sincorsi-stato-confermato {
	background: #eef6e9;
	color: #3f7d1f;
}

.sincorsi-stato-sold_out {
	background: #f7e9e9;
	color: var(--sincorsi-accento);
}

.sincorsi-stato-annullato {
	background: #f1f1f1;
	color: #777777;
}

.sincorsi-nessun-risultato {
	color: var(--sincorsi-testo);
}

/* ---- Scheda singolo corso ---- */
.sincorsi-single-columns {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 36px;
	align-items: start;
	padding-top: 32px;
}

.sincorsi-eyebrow {
	text-transform: uppercase;
	letter-spacing: normal;
	font-family: var(--font-occhiello);
	font-size: var(--fs-occhiello);
	font-weight: 700;
	color: var(--sincorsi-accento);
	margin: 0 0 8px;
}

.sincorsi-single-content h1 {
	margin: 0 0 20px;
	font-weight: 300;
	font-size: var(--fs-h1);
	line-height: 1.15;
	letter-spacing: -1px;
}

.sincorsi-single-img {
	width: 100%;
	margin: 0 0 20px;
}

.sincorsi-single-img img {
	width: 100%;
	height: auto;
	max-height: 460px;
	object-fit: contain;
	border-radius: 6px;
	border: 1px solid var(--sincorsi-bordo);
	background: var(--sincorsi-sfondo);
	display: block;
}

.sincorsi-single-sidebar {
	background: var(--sincorsi-sfondo);
	border: 1px solid var(--sincorsi-bordo);
	border-radius: 6px;
	padding: 22px;
	position: sticky;
	top: 20px;
}

.sincorsi-single-sidebar h4 {
	margin: 20px 0 8px;
	font-size: var(--fs-sidebar-label);
	font-family: var(--font-titoli);
	text-transform: uppercase;
	letter-spacing: normal;
	font-weight: 700;
	color: var(--sincorsi-titolo);
}

.sincorsi-single-sidebar h4:first-of-type {
	margin-top: 8px;
}

.sincorsi-single-sidebar p,
.sincorsi-single-sidebar li {
	font-size: var(--fs-piccolo);
}

.sincorsi-single-sidebar ul {
	margin: 0;
	padding-left: 18px;
}

/* Contenuto formattato dagli editor (grassetto, corsivo, elenchi) nei campi descrittivi. */
.sincorsi-rich p,
.sincorsi-rich ul,
.sincorsi-rich ol {
	margin: 0 0 10px;
}

.sincorsi-rich ul,
.sincorsi-rich ol {
	padding-left: 20px;
}

.sincorsi-rich > :last-child {
	margin-bottom: 0;
}

.sincorsi-cta {
	display: block;
	text-align: center;
	background: var(--sincorsi-verde);
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
	font-family: var(--font-titoli);
	font-weight: 700;
	font-size: var(--fs-etichetta);
	padding: 11px 16px;
	margin-top: 12px;
	border-radius: 100px;
}

.sincorsi-edizioni-section {
	margin-top: 36px;
	padding-top: 28px;
	padding-bottom: 40px;
	border-top: 1px solid var(--sincorsi-bordo);
}

.sincorsi-tabella-edizioni {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
}

.sincorsi-tabella-edizioni th,
.sincorsi-tabella-edizioni td {
	text-align: left;
	padding: 10px 12px;
	border-bottom: 1px solid var(--sincorsi-bordo);
	font-size: var(--fs-piccolo);
}

.sincorsi-tabella-edizioni th {
	color: var(--sincorsi-testo);
	font-family: var(--font-titoli);
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .03em;
}

.sincorsi-accordion {
	margin-top: 12px;
	border-top: 1px solid var(--sincorsi-bordo);
}

.sincorsi-accordion-item {
	border-bottom: 1px solid var(--sincorsi-bordo);
}

.sincorsi-accordion-item summary {
	cursor: pointer;
	padding: 14px 4px;
	font-family: var(--font-titoli);
	font-weight: 500;
	color: var(--sincorsi-titolo);
	list-style: none;
}

.sincorsi-accordion-item summary::-webkit-details-marker {
	display: none;
}

.sincorsi-accordion-item summary::before {
	content: "+";
	display: inline-block;
	width: 18px;
	color: var(--sincorsi-verde);
	font-weight: 700;
}

.sincorsi-accordion-item[open] summary::before {
	content: "−";
}

.sincorsi-accordion-body {
	padding: 0 4px 16px 26px;
}

/* ---- Responsive ---- */
@media (max-width: 782px) {
	.sincorsi-single-columns {
		grid-template-columns: 1fr;
		padding-top: 20px;
	}

	.sincorsi-single-img {
		max-width: 100%;
	}

	.sincorsi-single-sidebar {
		position: static;
	}

	.sincorsi-tabella-edizioni thead {
		display: none;
	}

	.sincorsi-tabella-edizioni,
	.sincorsi-tabella-edizioni tbody,
	.sincorsi-tabella-edizioni tr,
	.sincorsi-tabella-edizioni td {
		display: block;
		width: 100%;
	}

	.sincorsi-tabella-edizioni tr {
		border: 1px solid var(--sincorsi-bordo);
		border-radius: 6px;
		margin-bottom: 12px;
		padding: 8px 12px;
	}

	.sincorsi-tabella-edizioni td {
		border: none;
		padding: 6px 0;
		display: flex;
		justify-content: space-between;
		gap: 10px;
	}

	.sincorsi-tabella-edizioni td::before {
		content: attr(data-label);
		font-weight: 700;
		color: var(--sincorsi-testo);
	}
}
