/*
 * MF Orari — pagina "Orari dei corsi" (ID 576), widget danzaschedule (layout 2) di danza-core.
 *
 * Il widget stampa sempre 8 celle per riga (orario di fascia + content1…content7) a prescindere
 * dal numero di intestazioni, e assegna la classe .schedule-title solo alle celle con un corso.
 * Le intestazioni dei giorni (riga .schedule-day) e le celle dei corsi condividono lo stesso
 * indice di colonna: nth-child(2) = lunedì, (3) = martedì … (6) = venerdì, (7) = sabato.
 */

/* 1. Desktop: le colonne del widget senza intestazione (oggi la 6ª e la 7ª, nth-child 7 e 8)
 *    vengono nascoste in tutte le righe. La regola dipende dalle intestazioni reali: se in
 *    Elementor si aggiunge "Sabato" (7ª intestazione), la colonna 7 riappare da sola.
 *    Fallback per i browser senza :has() (Firefox < 121, Safari < 15.4): nasconde solo le
 *    celle vuote delle righe dei corsi. */
.class-schedule-table:not(:has(.schedule-day td:nth-child(7))) tr > *:nth-child(7),
.class-schedule-table:not(:has(.schedule-day td:nth-child(8))) tr > *:nth-child(8) {
	display: none;
}

@supports not selector(:has(a)) {
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(n + 7):not(.schedule-title) {
		display: none;
	}
}

/* 2. Tablet e smartphone (≤ 991px, stessa soglia del tema): elenco per giorno.
 *    tbody/tr diventano trasparenti (display: contents), le celle diventano elementi della
 *    griglia e vengono raggruppate per giorno con `order`: prima l'intestazione del giorno,
 *    poi i suoi corsi nell'ordine delle righe (già cronologico). */
@media (max-width: 991px) {
	.class-schedule-area {
		max-width: 100%;
		padding: 40px 24px;
		overflow: visible;
	}

	.class-schedule-area:before {
		width: 100%;
	}

	.class-schedule-table {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
		border: 0;
	}

	.class-schedule-table tbody,
	.class-schedule-table tr {
		display: contents;
	}

	/* Orario di fascia e celle senza corso: non servono nell'elenco. */
	.class-schedule-table th.time,
	.class-schedule-table tr:not(.schedule-day) > td:not(.schedule-title),
	.class-schedule-table .schedule-day td:first-child,
	.class-schedule-table .schedule-day td:empty {
		display: none;
	}

	/* Intestazione del giorno: una riga intera della griglia. */
	.class-schedule-table .schedule-day td {
		display: block;
		grid-column: 1 / -1;
		margin-top: 16px;
		padding: 10px 16px;
		text-align: left;
		border: 0;
	}

	.class-schedule-table .schedule-day td:nth-child(2) {
		margin-top: 0;
	}

	/* Scheda del corso. */
	.class-schedule-area tbody .schedule-title {
		display: block;
		margin: 0;
		padding: 14px 16px;
		text-align: left;
		border: 0;
	}

	.class-schedule-area tbody .schedule-title .schedule-time {
		text-align: left;
	}

	/* Raggruppamento per giorno: intestazione = n0, corsi = n1. */
	.class-schedule-table .schedule-day td:nth-child(2) { order: 20; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(2) { order: 21; }
	.class-schedule-table .schedule-day td:nth-child(3) { order: 30; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(3) { order: 31; }
	.class-schedule-table .schedule-day td:nth-child(4) { order: 40; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(4) { order: 41; }
	.class-schedule-table .schedule-day td:nth-child(5) { order: 50; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(5) { order: 51; }
	.class-schedule-table .schedule-day td:nth-child(6) { order: 60; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(6) { order: 61; }
	.class-schedule-table .schedule-day td:nth-child(7) { order: 70; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(7) { order: 71; }
	.class-schedule-table .schedule-day td:nth-child(8) { order: 80; }
	.class-schedule-table tr:not(.schedule-day) > td:nth-child(8) { order: 81; }
}

/* 3. Smartphone: una colonna, gutter di 16px. */
@media (max-width: 575px) {
	.class-schedule-area {
		padding: 32px 16px;
		margin: 40px auto;
	}

	.class-schedule-table {
		grid-template-columns: minmax(0, 1fr);
	}
}
