/* /holiday-train/: the CPKC Holiday Train in Detroit, dressed like an American Christmas movie: C9 bulb strings that
   twinkle, falling snow, warm window glow, the lit train rolling under the hero. Built on home.css + places.css;
   the structure follows the LGBTQ+ guide (mosaic hero, serif headline with a shine, stat pills, photo tiles, spotlights).
   CSP-safe: no inline styles; every per-item variation comes from nth-child rules. */
.ht-page{--ht-night:#0b1020;--ht-navy:#121a33;--ht-red:#c8102e;--ht-green:#1f7a4d;--ht-gold:#ffcf5c;--ht-warm:#fff4dc;--ht-cream:#fbf6ea;--ht-ink:#1b1712;
 --ht-bulb-r:#ff3b3b;--ht-bulb-g:#3ddc84;--ht-bulb-b:#4ab3ff;--ht-bulb-o:#ff9f1c;--ht-bulb-y:#ffe066;--ht-bulb-p:#ff5fd2;background:var(--ht-cream)}
.ht-page main{overflow:hidden}

/* ---------- the C9 bulb string (used in the hero and as section dividers) ---------- */
.ht-lights{position:relative;height:46px;display:flex;justify-content:space-between;align-items:flex-start;padding:0 1.5vw;pointer-events:none;z-index:4}
.ht-lights::before{content:"";position:absolute;left:0;right:0;top:0;height:30px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 30' preserveAspectRatio='none'%3E%3Cpath d='M0 4 Q30 26 60 4 T120 4' fill='none' stroke='%23182418' stroke-width='2.2'/%3E%3C/svg%3E") repeat-x;background-size:120px 30px}
.ht-lights i{position:relative;display:block;width:12px;height:20px;margin-top:13px;border-radius:50% 50% 46% 46%/62% 62% 38% 38%;background:var(--ht-bulb-r);
 box-shadow:0 0 10px 3px var(--ht-bulb-r),0 0 26px 8px color-mix(in srgb,var(--ht-bulb-r) 45%,transparent);animation:ht-twinkle 2.8s ease-in-out infinite;transform-origin:50% 0}
.ht-lights i::before{content:"";position:absolute;left:2px;right:2px;top:-6px;height:7px;border-radius:2px;background:#2b3a2b}
.ht-lights i:nth-child(2n){margin-top:21px;transform:rotate(-8deg)}
.ht-lights i:nth-child(3n){margin-top:8px;transform:rotate(7deg)}
.ht-lights i:nth-child(6n+2){--c:var(--ht-bulb-g)}.ht-lights i:nth-child(6n+3){--c:var(--ht-bulb-b)}.ht-lights i:nth-child(6n+4){--c:var(--ht-bulb-o)}.ht-lights i:nth-child(6n+5){--c:var(--ht-bulb-y)}.ht-lights i:nth-child(6n){--c:var(--ht-bulb-p)}.ht-lights i:nth-child(6n+1){--c:var(--ht-bulb-r)}
.ht-lights i{background:var(--c,var(--ht-bulb-r));box-shadow:0 0 9px 3px var(--c,var(--ht-bulb-r)),0 0 28px 9px color-mix(in srgb,var(--c,var(--ht-bulb-r)) 40%,transparent)}
.ht-lights i:nth-child(5n+1){animation-delay:-.4s}.ht-lights i:nth-child(5n+2){animation-delay:-1.1s;animation-duration:3.4s}.ht-lights i:nth-child(5n+3){animation-delay:-1.9s}.ht-lights i:nth-child(5n+4){animation-delay:-.7s;animation-duration:2.2s}.ht-lights i:nth-child(5n){animation-delay:-2.4s;animation-duration:3.9s}
@keyframes ht-twinkle{0%,100%{opacity:1;filter:saturate(1.15) brightness(1.15)}45%{opacity:.55;filter:saturate(.8) brightness(.75)}55%{opacity:.95}}
.ht-lights.is-divider{height:52px;margin:0}

/* ---------- hero: mosaic, snow, headline, countdown, lit train ---------- */
.ht-hero{position:relative;min-height:min(92vh,820px);display:flex;flex-direction:column;justify-content:flex-end;background:radial-gradient(120% 90% at 70% 0%,#25305a 0%,var(--ht-night) 60%);color:#fff;overflow:hidden;isolation:isolate}
.ht-hero>.ht-lights{position:absolute;left:0;right:0;top:0}
.ht-mosaic{position:absolute;inset:0;display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:4px;z-index:-2}
.ht-mosaic figure{margin:0;overflow:hidden;position:relative}
.ht-mosaic img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.06);animation:ht-drift 20s ease-in-out infinite alternate;filter:saturate(1.1)}
.ht-mosaic-0{grid-row:1/4}.ht-mosaic-1{grid-column:2}.ht-mosaic-2{grid-column:3}.ht-mosaic-3{grid-column:2/4;grid-row:2}.ht-mosaic-4{grid-column:2;grid-row:3}.ht-mosaic-5{grid-column:3;grid-row:3}
.ht-mosaic figure:nth-child(2) img{animation-delay:-5s}.ht-mosaic figure:nth-child(3) img{animation-delay:-9s}.ht-mosaic figure:nth-child(4) img{animation-delay:-3s}.ht-mosaic figure:nth-child(5) img{animation-delay:-12s}.ht-mosaic figure:nth-child(6) img{animation-delay:-7s}
@keyframes ht-drift{from{transform:scale(1.06) translate(0,0)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
.ht-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1020f0 0%,#0b1020b0 38%,#0b102040 70%,#0b102010 100%),linear-gradient(0deg,#0b1020f5 0%,#0b102000 46%)}
.ht-snow{position:absolute;inset:0;z-index:0;pointer-events:none}
.ht-snow i{position:absolute;top:-12px;width:6px;height:6px;border-radius:50%;background:#fff;opacity:.85;filter:blur(.4px);animation:ht-fall 11s linear infinite}
.ht-snow i:nth-child(odd){width:4px;height:4px;opacity:.6;animation-duration:14s}
.ht-snow i:nth-child(3n){width:8px;height:8px;filter:blur(1.2px);opacity:.5;animation-duration:9s}
.ht-snow i:nth-child(1){left:3%;animation-delay:-1s}.ht-snow i:nth-child(2){left:8%;animation-delay:-6s}.ht-snow i:nth-child(3){left:13%;animation-delay:-3s}.ht-snow i:nth-child(4){left:19%;animation-delay:-9s}.ht-snow i:nth-child(5){left:24%;animation-delay:-2s}
.ht-snow i:nth-child(6){left:29%;animation-delay:-7s}.ht-snow i:nth-child(7){left:35%;animation-delay:-4s}.ht-snow i:nth-child(8){left:40%;animation-delay:-11s}.ht-snow i:nth-child(9){left:46%;animation-delay:-5s}.ht-snow i:nth-child(10){left:51%;animation-delay:-8s}
.ht-snow i:nth-child(11){left:56%;animation-delay:-1.5s}.ht-snow i:nth-child(12){left:62%;animation-delay:-10s}.ht-snow i:nth-child(13){left:67%;animation-delay:-3.5s}.ht-snow i:nth-child(14){left:72%;animation-delay:-6.5s}.ht-snow i:nth-child(15){left:77%;animation-delay:-12s}
.ht-snow i:nth-child(16){left:82%;animation-delay:-2.5s}.ht-snow i:nth-child(17){left:87%;animation-delay:-8.5s}.ht-snow i:nth-child(18){left:92%;animation-delay:-4.5s}.ht-snow i:nth-child(19){left:96%;animation-delay:-9.5s}.ht-snow i:nth-child(20){left:44%;animation-delay:-13s}
.ht-snow i:nth-child(21){left:17%;animation-delay:-12.5s}.ht-snow i:nth-child(22){left:64%;animation-delay:-.5s}.ht-snow i:nth-child(23){left:31%;animation-delay:-10.5s}.ht-snow i:nth-child(24){left:79%;animation-delay:-5.5s}
@keyframes ht-fall{0%{transform:translate(0,-20px)}50%{transform:translate(18px,48vh)}100%{transform:translate(-8px,96vh)}}
.ht-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;align-items:end;padding-top:120px;padding-bottom:120px}
.ht-hero .eyebrow{color:var(--ht-gold);margin:0 0 20px;letter-spacing:.18em}
.ht-hero h1{font:400 clamp(46px,7vw,108px)/.98 Georgia,serif;letter-spacing:-.05em;margin:0 0 24px;max-width:920px}
.ht-shine{background:linear-gradient(100deg,#fff 0%,#fff 28%,#ffcf5c 40%,#ff6b6b 50%,#7dffb0 60%,#ffcf5c 70%,#fff 84%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:ht-shine 9s linear infinite;text-shadow:none}
@keyframes ht-shine{from{background-position:120% 0}to{background-position:-140% 0}}
.ht-lead{font-size:clamp(17px,1.5vw,21px);line-height:1.6;max-width:690px;margin:0 0 26px;color:#f3efe6}
.ht-lead strong{color:var(--ht-gold)}
.ht-cta{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.ht-button{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;background:var(--ht-red);color:#fff;font-weight:800;text-decoration:none;box-shadow:0 0 0 0 #c8102e88;transition:transform .2s ease,box-shadow .2s ease}
.ht-button:hover{transform:translateY(-2px);box-shadow:0 10px 30px -6px #ff3b3b99}
.ht-button.is-ghost{background:#ffffff14;border:1px solid #ffffff40;backdrop-filter:blur(6px)}
.ht-button:focus-visible{outline:3px solid var(--ht-gold);outline-offset:3px}
.ht-stats{justify-self:end;display:grid;gap:10px;margin:0}
.ht-stats div{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;padding:12px 18px;border-radius:999px;background:#ffffff12;backdrop-filter:blur(6px);border:1px solid #ffffff2e}
.ht-stats dd{order:-1;margin:0;font:400 clamp(30px,3.4vw,50px)/1 Georgia,serif;letter-spacing:-.04em}
.ht-stats div:nth-child(1) dd{color:var(--ht-gold)}.ht-stats div:nth-child(2) dd{color:#ff8a8a}.ht-stats div:nth-child(3) dd{color:#7dffb0}.ht-stats div:nth-child(4) dd{color:#8fd3ff}
.ht-stats dt{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#f3efe6;text-align:right}
.ht-count{display:flex;gap:10px;margin:0 0 6px}
.ht-count span{display:grid;justify-items:center;min-width:76px;padding:12px 10px 10px;border-radius:16px;background:linear-gradient(#ffffff1c,#ffffff08);border:1px solid #ffffff33;box-shadow:inset 0 0 22px #ffcf5c22}
.ht-count b{font:400 clamp(30px,3.4vw,46px)/1 Georgia,serif;color:var(--ht-gold);font-variant-numeric:tabular-nums;text-shadow:0 0 18px #ffcf5c88}
.ht-count small{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#f3efe6;margin-top:6px}
.ht-count p{margin:0;font:400 clamp(24px,2.6vw,36px)/1.15 Georgia,serif;color:var(--ht-gold)}
.ht-count-note{margin:0 0 24px;color:#d7d2c6;font-size:14px}
.ht-credit{position:absolute;right:16px;bottom:6px;z-index:3;margin:0;font-size:11px}
.ht-credit a{color:#ffffffaa}
/* The lit train under the hero: a locomotive and boxcars with warm windows and bulbs on the roofline. */
.ht-rail{position:absolute;left:0;right:0;bottom:22px;height:62px;z-index:1;pointer-events:none}
.ht-rail::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:repeating-linear-gradient(90deg,#3d4258 0 26px,#2a2e40 26px 32px);box-shadow:0 2px 0 #0007}
.ht-train{position:absolute;bottom:4px;left:0;display:flex;gap:6px;align-items:flex-end;animation:ht-roll 30s linear infinite}
.ht-loco,.ht-car{position:relative;display:block;height:40px;border-radius:5px 5px 2px 2px;background:linear-gradient(#b50e28,#7d0a1b);box-shadow:0 0 22px #ff3b3b66}
.ht-loco{width:92px;border-radius:14px 6px 2px 2px;background:linear-gradient(#d61f3a,#8f0c20)}
.ht-loco::before{content:"";position:absolute;left:10px;top:8px;width:26px;height:12px;border-radius:3px;background:var(--ht-gold);box-shadow:0 0 14px var(--ht-gold)}
.ht-loco::after{content:"";position:absolute;right:-6px;top:20px;width:12px;height:8px;border-radius:50%;background:#fff6c8;box-shadow:0 0 30px 12px #fff3b0aa}
.ht-car{width:84px;background:repeating-linear-gradient(90deg,#1f7a4d 0 20px,#1a6a43 20px 21px)}
.ht-car:nth-child(odd){background:repeating-linear-gradient(90deg,#c8102e 0 20px,#ad0d27 20px 21px)}
.ht-car::before{content:"";position:absolute;left:6px;right:6px;top:-7px;height:6px;background:radial-gradient(circle,#ffe066 0 2px,transparent 3px) 0 50%/10px 6px repeat-x;filter:drop-shadow(0 0 4px #ffe066)}
.ht-car::after{content:"";position:absolute;left:10px;right:10px;top:12px;height:12px;border-radius:3px;background:linear-gradient(90deg,#fff1b8,#ffd36b);box-shadow:0 0 16px #ffd36b;opacity:.9}
.ht-car:nth-child(3n)::after{background:linear-gradient(90deg,#c8f7ff,#8fd3ff);box-shadow:0 0 16px #8fd3ff}
@keyframes ht-roll{from{transform:translateX(-110%)}to{transform:translateX(110vw)}}

/* ---------- jump bar ---------- */
.ht-jump{position:sticky;top:0;z-index:20;background:#0b1020f2;backdrop-filter:blur(8px);border-bottom:1px solid #ffffff1f}
.ht-jump .wrap{display:flex;gap:6px;overflow-x:auto;padding-top:10px;padding-bottom:10px;scrollbar-width:none}
.ht-jump a{flex:0 0 auto;padding:7px 14px;border-radius:999px;color:#f3efe6;text-decoration:none;font-size:13.5px;font-weight:700;border:1px solid #ffffff26}
.ht-jump a:hover,.ht-jump a:focus-visible{background:var(--ht-red);border-color:var(--ht-red);color:#fff}

/* ---------- sections ---------- */
.ht-section{padding-top:72px;padding-bottom:72px}
.ht-head{max-width:820px;margin-bottom:32px}
.ht-head .eyebrow{color:var(--ht-red);letter-spacing:.16em}
.ht-head h2{font:400 clamp(34px,4.6vw,64px)/1.02 Georgia,serif;letter-spacing:-.04em;margin:8px 0 16px;color:var(--ht-ink)}
.ht-head p{font-size:18px;line-height:1.65;color:#3d382f;margin:0}
.ht-head.is-light h2{color:#fff}.ht-head.is-light p{color:#e9e4d8}.ht-head.is-light .eyebrow{color:var(--ht-gold)}
.ht-band{position:relative;padding:76px 0;background:radial-gradient(80% 120% at 10% 0%,#1d2852 0%,var(--ht-night) 55%);color:#fff}
.ht-band a{color:var(--ht-gold)}
.ht-band.is-dark{background:linear-gradient(#0b1020,#14102a)}
.ht-refs{margin-left:3px;font-size:10.5px;font-weight:700;white-space:nowrap}
.ht-ref{display:inline-block;margin-left:2px;padding:0 4px;border-radius:6px;background:#c8102e1a;color:var(--ht-red);text-decoration:none}
.ht-band .ht-ref{background:#ffcf5c26;color:var(--ht-gold)}
.ht-ref:hover{background:var(--ht-red);color:#fff}

/* facts cards */
.ht-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.ht-card{position:relative;padding:22px 22px 20px;border-radius:22px;background:#fff;border:1px solid #eadfca;box-shadow:0 18px 40px -26px #6b4a1c55;overflow:hidden}
.ht-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:repeating-linear-gradient(90deg,var(--ht-red) 0 16px,#fff 16px 22px,var(--ht-green) 22px 38px,#fff 38px 44px)}
.ht-card-icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--ht-night);font-size:22px;box-shadow:0 0 0 4px #ffcf5c33}
.ht-card h3{font:400 24px/1.15 Georgia,serif;margin:14px 0 8px}
.ht-card p{margin:0;line-height:1.6;color:#3d382f}

/* route line */
.ht-line{position:relative;margin-top:10px}
.ht-line-track{position:relative;height:6px;margin:0 2% 0;border-radius:6px;background:#ffffff1f;overflow:visible}
.ht-line-glow{position:absolute;inset:0;border-radius:6px;background:linear-gradient(90deg,var(--ht-gold),#ff6b6b,#7dffb0,var(--ht-gold));background-size:300% 100%;animation:ht-shine 6s linear infinite;box-shadow:0 0 18px #ffcf5c88}
.ht-line-train{position:absolute;top:-24px;font-size:28px;animation:ht-line-roll 16s ease-in-out infinite;filter:drop-shadow(0 0 10px #ffcf5c)}
@keyframes ht-line-roll{0%{left:0}100%{left:calc(100% - 30px)}}
.ht-stops{list-style:none;margin:0;padding:22px 0 0;display:grid;grid-template-columns:repeat(var(--n,9),minmax(0,1fr));gap:10px}
.ht-stop{position:relative;display:grid;gap:4px;padding-top:6px;font-size:13.5px;line-height:1.45}
.ht-stop-dot{position:absolute;top:-25px;left:0;width:14px;height:14px;border-radius:50%;background:var(--ht-night);border:3px solid var(--ht-gold);box-shadow:0 0 12px #ffcf5c}
.ht-stop.is-show .ht-stop-dot{width:20px;height:20px;top:-28px;background:var(--ht-red);border-color:#fff;box-shadow:0 0 22px #ff3b3b}
.ht-stop.is-border .ht-stop-dot{background:#8fd3ff;border-color:#fff}
.ht-stop b{font:400 19px/1.15 Georgia,serif;color:#fff}
.ht-stop small{color:#d9d4c8}
.ht-stop .ht-stop-when{color:var(--ht-gold);font-weight:700;letter-spacing:.04em}
.ht-stops{--n:10}

/* Windsor spotlight */
.ht-windsor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.ht-spot-photo{position:relative;margin:0;transform:rotate(-2.2deg);border-radius:22px;overflow:hidden;box-shadow:0 30px 70px -30px #3b1a0699,0 0 0 10px #fff}
.ht-spot-photo img{display:block;width:100%;height:auto}
.ht-spot-photo figcaption{position:absolute;right:10px;bottom:8px;font-size:11px;background:#0008;color:#fff;padding:3px 8px;border-radius:8px}
.ht-spot-photo figcaption a{color:#fff}
.ht-windsor-time{font:400 clamp(26px,2.6vw,36px)/1.2 Georgia,serif;margin:0 0 14px;color:var(--ht-ink)}
.ht-windsor-time b{color:var(--ht-red);font-weight:400}
.ht-windsor-copy p{font-size:17px;line-height:1.65;color:#3d382f}
.ht-performers{display:flex;flex-wrap:wrap;gap:8px}
.ht-performers span{padding:8px 16px;border-radius:999px;background:var(--ht-night);color:var(--ht-gold);font-weight:800;letter-spacing:.04em;box-shadow:0 0 18px #ffcf5c44}
.ht-windsor-border{padding:14px 16px;border-radius:14px;background:#fff;border:1px dashed #c8102e66}

/* watch points */
.ht-watch{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.ht-watch-point{padding:18px 20px;border-radius:20px;background:#fff;border:1px solid #eadfca;position:relative}
.ht-watch-point::after{content:"✦";position:absolute;right:16px;top:14px;color:var(--ht-gold);font-size:18px;text-shadow:0 0 10px #ffcf5c}
.ht-watch-point h3{font:400 21px/1.2 Georgia,serif;margin:0 0 4px}
.ht-watch-town{margin:0 0 8px;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ht-green)}
.ht-watch-point p{margin:0;line-height:1.55;color:#3d382f}
.ht-watch-point.is-unofficial{background:#fffaf0}
.ht-safety{margin-top:22px;padding:20px 22px;border-radius:20px;background:#fff1ec;border:2px solid #c8102e55}
.ht-safety h3{margin:0 0 10px;font:400 22px/1.2 Georgia,serif;color:var(--ht-red)}
.ht-safety ul{margin:0;padding-left:20px;line-height:1.6}

/* videos */
.ht-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.ht-video{margin:0}
.ht-video .place-video{border-radius:18px;overflow:hidden;box-shadow:0 0 0 2px #ffcf5c55,0 30px 60px -30px #000}
.ht-video figcaption{margin-top:10px;color:#e9e4d8;line-height:1.55}
.ht-video-meta{color:#a9a395;font-size:13px}

/* gallery */
.ht-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.ht-gallery figure{margin:0;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 16px 40px -28px #000}
.ht-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.ht-gallery figure:hover img{transform:scale(1.04)}
.ht-gallery figcaption{padding:10px 12px;font-size:12.5px;color:#57503f}

/* history timeline */
.ht-years{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.ht-year{position:relative;padding:16px 18px;border-radius:18px;background:#ffffff0f;border:1px solid #ffffff22}
.ht-year b{display:block;font:400 34px/1 Georgia,serif;color:var(--ht-gold);margin-bottom:8px}
.ht-year p{margin:0;font-size:14.5px;line-height:1.55;color:#e9e4d8}
.ht-year.is-detroit{background:linear-gradient(160deg,#c8102e44,#ffffff0f);border-color:#ff8a8a66}
.ht-year.is-detroit::after{content:"Detroit";position:absolute;right:12px;top:14px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--ht-red);color:#fff}
.ht-page[lang] .ht-year.is-detroit::after{content:"Detroit"}

/* other Christmas trains: photo tiles like the LGBTQ+ categories, then cards */
.ht-rides{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.ht-ride{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:#fff;border:1px solid #eadfca;box-shadow:0 18px 40px -28px #6b4a1c66;transition:transform .25s ease,box-shadow .25s ease}
.ht-ride:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px #c8102e55}
.ht-ride-photo{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ht-night)}
.ht-ride-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ht-ride-body{padding:16px 18px 18px;display:grid;gap:6px}
.ht-ride-where{margin:0;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ht-green)}
.ht-ride h3{margin:0;font:400 23px/1.15 Georgia,serif}
.ht-ride h3 a{color:var(--ht-ink);text-decoration:none}.ht-ride h3 a:hover{color:var(--ht-red)}
.ht-ride-dates,.ht-ride-price{margin:0;font-weight:700;color:#3d382f;font-size:14px}
.ht-ride p{margin:0;line-height:1.55;color:#3d382f}
.ht-ride-credit{font-size:11px;color:#8a826f}.ht-ride-credit a{color:inherit}

/* give, faq, sources */
.ht-give{background:linear-gradient(135deg,#fff 0%,#fff6e3 100%);border-radius:28px;margin-top:20px;margin-bottom:20px;border:1px solid #eadfca}
.ht-give p{font-size:18px;line-height:1.65;max-width:860px}
.ht-faq details{border-bottom:1px solid #e3d8c3;padding:16px 0}
.ht-faq summary{cursor:pointer;font:400 21px/1.3 Georgia,serif;list-style:none;display:flex;justify-content:space-between;gap:16px}
.ht-faq summary::after{content:"＋";color:var(--ht-red);font-family:Arial,sans-serif}
.ht-faq details[open] summary::after{content:"－"}
.ht-faq p{margin:10px 0 0;line-height:1.65;color:#3d382f;max-width:860px}
.ht-sources ol{margin:0;padding-left:22px;font-size:13px;line-height:1.7;color:#57503f}
.ht-sources a{color:var(--ht-ink)}
.ht-sources li:target{background:#ffcf5c44;border-radius:6px}

/* reveal on scroll (holiday-train.js adds .is-in) */
.ht-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.ht-reveal.is-in{opacity:1;transform:none}

@media (max-width:900px){
 .ht-hero-inner{grid-template-columns:minmax(0,1fr);padding-top:110px;padding-bottom:110px}
 .ht-stats{justify-self:start;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .ht-stats div{justify-content:flex-start;border-radius:18px}
 .ht-stats dt{text-align:left}
 .ht-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
 .ht-mosaic-0{grid-row:1/3}.ht-mosaic-1{grid-column:2;grid-row:1}.ht-mosaic-2{grid-column:2;grid-row:2}.ht-mosaic-3,.ht-mosaic-4,.ht-mosaic-5{display:none}
 .ht-windsor{grid-template-columns:minmax(0,1fr);gap:30px}
 .ht-line-track{display:none}
 .ht-stops{grid-template-columns:minmax(0,1fr);gap:0;padding:0 0 0 22px;border-left:4px solid var(--ht-gold);box-shadow:-6px 0 14px -8px #ffcf5c}
 .ht-stop{padding:10px 0 14px 14px}
 .ht-stop-dot{top:14px;left:-32px}
 .ht-stop.is-show .ht-stop-dot{top:11px;left:-35px}
}
@media (max-width:560px){
 .ht-count span{min-width:0;flex:1 1 0;padding:10px 4px 8px}
 .ht-count small{font-size:9.5px;letter-spacing:.08em}
 .ht-lights i:nth-child(n+19){display:none}
 .ht-section{padding-top:52px;padding-bottom:52px}
}
@media (prefers-reduced-motion:reduce){
 .ht-lights i,.ht-mosaic img,.ht-snow i,.ht-shine,.ht-train,.ht-line-glow,.ht-line-train{animation:none}
 .ht-snow{display:none}.ht-train{transform:translateX(8vw)}.ht-line-train{left:40%}
 .ht-reveal{opacity:1;transform:none;transition:none}
}
@media print{.ht-lights,.ht-snow,.ht-rail,.ht-jump,.ht-mosaic{display:none!important}.ht-hero{background:#fff;color:#000;min-height:0}}
.ht-stops-6{--n:6}.ht-stops-7{--n:7}.ht-stops-8{--n:8}.ht-stops-9{--n:9}.ht-stops-10{--n:10}.ht-stops-11{--n:11}.ht-stops-12{--n:12}
.ht-hero-copy{min-width:0}
/* fixes after the first stage look (2026-10-18) */
.ht-gallery{align-items:start}
.ht-gallery img{height:260px;aspect-ratio:auto;width:100%}
.ht-hero h1{font-size:clamp(44px,6.2vw,96px)}
.ht-hero-inner{padding-top:96px;padding-bottom:100px}
.ht-spot-photo figcaption{left:10px;right:10px;text-align:right;line-height:1.4}
