/**
 * Расписание богослужений — фронтенд
 * Палитра и типографика согласованы с темой toplovskyi
 */

.schedule {
	--sch-rose: #c98982;
	--sch-rose-deep: #7d5656;
	--sch-rose-soft: #f3e0db;
	--sch-rose-mid: #e7b3b1;
	--sch-ink: #4a3a3e;
	--sch-muted: #8a7278;
	--sch-line: rgba(125, 86, 86, 0.14);
	--sch-bg: #fffaf8;
	--sch-today: #6b4f56;
	--sch-gold: #c9a574;
	--sch-gold-soft: #f7efdf;
	--sch-gold-deep: #8a6a3d;
	--sch-font: Philosopher, 'Times New Roman', Times, serif;
	margin: 0;
	padding: 0 4px 8px;
}

.schedule__intro {
	margin: 0 0 28px;
	padding: 0 6px;
}

.schedule__notice {
	margin: 0 0 10px;
	padding: 14px 18px;
	background: linear-gradient(135deg, rgba(125, 86, 86, 0.08) 0%, rgba(231, 179, 177, 0.25) 100%);
	border-left: 3px solid var(--sch-rose-deep);
	color: var(--sch-rose-deep);
	font-family: var(--sch-font);
	font-size: 16px;
	line-height: 1.45;
	animation: schedule-fade-up 0.55s ease both;
}

.schedule__hint {
	margin: 0;
	padding: 0 4px;
	color: var(--sch-muted);
	font-family: var(--sch-font);
	font-size: 14px;
	font-style: italic;
	line-height: 1.45;
	animation: schedule-fade-up 0.55s ease 0.08s both;
}

.schedule__list {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

/* ---- День ---- */
.schedule-day {
	position: relative;
	padding: 0 0 4px;
	animation: schedule-fade-up 0.6s ease both;
	animation-delay: var(--schedule-delay, 0s);
}

.schedule-day + .schedule-day::before {
	content: '';
	display: block;
	height: 1px;
	margin: 0 8px 22px;
	background: linear-gradient(90deg, transparent 0%, var(--sch-line) 18%, var(--sch-line) 82%, transparent 100%);
}

.schedule-day__header {
	display: grid;
	grid-template-columns: 78px 1fr;
	gap: 16px 18px;
	align-items: start;
	margin-bottom: 14px;
	padding: 0 4px;
}

.schedule-day__date {
	position: relative;
	width: 78px;
	height: 78px;
	border-radius: 50%;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(circle at 30% 26%, rgba(255, 255, 255, 0.16) 0%, transparent 40%),
		linear-gradient(155deg, #6f4545 0%, #5a3838 48%, #432929 100%);
	box-shadow:
		0 6px 18px rgba(67, 41, 41, 0.35),
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 -2px 6px rgba(0, 0, 0, 0.18) inset;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.schedule-day__date-ring {
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 245, 235, 0.55);
	box-shadow:
		0 0 0 3px rgba(90, 56, 56, 0.4),
		inset 0 0 0 1px rgba(255, 255, 255, 0.1);
	pointer-events: none;
}

.schedule-day__date-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	line-height: 1;
}

.schedule-day:hover .schedule-day__date {
	transform: translateY(-2px) scale(1.02);
	box-shadow:
		0 10px 24px rgba(67, 41, 41, 0.4),
		0 1px 0 rgba(255, 255, 255, 0.28) inset,
		0 -2px 6px rgba(0, 0, 0, 0.18) inset;
}

.schedule .schedule-day__num {
	font-family: var(--sch-font);
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	color: #fff;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.45),
		0 0 1px rgba(0, 0, 0, 0.35);
}

.schedule-day__date-line {
	display: block;
	width: 18px;
	height: 1px;
	margin: 4px 0 3px;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
}

.schedule .schedule-day__month {
	font-family: var(--sch-font);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 1;
	line-height: 1;
	font-weight: 700;
	color: #fff;
	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.45),
		0 0 1px rgba(0, 0, 0, 0.35);
}

.schedule-day__meta {
	min-width: 0;
	padding-top: 2px;
}

.schedule-day__weekday-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin-bottom: 2px;
}

.schedule-day__weekday {
	font-family: var(--sch-font);
	font-size: 20px;
	font-weight: 700;
	color: var(--sch-ink);
	line-height: 1.2;
}

.schedule-day__today-badge {
	display: inline-block;
	padding: 3px 10px;
	font-family: var(--sch-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	background: var(--sch-today);
	border-radius: 999px;
	animation: schedule-pulse 2.4s ease-in-out infinite;
}

.schedule-day__special-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 10px 3px 8px;
	font-family: var(--sch-font);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: var(--sch-gold-deep);
	background: linear-gradient(135deg, #fbf4e6 0%, #f0dfb8 100%);
	border: 1px solid rgba(201, 165, 116, 0.55);
	border-radius: 999px;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.7) inset;
}

.schedule-day__special-badge::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, #e8d09a, var(--sch-gold-deep));
	box-shadow: 0 0 0 2px rgba(201, 165, 116, 0.25);
	flex-shrink: 0;
}

.schedule-day__weeknote {
	margin: 0 0 6px;
	font-family: var(--sch-font);
	font-size: 13px;
	color: var(--sch-muted);
	line-height: 1.35;
}

.schedule-day__feast {
	margin: 0 0 10px;
	font-family: var(--sch-font);
	font-size: 16px;
	font-weight: 400;
	font-style: italic;
	color: var(--sch-ink);
	line-height: 1.4;
}

.schedule-day__temple {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	padding: 5px 12px 5px 10px;
	font-family: var(--sch-font);
	font-size: 13px;
	font-style: normal;
	font-weight: 700;
	line-height: 1.3;
	color: var(--sch-rose-deep);
	background: var(--sch-rose-soft);
	border: 1px solid rgba(201, 137, 130, 0.35);
	border-radius: 4px;
}

.schedule-day__temple-icon {
	flex-shrink: 0;
	opacity: 0.85;
}

.schedule-day__temple--bogorodichny {
	background: #f7ebe6;
	border-color: rgba(184, 132, 122, 0.4);
}

.schedule-day__temple--paraskeva {
	background: #f0e4e8;
	border-color: rgba(148, 114, 122, 0.35);
}

.schedule-day__temple--trinity_lower {
	background: #efe8e2;
	border-color: rgba(125, 100, 86, 0.3);
}

.schedule-day__temple--trinity_upper {
	background: #f5ebe3;
	border-color: rgba(160, 112, 104, 0.4);
	color: #6b4545;
}

.schedule-day--sunday .schedule-day__date {
	background:
		radial-gradient(circle at 30% 26%, rgba(255, 255, 255, 0.14) 0%, transparent 40%),
		linear-gradient(155deg, #7a4540 0%, #623636 48%, #4a2828 100%);
}

.schedule-day--sunday .schedule-day__weekday {
	color: #6b4545;
}

.schedule-day--today .schedule-day__header {
	padding: 12px 10px;
	margin: 0 -6px 14px;
	background: linear-gradient(180deg, rgba(243, 224, 219, 0.55) 0%, rgba(255, 250, 248, 0) 100%);
	border-radius: 12px;
}

.schedule-day--today .schedule-day__date {
	box-shadow:
		0 6px 18px rgba(94, 63, 63, 0.3),
		0 0 0 4px rgba(231, 179, 177, 0.45),
		0 1px 0 rgba(255, 255, 255, 0.35) inset;
}

/* ---- Особый / престольный день ---- */
.schedule-day--special {
	padding: 14px 12px 10px;
	margin: 0 -4px;
	background:
		linear-gradient(180deg, rgba(247, 239, 223, 0.55) 0%, rgba(255, 250, 248, 0.2) 55%, transparent 100%);
	border: 1px solid rgba(201, 165, 116, 0.35);
	border-radius: 14px;
	box-shadow: 0 4px 18px rgba(138, 106, 61, 0.06);
}

.schedule-day--special + .schedule-day::before,
.schedule-day + .schedule-day--special::before {
	display: none;
}

.schedule-day--special .schedule-day__date {
	background:
		radial-gradient(circle at 30% 25%, rgba(255, 248, 230, 0.18) 0%, transparent 42%),
		linear-gradient(155deg, #8a6a38 0%, #6f5330 45%, #4f3a20 100%);
	box-shadow:
		0 8px 22px rgba(79, 58, 32, 0.35),
		0 0 0 3px rgba(247, 239, 223, 0.95),
		0 0 0 5px rgba(201, 165, 116, 0.45),
		0 1px 0 rgba(255, 255, 255, 0.28) inset;
}

.schedule-day--special .schedule-day__date-ring {
	border-color: rgba(255, 236, 200, 0.65);
	box-shadow:
		0 0 0 3px rgba(138, 106, 61, 0.28),
		inset 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.schedule-day--special .schedule-day__weekday {
	color: var(--sch-gold-deep);
}

.schedule-day--special .schedule-day__feast {
	color: #5c4528;
	font-weight: 700;
	font-style: normal;
}

.schedule-day--special .schedule-day__services {
	padding-left: 96px;
}

/* ---- Богослужения ---- */
.schedule-day__services {
	list-style: none;
	margin: 0;
	padding: 0 0 0 96px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.schedule-service {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 12px;
	align-items: start;
	padding: 10px 12px;
	background: var(--sch-bg);
	border: 1px solid transparent;
	border-radius: 8px;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

.schedule-service:hover {
	background: #fff;
	border-color: rgba(231, 179, 177, 0.55);
	transform: translateX(2px);
}

.schedule-service--highlight {
	background: linear-gradient(90deg, rgba(231, 179, 177, 0.22) 0%, rgba(255, 250, 248, 0.9) 100%);
	border-color: rgba(201, 137, 130, 0.28);
}

.schedule-service--special {
	position: relative;
	background:
		linear-gradient(90deg, rgba(247, 239, 223, 0.95) 0%, rgba(255, 252, 245, 0.98) 100%);
	border-color: rgba(201, 165, 116, 0.5);
	box-shadow:
		0 2px 10px rgba(138, 106, 61, 0.08),
		inset 3px 0 0 var(--sch-gold);
}

.schedule-service--special:hover {
	border-color: rgba(201, 165, 116, 0.75);
	background: linear-gradient(90deg, #fbf4e6 0%, #fffdf8 100%);
	transform: translateX(2px);
}

.schedule-service__time {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 2px 0;
	font-family: var(--sch-font);
	font-size: 17px;
	font-weight: 700;
	color: var(--sch-rose-deep);
	letter-spacing: 0.01em;
	white-space: nowrap;
	line-height: 1.2;
}

.schedule-service--special .schedule-service__time {
	color: var(--sch-gold-deep);
}

.schedule-service__body {
	min-width: 0;
}

.schedule-service__badge {
	display: inline-block;
	margin: 0 0 6px;
	padding: 2px 9px;
	font-family: var(--sch-font);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #fff;
	background: linear-gradient(135deg, #b8925a 0%, #8a6a3d 100%);
	border-radius: 3px;
	box-shadow: 0 1px 3px rgba(138, 106, 61, 0.25);
}

.schedule-service__title {
	margin: 0;
	font-family: var(--sch-font);
	font-size: 15px;
	color: #444;
	line-height: 1.45;
}

.schedule-service--special .schedule-service__title {
	color: #4a3a28;
	font-weight: 700;
}

.schedule-service__temple-note {
	display: inline-block;
	margin-top: 6px;
	padding: 3px 9px;
	font-family: var(--sch-font);
	font-size: 12px;
	font-weight: 700;
	color: var(--sch-rose-deep);
	background: var(--sch-rose-soft);
	border-radius: 3px;
}

/* ---- Анимации ---- */
@keyframes schedule-fade-up {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes schedule-pulse {
	0%, 100% {
		box-shadow: 0 0 0 0 rgba(107, 79, 86, 0.35);
	}
	50% {
		box-shadow: 0 0 0 6px rgba(107, 79, 86, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.schedule__notice,
	.schedule__hint,
	.schedule-day,
	.schedule-day__today-badge,
	.schedule-day__date,
	.schedule-service {
		animation: none !important;
		transition: none !important;
	}
}

/* =============================================================================
   Планшет
   ============================================================================= */
@media (max-width: 1023.98px) {
	.schedule {
		padding: 0 2px 4px;
	}

	.schedule-day__services,
	.schedule-day--special .schedule-day__services {
		padding-left: 0;
	}

	.schedule-day__header {
		grid-template-columns: 68px 1fr;
		gap: 12px 14px;
	}

	.schedule-day__date {
		width: 68px;
		height: 68px;
	}

	.schedule-day__num {
		font-size: 24px;
	}
}

/* =============================================================================
   Мобильный
   ============================================================================= */
@media (max-width: 767.98px) {
	.schedule__notice {
		font-size: 15px;
		padding: 12px 14px;
	}

	.schedule__hint {
		font-size: 13px;
	}

	.schedule__list {
		gap: 18px;
	}

	.schedule-day + .schedule-day::before {
		margin-bottom: 18px;
	}

	.schedule-day__header {
		grid-template-columns: 60px 1fr;
		gap: 10px 12px;
		margin-bottom: 10px;
	}

	.schedule-day__date {
		width: 60px;
		height: 60px;
	}

	.schedule-day__date-ring {
		inset: 3px;
	}

	.schedule-day__num {
		font-size: 22px;
	}

	.schedule-day__date-line {
		width: 14px;
		margin: 3px 0 2px;
	}

	.schedule-day__month {
		font-size: 10px;
		letter-spacing: 0.1em;
	}

	.schedule-day__weekday {
		font-size: 18px;
	}

	.schedule-day__special-badge {
		font-size: 11px;
		padding: 2px 8px 2px 7px;
	}

	.schedule-day__feast {
		font-size: 15px;
		margin-bottom: 8px;
	}

	.schedule-day__temple {
		font-size: 12px;
		padding: 4px 10px 4px 8px;
	}

	.schedule-day--special {
		padding: 12px 10px 8px;
		margin: 0;
	}

	.schedule-day__services {
		gap: 6px;
	}

	.schedule-service {
		grid-template-columns: 54px 1fr;
		gap: 8px;
		padding: 10px;
		border-radius: 6px;
	}

	.schedule-service:hover,
	.schedule-service--special:hover {
		transform: none;
	}

	.schedule-service__time {
		font-size: 16px;
		justify-content: flex-start;
	}

	.schedule-service__title {
		font-size: 14px;
	}

	.schedule-service__badge {
		font-size: 10px;
		padding: 2px 7px;
	}

	.schedule-day--today .schedule-day__header {
		margin: 0 -2px 10px;
		padding: 10px 8px;
	}
}

/* =============================================================================
   Узкий мобильный
   ============================================================================= */
@media (max-width: 479.98px) {
	.schedule-day__header {
		grid-template-columns: 1fr;
		justify-items: start;
		gap: 12px;
	}

	.schedule-day__date {
		width: 58px;
		height: 58px;
	}

	.schedule-day__num {
		font-size: 21px;
	}

	.schedule-day__weekday-row {
		gap: 6px 8px;
	}

	.schedule-day__weekday {
		font-size: 17px;
	}

	.schedule-day__today-badge {
		font-size: 11px;
		padding: 2px 8px;
	}

	.schedule-day__weeknote {
		font-size: 12px;
	}

	.schedule-day__feast {
		font-size: 14px;
	}

	.schedule-service {
		grid-template-columns: 48px 1fr;
		padding: 9px 8px;
	}

	.schedule-service__time {
		font-size: 15px;
	}

	.schedule-service__title {
		font-size: 13.5px;
		line-height: 1.4;
	}
}
