/* ==========================================================================
   Snowboard Travel Guide — elite.css
   Final-pass: typography rhythm, single-resort experience, scorecard,
   snowfall chart, storytelling, badges, author bio, swipeable mobile,
   route builder, save-to-compare, comparison slider, skeletons.
   Loaded after cinematic.css.
   ========================================================================== */

/* ============== Typography rhythm ============== */
:root {
	--stg-prose-measure: 68ch;
	--stg-prose-leading: 1.78;
}
.stg-prose { max-width: var(--stg-prose-measure); }
.stg-prose > p, .stg-prose > ul, .stg-prose > ol { font-size: 1.08rem; line-height: var(--stg-prose-leading); }
.stg-prose > h2, .stg-prose > h3 { letter-spacing: -.02em; }
.stg-prose > h2 { font-size: clamp(1.55rem, 2.4vw, 2rem); margin-top: 2.4em; margin-bottom: .6em; }
.stg-prose > h2 + p, .stg-prose > h3 + p { margin-top: 0; }
.stg-prose > p:first-of-type::first-letter { font-family: var(--stg-font-head); font-size: 3.2em; float: left; line-height: 1; padding: .08em .12em 0 0; color: var(--stg-primary); }

/* ============== SINGLE RESORT — hero ============== */
.stg-resort-hero { position: relative; min-height: clamp(560px, 80vh, 760px); color: #fff; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; padding: 0 0 56px; }
.stg-resort-hero__bg { position: absolute; inset: 0; z-index: -2; }
.stg-resort-hero__bg svg { width: 100%; height: 100%; object-fit: cover; }
.stg-resort-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,31,58,.25) 0%, rgba(11,31,58,.55) 50%, rgba(6,18,42,.92) 100%); }
.stg-resort-hero__inner { position: relative; padding-top: 96px; }
.stg-resort-hero__title { font-size: clamp(2.4rem, 5.2vw, 4.4rem); margin: 8px 0 12px; color: #fff; max-width: 16ch; }
.stg-resort-hero__tagline { font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: #cfe7f7; max-width: 50ch; margin: 0 0 28px; }
.stg-resort-hero__stats { list-style: none; padding: 0; margin: 0 0 24px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; max-width: 760px; }
@media (max-width: 720px) { .stg-resort-hero__stats { grid-template-columns: repeat(2, 1fr); } }
.stg-resort-hero__stats li { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: var(--stg-radius); backdrop-filter: blur(12px); }
.stg-resort-hero__stat-num { font-family: var(--stg-font-head); font-size: 1.4rem; font-weight: 700; color: #fff; line-height: 1.1; }
.stg-resort-hero__stat-num em { font-size: .65em; font-weight: 500; opacity: .8; font-style: normal; margin-left: 2px; }
.stg-resort-hero__stat-lab { font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: #9fb3cc; }
.stg-resort-hero__badges { margin-bottom: 22px; }
.stg-resort-hero__ctas { display: flex; flex-wrap: wrap; gap: 10px; }

/* Resort page body */
.stg-resort-page__body { padding: 80px 0; display: flex; flex-direction: column; gap: 56px; }
.stg-resort-page__topgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
@media (max-width: 980px) { .stg-resort-page__topgrid { grid-template-columns: 1fr; } }
.stg-resort-page__prose { margin: 0 auto; }

/* ============== SCORECARD ============== */
.stg-resort-scorecard { padding: 28px; }
.stg-resort-scorecard header { margin-bottom: 24px; max-width: 520px; }
.stg-resort-scorecard h2 { font-size: 1.4rem; margin: 6px 0 8px; }
.stg-resort-scorecard p { color: var(--stg-text-2); margin: 0; font-size: .92rem; }
.stg-scorecard__layout { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; }
@media (max-width: 720px) { .stg-scorecard__layout { grid-template-columns: 1fr; } }
.stg-scorecard__radar { margin: 0; aspect-ratio: 1; max-width: 320px; }
.stg-scorecard__radar svg { width: 100%; height: 100%; }
.stg-scorecard__plot { transform-origin: center; transform-box: fill-box; animation: stg-radar-pop .9s cubic-bezier(.22,.8,.18,1); }
@keyframes stg-radar-pop { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.stg-scorecard__bars { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.stg-scorecard__bars li { display: grid; grid-template-columns: 28px 1fr 100px 70px; gap: 10px; align-items: center; }
.stg-scorecard__bar-icon { color: var(--stg-primary); display: grid; place-items: center; }
.stg-scorecard__bar-label { font-size: .9rem; font-weight: 600; color: var(--stg-text); }
.stg-scorecard__bar { height: 8px; border-radius: 999px; background: rgba(11,31,58,.06); overflow: hidden; }
.stg-scorecard__bar-fill { display: block; height: 100%; width: var(--w, 0%); border-radius: 999px; transition: width 1.4s var(--stg-easing); }
.stg-scorecard__bar-fill--good { background: linear-gradient(90deg, #5cd1c9, #1f6feb); }
.stg-scorecard__bar-fill--okay { background: linear-gradient(90deg, #fbbf24, #ff6b3d); }
.stg-scorecard__bar-fill--meh  { background: linear-gradient(90deg, #fdba74, #f97316); }
.stg-scorecard__bar-fill--low  { background: linear-gradient(90deg, #fda4af, #f43f5e); }
.stg-scorecard__bar-num { font-weight: 700; color: var(--stg-text); font-size: .92rem; text-align: right; font-variant-numeric: tabular-nums; }
.stg-scorecard__bar-num small { color: var(--stg-text-mute); font-weight: 500; font-size: .72rem; margin-left: 2px; }

/* ============== SNOWFALL CHART ============== */
.stg-snowchart { padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.stg-snowchart__head { max-width: 520px; }
.stg-snowchart__head h2 { font-size: 1.4rem; margin: 6px 0 8px; }
.stg-snowchart__head p { color: var(--stg-text-2); margin: 0; font-size: .92rem; }
.stg-snowchart__svg { width: 100%; height: auto; }
.stg-snowchart__bar rect { transform-origin: center bottom; transform-box: fill-box; animation: stg-bar-rise .9s var(--stg-easing); }
.stg-snowchart__bar:nth-child(1) rect  { animation-delay: .04s; }
.stg-snowchart__bar:nth-child(2) rect  { animation-delay: .08s; }
.stg-snowchart__bar:nth-child(3) rect  { animation-delay: .12s; }
.stg-snowchart__bar:nth-child(4) rect  { animation-delay: .16s; }
.stg-snowchart__bar:nth-child(5) rect  { animation-delay: .20s; }
.stg-snowchart__bar:nth-child(6) rect  { animation-delay: .24s; }
.stg-snowchart__bar:nth-child(7) rect  { animation-delay: .28s; }
.stg-snowchart__bar:nth-child(8) rect  { animation-delay: .32s; }
.stg-snowchart__bar:nth-child(9) rect  { animation-delay: .36s; }
.stg-snowchart__bar:nth-child(10) rect { animation-delay: .40s; }
.stg-snowchart__bar:nth-child(11) rect { animation-delay: .44s; }
.stg-snowchart__bar:nth-child(12) rect { animation-delay: .48s; }
@keyframes stg-bar-rise { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .stg-snowchart__bar rect { animation: none; } .stg-scorecard__plot { animation: none; } }
.stg-snowchart__foot { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--stg-line); color: var(--stg-text-2); font-size: .92rem; }
.stg-snowchart__foot strong { color: var(--stg-text); }
.stg-snowchart__foot svg { color: var(--stg-primary); }

/* ============== TRAVEL LOGISTICS ============== */
.stg-resort-logistics { padding: 28px; }
.stg-resort-logistics header { margin-bottom: 18px; }
.stg-resort-logistics h2 { font-size: 1.4rem; margin: 6px 0 0; }
.stg-resort-logistics__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; }
.stg-resort-logistics__grid li { padding: 16px; background: linear-gradient(135deg, var(--stg-bg-soft), #fff); border: 1px solid var(--stg-line); border-radius: var(--stg-radius); display: flex; flex-direction: column; gap: 4px; }
.stg-resort-logistics__num { font-family: var(--stg-font-head); font-size: 1.2rem; font-weight: 600; color: var(--stg-text); }
.stg-resort-logistics__grid span:nth-child(2) { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--stg-text-mute); }

/* ============== STORYTELLING ============== */
.stg-resort-story { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; align-items: start; }
@media (max-width: 980px) { .stg-resort-story { grid-template-columns: 1fr; } }
.stg-resort-story__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 600px) { .stg-resort-story__grid { grid-template-columns: 1fr; } }
.stg-resort-story__quote { grid-column: 1 / -1; padding: 28px; background: linear-gradient(135deg, #0b1f3a, #06122a); color: #fff; border-radius: var(--stg-radius-lg); position: relative; overflow: hidden; }
.stg-resort-story__quote::before { content: ''; position: absolute; top: -40px; right: -40px; width: 200px; height: 200px; background: radial-gradient(circle, rgba(92,209,201,.25), transparent 70%); }
.stg-resort-story__quote::after { content: '"'; position: absolute; left: 12px; top: 4px; font-family: var(--stg-font-head); font-size: 6rem; line-height: 1; color: rgba(92,209,201,.15); }
.stg-resort-story__quote blockquote { font-family: var(--stg-font-head); font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.4; margin: 0 0 12px; position: relative; z-index: 1; }
.stg-resort-story__quote cite { color: #9fb3cc; font-style: normal; font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; }
.stg-resort-story__icon { position: absolute; top: 24px; right: 24px; color: var(--stg-secondary); }
.stg-resort-story__card { background: #fff; border: 1px solid var(--stg-line); border-radius: var(--stg-radius); padding: 22px; }
.stg-resort-story__card h3 { font-size: 1rem; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.stg-resort-story__card h3 svg { color: var(--stg-primary); }
.stg-resort-story__card p { color: var(--stg-text-2); margin: 0; font-size: .95rem; }
.stg-resort-story__card--peak { background: linear-gradient(135deg, #e7f1fb, #fff); }
.stg-resort-story__tips { background: #fff; border: 1px solid var(--stg-line); border-radius: var(--stg-radius); padding: 22px; }
.stg-resort-story__tips h3 { font-size: 1rem; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.stg-resort-story__tips h3 svg { color: var(--stg-primary); }
.stg-resort-story__tips ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.stg-resort-story__tips li { display: flex; gap: 8px; font-size: .92rem; color: var(--stg-text-2); align-items: flex-start; }
.stg-resort-story__tips svg { color: #0d6e57; flex: 0 0 auto; margin-top: 4px; }

/* ============== BADGES (mountain-tested) ============== */
.stg-badges { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.stg-badge {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 14px;
	background: rgba(255,255,255,.10);
	border: 1px solid rgba(255,255,255,.20);
	border-radius: 999px;
	color: #fff;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .02em;
	backdrop-filter: blur(10px);
	transition: transform .2s var(--stg-easing), background .2s var(--stg-easing);
}
.stg-badge:hover { background: rgba(255,255,255,.18); transform: translateY(-1px); }
.stg-badge__icon { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(135deg, var(--stg-secondary), var(--stg-primary)); color: #fff; display: grid; place-items: center; flex: 0 0 auto; }
/* On light backgrounds, badge auto-recolours via context */
.stg-page__body .stg-badges .stg-badge,
.stg-resort-related .stg-badges .stg-badge { background: var(--stg-bg-soft); color: var(--stg-text); border-color: var(--stg-line); }

/* ============== AUTHOR BIO ============== */
.stg-author-bio {
	display: grid; grid-template-columns: 96px 1fr; gap: 20px;
	padding: 24px;
	background: linear-gradient(135deg, #fff, var(--stg-bg-soft));
	border: 1px solid var(--stg-line);
	border-radius: var(--stg-radius-lg);
	margin: 40px 0;
}
@media (max-width: 600px) { .stg-author-bio { grid-template-columns: 80px 1fr; gap: 14px; padding: 20px; } }
.stg-author-bio__avatar { position: relative; }
.stg-author-bio__img { border-radius: 50%; border: 3px solid #fff; box-shadow: var(--stg-shadow-1); width: 96px; height: 96px; object-fit: cover; }
.stg-author-bio__verify { position: absolute; right: -4px; bottom: -4px; width: 28px; height: 28px; border-radius: 50%; background: #0d6e57; color: #fff; display: grid; place-items: center; border: 3px solid #fff; }
.stg-author-bio__role { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: var(--stg-primary); margin: 0 0 4px; }
.stg-author-bio__name { font-size: 1.25rem; margin: 0 0 8px; }
.stg-author-bio__name a { color: var(--stg-text); }
.stg-author-bio__name a:hover { color: var(--stg-primary); }
.stg-author-bio__intro { color: var(--stg-text-2); margin: 0 0 14px; font-size: .95rem; }
.stg-author-bio__stats { list-style: none; padding: 0; margin: 0 0 14px; display: flex; gap: 24px; flex-wrap: wrap; }
.stg-author-bio__stats li { display: flex; flex-direction: column; gap: 0; }
.stg-author-bio__stats strong { font-family: var(--stg-font-head); font-size: 1.4rem; color: var(--stg-text); line-height: 1; }
.stg-author-bio__stats span { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--stg-text-mute); }
.stg-author-bio__certs { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.stg-author-bio__certs li { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: var(--stg-powder); border-radius: 999px; font-size: .78rem; color: var(--stg-primary); font-weight: 600; }
.stg-author-bio__certs svg { color: var(--stg-primary); }

/* ============== SWIPEABLE DESTINATIONS (mobile) ============== */
@media (max-width: 720px) {
	.stg-destinations__grid {
		display: flex;
		grid-template-columns: none;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 0 var(--stg-gutter) 8px;
		margin: 0 calc(var(--stg-gutter) * -1);
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}
	.stg-destinations__grid::-webkit-scrollbar { display: none; }
	.stg-destinations__grid > .stg-resort-card { flex: 0 0 86%; scroll-snap-align: start; min-width: 0; }
	.stg-destinations__grid > .stg-resort-card--feature { flex: 0 0 86%; grid-row: auto; }
}

/* swipe hint dots (added by elite.js when carousel is active) */
.stg-swipe-dots { display: none; gap: 6px; justify-content: center; margin-top: 14px; }
@media (max-width: 720px) { .stg-swipe-dots { display: flex; } }
.stg-swipe-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(11,31,58,.18); transition: all .2s var(--stg-easing); }
.stg-swipe-dot.is-on { background: var(--stg-primary); width: 22px; border-radius: 999px; }

/* ============== ROUTE BUILDER (centerpiece map) ============== */
.stg-map-center__stage svg.routes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.stg-map-route { fill: none; stroke: #ff6b3d; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 6 8; animation: stg-dash 1.6s linear infinite; filter: drop-shadow(0 2px 6px rgba(255,107,61,.5)); }
@keyframes stg-dash { to { stroke-dashoffset: -28; } }
@media (prefers-reduced-motion: reduce) { .stg-map-route { animation: none; } }
.stg-map-center__route-stats { display: flex; gap: 16px; margin-top: 10px; flex-wrap: wrap; padding: 10px 12px; background: rgba(255,255,255,.08); border-radius: 12px; font-size: .82rem; color: #cfe7f7; }
.stg-map-center__route-stats strong { color: #fff; }

/* ============== SAVE-TO-COMPARE / VISUAL COMPARISON SLIDER ============== */
.stg-compare-slider {
	position: fixed; inset: 0; background: rgba(6,18,42,.86);
	backdrop-filter: blur(18px); z-index: 100; padding: 5vh 0;
	display: none; overflow-y: auto;
	animation: stg-fade .25s var(--stg-easing);
}
.stg-compare-slider.is-open { display: block; }
@keyframes stg-fade { from { opacity: 0; } to { opacity: 1; } }
.stg-compare-slider__shell { max-width: 1180px; margin: 0 auto; padding: 0 var(--stg-gutter); }
.stg-compare-slider__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; color: #fff; }
.stg-compare-slider__head h2 { color: #fff; margin: 0; font-size: clamp(1.4rem, 2.4vw, 2rem); }
.stg-compare-slider__close { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); color: #fff; }
.stg-compare-slider__close:hover { background: rgba(255,255,255,.18); }
.stg-compare-slider__grid { display: grid; gap: 18px; grid-template-columns: 200px repeat(var(--cols, 2), 1fr); align-items: start; }
@media (max-width: 800px) { .stg-compare-slider__grid { grid-template-columns: 140px repeat(var(--cols, 2), 1fr); } }
.stg-compare-slider__row { display: contents; }
.stg-compare-slider__label { padding: 14px 16px; color: #9fb3cc; font-size: .82rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; align-self: center; border-bottom: 1px solid rgba(255,255,255,.08); }
.stg-compare-slider__cell { padding: 16px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); border-radius: var(--stg-radius); color: #fff; }
.stg-compare-slider__cell--header { padding: 18px; background: linear-gradient(135deg, rgba(31,111,235,.25), rgba(92,209,201,.15)); }
.stg-compare-slider__cell--header h3 { color: #fff; margin: 0 0 6px; font-size: 1.2rem; }
.stg-compare-slider__cell--header p { color: #cfe7f7; margin: 0; font-size: .82rem; }
.stg-compare-slider__cell .stg-rating__bar { background: rgba(255,255,255,.1); }
.stg-compare-slider__cell a { color: #fff; }

/* ============== SKELETON LOADING STATES ============== */
.stg-skeleton {
	background: linear-gradient(90deg, var(--stg-bg-soft) 0%, rgba(255,255,255,.7) 50%, var(--stg-bg-soft) 100%);
	background-size: 200% 100%;
	animation: stg-shimmer 1.4s linear infinite;
	border-radius: 8px;
	height: 14px;
}
.stg-skeleton--lg     { height: 28px; }
.stg-skeleton--block  { height: 200px; }
.stg-skeleton--circle { border-radius: 50%; aspect-ratio: 1; height: auto; width: 64px; }
@keyframes stg-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .stg-skeleton { animation: none; } }

/* ============== FLOATING SAVE-TO-COMPARE BUTTON (mobile) ============== */
@media (max-width: 720px) {
	.stg-compare-drawer { left: 12px; right: 12px; bottom: 76px; transform: translateY(calc(100% + 32px)); padding: 12px; border-radius: var(--stg-radius); }
	.stg-compare-drawer.is-open { transform: translateY(0); }
}

/* ============== HOVER MOTION REFINEMENTS ============== */
.stg-cat:hover .stg-cat__icon { transform: scale(1.08) rotate(-4deg); }
.stg-cat__icon { transition: transform .25s var(--stg-easing); }
.stg-resort-card { will-change: transform; }
.stg-snow__card:hover { transform: translateY(-2px); transition: transform .25s var(--stg-easing); }

/* ============== RESORT CARD ON RESORT-RELATED ============== */
.stg-resort-related { padding-top: 16px; }
.stg-resort-related h2 { margin: 0 0 18px; }

/* ============== Internal-link style ============== */
.stg-prose a.stg-internal-link { color: var(--stg-primary); border-bottom: 1px dotted var(--stg-primary); text-decoration: none; }
.stg-prose a.stg-internal-link:hover { background: rgba(31,111,235,.08); border-bottom-style: solid; }

/* ============== Region tag refinements ============== */
.stg-tag--asia          { background: linear-gradient(135deg, #fde2f3, #fff5fb); color: #9b1f70; border: 1px solid #f8c8e0; }
.stg-tag--europe        { background: linear-gradient(135deg, #e0eaff, #f3f7ff); color: #1b3a8a; border: 1px solid #c4d4ff; }
.stg-tag--north-america { background: linear-gradient(135deg, #e0fff0, #f3fffa); color: #0d6e57; border: 1px solid #b9eed7; }

/* ============== Comparison drawer button label visible on desktop ============== */
.stg-compare-drawer__label { font-size: .82rem; color: var(--stg-text-2); }
@media (max-width: 720px) { .stg-compare-drawer__label { display: none; } }

/* ============================================================
   FRICTION REDUCTION — homepage flow polish
   ============================================================ */

/* Tighter section rhythm on home — short, fast, high-momentum */
.stg-home .stg-section { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
.stg-home .stg-section__head { margin-bottom: clamp(24px, 3vw, 40px); }
.stg-section__head--tight { max-width: 640px; }
.stg-section__head--tight .stg-section__title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 4px 0 8px; }
.stg-section__head--tight .stg-section__deck { font-size: 1rem; line-height: 1.5; }
.stg-home .stg-section__head--row { margin-bottom: clamp(20px, 2.5vw, 32px); align-items: center; }

/* ============== HERO — single CTA hierarchy + simpler panel ============== */
.stg-hero { min-height: clamp(620px, 86vh, 880px); }
.stg-hero__title { font-size: clamp(2.2rem, 4.6vw, 3.8rem); max-width: 18ch; }
.stg-hero__sub { font-size: 1.05rem; max-width: 48ch; }
.stg-hero__inner { gap: 40px; }

/* Secondary CTA is now a quiet text-link with arrow — never competes */
.stg-btn--link-light { background: transparent; color: #fff; box-shadow: none; padding: 12px 4px; border-radius: 0; }
.stg-btn--link-light::before { display: none; }
.stg-btn--link-light:hover { color: var(--stg-secondary); transform: none; box-shadow: none; }
.stg-btn--link-light .stg-btn__arrow,
.stg-btn--link-light > span[aria-hidden] { transition: transform .2s var(--stg-easing); }
.stg-btn--link-light:hover > span[aria-hidden] { transform: translateX(4px); }

/* Today's powder card replaces the bulky 3-step quiz preview */
.stg-hero__powder { padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.stg-hero__powder-head { display: flex; justify-content: space-between; align-items: center; }
.stg-hero__powder h2 { font-size: 1.4rem; margin: 0; line-height: 1.2; }
.stg-hero__powder-tag { color: var(--stg-text-2); font-size: .92rem; margin: 0; line-height: 1.4; }
.stg-hero__powder-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 4px 0 8px; padding: 0; }
.stg-hero__powder-stats div { background: var(--stg-bg-soft); border-radius: 12px; padding: 10px 8px; text-align: center; }
.stg-hero__powder-stats dt { font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; color: var(--stg-text-mute); margin: 0 0 4px; font-weight: 700; }
.stg-hero__powder-stats dd { margin: 0; font-family: var(--stg-font-head); font-size: 1rem; font-weight: 700; color: var(--stg-text); }
.stg-hero__powder-pulse { position: relative; width: 10px; height: 10px; border-radius: 50%; background: #5cd1c9; box-shadow: 0 0 0 0 rgba(92,209,201,.7); animation: stg-pulse 1.8s cubic-bezier(.66,0,0,1) infinite; }
@keyframes stg-pulse { 70% { box-shadow: 0 0 0 12px rgba(92,209,201,0); } 100% { box-shadow: 0 0 0 0 rgba(92,209,201,0); } }
@media (prefers-reduced-motion: reduce) { .stg-hero__powder-pulse { animation: none; } }

/* ============== HERO TICKER (separated band below hero) ============== */
.stg-hero-ticker {
	background: linear-gradient(180deg, #06122a 0%, #0b1f3a 100%);
	color: #fff;
	border-top: 1px solid rgba(255,255,255,.06);
	border-bottom: 1px solid rgba(255,255,255,.06);
	overflow: hidden;
}
.stg-hero-ticker__inner { display: flex; align-items: center; gap: 16px; padding: 12px var(--stg-gutter); }
.stg-hero-ticker__label { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: var(--stg-secondary); }
.stg-hero-ticker__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--stg-secondary); animation: stg-pulse 1.8s cubic-bezier(.66,0,0,1) infinite; }
.stg-hero-ticker__track { display: inline-flex; gap: 12px; flex: 1 1 auto; white-space: nowrap; animation: stg-marquee 32s linear infinite; font-size: .85rem; color: #cfe7f7; }
.stg-hero-ticker__track b { color: #fff; font-weight: 600; }
.stg-hero-ticker__sep { color: rgba(255,255,255,.25); }
@keyframes stg-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .stg-hero-ticker__track { animation: none; } .stg-hero-ticker__dot { animation: none; } }

/* ============== QUICK START SELECTOR ============== */
.stg-section--quick { background: linear-gradient(180deg, #fff, var(--stg-bg-soft)); padding-top: clamp(36px, 4vw, 56px) !important; padding-bottom: clamp(36px, 4vw, 56px) !important; }
.stg-quick { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.stg-quick__card {
	display: flex; align-items: center; gap: 14px;
	width: 100%; padding: 16px 18px;
	background: #fff; border: 1px solid var(--stg-line); border-radius: var(--stg-radius);
	cursor: pointer; text-align: left;
	transition: transform .2s var(--stg-easing), box-shadow .2s var(--stg-easing), border-color .2s var(--stg-easing);
	font-family: inherit;
	color: var(--stg-text);
}
.stg-quick__card:hover, .stg-quick__card:focus-visible { transform: translateY(-2px); border-color: var(--stg-primary); box-shadow: var(--stg-shadow-1); outline: none; }
.stg-quick__card.is-selected { border-color: var(--stg-primary); background: linear-gradient(135deg, var(--stg-powder), #fff); box-shadow: 0 0 0 2px var(--stg-primary) inset; }
.stg-quick__icon { width: 44px; height: 44px; border-radius: 12px; background: linear-gradient(135deg, var(--stg-primary), var(--stg-secondary)); color: #fff; display: grid; place-items: center; flex: 0 0 auto; }
.stg-quick__copy { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.stg-quick__label { font-weight: 700; font-size: .98rem; line-height: 1.2; }
.stg-quick__desc { color: var(--stg-text-2); font-size: .82rem; line-height: 1.3; }
.stg-quick__arrow { color: var(--stg-text-mute); transition: transform .2s var(--stg-easing); flex: 0 0 auto; }
.stg-quick__card:hover .stg-quick__arrow { transform: translateX(4px); color: var(--stg-primary); }

/* ============== CONTINUE PLANNING BANNER ============== */
.stg-section--continue { padding-top: clamp(20px, 2vw, 32px) !important; padding-bottom: clamp(20px, 2vw, 32px) !important; }
.stg-continue { padding: 20px 24px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; background: linear-gradient(135deg, rgba(31,111,235,.06), rgba(92,209,201,.04)); border: 1px solid var(--stg-line); }
@media (max-width: 720px) { .stg-continue { grid-template-columns: 1fr; padding: 16px; } }
.stg-continue__head h2 { font-size: 1.3rem; margin: 4px 0 4px; }
.stg-continue__head p { color: var(--stg-text-2); margin: 0; font-size: .92rem; }
.stg-continue__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.stg-continue__chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--stg-line); font-size: .85rem; color: var(--stg-text); transition: border-color .15s var(--stg-easing); }
.stg-continue__chip:hover { border-color: var(--stg-primary); color: var(--stg-primary); }
.stg-continue__chip svg { color: var(--stg-primary); }
.stg-continue__chip strong { color: var(--stg-text); }
.stg-continue__actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* ============== BEST SNOW THIS WEEK callout (snow-tracker top) ============== */
.stg-snow-best {
	display: grid; grid-template-columns: 1fr auto auto; gap: 24px;
	padding: 22px 24px; align-items: center; margin-bottom: 22px;
	position: relative;
	background: linear-gradient(135deg, rgba(92,209,201,.18), rgba(11,31,58,.55));
	border-color: rgba(92,209,201,.25);
}
@media (max-width: 980px) { .stg-snow-best { grid-template-columns: 1fr; gap: 14px; } }
.stg-snow-best__pulse { position: absolute; top: 18px; right: 18px; width: 10px; height: 10px; border-radius: 50%; background: var(--stg-secondary); box-shadow: 0 0 0 0 rgba(92,209,201,.7); animation: stg-pulse 1.8s cubic-bezier(.66,0,0,1) infinite; }
.stg-snow-best__body h3 { color: #fff; font-size: 1.4rem; margin: 6px 0 4px; }
.stg-snow-best__body h3 span { color: var(--stg-secondary); font-weight: 500; font-size: .85em; }
.stg-snow-best__body p { color: #cfe7f7; margin: 0; font-size: .9rem; }
.stg-snow-best__metrics { display: flex; gap: 18px; flex-wrap: wrap; }
.stg-snow-best__metrics div { display: flex; flex-direction: column; gap: 0; }
.stg-snow-best__metrics .num { color: #fff; font-family: var(--stg-font-head); font-size: 1.3rem; font-weight: 700; line-height: 1; }
.stg-snow-best__metrics .lab { color: #9fb3cc; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; margin-top: 4px; }

/* ============== Print rules for resort/trip pages ============== */
@media print {
	.stg-map-center__panel, .stg-resort-hero__ctas, .stg-compare-drawer, .stg-compare-rail, .stg-dock { display: none !important; }
	.stg-resort-hero { min-height: 0; padding: 12px 0; color: #000; background: #fff; }
	.stg-resort-hero::before { display: none; }
	.stg-resort-hero__title, .stg-resort-hero__tagline, .stg-resort-hero__stat-num, .stg-resort-hero__stat-lab { color: #000 !important; }
	.stg-resort-hero__bg { display: none; }
}
