/* ============================================================
   LiveSofia - pagina Calendario - aggiunto 2026-09-29
   Caricato solo su /calendario/ (functions.php, handle lv-calendar).
   Sovrascrive lo stile del plugin Calendar, che è salvato nel suo
   database (wp_calendar_config) e usa alcuni !important.
   Il contenitore .lv-cal e il riquadro .lv-next vengono da functions.php.
   ============================================================ */

.lv-cal {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 12px;
	box-sizing: border-box;
}

/* ---------- Riquadro "Prossimo show" ---------- */
.lv-next {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 22px;
	margin: 6px 0 30px;
	padding: 22px 26px;
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(239, 0, 59, .20), rgba(120, 20, 160, .14) 60%, rgba(20, 20, 27, .9));
	border: 1px solid rgba(239, 0, 59, .38);
	box-shadow: 0 14px 44px rgba(190, 20, 90, .20);
}
.lv-next-info { min-width: 220px; }
.lv-next-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #ff6b93;
}
.lv-next-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #ff2d55;
	animation: lvCalPulse 1.5s infinite;
}
@keyframes lvCalPulse {
	0%   { box-shadow: 0 0 0 0 rgba(255, 45, 85, .7); }
	70%  { box-shadow: 0 0 0 9px rgba(255, 45, 85, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 45, 85, 0); }
}
.lv-next-title {
	margin-top: 6px;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.15;
	color: #fff;
}
.lv-next-when {
	margin-top: 5px;
	font-size: 15px;
	color: #d7d9e0;
}
.lv-next-count { display: flex; gap: 8px; }
.lv-next-unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 58px;
	padding: 8px 6px;
	border-radius: 12px;
	background: rgba(0, 0, 0, .35);
	border: 1px solid rgba(255, 255, 255, .08);
}
.lv-next-unit b {
	font-size: 24px;
	font-weight: 800;
	line-height: 1.1;
	color: #fff;
	font-variant-numeric: tabular-nums;
}
.lv-next-unit i {
	margin-top: 2px;
	font-style: normal;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #9aa0a8;
}
.lv-next-btn {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 999px;
	background: #ef003b;
	color: #fff !important;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	box-shadow: 0 8px 24px rgba(239, 0, 59, .4);
	transition: transform .15s, box-shadow .15s, background .15s;
}
.lv-next-btn:hover {
	background: #c60031;
	transform: translateY(-1px);
	box-shadow: 0 12px 30px rgba(239, 0, 59, .55);
}
/* allo scadere del conto alla rovescia (lv-calendar.js) */
.lv-next.lv-next-onair .lv-next-count { display: none; }

/* ---------- Calendario ---------- */
.lv-cal .calendar-table {
	width: 100% !important;
	border: 0 !important;
	border-collapse: separate !important;
	border-spacing: 6px !important;
	background: transparent !important;
	table-layout: fixed;
}

/* intestazione: « Prev   MESE ANNO   Next » */
.lv-cal .calendar-heading {
	height: auto !important;
	padding: 0 0 12px !important;
	background: transparent !important;
	border: 0 !important;
}
.lv-cal .calendar-heading table { width: 100%; border: 0; table-layout: fixed; }
.lv-cal .calendar-month { width: 56% !important; }
.lv-cal .calendar-heading td { border: 0 !important; background: transparent !important; }
.lv-cal .calendar-month {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
}
.lv-cal .calendar-prev,
.lv-cal .calendar-next { width: 22% !important; }
.lv-cal .calendar-prev a,
.lv-cal .calendar-next a {
	display: inline-block;
	padding: 8px 18px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .16);
	color: #e9eaef !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background .15s, border-color .15s;
}
.lv-cal .calendar-prev a:hover,
.lv-cal .calendar-next a:hover {
	background: #ef003b;
	border-color: #ef003b;
	color: #fff !important;
}

/* giorni della settimana */
.lv-cal .normal-day-heading,
.lv-cal .weekend-heading {
	width: auto !important;
	height: auto !important;
	padding: 6px 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: #9aa0a8 !important;
	font-size: 12px !important;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: center;
}
.lv-cal .weekend-heading { color: #ff6b93 !important; }

/* celle dei giorni */
.lv-cal td.day-with-date,
.lv-cal td.current-day {
	width: auto !important;
	height: 112px !important;
	padding: 10px !important;
	vertical-align: top;
	text-align: left;
	border-radius: 12px;
	background: #121219 !important;
	border: 1px solid rgba(255, 255, 255, .07) !important;
}
.lv-cal td.day-with-date:not(.no-events),
.lv-cal td.current-day:not(.no-events) {
	background: #17121a !important;
	border-color: rgba(239, 0, 59, .28) !important;
}
.lv-cal td.day-without-date {
	background: transparent !important;
	border: 0 !important;
}

/* numero del giorno */
.lv-cal td.day-with-date > span:first-child,
.lv-cal td.current-day > span:first-child {
	font-size: 15px;
	font-weight: 800;
	color: #e9eaef;
}
.lv-cal td > span.weekend { color: #ff6b93 !important; }

/* oggi */
.lv-cal td.current-day {
	border: 1px solid #ef003b !important;
	box-shadow: inset 0 0 0 1px #ef003b, 0 8px 24px rgba(239, 0, 59, .18);
}
.lv-cal td.current-day > span:first-child::after {
	content: "Oggi";
	margin-left: 8px;
	padding: 2px 8px;
	border-radius: 999px;
	background: #ef003b;
	color: #fff;
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	vertical-align: 2px;
}

/* giorni passati (classe aggiunta da lv-calendar.js) */
.lv-cal td.lv-past { opacity: .38; }

/* show: etichetta pink al posto dell'evidenziazione bianca del plugin */
.lv-cal .calendar_bullet,
.lv-cal td .event > br { display: none !important; }
.lv-cal .calnk { display: block; margin-top: 8px; }
.lv-cal .calnk a {
	display: block;
	position: relative;
	padding: 6px 8px 6px 20px;
	border-radius: 8px;
	background: rgba(239, 0, 59, .16) !important;
	border: 1px solid rgba(239, 0, 59, .5) !important;
	color: #fff !important;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.25;
	text-decoration: none !important;
	transition: background .15s;
}
.lv-cal .calnk a::before {
	content: "";
	position: absolute;
	left: 8px;
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-radius: 50%;
	background: #ff2d55;
}
.lv-cal .calnk a:hover { background: #ef003b !important; }
/* riquadro a comparsa del plugin: ripeteva il titolo con un "Time:" vuoto */
.lv-cal .calnk a > span { display: none !important; }

/* legenda categorie: inutile con una sola categoria */
.lv-cal .cat-key { display: none !important; }

/* testo sotto il calendario */
.lv-cal p {
	max-width: 820px;
	margin: 26px auto 0;
	text-align: center;
	color: #9aa0a8;
	font-size: 14px;
	line-height: 1.6;
}

/* messaggio "mese senza show" (lv-calendar.js): serve solo nell'agenda mobile */
.lv-cal-empty { display: none; }

/* ---------- Cellulare: il riquadro si impila, la tabella diventa un'agenda ---------- */
@media (max-width: 760px) {
	.lv-next {
		justify-content: center;
		gap: 16px;
		padding: 18px;
		text-align: center;
	}
	.lv-next-info { width: 100%; min-width: 0; }
	.lv-next-label { justify-content: center; }
	.lv-next-title { font-size: 22px; }
	.lv-next-count { width: 100%; justify-content: center; }
	.lv-next-unit { flex: 1; min-width: 0; max-width: 72px; }
	.lv-next-btn { width: 100%; box-sizing: border-box; text-align: center; }

	/* solo i giorni con show, uno per riga */
	.lv-cal .calendar-table,
	.lv-cal .calendar-table > tbody,
	.lv-cal .calendar-table > tbody > tr {
		display: block;
		width: 100% !important;
	}
	.lv-cal .calendar-table { border-spacing: 0 !important; }
	.lv-cal .calendar-table > tbody > tr > td { display: none !important; }
	.lv-cal .calendar-table > tbody > tr > td.calendar-heading {
		display: block !important;
		width: 100% !important;
		padding-bottom: 14px !important;
	}
	.lv-cal .calendar-month { font-size: 15px; letter-spacing: .02em; }
	.lv-cal .calendar-prev,
	.lv-cal .calendar-next { width: 27% !important; }
	.lv-cal .calendar-month { width: 46% !important; }
	.lv-cal .calendar-prev a,
	.lv-cal .calendar-next a { padding: 7px 11px; font-size: 12px; }

	.lv-cal .calendar-table > tbody > tr > td.day-with-date:not(.no-events),
	.lv-cal .calendar-table > tbody > tr > td.current-day:not(.no-events) {
		display: flex !important;
		align-items: center;
		gap: 14px;
		box-sizing: border-box;
		width: 100% !important;
		height: auto !important;
		margin: 0 0 10px;
		padding: 12px 14px !important;
	}
	/* colonna data: giorno della settimana (nella lingua del plugin) + numero */
	.lv-cal td.day-with-date > span:first-child,
	.lv-cal td.current-day > span:first-child {
		flex: 0 0 54px;
		text-align: center;
		font-size: 24px;
		line-height: 1;
	}
	.lv-cal td > span[data-dow]::before {
		content: attr(data-dow);
		display: block;
		margin-bottom: 4px;
		font-size: 10px;
		letter-spacing: .14em;
		text-transform: uppercase;
		color: #9aa0a8;
	}
	.lv-cal td.current-day > span:first-child::after {
		display: block;
		margin: 6px 0 0;
	}
	.lv-cal td .event { display: block; flex: 1; min-width: 0; }
	.lv-cal .calnk { margin: 0 0 6px; }
	.lv-cal .calnk:last-child { margin-bottom: 0; }
	.lv-cal .calnk a { padding: 9px 10px 9px 22px; font-size: 14px; }

	.lv-cal-empty {
		display: block;
		padding: 18px;
		border-radius: 12px;
		background: #121219;
		border: 1px solid rgba(255, 255, 255, .07);
		color: #9aa0a8;
		text-align: center;
	}
}

/* Riquadro durante la diretta ("In onda ora", da functions.php) */
.lv-next.lv-next-onair {
	border-color: #ef003b;
	background: linear-gradient(135deg, rgba(239, 0, 59, .38), rgba(120, 20, 160, .18) 60%, rgba(20, 20, 27, .9));
	box-shadow: 0 14px 44px rgba(239, 0, 59, .35);
}
.lv-next.lv-next-onair .lv-next-label { color: #fff; }
