/* =========================================================================
   Post Calendar WIDO
   I colori arrivano dalle impostazioni come --pcw-main e --pcw-accent.
   Tutto è racchiuso in .pcw-wrap; alcuni !important servono solo a vincere
   il CSS del vecchio WP Post Calendar finché resta attivo sullo stesso sito.
   ========================================================================= */

.pcw-wrap {
	--pcw-main: #00529C;
	--pcw-accent: #ED1D24;
	--pcw-tint: color-mix(in srgb, var(--pcw-main) 9%, #fff);
	--pcw-text: #1d2430;
	--pcw-muted: #8a909a;
	--pcw-line: #e3e6ea;
	--pcw-radius: 12px;

	display: grid;
	grid-template-columns: minmax(280px, 440px) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
	max-width: 100%;
	color: var(--pcw-text);
	box-sizing: border-box;
}

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

/* -------------------------------------------------------------------------
   Riquadro calendario
   ---------------------------------------------------------------------- */

.pcw-wrap .pcw-calendar {
	background: #fff;
	border: 1px solid var(--pcw-line);
	border-radius: var(--pcw-radius);
	box-shadow: 0 4px 18px rgba(16, 24, 40, 0.07);
	padding: 14px 12px 10px;
	height: auto !important;
}

.pcw-wrap .fc {
	font-size: 15px;
	font-family: inherit;
}

/* Niente griglia di linee: le caselle parlano da sole */
.pcw-wrap .fc-theme-standard td,
.pcw-wrap .fc-theme-standard th,
.pcw-wrap .fc-theme-standard .fc-scrollgrid {
	border: none !important;
}

/* Barra in alto: mese + pulsanti */
.pcw-wrap .fc .fc-toolbar.fc-header-toolbar {
	margin: 0 4px 10px;
	gap: 8px;
}

.pcw-wrap .fc .fc-toolbar-title {
	font-size: 20px !important;
	font-weight: 700 !important;
	text-transform: capitalize;
	padding: 0 !important;
	color: var(--pcw-text);
}

.pcw-wrap .fc .fc-button {
	position: relative;
	background: #fff !important;
	border: 1px solid var(--pcw-line) !important;
	color: var(--pcw-main) !important;
	border-radius: 8px !important;
	padding: 5px 10px !important;
	font-size: 14px !important;
	font-weight: 600;
	box-shadow: none !important;
	text-transform: none;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.pcw-wrap .fc .fc-button:hover:not(:disabled) {
	background: var(--pcw-tint) !important;
	border-color: var(--pcw-main) !important;
}

.pcw-wrap .fc .fc-button:focus-visible {
	outline: 2px solid var(--pcw-main);
	outline-offset: 2px;
}

.pcw-wrap .fc .fc-button:disabled {
	opacity: 0.45;
	color: var(--pcw-muted) !important;
}

.pcw-wrap .fc .fc-button-group > .fc-button {
	margin-left: 4px;
	border-radius: 8px !important;
}

/* Contatore news sulle frecce del mese */
.pcw-wrap .pcw-badge {
	position: absolute;
	top: -7px;
	right: -7px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: var(--pcw-main);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	pointer-events: none;
}

/* Intestazione giorni della settimana */
.pcw-wrap .fc .fc-col-header-cell-cushion {
	font-size: 12px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--pcw-muted) !important;
	padding: 6px 0 !important;
	text-decoration: none;
}

/* -------------------------------------------------------------------------
   Caselle dei giorni
   ---------------------------------------------------------------------- */

.pcw-wrap .fc .fc-daygrid-day {
	background: transparent !important;
	border: none !important;
}

.pcw-wrap .fc .fc-daygrid-day-frame {
	position: relative;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 44px;
	margin: 3px;
	border-radius: 10px;
	transition: background-color 0.15s, transform 0.15s, box-shadow 0.15s;
}

.pcw-wrap .fc .fc-daygrid-day-top {
	justify-content: center;
}

.pcw-wrap .fc .fc-daygrid-day-number {
	font-size: 15px !important;
	color: #b3b8bf !important;   /* giorni senza news: tenui, così le news risaltano */
	padding: 0 !important;
	text-decoration: none !important;
	pointer-events: none;
}

.pcw-wrap .fc .fc-daygrid-day-events,
.pcw-wrap .fc .fc-daygrid-day-bg {
	display: none !important;
}

.pcw-wrap .fc .fc-day-disabled {
	background: transparent !important;
}

/* Oggi: anello sottile */
.pcw-wrap .fc .fc-day-today .fc-daygrid-day-frame {
	box-shadow: inset 0 0 0 2px var(--pcw-main);
}

.pcw-wrap .fc .fc-day-today .fc-daygrid-day-number {
	color: var(--pcw-main) !important;
	font-weight: 700;
}

/* Giorni con news: pieni, numero bianco, pallino sotto */
.pcw-wrap .fc .pcw-has-news {
	cursor: pointer;
}

.pcw-wrap .fc .pcw-has-news .fc-daygrid-day-frame {
	background: var(--pcw-main);
	box-shadow: 0 3px 8px color-mix(in srgb, var(--pcw-main) 35%, transparent);
}

.pcw-wrap .fc .pcw-has-news .fc-daygrid-day-number {
	color: #fff !important;
	font-weight: 700;
}

.pcw-wrap .fc .pcw-has-news .fc-daygrid-day-frame::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 6px;
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: #fff;
	opacity: 0.85;
}

/* Più news nello stesso giorno: numerino in alto a destra */
.pcw-wrap .fc .pcw-has-news .fc-daygrid-day-frame[data-pcw-many]::before {
	content: attr(data-pcw-many);
	position: absolute;
	top: -5px;
	right: -5px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 9px;
	background: #fff;
	color: var(--pcw-main);
	border: 1px solid var(--pcw-main);
	font-size: 10px;
	font-weight: 700;
	line-height: 15px;
	text-align: center;
}

/* Oggi con news: anello esterno */
.pcw-wrap .fc .fc-day-today.pcw-has-news .fc-daygrid-day-frame {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pcw-main);
}

.pcw-wrap .fc .pcw-has-news:hover .fc-daygrid-day-frame,
.pcw-wrap .fc .pcw-has-news:focus-visible .fc-daygrid-day-frame {
	background: var(--pcw-accent);
	transform: translateY(-1px);
}

.pcw-wrap .fc .pcw-has-news:focus {
	outline: none;
}

.pcw-wrap .fc .pcw-has-news:focus-visible .fc-daygrid-day-frame {
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pcw-accent);
}

/* Giorno selezionato: colore d'accento fisso */
.pcw-wrap .fc .pcw-has-news.pcw-selected .fc-daygrid-day-frame {
	background: var(--pcw-accent);
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pcw-accent);
	transform: none;
}

.pcw-wrap .fc .pcw-selected .fc-daygrid-day-frame[data-pcw-many]::before {
	color: var(--pcw-accent);
	border-color: var(--pcw-accent);
}

/* -------------------------------------------------------------------------
   Riquadro dettagli
   ---------------------------------------------------------------------- */

.pcw-wrap .pcw-details {
	background: #fff;
	border: 1px solid var(--pcw-line);
	border-top: 4px solid var(--pcw-main);
	border-radius: var(--pcw-radius);
	box-shadow: 0 4px 18px rgba(16, 24, 40, 0.07);
	padding: 22px 24px;
	min-height: 200px;
}

.pcw-wrap .pcw-empty {
	margin: 0;
	color: var(--pcw-muted);
	font-style: italic;
	font-size: 16px;
}

.pcw-wrap .pcw-date {
	display: inline-block;
	margin: 0 0 6px;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--pcw-tint);
	color: var(--pcw-main);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.01em;
}

.pcw-wrap .pcw-count {
	margin: 4px 0 0;
	color: var(--pcw-muted);
	font-size: 13px;
}

.pcw-wrap .pcw-item {
	padding: 14px 0 0;
}

.pcw-wrap .pcw-item + .pcw-item {
	margin-top: 16px;
	padding-top: 18px;
	border-top: 1px solid var(--pcw-line);
}

.pcw-wrap .pcw-title {
	margin: 0 0 8px;
	font-size: 24px;
	line-height: 1.25;
	font-weight: 700;
}

.pcw-wrap .pcw-title a {
	color: var(--pcw-main);
	text-decoration: none;
	transition: color 0.15s;
}

.pcw-wrap .pcw-title a:hover {
	color: var(--pcw-accent);
}

.pcw-wrap .pcw-excerpt {
	margin: 0 0 14px;
	font-size: 17px;
	line-height: 1.55;
	color: #3d4552;
}

.pcw-wrap .pcw-btn {
	display: inline-block;
	padding: 9px 18px;
	border-radius: 8px;
	background: var(--pcw-main);
	color: #fff !important;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none !important;
	transition: background 0.15s;
}

.pcw-wrap .pcw-btn:hover,
.pcw-wrap .pcw-btn:focus-visible {
	background: var(--pcw-accent);
}

/* -------------------------------------------------------------------------
   Telefono e tablet: calendario sopra, dettagli sotto
   ---------------------------------------------------------------------- */

@media (max-width: 782px) {
	.pcw-wrap {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.pcw-wrap .pcw-calendar {
		max-width: 480px;
		width: 100%;
		margin: 0 auto;
	}

	.pcw-wrap .pcw-details {
		min-height: 0;
		padding: 18px;
	}

	.pcw-wrap .pcw-title {
		font-size: 20px;
	}

	.pcw-wrap .pcw-excerpt {
		font-size: 16px;
	}
}

@media (max-width: 400px) {
	.pcw-wrap .pcw-calendar {
		padding: 10px 6px 6px;
	}

	.pcw-wrap .fc .fc-daygrid-day-frame {
		min-height: 38px;
		margin: 2px;
	}

	.pcw-wrap .fc .fc-toolbar-title {
		font-size: 17px !important;
	}
}
