/* Gran Castillo de Pedraza Essentials · Horario de visitas
 * Un cuadro de horarios: filas con líneas finas, horas en cifras tabulares,
 * temporada como etiqueta y el aviso importante como segunda fila.
 */

.gcpe-sched {
	--gcpe-sched-accent: #009ad8;
	--gcpe-sched-ink: #0c5475;
	--gcpe-sched-text: #1b2b33;
	--gcpe-sched-muted: #5f7480;
	--gcpe-sched-line: #d9e4ea;
	--gcpe-sched-chip: #eef5f8;
	--gcpe-sched-season-bg: #f7d547;
	--gcpe-sched-season-text: #0c5475;
	--gcpe-sched-notice-bg: #fff5cf;
	--gcpe-sched-notice-text: #0c5475;
	--gcpe-sched-notice-icon-bg: #f7d547;

	font-family: "Montserrat", sans-serif;
	color: var(--gcpe-sched-text);
}

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

.gcpe-sched .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Cabecera: título del sistema (H2 30/26/24) y temporada */
.gcpe-sched__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 14px;
	margin-bottom: 20px;
}

.gcpe-sched .gcpe-sched__title {
	margin: 0;
	color: var(--gcpe-sched-accent);
	font-family: "League Spartan", sans-serif;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: none;
}

.gcpe-sched__season {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px 4px;
	border-radius: 999px;
	background: var(--gcpe-sched-season-bg);
	color: var(--gcpe-sched-season-text);
	font-family: "League Spartan", sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Filas */
.gcpe-sched .gcpe-sched__rows {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--gcpe-sched-line);
}

.gcpe-sched__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--gcpe-sched-line);
}

.gcpe-sched .gcpe-sched__day {
	margin: 0;
	color: var(--gcpe-sched-ink);
	font-family: "League Spartan", sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.25;
}

.gcpe-sched .gcpe-sched__times {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
	margin: 0;
}

.gcpe-sched__range {
	display: inline-flex;
	align-items: baseline;
	padding: 7px 12px 6px;
	border-radius: 8px;
	background: var(--gcpe-sched-chip);
	color: var(--gcpe-sched-text);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.gcpe-sched__dash {
	margin: 0 6px;
	color: var(--gcpe-sched-muted);
}

.gcpe-sched__closed {
	color: var(--gcpe-sched-muted);
	font-family: "League Spartan", sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.gcpe-sched__row.is-closed .gcpe-sched__day {
	color: var(--gcpe-sched-muted);
}

.gcpe-sched .gcpe-sched__note {
	margin: 12px 0 0;
	color: var(--gcpe-sched-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* Aviso importante: segunda fila del bloque */
.gcpe-sched__notice {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-top: 24px;
	padding: 16px 18px;
	border-radius: 12px;
	background: var(--gcpe-sched-notice-bg);
	color: var(--gcpe-sched-notice-text);
}

.gcpe-sched__notice-icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--gcpe-sched-notice-icon-bg);
	color: var(--gcpe-sched-notice-text);
}

.gcpe-sched__icon {
	width: 18px;
	height: 18px;
}

.gcpe-sched .gcpe-sched__notice-title {
	margin: 2px 0 4px;
	font-family: "League Spartan", sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.gcpe-sched .gcpe-sched__notice-text {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
}

.gcpe-sched--empty {
	padding: 16px 18px;
	border: 1px dashed var(--gcpe-sched-line);
	border-radius: 12px;
	color: var(--gcpe-sched-muted);
	font-size: 14px;
}

.gcpe-sched--empty p {
	margin: 0;
}

@media (max-width: 1024px) {
	.gcpe-sched .gcpe-sched__title {
		font-size: 26px;
	}
}

/* Móvil: los días van encima de las horas. (Sin container queries: dentro de un
   contenedor flex de Elementor hacen que el bloque reserve altura de más.) */
@media (max-width: 767px) {
	.gcpe-sched .gcpe-sched__title {
		font-size: 24px;
	}

	.gcpe-sched__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 8px;
		padding: 12px 0;
	}

	.gcpe-sched .gcpe-sched__times {
		justify-content: flex-start;
	}

	.gcpe-sched .gcpe-sched__day {
		font-size: 17px;
	}
}
