/*
 * Academy Corsi, calendario e scheda del corso.
 *
 * I colori e i caratteri partono dalle variabili globali del kit Elementor del
 * sito (--e-global-color-*, --e-global-typography-*). I widget li sovrascrivono
 * dai controlli di stile; lo shortcode li usa così come sono.
 */

.ndbac {
	--ndbac-titolo: var(--e-global-color-accent, #17171f);
	--ndbac-titolo-hover: var(--e-global-color-primary, #b4009b);
	--ndbac-testo: var(--e-global-color-text, #33333d);
	--ndbac-etichette: var(--e-global-color-de0b024, #6a6874);
	--ndbac-bordi: var(--e-global-color-de0b011, rgba(23, 23, 31, 0.14));
	--ndbac-riga: var(--e-global-color-accent, #17171f);
	--ndbac-hover: var(--e-global-color-de0b005, #f2eee9);
	--ndbac-accento: var(--e-global-color-primary, #b4009b);
	--ndbac-accento-scuro: var(--e-global-color-de0b001, #8d0079);
	--ndbac-cta-testo: var(--e-global-color-de0b006, #ffffff);
	--ndbac-prezzo-colore: var(--e-global-color-accent, #17171f);
	--ndbac-badge-fondo: var(--e-global-color-de0b002, #ffd6f4);
	--ndbac-badge-testo: var(--e-global-color-de0b001, #8d0079);
	--ndbac-aula-fondo: transparent;
	--ndbac-aula-testo: var(--e-global-color-accent, #17171f);
	--ndbac-scheda-fondo: var(--e-global-color-de0b006, #ffffff);
	--ndbac-raggio: 2px;
	--ndbac-pad-y: 22px;
	--ndbac-pad-x: 16px;
	--ndbac-scheda-pad: 32px;

	--ndbac-serif: var(--e-global-typography-primary-font-family, "Newsreader"), Georgia, "Times New Roman", serif;
	--ndbac-sans: var(--e-global-typography-text-font-family, "Archivo"), system-ui, -apple-system, "Segoe UI", sans-serif;

	position: relative;
	color: var(--ndbac-testo);
	font-family: var(--ndbac-sans);
	-webkit-font-smoothing: antialiased;
}

.ndbac *,
.ndbac *::before,
.ndbac *::after {
	box-sizing: border-box;
}

.ndbac-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------ */
/* Tipografia di base (dal kit)                                        */
/* ------------------------------------------------------------------ */

.ndbac .ndbac-nome {
	font-family: var(--e-global-typography-de0f038-font-family, "Newsreader"), Georgia, serif;
	font-size: var(--e-global-typography-de0f038-font-size, 23px);
	font-weight: var(--e-global-typography-de0f038-font-weight, 500);
	line-height: var(--e-global-typography-de0f038-line-height, 1.3);
	letter-spacing: normal;
	color: var(--ndbac-titolo);
}

.ndbac .ndbac-tabella thead th,
.ndbac .ndbac-tabella td::before,
.ndbac .ndbac-scheda__dati dt {
	font-family: var(--e-global-typography-de0f018-font-family, "Archivo"), system-ui, sans-serif;
	font-size: var(--e-global-typography-de0f018-font-size, 12px);
	font-weight: var(--e-global-typography-de0f018-font-weight, 600);
	line-height: var(--e-global-typography-de0f018-line-height, 1.2);
	letter-spacing: var(--e-global-typography-de0f018-letter-spacing, 0.18em);
	text-transform: var(--e-global-typography-de0f018-text-transform, uppercase);
	color: var(--ndbac-etichette);
}

.ndbac .ndbac-data,
.ndbac .ndbac-c-orario,
.ndbac .ndbac-c-durata,
.ndbac .ndbac-in-arrivo,
.ndbac .ndbac-vuoto,
.ndbac .ndbac-scheda__dati dd,
.ndbac .ndbac-scheda__note {
	font-family: var(--e-global-typography-de0f014-font-family, "Archivo"), system-ui, sans-serif;
	font-size: var(--e-global-typography-de0f014-font-size, 16px);
	font-weight: var(--e-global-typography-de0f014-font-weight, 400);
	line-height: var(--e-global-typography-de0f014-line-height, 1.6);
	color: var(--ndbac-testo);
}

.ndbac .ndbac-prezzo {
	font-family: var(--e-global-typography-de0f007-font-family, "Newsreader"), Georgia, serif;
	font-size: var(--e-global-typography-de0f007-font-size, 22px);
	font-weight: var(--e-global-typography-de0f007-font-weight, 500);
	line-height: 1.15;
	color: var(--ndbac-prezzo-colore);
	white-space: nowrap;
	font-variant-numeric: lining-nums;
}

.ndbac .ndbac-badge {
	font-family: var(--e-global-typography-de0f055-font-family, "Archivo"), system-ui, sans-serif;
	font-size: var(--e-global-typography-de0f055-font-size, 13px);
	font-weight: var(--e-global-typography-de0f055-font-weight, 600);
	line-height: 1.3;
}

.ndbac .ndbac-cta {
	font-family: var(--e-global-typography-de0f022-font-family, "Archivo"), system-ui, sans-serif;
	font-size: var(--e-global-typography-de0f022-font-size, 15px);
	font-weight: var(--e-global-typography-de0f022-font-weight, 600);
	line-height: 1.1;
}

/* ------------------------------------------------------------------ */
/* Tabella                                                             */
/* ------------------------------------------------------------------ */

.ndbac-tabella-wrap {
	position: relative;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.ndbac .ndbac-tabella {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
	background: transparent;
	font-size: inherit;
	table-layout: auto;
}

.ndbac .ndbac-tabella th,
.ndbac .ndbac-tabella td {
	padding: var(--ndbac-pad-y) var(--ndbac-pad-x);
	border: 0;
	border-bottom: 1px solid var(--ndbac-bordi);
	background: transparent;
	text-align: left;
	vertical-align: middle;
	line-height: inherit;
}

.ndbac .ndbac-tabella thead th {
	padding-top: 0;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ndbac-riga);
	vertical-align: bottom;
	white-space: nowrap;
}

.ndbac .ndbac-tabella tbody tr {
	transition: background-color 0.2s ease;
}

.ndbac .ndbac-tabella tbody tr:hover > th,
.ndbac .ndbac-tabella tbody tr:hover > td {
	background-color: var(--ndbac-hover);
}

.ndbac .ndbac-tabella .ndbac-c-corso {
	min-width: 13em;
	width: 34%;
}

.ndbac .ndbac-tabella tbody .ndbac-c-corso {
	font-weight: inherit;
}

.ndbac .ndbac-tabella .ndbac-c-data,
.ndbac .ndbac-tabella .ndbac-c-orario,
.ndbac .ndbac-tabella .ndbac-c-prezzo {
	white-space: nowrap;
}

.ndbac .ndbac-tabella .ndbac-c-azione {
	text-align: right;
	white-space: nowrap;
	width: 1%;
}

.ndbac .ndbac-tabella tbody .ndbac-c-in-arrivo,
.ndbac .ndbac-tabella .ndbac-c-durata {
	white-space: normal;
}

.ndbac .ndbac-tabella .ndbac-c-durata {
	min-width: 9em;
}

@media (max-width: 1280px) {
	.ndbac {
		--ndbac-pad-x: 12px;
	}

	.ndbac .ndbac-tabella .ndbac-c-corso {
		min-width: 11em;
	}

	.ndbac .ndbac-tabella .ndbac-c-orario,
	.ndbac .ndbac-tabella .ndbac-c-azione {
		white-space: normal;
	}

	.ndbac .ndbac-tabella .ndbac-c-azione .ndbac-cta {
		white-space: normal;
		text-align: left;
	}
}

/* Nome del corso */

.ndbac a.ndbac-nome {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: color 0.2s ease, background-size 0.3s ease;
}

.ndbac a.ndbac-nome:hover,
.ndbac a.ndbac-nome:focus-visible {
	color: var(--ndbac-titolo-hover);
	background-size: 100% 1px;
}

.ndbac-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
}

/* Etichette di modalità e stato */

.ndbac .ndbac-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px 4px 9px;
	border-radius: 999px;
	background: var(--ndbac-badge-fondo);
	color: var(--ndbac-badge-testo);
	white-space: nowrap;
}

.ndbac .ndbac-badge--online::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

.ndbac .ndbac-badge--aula {
	background: var(--ndbac-aula-fondo);
	color: var(--ndbac-aula-testo);
	box-shadow: inset 0 0 0 1px var(--ndbac-bordi);
}

.ndbac .ndbac-badge--aula::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 1px;
	background: currentColor;
}

.ndbac .ndbac-badge--stato {
	background: var(--ndbac-titolo);
	color: var(--ndbac-cta-testo);
}

/* Date e orari */

.ndbac .ndbac-data {
	display: block;
}

.ndbac .ndbac-ora {
	display: block;
	margin-top: 2px;
	font-size: 0.875em;
	color: var(--ndbac-etichette);
}

.ndbac .ndbac-date {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ndbac .ndbac-date li {
	margin: 0 0 8px;
	padding: 0;
}

.ndbac .ndbac-date li:last-child {
	margin-bottom: 0;
}

.ndbac .ndbac-in-arrivo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-style: italic;
}

.ndbac .ndbac-in-arrivo::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border: 1.5px solid var(--ndbac-accento);
	border-radius: 50%;
}

/* Costo */

.ndbac .ndbac-nota-prezzo {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.3;
	color: var(--ndbac-etichette);
	white-space: normal;
}

/* Richiesta informazioni */

.ndbac .ndbac-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 0;
	color: var(--ndbac-accento);
	text-decoration: none;
	border: 0;
	white-space: nowrap;
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.ndbac .ndbac-cta span {
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	padding-bottom: 3px;
}

.ndbac .ndbac-cta:hover,
.ndbac .ndbac-cta:focus-visible {
	color: var(--ndbac-accento-scuro);
}

.ndbac .ndbac-freccia {
	flex: none;
	transition: transform 0.25s ease;
}

.ndbac .ndbac-cta:hover .ndbac-freccia,
.ndbac .ndbac-cta:focus-visible .ndbac-freccia {
	transform: translateX(3px);
}

.ndbac a:focus-visible {
	outline: 2px solid var(--ndbac-accento);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Nessun corso */

.ndbac .ndbac-vuoto {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 20px 24px;
	border-left: 2px solid var(--ndbac-accento);
	background: var(--ndbac-hover);
}

/* ------------------------------------------------------------------ */
/* Schede sugli schermi piccoli                                        */
/* La tabella diventa una scheda per corso: ogni cella porta la sua    */
/* intestazione (data-label).                                          */
/* ------------------------------------------------------------------ */

@media (max-width: 767px) {
	.ndbac.ndbac--schede-mobile .ndbac-tabella-wrap {
		overflow: visible;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella,
	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody,
	.ndbac.ndbac--schede-mobile .ndbac-tabella tr,
	.ndbac.ndbac--schede-mobile .ndbac-tabella th,
	.ndbac.ndbac--schede-mobile .ndbac-tabella td {
		display: block;
		width: 100%;
		min-width: 0;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody tr {
		margin: 0 0 14px;
		padding: 20px 20px 18px;
		background: var(--ndbac-scheda-fondo);
		border: 1px solid var(--ndbac-bordi);
		border-radius: var(--ndbac-raggio);
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody tr:last-child {
		margin-bottom: 0;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody tr:hover > th,
	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody tr:hover > td {
		background: transparent;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody th {
		padding: 0 0 14px;
		border-bottom: 1px solid var(--ndbac-riga);
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td {
		display: grid;
		grid-template-columns: minmax(6.5em, 36%) 1fr;
		align-items: baseline;
		gap: 12px;
		padding: 12px 0;
		white-space: normal;
		text-align: left;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td::before {
		content: attr(data-label);
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td:nth-last-child(2),
	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td:last-child {
		border-bottom: 0;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td.ndbac-c-azione {
		display: block;
		width: 100%;
		padding: 16px 0 0;
	}

	.ndbac.ndbac--schede-mobile .ndbac-tabella tbody td.ndbac-c-azione::before {
		content: none;
	}

	.ndbac.ndbac--schede-mobile .ndbac-cta {
		display: flex;
		justify-content: center;
		width: 100%;
		padding: 14px 18px;
		border: 1px solid var(--ndbac-accento);
		border-radius: var(--ndbac-raggio);
	}

	.ndbac.ndbac--schede-mobile .ndbac-cta span {
		background-image: none;
		padding-bottom: 0;
	}

	.ndbac.ndbac--schede-mobile .ndbac-cta:hover,
	.ndbac.ndbac--schede-mobile .ndbac-cta:focus-visible {
		background: var(--ndbac-accento);
		border-color: var(--ndbac-accento);
		color: var(--ndbac-cta-testo);
	}
}

@media (max-width: 1024px) {
	.ndbac.ndbac--schede-tablet .ndbac-tabella-wrap {
		overflow: visible;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella,
	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody,
	.ndbac.ndbac--schede-tablet .ndbac-tabella tr,
	.ndbac.ndbac--schede-tablet .ndbac-tabella th,
	.ndbac.ndbac--schede-tablet .ndbac-tabella td {
		display: block;
		width: 100%;
		min-width: 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
		gap: 16px;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr.ndbac-riga {
		display: flex;
		flex-direction: column;
		margin: 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr.ndbac-riga td.ndbac-c-azione {
		margin-top: auto;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr {
		margin: 0 0 14px;
		padding: 20px 20px 18px;
		background: var(--ndbac-scheda-fondo);
		border: 1px solid var(--ndbac-bordi);
		border-radius: var(--ndbac-raggio);
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr:last-child {
		margin-bottom: 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr:hover > th,
	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody tr:hover > td {
		background: transparent;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody th {
		padding: 0 0 14px;
		border-bottom: 1px solid var(--ndbac-riga);
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td {
		display: grid;
		grid-template-columns: minmax(6.5em, 36%) 1fr;
		align-items: baseline;
		gap: 12px;
		padding: 12px 0;
		white-space: normal;
		text-align: left;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td::before {
		content: attr(data-label);
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td:nth-last-child(2),
	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td:last-child {
		border-bottom: 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td.ndbac-c-azione {
		display: block;
		width: 100%;
		padding: 16px 0 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-tabella tbody td.ndbac-c-azione::before {
		content: none;
	}

	.ndbac.ndbac--schede-tablet .ndbac-cta {
		display: flex;
		justify-content: center;
		width: 100%;
		padding: 14px 18px;
		border: 1px solid var(--ndbac-accento);
		border-radius: var(--ndbac-raggio);
	}

	.ndbac.ndbac--schede-tablet .ndbac-cta span {
		background-image: none;
		padding-bottom: 0;
	}

	.ndbac.ndbac--schede-tablet .ndbac-cta:hover,
	.ndbac.ndbac--schede-tablet .ndbac-cta:focus-visible {
		background: var(--ndbac-accento);
		border-color: var(--ndbac-accento);
		color: var(--ndbac-cta-testo);
	}
}

/* ------------------------------------------------------------------ */
/* Scheda del corso                                                    */
/* ------------------------------------------------------------------ */

.ndbac-scheda {
	container-type: inline-size;
	padding: var(--ndbac-scheda-pad);
	background: var(--ndbac-scheda-fondo);
	border: 1px solid var(--ndbac-bordi);
	border-radius: var(--ndbac-raggio);
}

.ndbac-scheda__testa {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ndbac .ndbac-scheda__titolo {
	margin: 16px 0 0;
	color: var(--ndbac-titolo);
	font-family: var(--e-global-typography-de0f005-font-family, "Newsreader"), Georgia, serif;
	font-size: var(--e-global-typography-de0f005-font-size, 26px);
	font-weight: var(--e-global-typography-de0f005-font-weight, 500);
	line-height: var(--e-global-typography-de0f005-line-height, 1.25);
}

.ndbac .ndbac-scheda__dati {
	margin: 20px 0 0;
	padding: 0;
}

.ndbac .ndbac-dato {
	display: grid;
	grid-template-columns: 8em 1fr;
	align-items: baseline;
	gap: 16px;
	padding: 14px 0;
	border-top: 1px solid var(--ndbac-bordi);
}

.ndbac .ndbac-dato:last-child {
	border-bottom: 1px solid var(--ndbac-bordi);
}

.ndbac .ndbac-scheda__dati dt,
.ndbac .ndbac-scheda__dati dd {
	margin: 0;
	padding: 0;
}

.ndbac .ndbac-scheda__note {
	margin: 16px 0 0;
	color: var(--ndbac-etichette);
}

.ndbac .ndbac-cta--pieno {
	margin-top: 24px;
	padding: 15px 22px;
	background: var(--ndbac-accento);
	color: var(--ndbac-cta-testo);
	border-radius: var(--ndbac-raggio);
}

.ndbac .ndbac-cta--pieno span {
	background-image: none;
	padding-bottom: 0;
}

.ndbac .ndbac-cta--pieno:hover,
.ndbac .ndbac-cta--pieno:focus-visible {
	background: var(--ndbac-accento-scuro);
	color: var(--ndbac-cta-testo);
}

@container (max-width: 380px) {
	.ndbac .ndbac-dato {
		grid-template-columns: 1fr;
		gap: 6px;
	}

	.ndbac .ndbac-cta--pieno {
		display: flex;
		justify-content: center;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ndbac *,
	.ndbac *::before,
	.ndbac *::after {
		transition: none !important;
	}
}
