/* Christmas Eve plans · ChristmasEve.dc.html */

.scs-notice .scs-icon { flex: none; }

.eve-h2 { font-size: clamp(30px, 1.4vw + 22px, 40px); line-height: 1.08; }
.eve-h2--lg { font-size: clamp(34px, 1.8vw + 22px, 48px); line-height: 1.05; }

/* Hero */
.eve-hero__inner { padding-block: 64px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 32px; }
.eve-hero__copy { flex: 1 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.eve-hero__copy .scs-lead { max-width: 600px; }
.eve-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }
.eve-hero__art { flex: 0 1 420px; display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.eve-hero__cast { display: flex; align-items: flex-end; width: 100%; max-width: 400px; }
.eve-hero__elf { width: 30%; margin-right: -5%; position: relative; z-index: 1; aspect-ratio: 130 / 200; }
.eve-hero__chair { width: 75%; aspect-ratio: 250 / 200; }
.eve-hero__art figcaption { font-size: 14px; text-align: right; }

/* Schedule */
.eve-schedule__inner { padding-block: 24px 96px; display: flex; flex-direction: column; gap: 28px; }
.eve-schedule__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 3px solid var(--scs-ink); }
.eve-legend { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; font-size: 15px; }
.eve-legend__item { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.eve-pending p { margin: 0; }
.eve-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.eve-item {
	display: grid; grid-template-columns: 220px minmax(0, 1fr) minmax(0, 320px); gap: 32px; align-items: start;
	padding: 26px 0; border-bottom: 1px dashed var(--scs-rule);
}
.eve-item__when { display: flex; flex-direction: column; gap: 8px; }
.eve-item__time { font-family: var(--scs-font-display); font-weight: 600; font-size: 28px; line-height: 1.1; }
.eve-item.is-estimate .eve-item__time { color: var(--scs-green); }
.eve-item.is-estimate .eve-item__time { font-style: italic; }
.eve-item__what { display: flex; flex-direction: column; gap: 6px; }
.eve-item__title { font-size: 26px; line-height: 1.15; }
.eve-item__place { display: flex; align-items: center; gap: 8px; font-size: 18px; }
.eve-item__place .scs-icon { color: var(--scs-green); flex: none; }
.eve-item__note { font-size: 17px; line-height: 1.55; color: var(--scs-ink-soft); }

@media (max-width: 1023px) {
	.eve-item { grid-template-columns: 180px minmax(0, 1fr); gap: 10px 24px; }
	.eve-item__note { grid-column: 2; }
}
@media (max-width: 639px) {
	.eve-hero__inner { padding-block: 32px 24px; gap: 20px; }
	.eve-hero__actions { flex-direction: column; }
	.eve-hero__actions .scs-btn { width: 100%; }
	.eve-hero__art { flex-basis: 100%; align-items: center; }
	.eve-hero__cast { max-width: 300px; }
	.eve-hero__art figcaption { text-align: center; }
	.eve-schedule__inner { padding-block: 16px 64px; gap: 20px; }
	.eve-item { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 20px 0; }
	.eve-item__when { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
	.eve-item__time { font-size: 24px; }
	.eve-item__note { grid-column: auto; font-size: 16px; }
	.eve-item__title { font-size: 22px; }
	.eve-item__place { font-size: 17px; }
}

/* Park band */
.eve-park { background: var(--scs-green); }
.eve-park__inner { padding-block: 88px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 56px; align-items: center; }
.eve-park__copy { display: flex; flex-direction: column; gap: 18px; }
.eve-park__lead { font-size: 18px; line-height: 1.6; color: var(--scs-on-dark-muted); }
.eve-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 12px 24px; font-size: 18px; }
.eve-facts dt { font-weight: 700; color: var(--scs-sun); }
.eve-park__photo { aspect-ratio: 5 / 4; border-radius: 8px; overflow: hidden; }
.eve-park__photo img { width: 100%; height: 100%; object-fit: cover; display: block; border: 2px solid var(--scs-on-dark); border-radius: 8px; box-sizing: border-box; }
.eve-park__photo .scs-photo-ph { border-radius: 8px; }
/* Park scene from the design (ParkPhoto.dc.html, 1440×760); cast positions are inline percentages of that frame. */
.eve-park__scene { position: relative; aspect-ratio: 1440 / 760; background: #FFF5E5; border: 2px solid var(--scs-on-dark); box-sizing: border-box; }
.eve-park__bg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.eve-park__bg .twinkle { animation: lights-twinkle 2.4s ease-in-out infinite alternate; }
.eve-pk { position: absolute; }
@media (max-width: 639px) {
	.eve-park__inner { padding-block: 56px; gap: 32px; }
	.eve-facts { grid-template-columns: minmax(0, 1fr); gap: 4px; font-size: 17px; }
	.eve-facts dd + dt { margin-top: 10px; }
}

/* Route */
.eve-route { scroll-margin-top: 16px; }
.eve-route__inner { padding-block: 96px; display: flex; flex-direction: column; gap: 32px; }
.eve-route__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.eve-route__intro { display: flex; flex-direction: column; gap: 12px; max-width: 700px; }
.eve-route__lead { font-size: 18px; line-height: 1.6; }
.eve-route__body { display: flex; flex-wrap: wrap; gap: 32px; align-items: stretch; }
.eve-map { flex: 999 1 600px; min-width: 0; position: relative; border: var(--scs-border); border-radius: 16px; overflow: hidden; background: #EAF1EC; align-self: flex-start; }
.eve-map__svg, .eve-map__img { display: block; width: 100%; height: auto; }
.eve-map__tag { position: absolute; left: 16px; top: 16px; max-width: calc(100% - 32px); box-sizing: border-box; background: var(--scs-paper); border: var(--scs-border); border-radius: 10px; padding: 8px 12px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.eve-map__open {
	position: absolute; right: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px;
	background: var(--scs-paper); border: var(--scs-border); border-radius: 12px; color: var(--scs-ink); font-weight: 700; font-size: 15px; text-decoration: none;
}
.eve-stops { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.eve-stops__h { font-size: 26px; }
.eve-stops__pending { font-size: 15px; line-height: 1.5; color: var(--scs-ink-soft); }
.eve-stops__pending .scs-tag { margin-right: 6px; vertical-align: 1px; }
.eve-stops__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.eve-stop { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-bottom: 1px dashed var(--scs-rule); }
.eve-stop__n { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--scs-ink); color: var(--scs-cream); display: flex; align-items: center; justify-content: center; font-family: var(--scs-font-display); font-weight: 700; }
.eve-stop__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.eve-stop__name { font-weight: 700; font-size: 17px; }
.eve-stop__when { font-size: 15px; color: var(--scs-ink-soft); }
.eve-kind--confirmed { font-weight: 700; color: var(--scs-green); }
.eve-kind--estimate { font-style: italic; }
.eve-stops__note { margin-top: 6px; font-size: 15px; line-height: 1.55; color: var(--scs-ink-soft); }
@media (max-width: 639px) {
	.eve-route__inner { padding-block: 56px; gap: 24px; }
	.eve-route__head .scs-btn { width: 100%; }
	.eve-map__tag { left: 8px; top: 8px; font-size: 12px; padding: 5px 8px; max-width: calc(100% - 16px); }
	.eve-map__open { right: 8px; bottom: 8px; }
}

/* Track Santa CTA */
.eve-track .scs-container { padding-bottom: 40px; }
.eve-track__panel {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
	padding: 40px 48px; background: var(--scs-red); color: var(--scs-on-dark);
	border: var(--scs-border); border-radius: var(--scs-radius-lg); box-shadow: var(--scs-shadow);
}
.eve-track__copy { display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.eve-track__copy p { font-size: 18px; line-height: 1.55; }
.eve-track__h { font-size: clamp(30px, 1.2vw + 22px, 38px); }
@media (max-width: 639px) {
	.eve-track__panel { padding: 28px 22px; box-shadow: 4px 6px 0 var(--scs-ink); }
	.eve-track__panel .scs-btn { width: 100%; }
}

/* Print: schedule + park facts + stop list on paper */
@media print {
	.eve-print-head { margin-bottom: 6pt; font-size: 10pt; }
	.eve-hero__inner { padding: 0 0 8pt; display: block; }
	.eve-hero__art, .eve-map--placeholder, .eve-park__photo, .eve-pending .scs-icon { display: none !important; }
	.eve-schedule__inner, .eve-route__inner, .eve-park__inner { padding: 8pt 0; gap: 8pt; display: block; }
	.eve-schedule__head { padding-bottom: 4pt; border-bottom-width: 1.5pt; margin-bottom: 4pt; }
	.eve-item { grid-template-columns: 34mm minmax(0, 1fr) minmax(0, 60mm); gap: 4mm; padding: 6pt 0; border-bottom-color: #999; }
	.eve-item__note { grid-column: auto; color: #000; }
	.eve-item__time { font-size: 13pt; }
	.eve-item__title { font-size: 12pt; }
	.eve-item.is-estimate .eve-item__time { color: #000; font-style: italic; }
	.eve-park, .eve-park * { background: none !important; color: #000 !important; }
	.eve-park__copy { gap: 4pt; }
	.eve-facts { font-size: 11pt; gap: 3pt 12pt; }
	.eve-facts dt { color: #000 !important; }
	.eve-route__body { display: block; }
	.eve-map { border: 1px solid #000; margin-bottom: 8pt; break-inside: avoid; }
	.eve-map__tag { position: static; border: 0; padding: 2pt 0; }
	.eve-stop { padding: 4pt 0; border-bottom-color: #999; }
	.eve-stop .eve-stop__n { display: flex !important; background: none; color: #000; border: 1px solid #000; width: 22px; height: 22px; font-size: 10pt; }
	.eve-stop__when, .eve-stops__note, .eve-stops__pending { color: #000; }
	.eve-h2, .eve-h2--lg { font-size: 16pt; }
}
