/* Homepage · Main.dc.html (desktop) + MobileHome.dc.html (phone)
   Breakpoints: phone < 640 · tablet 640–1199 (copy first, scene beneath) · desktop ≥ 1200 (overlay scene). */

.home-phone { display: none; }
@media (max-width: 639px) {
	.home-desk, .home-desk-block { display: none; }
	.home-phone { display: inline; }
}

/* Footer keeps its 72px cream gap with the peeking bunny, as in the design. */

/* ---------- Hero ---------- */
.home-hero { position: relative; overflow: hidden; }

/* Time of day. inc/tod.php sets the --tod-* custom properties (home.js keeps them current);
   .is-glow switches on lights, windows and Rudolph's nose, .is-dark flips the copy to cream. */
.home-hero { background: var(--tod-sky, var(--scs-cream)); }
.home-hero__copy { color: var(--tod-ink, var(--scs-ink)); }
.home-hero .home-count__text, .home-hero .home-msg__big { color: var(--tod-red, var(--scs-red)); }
.tod-fill-sky { fill: var(--tod-sky); }
.tod-fill-hill { fill: var(--tod-hill); }
.tod-fill-lawn { fill: var(--tod-lawn); }
.tod-fill-street { fill: var(--tod-street); }
.tod-fill-front { fill: var(--tod-front); }
.tod-fill-wall-a { fill: var(--tod-wall-a); }
.tod-fill-wall-b { fill: var(--tod-wall-b); }
.tod-fill-roof-a { fill: var(--tod-roof-a); }
.tod-fill-roof-b { fill: var(--tod-roof-b); }
.tod-fill-door-a { fill: var(--tod-door-a); }
.tod-fill-door-b { fill: var(--tod-door-b); }
.tod-win { fill: var(--tod-win); }
.tod-sun1 { fill: var(--tod-sun1); }
.tod-sun2 { fill: var(--tod-sun2); }
.tod-sun3 { fill: var(--tod-sun3); }
.tod-sun { opacity: var(--tod-sun-op); transform: translateY(var(--tod-sun-y)); }
.tod-sun--phone { transform: translateY(var(--tod-sun-y-m)); }
.tod-moon { opacity: var(--tod-moon-op); }
.tod-stars { opacity: var(--tod-stars-op); }
.home-hero .home-cast { filter: var(--tod-char, none); }
.is-glow .tod-lights { filter: drop-shadow(0 0 3px #FFD66B) drop-shadow(0 0 9px #F4BE56); animation: lights-twinkle 2.6s ease-in-out infinite alternate; }
.is-glow .tod-win { filter: drop-shadow(0 0 7px #F4BE56); }
/* Demo mode steps between frames, so ease the change instead of snapping. */
.home-hero[data-tod-demo], .home-hero[data-tod-demo] .home-hero__copy, .home-hero[data-tod-demo] .home-count__text, .home-hero[data-tod-demo] .home-msg__big { transition: background-color .8s ease, color .8s ease; }
.home-hero[data-tod-demo] .home-stage__bg * { transition: fill .8s ease, opacity .8s ease, transform .8s ease; }
.home-hero[data-tod-demo] .home-cast { transition: filter .8s ease; }

/* Demo mode: the date line is a button that cycles the time of day, styled to look exactly like the plain date line. */
.home-date--demo { -webkit-appearance: none; appearance: none; border: 0; margin: 0; font-family: inherit; text-align: left; cursor: default; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.home-hero__inner { position: relative; z-index: 2; padding-top: 56px; padding-bottom: 24px; }
.home-hero__copy { max-width: 580px; display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.home-hero__title { font-size: var(--scs-h1); line-height: 1.02; letter-spacing: -.01em; }

.home-date {
	display: inline-flex; align-items: center; gap: 10px;
	background: var(--scs-teal); color: var(--scs-on-dark);
	border-radius: var(--scs-pill); padding: 8px 18px 8px 10px;
	font-weight: 700; font-size: 16px; line-height: 1.3; box-shadow: 2px 3px 0 var(--scs-ink);
}
.home-date__icon { display: inline-flex; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--scs-sun); align-items: center; justify-content: center; }

.home-hero__event { display: flex; flex-direction: column; gap: 24px; width: 100%; }
/* Reserve the badge height so a state change never shifts the actions. */
.home-hero__status { min-height: 176px; display: flex; align-items: center; }

.home-count { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 22px; row-gap: 8px; align-items: center; }
.home-count__badge { grid-row: 1 / 3; }
.home-count__text { align-self: end; font-family: var(--scs-font-display); font-weight: 600; font-size: clamp(38px, 2.6vw + 16px, 52px); line-height: 1; color: var(--scs-red); }
.home-count__tagline { align-self: start; font-size: 19px; line-height: 1.45; max-width: 300px; }

.home-msg { display: flex; flex-direction: column; gap: 10px; }
.home-msg__big { font-family: var(--scs-font-display); font-weight: 700; font-size: clamp(38px, 2.4vw + 20px, 58px); line-height: 1.02; color: var(--scs-red); text-wrap: balance; }
.home-msg__body { font-size: 19px; line-height: 1.45; }

.home-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; padding-bottom: 12px; }

/* Scene: positioned in a 1440×760 stage (percentages of stage width / height) */
.home-scene { position: relative; pointer-events: none; }
.home-scene--phone { display: none; }
.home-stage { position: absolute; left: 0; bottom: 0; width: 100%; aspect-ratio: 1440 / 760; }
.home-stage__bg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.home-cast { position: absolute; }
.home-cast .scs-cast { width: 100%; height: auto; }
.hc-palm1  { left: 51%;   bottom: calc(168 / 760 * 100%); width: 10%; }
.hc-palm2  { left: 91%;   bottom: calc(200 / 760 * 100%); width: 11%; }
.hc-cart   { left: 81%;   bottom: calc(214 / 760 * 100%); width: 7%; }
.hc-elf    { left: 66%;   bottom: calc(150 / 760 * 100%); width: 5.6%; }
.hc-dog-o  { left: 50.5%; bottom: calc(58 / 760 * 100%);  width: 12%; }
.hc-dog-w  { left: 70.5%; bottom: calc(8 / 760 * 100%);   width: 7%; }
.hc-deer1  { left: 43.5%; bottom: calc(26 / 760 * 100%);  width: 14%; }
.hc-sleigh { left: 58%;   bottom: calc(28 / 760 * 100%);  width: 22%; }
.hc-santa  { left: 76%;   bottom: calc(22 / 760 * 100%);  width: 14.5%; }
.hc-coco   { left: 90%;   bottom: calc(66 / 760 * 100%);  width: 9%; }
.hc-bunny  { left: 85.5%; bottom: calc(16 / 760 * 100%);  width: 4.2%; }

@media (min-width: 1200px) {
	.home-hero { min-height: 800px; }
	.home-scene--wide { position: absolute; inset: 0; z-index: 0; }
	.home-hero__inner { padding-bottom: 180px; }
}

/* Tablet: copy first, then the right-hand 58% of the stage with the sky trimmed. */
@media (max-width: 1199px) {
	.home-hero { display: flex; flex-direction: column; }
	.home-hero > .home-scene { order: 2; }
}
@media (min-width: 640px) and (max-width: 1199px) {
	.home-scene--wide { aspect-ratio: 1 / 0.546; overflow: hidden; margin-top: -8px; }
	.home-stage { width: 172.4%; left: -72.4%; }
	.home-scene--wide { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 72px); mask-image: linear-gradient(to bottom, transparent 0, #000 72px); }
}

/* Phone: MobileHome composition — copy and count first, stacked actions, artwork beneath. */
@media (max-width: 639px) {
	.home-hero__inner { padding-top: 28px; padding-bottom: 0; }
	.home-hero__copy { gap: 18px; max-width: none; }
	.home-date { font-size: 14px; padding: 7px 14px 7px 8px; }
	.home-date__icon { width: 22px; height: 22px; }
	.home-date__icon svg { width: 13px; height: 13px; }
	.home-hero__title { font-size: 42px; line-height: 1.03; }
	.home-hero__event { gap: 18px; }
	.home-hero__status { min-height: 128px; }
	.home-count { column-gap: 16px; row-gap: 18px; }
	.home-count__badge { grid-row: 1; }
	.home-count__text { align-self: center; font-size: 38px; }
	.home-count__tagline { grid-column: 1 / -1; font-size: 18px; line-height: 1.5; max-width: none; }
	.home-msg__big { font-size: 38px; line-height: 1.05; }
	.home-msg__body { font-size: 18px; line-height: 1.5; }
	.home-hero__actions { flex-direction: column; gap: 14px; padding-bottom: 0; }
	.home-hero__actions .scs-btn { width: 100%; }
	.home-scene--wide { display: none; }
	.home-scene--phone { display: block; aspect-ratio: 390 / 330; margin-top: 8px; overflow: hidden; }
	.hp-palm   { left: 1%;    bottom: calc(76 / 330 * 100%); width: 23.6%; }
	.hp-dog-o  { left: 16.5%; bottom: calc(33 / 330 * 100%); width: 26%; }
	.hp-deer   { left: 1.5%;  bottom: calc(14 / 330 * 100%); width: 30.3%; }
	.hp-sleigh { left: 26.7%; bottom: calc(12 / 330 * 100%); width: 43.1%; }
	.hp-santa  { left: 62.6%; bottom: calc(10 / 330 * 100%); width: 23.6%; }
	.hp-dog-w  { left: 54.9%; bottom: 0;                     width: 13.8%; }
	.hp-coco   { right: .5%;  bottom: calc(34 / 330 * 100%); width: 14.9%; }
}

/* ---------- At a glance ---------- */
.home-glance__inner {
	padding-block: 88px 104px;
	display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "head actions" "list list";
	align-items: end; gap: 56px 24px;
}
.home-glance__head { grid-area: head; display: flex; flex-direction: column; gap: 12px; max-width: 720px; }
.home-glance__actions { grid-area: actions; display: flex; flex-wrap: wrap; gap: 14px; }
.home-glance__list {
	grid-area: list; list-style: none; margin: 0; padding: 0; position: relative;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px;
}
.home-glance__list::before { content: ""; position: absolute; left: 30px; right: 30px; top: 30px; border-top: 3px dashed rgba(255, 248, 238, .45); }
.home-glance__item { position: relative; display: flex; flex-direction: column; gap: 12px; }
.home-glance__num {
	width: 60px; height: 60px; border-radius: 50%; background: var(--scs-sun); color: var(--scs-ink);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--scs-font-display); font-weight: 700; font-size: 26px; box-shadow: 3px 4px 0 #173F35;
}
.home-glance__when { font-family: var(--scs-font-display); font-weight: 600; font-size: 30px; line-height: 1.2; }
.home-glance__sep { display: none; }
.home-glance__h { font-size: 24px; line-height: 1.2; }
.home-glance__desc { font-size: 17px; line-height: 1.5; color: var(--scs-on-dark-muted); }
.home-glance .scs-tag--pending { background: var(--scs-ph-bg); color: var(--scs-ph-ink); }

@media (max-width: 899px) {
	.home-glance__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "list" "actions"; gap: 32px; }
}
@media (min-width: 640px) and (max-width: 899px) {
	.home-glance__list { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.home-glance__list::before { left: 29px; right: auto; top: 30px; bottom: 30px; border-top: 0; border-left: 3px dashed rgba(255, 248, 238, .45); }
	.home-glance__item { padding-left: 88px; min-height: 60px; gap: 8px; }
	.home-glance__num { position: absolute; left: 0; top: 0; }
}
@media (max-width: 639px) {
	.home-glance__inner { padding-block: 48px 52px; gap: 26px; }
	.home-glance__head .scs-eyebrow { font-size: 13px; }
	.home-glance__head .scs-h2 { font-size: 34px; line-height: 1.08; }
	.home-glance__list { display: flex; flex-direction: column; gap: 26px; padding-left: 26px; border-left: 3px dashed rgba(255, 248, 238, .45); margin-left: 4px; }
	.home-glance__list::before { content: none; }
	.home-glance__item { gap: 6px; }
	.home-glance__num { position: absolute; left: -44px; top: 0; width: 32px; height: 32px; font-size: 16px; box-shadow: none; }
	.home-glance__item .scs-tag { order: 3; }
	.home-glance__when { font-size: 22px; line-height: 1.3; }
	.home-glance__sep { display: inline; }
	.home-glance__h { display: none; }
	.home-glance__desc { font-size: 16px; }
	.home-glance__actions { flex-direction: column; gap: 12px; }
	.home-glance__actions .scs-btn { width: 100%; }
}

/* ---------- Story ---------- */
.home-story__inner {
	padding-block: var(--scs-s7);
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center;
}
.home-story__copy { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.home-story__body { display: flex; flex-direction: column; gap: 22px; font-size: 19px; line-height: 1.65; max-width: 560px; }
.home-story__body > * { margin: 0; }
.home-story__art { position: relative; padding-bottom: 56px; }
.home-story__photo > figure .scs-photo-ph { min-height: 0; }
.home-story__ph { font-weight: 700; color: var(--scs-ph-ink); font-size: 16px; }
.home-story__coco { position: absolute; left: -36px; bottom: -6px; width: 200px; display: flex; flex-direction: column; gap: 6px; }
.home-story__coco-art { aspect-ratio: 250 / 230; }
@media (min-width: 640px) {
	.home-story__photo > figure figcaption { padding-left: 150px; text-align: right; }
}

@media (max-width: 1199px) {
	.home-story__inner { gap: 48px; }
	.home-story__coco { left: 0; }
}
@media (max-width: 899px) {
	.home-story__inner { grid-template-columns: minmax(0, 1fr); }
	.home-story__art { width: 100%; max-width: 560px; justify-self: center; }
}
@media (max-width: 639px) {
	.home-story__inner { padding-block: 56px; gap: 18px; }
	.home-story__copy { gap: 18px; }
	.home-story__copy .scs-eyebrow { font-size: 13px; }
	.home-story__copy .scs-h2 { font-size: 34px; line-height: 1.08; }
	.home-story__body { font-size: 17px; line-height: 1.6; gap: 16px; }
	.home-story__art { padding-bottom: 0; }
	.home-story__photo { padding: 8px 0 0; }
	.home-story__photo::before { display: none; }
	.home-story__photo > figure { transform: rotate(-1.5deg); padding: 10px; }
	.home-story__coco { position: static; width: auto; flex-direction: row; align-items: flex-end; gap: 10px; margin-top: 18px; }
	.home-story__coco-art { width: 150px; flex: none; }
	.home-story__coco figcaption { margin-bottom: 14px; font-size: 14px; }
}

/* ---------- Wishes ---------- */
.home-wishes__inner {
	padding-block: 104px 112px;
	display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "head count" "paths paths" "gag gag";
	align-items: end; gap: 48px 24px;
}
.home-wishes__head { grid-area: head; display: flex; flex-direction: column; gap: 14px; max-width: 680px; }
.home-wishes__eyebrow { color: #8A3A1C; }
.home-letters {
	grid-area: count; display: flex; align-items: center; gap: 14px;
	background: var(--scs-paper); border: var(--scs-border); border-radius: 18px; padding: 14px 20px; box-shadow: var(--scs-shadow-sm);
}
.home-letters .scs-icon { color: var(--scs-red); flex: none; }
.home-letters__sun { flex: none; display: block; }
.home-letters__text { display: flex; flex-direction: column; gap: 2px; font-size: 17px; line-height: 1.35; }
.home-letters__num { font-family: var(--scs-font-display); font-size: 21px; color: var(--scs-green); font-variant-numeric: tabular-nums; }
.home-letters__demo { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--scs-ph-ink); }
a.home-letters__demo { color: var(--scs-red-text); }

.home-paths { grid-area: paths; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
@media (max-width: 899px) { .home-paths { grid-template-columns: minmax(0, 1fr); } }
.home-path {
	position: relative; display: flex; flex-direction: column; gap: 16px; min-height: 340px;
	padding: 44px 44px 40px; box-sizing: border-box; text-decoration: none;
	border: var(--scs-border); box-shadow: var(--scs-shadow);
	transition: transform var(--scs-fast) ease, box-shadow var(--scs-fast) ease;
}
.home-path:hover { box-shadow: 8px 10px 0 var(--scs-ink); }
.home-path:focus-visible { outline-offset: 5px; }
.home-path__kicker { position: relative; font-size: 14px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.home-path__title { position: relative; font-family: var(--scs-font-display); font-weight: 600; font-size: clamp(28px, 1.6vw + 18px, 40px); line-height: 1.05; max-width: 380px; }
.home-path__text { position: relative; font-size: 18px; line-height: 1.55; max-width: 420px; }
.home-path__btn { position: relative; align-self: flex-start; margin-top: auto; }

.home-path--letter {
	color: var(--scs-ink); background: var(--scs-paper);
	background-image: repeating-linear-gradient(var(--scs-paper) 0 39px, #DCE7EA 39px 41px);
	border-radius: 8px; transform: rotate(-.6deg);
}
.home-path--letter:hover { color: var(--scs-ink); transform: rotate(-.6deg) translate(-1px, -2px); }
.home-path--letter .home-path__kicker { color: var(--scs-red-text); }
.home-path--letter .home-path__title { max-width: calc(100% - 96px); }
.home-path__stamp {
	position: absolute; top: 22px; right: 24px; width: 74px; height: 88px; box-sizing: border-box;
	background: var(--scs-teal); border: 4px dotted var(--scs-paper); outline: 2px solid var(--scs-teal);
	display: flex; align-items: center; justify-content: center; transform: rotate(5deg);
}

.home-path--factory { color: var(--scs-on-dark); background: var(--scs-green); border-radius: 28px 28px 8px 8px; overflow: hidden; }
.home-path--factory:hover { color: var(--scs-on-dark); transform: translate(-1px, -2px); }
.home-path--factory .home-path__kicker { color: var(--scs-sun); }
.home-path--factory .home-path__text { max-width: 360px; color: var(--scs-on-dark-muted); }
.home-path__belt { position: absolute; right: -10px; bottom: 26px; width: 250px; height: 70px; background: var(--scs-ink); border-radius: 35px; }
.home-path__gifts { position: absolute; right: 30px; bottom: 76px; display: flex; gap: 14px; align-items: flex-end; }
.home-path__gifts span { display: block; border-radius: 4px; box-shadow: 2px 3px 0 rgba(0, 0, 0, .25); }
.home-path__gifts span:nth-child(1) { width: 46px; height: 42px; background: var(--scs-red); }
.home-path__gifts span:nth-child(2) { width: 38px; height: 54px; background: var(--scs-sun); }
.home-path__gifts span:nth-child(3) { width: 52px; height: 36px; background: var(--scs-teal); border: 2px solid var(--scs-on-dark); box-shadow: none; }
.home-path__wheels { position: absolute; right: 10px; bottom: 40px; display: flex; gap: 34px; }
.home-path__wheels span { width: 18px; height: 18px; border-radius: 50%; background: var(--scs-sun); }

.home-wishes__gag { grid-area: gag; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px; justify-content: space-between; }
.home-wishes__deer-gag { display: flex; align-items: flex-end; gap: 20px; }
.home-wishes__gag .scs-caption { margin: 0 0 18px; text-align: right; max-width: 260px; }
.home-wishes__heather { margin: 0; display: flex; align-items: flex-end; gap: 14px; }
.home-wishes__heather-art { width: 220px; flex: none; aspect-ratio: 200 / 220; }
.home-wishes__heather .scs-caption { text-align: left; max-width: 200px; font-style: italic; }
.home-wishes__deer { width: 150px; flex: none; aspect-ratio: 220 / 200; }
.home-wishes__sleigh { width: 190px; flex: none; aspect-ratio: 280 / 180; }

@media (min-width: 640px) and (max-width: 1199px) {
	.home-path--factory { padding-bottom: 150px; }
}
@media (max-width: 899px) {
	.home-wishes__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "paths" "count" "gag"; gap: 32px; }
	.home-letters { justify-self: start; }
}
@media (max-width: 639px) {
	.home-wishes__inner { padding-block: 52px; gap: 20px; }
	.home-wishes__eyebrow { display: none; }
	.home-wishes__head .scs-h2 { font-size: 34px; line-height: 1.08; }
	.home-wishes__head .scs-lead { font-size: 17px; line-height: 1.55; }
	.home-paths { gap: 20px; }
	.home-path { min-height: 0; padding: 26px 22px; gap: 10px; box-shadow: 4px 6px 0 var(--scs-ink); transform: none; }
	.home-path--letter { background-image: repeating-linear-gradient(var(--scs-paper) 0 33px, #DCE7EA 33px 35px); }
	.home-path--letter:hover, .home-path--factory:hover { transform: none; }
	.home-path--factory { border-radius: 24px 24px 8px 8px; }
	.home-path__kicker, .home-path__stamp, .home-path__belt, .home-path__gifts, .home-path__wheels { display: none; }
	.home-path__title, .home-path--letter .home-path__title { font-size: 28px; max-width: none; }
	.home-path__text { font-size: 16px; line-height: 1.5; }
	.home-path__btn { align-self: stretch; margin-top: 6px; }
	.home-letters { background: none; border: 0; box-shadow: none; padding: 0; gap: 10px; }
	.home-letters .scs-icon { display: none; }
	.home-letters__text { font-size: 16px; }
	.home-letters__num { font-size: 19px; }
	.home-letters__sun { width: 32px; height: 32px; }
	.home-letters__demo { font-size: 11px; }
	.home-wishes__deer-gag { display: none; }
	.home-wishes__heather { gap: 10px; margin-top: 4px; }
	.home-wishes__heather-art { width: 170px; }
	.home-wishes__heather .scs-caption { margin-bottom: 12px; font-size: 14px; }
}

/* ---------- Help ---------- */
.home-help__inner { padding-block: var(--scs-s7) 96px; display: flex; flex-direction: column; gap: 48px; }
.home-help__head { display: flex; flex-direction: column; gap: 14px; max-width: 700px; }
.home-help__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; align-items: stretch; }
@media (max-width: 899px) { .home-help__grid { grid-template-columns: minmax(0, 1fr); } }
.home-support { display: flex; flex-direction: column; gap: 22px; padding: 40px; border-top: 3px solid var(--scs-ink); align-items: flex-start; }
.home-support .scs-lights { width: 100%; }
.home-support__text { font-size: 18px; line-height: 1.6; }
.home-support__stat { font-size: 17px; }
.home-support__demo { font-size: 13px; color: var(--scs-ink-muted); }
.home-elves {
	position: relative; display: flex; flex-direction: column; gap: 22px; align-items: flex-start;
	padding: 40px 260px 40px 40px; background: var(--scs-teal); color: var(--scs-on-dark);
	border-radius: 8px; overflow: hidden; min-height: 360px; box-sizing: border-box;
}
.home-elves__flag {
	font-family: var(--scs-font-display); font-weight: 700; font-size: 15px; letter-spacing: .16em; text-transform: uppercase;
	background: var(--scs-sun); color: var(--scs-ink); padding: 6px 14px; transform: rotate(-3deg);
}
.home-elves__text { font-size: 18px; line-height: 1.6; color: #EAF4F4; }
.home-elves .scs-btn { margin-top: auto; position: relative; z-index: 1; }
.home-elves__art { position: absolute; right: 28px; bottom: 0; width: 200px; aspect-ratio: 130 / 200; }

@media (max-width: 1199px) {
	.home-elves__flag { letter-spacing: .08em; font-size: 14px; }
	.home-elves { padding-right: 200px; }
	.home-elves__art { width: 160px; right: 16px; }
}
@media (max-width: 639px) {
	.home-help__inner { padding-block: 56px; gap: 22px; }
	.home-help__head .scs-eyebrow { display: none; }
	.home-help__head .scs-h2 { font-size: 34px; line-height: 1.08; }
	.home-help__grid { gap: 22px; }
	.home-support { padding: 18px 0 0; gap: 14px; }
	.home-support .scs-h3, .home-elves .scs-h3 { font-size: 26px; }
	.home-support__text { font-size: 16px; }
	.home-support__stat { font-size: 16px; }
	.home-support .scs-btn { width: 100%; }
	.home-elves { padding: 26px 130px 26px 22px; gap: 12px; min-height: 0; }
	.home-elves__flag { display: none; }
	.home-elves__text { font-size: 16px; line-height: 1.5; }
	.home-elves .scs-btn { margin-top: 4px; font-size: 16px; padding: 0 16px; }
	.home-elves__art { width: 110px; right: 8px; }
}

/* ---------- Gallery preview ---------- */
.home-gallery__inner {
	padding-block: 40px var(--scs-s7);
	display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "head more" "grid grid"; align-items: end; gap: 40px 24px;
}
.home-gallery__head { grid-area: head; }
.home-gallery__more { grid-area: more; }
.home-gallery__grid { grid-area: grid; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 20px; }
.home-gallery__item { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
.home-gallery__item:nth-child(1) { grid-row: span 2; }
.home-gallery__item:nth-child(4) { grid-column: span 2; }
.home-gallery__item > img, .home-gallery__item > .scs-photo-ph { flex: 1; min-height: 0; width: 100%; border-radius: 6px; object-fit: cover; }
.home-gallery__item > .scs-photo-ph { padding: 12px; }
.home-gallery__item figcaption { font-size: 15px; }

@media (max-width: 899px) {
	.home-gallery__grid { grid-auto-rows: 180px; gap: 14px; }
}
@media (max-width: 639px) {
	.home-gallery__inner { padding-block: 0 56px; grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "grid" "more"; gap: 18px; }
	.home-gallery__head .scs-h2 { font-size: 34px; line-height: 1.08; }
	.home-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 140px; gap: 10px; }
	.home-gallery__item { gap: 0; }
	.home-gallery__item figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.home-gallery__item:nth-child(4) { display: none; }
	.home-gallery__item > .scs-photo-ph { padding: 8px; font-size: 14px; }
	.home-gallery__more .scs-btn { width: 100%; }
}

/* ---------- FAQ ---------- */
.home-faq { background: var(--scs-paper); border-top: 2px dashed var(--scs-rule-soft); }
.home-faq__inner { padding-block: 104px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 56px; }
.home-faq__intro { display: flex; flex-direction: column; gap: 16px; }
.home-faq__lead { font-size: 18px; line-height: 1.6; max-width: 380px; }
.home-faq__dogs { margin: 24px 0 0; max-width: 420px; display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 639px) {
	.home-faq__inner { padding-block: 52px; gap: 10px; }
	.home-faq__intro .scs-h2 { font-size: 34px; }
	.home-faq__lead { font-size: 16px; margin-bottom: 8px; }
	.home-faq__dogs { display: none; }
	.home-faq .scs-faq summary { font-size: 19px; }
	.home-faq .scs-faq details > div { font-size: 16px; line-height: 1.55; }
}

/* ---------- Closing scene ---------- */
.home-close { position: relative; overflow: hidden; background: var(--scs-sun-soft); min-height: 460px; }
.home-close__bg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.home-close__palm  { position: absolute; right: 18%; bottom: 40px; width: 200px; aspect-ratio: 170 / 280; }
.home-close__deer  { position: absolute; right: 23%; bottom: 30px; width: 210px; aspect-ratio: 220 / 200; }
.home-close__bunny { position: absolute; right: 8%; bottom: 36px; width: 46px; aspect-ratio: 60 / 56; }
.home-close__inner { position: relative; z-index: 2; padding-block: 88px 120px; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.home-close__h { max-width: 620px; }
.home-close__bonus { font-size: 15px; max-width: 460px; }

@media (max-width: 899px) {
	.home-close { min-height: 0; }
	.home-close__inner { padding-block: 64px 260px; }
	.home-close__bg { height: 260px; aspect-ratio: auto; }
	.home-close__palm { right: 8%; }
	.home-close__deer { right: 16%; }
	.home-close__bunny { right: auto; left: 6%; }
}
@media (max-width: 639px) {
	.home-close__inner { padding-block: 52px 230px; gap: 16px; }
	.home-close__inner .scs-caption { font-size: 14px; }
	.home-close__h { font-size: 32px; line-height: 1.08; }
	.home-close__inner .scs-btn { width: 100%; }
	.home-close__bonus { display: none; }
	.home-close__bg { height: 200px; }
	.home-close__palm { right: 30px; bottom: 50px; width: 110px; }
	.home-close__deer { right: 70px; bottom: 34px; width: 140px; }
	.home-close__bunny { left: 24px; bottom: 30px; width: 34px; }
}

/* Design parity: hero and story headings balance; others wrap naturally (Main.dc.html). */
.home-hero__title, .home-story h2 { text-wrap: balance; }

/* Desktop hero = Main.dc.html exactly: background art covers the whole hero (slice, bottom-anchored)
   and the cast sits at the design's pixel offsets from the hero bottom. */
@media (min-width: 1200px) {
	.home-scene--wide .home-stage { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
	.hc-palm1  { bottom: 168px; }
	.hc-palm2  { bottom: 200px; }
	.hc-cart   { bottom: 214px; left: 86.5%; } /* Out from behind Santa. */
	.hc-elf    { bottom: 150px; }
	.hc-deer2  { bottom: 60px; }
	.hc-deer1  { bottom: 26px; }
	.hc-sleigh { bottom: 28px; }
	.hc-santa  { bottom: 22px; }
	.hc-coco   { bottom: 66px; }
	.hc-bunny  { bottom: 16px; }
}

/* Closing scene on phones/tablets = MobileHome.dc.html: simple water + hill band (200px) at the bottom. */
.home-close__bg-phone { display: none; }
@media (max-width: 899px) {
	.home-close__bg { display: none; }
	.home-close__bg-phone { display: block; position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 200px; }
	.home-close__inner { padding-block: 52px 230px; gap: 16px; }
	.home-close__h { font-size: clamp(32px, 4vw + 16px, 44px); line-height: 1.08; }
	.home-close__h-end { display: block; }
	.home-close__inner .scs-btn { width: 100%; max-width: 480px; }
	.home-close__bonus { display: none; }
	.home-close__palm { right: 30px; left: auto; bottom: 50px; width: 110px; }
	.home-close__deer { right: 70px; left: auto; bottom: 34px; width: 140px; }
	.home-close__bunny { left: 24px; right: auto; bottom: 30px; width: 34px; }
}
