:root {
	--ink: #0b1d2a;
	--ink-2: #132f3d;
	--snow: #f5f7f2;
	--ice: #dcecef;
	--paper: #ebe9df;
	--line: rgba(11,29,42,.18);
	--white: #fff;
	--signal: #ff603d;
	--lime: #c9f06f;
	--blue: #4bb8d0;
	--muted: #58707b;
	--serif: Georgia, 'Times New Roman', serif;
	--sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--snow); color: var(--ink); font-family: var(--sans); margin: 0; }
body.menu-open { overflow: hidden; }
img { display: block; height: auto; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
main { overflow: hidden; }
.eyebrow { color: var(--signal); font-size: .7rem; font-weight: 800; letter-spacing: .18em; margin: 0 0 18px; text-transform: uppercase; }
.eyebrow.light { color: var(--lime); }
.button, .hero-primary, .field-primary, .trip-report-form > button, .flag-form > button, .ski-preferences button {
	align-items: center; background: var(--signal); border: 0; color: #fff; display: inline-flex; font-size: .72rem; font-weight: 800; gap: 30px; justify-content: space-between; letter-spacing: .1em; padding: 17px 20px; text-decoration: none; text-transform: uppercase;
}
.text-link { align-items: center; display: inline-flex; font-size: .75rem; font-weight: 800; gap: 18px; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.text-link span { color: var(--signal); font-size: 1.1rem; }

/* Header */
.site-header { align-items: center; background: var(--ink); color: #fff; display: grid; grid-template-columns: 230px 1fr auto; min-height: 88px; padding: 0 3.5vw; position: relative; z-index: 1000; }
.site-header.over-hero { background: linear-gradient(180deg,rgba(3,15,24,.72),transparent); left: 0; position: absolute; right: 0; top: 0; }
.wordmark { align-items: baseline; color: #fff; display: inline-flex; gap: 6px; letter-spacing: .1em; position: relative; text-decoration: none; width: max-content; }
.wordmark span { font-size: 1rem; font-weight: 900; }
.wordmark i { color: var(--lime); font-family: var(--serif); font-size: 1.08rem; font-weight: 400; }
.wordmark img { height: 28px; margin-left: 5px; object-fit: contain; transform: rotate(8deg); width: 24px; }
.nav-links { align-items: center; display: flex; gap: clamp(18px,2.3vw,38px); justify-content: center; }
.nav-links a { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.nav-links a:hover, .nav-links a:focus-visible { color: var(--lime); }
.nav-links .network-link { border-left: 1px solid rgba(255,255,255,.28); color: var(--lime); padding-left: clamp(18px,2.3vw,38px); }
.member-button { align-items: center; border: 1px solid rgba(255,255,255,.42); display: flex; font-size: .67rem; font-weight: 800; gap: 18px; letter-spacing: .08em; padding: 12px 15px; text-decoration: none; text-transform: uppercase; }
.member-button span { color: var(--lime); }
.nav-toggle { display: none; }

/* Homepage hero */
.ski-hero { color: #fff; min-height: 920px; overflow: hidden; position: relative; }
.ski-hero-image { height: 920px; left: 0; object-fit: cover; object-position: center 62%; position: absolute; top: 0; width: 100%; }
.ski-hero-shade { background: linear-gradient(90deg,rgba(2,17,28,.9) 0%,rgba(2,17,28,.55) 43%,rgba(2,17,28,.12) 72%),linear-gradient(0deg,rgba(2,17,28,.78),transparent 45%); inset: 0; position: absolute; }
.hero-contours { background: repeating-radial-gradient(ellipse at 86% 36%,transparent 0 34px,rgba(255,255,255,.12) 35px 36px,transparent 37px 70px); inset: 0; opacity: .5; position: absolute; transform: rotate(-8deg) scale(1.25); }
.ski-hero-copy { left: 8vw; max-width: 720px; position: absolute; top: 190px; z-index: 2; }
.ski-hero-copy h1 { font-family: var(--serif); font-size: clamp(5rem,9vw,9.2rem); font-weight: 400; letter-spacing: -.075em; line-height: .78; margin: 0; }
.ski-hero-copy h1 em { color: var(--lime); font-weight: 400; }
.ski-hero-copy > p:not(.eyebrow) { font-size: 1.05rem; line-height: 1.7; margin: 42px 0 31px; max-width: 530px; }
.ski-hero-copy > div { align-items: center; display: flex; gap: 30px; }
.ski-hero-copy > div > a:not(.hero-primary) { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-underline-offset: 6px; text-transform: uppercase; }
.hero-ticket { background: var(--lime); color: var(--ink); display: flex; flex-direction: column; padding: 23px 24px; position: absolute; right: 5.5vw; top: 180px; transform: rotate(3deg); width: 172px; z-index: 3; }
.hero-ticket::before, .hero-ticket::after { background: #7ba8bd; border-radius: 50%; content: ''; height: 20px; left: -10px; position: absolute; width: 20px; }
.hero-ticket::before { top: 41%; }.hero-ticket::after { top: 64%; }
.hero-ticket small, .hero-ticket span, .hero-ticket i { font-size: .57rem; font-style: normal; font-weight: 800; letter-spacing: .1em; }
.hero-ticket b { border-bottom: 2px dashed rgba(11,29,42,.45); font-size: 1.45rem; margin: 15px 0 13px; padding-bottom: 12px; }
.hero-ticket i { border-top: 2px dashed rgba(11,29,42,.45); margin-top: 14px; padding-top: 12px; }
.resort-finder { align-items: stretch; background: #fff; bottom: 0; color: var(--ink); display: grid; grid-template-columns: 1.35fr repeat(3,1fr) auto; left: 7vw; position: absolute; right: 7vw; z-index: 4; }
.finder-title { align-items: center; background: var(--ink); color: #fff; display: flex; gap: 18px; padding: 23px 25px; }
.finder-title > span { color: var(--lime); font-family: var(--serif); font-size: 2.1rem; }
.finder-title small { color: var(--lime); display: block; font-size: .55rem; letter-spacing: .14em; margin-bottom: 5px; }
.finder-title strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 400; }
.resort-finder label { border-right: 1px solid var(--line); display: flex; flex-direction: column; gap: 7px; justify-content: center; padding: 18px 20px; }
.resort-finder label > span { color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.resort-finder select { appearance: none; background: linear-gradient(45deg,transparent 50%,var(--ink) 50%) calc(100% - 8px) calc(50% + 1px)/5px 5px no-repeat,linear-gradient(135deg,var(--ink) 50%,transparent 50%) calc(100% - 3px) calc(50% + 1px)/5px 5px no-repeat; border: 0; color: var(--ink); font-weight: 700; outline: 0; padding: 3px 16px 3px 0; width: 100%; }
.resort-finder button { background: var(--signal); border: 0; color: #fff; cursor: pointer; font-size: .66rem; font-weight: 800; letter-spacing: .09em; padding: 0 25px; text-transform: uppercase; }
.resort-finder button span { display: block; font-size: 1.2rem; margin-top: 5px; }

.finder-result { background: var(--ice); display: grid; grid-template-columns: .92fr 1.08fr; min-height: 520px; }
.finder-result[hidden] { display: none; }
.finder-result-image { min-height: 520px; overflow: hidden; position: relative; }
.finder-result-image img { height: 100%; object-fit: cover; width: 100%; }
.finder-result-image::after { background: rgba(11,29,42,.2); content: ''; inset: 0; position: absolute; }
.finder-result-image span { background: var(--lime); bottom: 0; color: var(--ink); font-size: .65rem; font-weight: 900; left: 0; letter-spacing: .12em; line-height: 1.5; padding: 22px; position: absolute; z-index: 2; }
.finder-result-copy { align-self: center; padding: 60px 8vw; position: relative; }
.finder-result-copy > button { background: none; border: 0; color: var(--ink); cursor: pointer; font-size: 2rem; position: absolute; right: 3vw; top: 30px; }
.finder-result-copy h2 { font-family: var(--serif); font-size: clamp(3rem,5vw,5.5rem); font-weight: 400; letter-spacing: -.06em; line-height: .92; margin: 0 0 22px; }
.finder-result-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1.05rem; line-height: 1.7; max-width: 570px; }
.finder-result-copy dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); margin: 28px 0; }
.finder-result-copy dl div { border-right: 1px solid var(--line); padding: 18px; }.finder-result-copy dl div:last-child { border: 0; }
.finder-result-copy dt { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .11em; margin-bottom: 6px; text-transform: uppercase; }
.finder-result-copy dd { font-size: .82rem; font-weight: 700; margin: 0; }
.finder-result-copy > a { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.finder-result-copy > small { color: var(--muted); display: block; font-size: .65rem; margin-top: 22px; }

/* Resort guide search */
.resort-search-band { align-items: center; background: var(--lime); display: grid; gap: 8vw; grid-template-columns: .65fr 1fr; padding: 58px 7vw; position: relative; z-index: 700; }.resort-search-band h2 { font-family: var(--serif); font-size: clamp(2.8rem,4.5vw,5rem); font-weight: 400; letter-spacing: -.055em; line-height: .9; margin: 0; }.resort-search-band h2 em { color: var(--signal); font-weight: 400; }.resort-search-band > div > p:last-child { font-size: .72rem; line-height: 1.55; margin: 18px 0 0; max-width: 430px; }
.resort-guide-search { position: relative; width: 100%; z-index: 900; }.resort-guide-search > label { color: var(--ink); display: block; font-size: .55rem; font-weight: 900; letter-spacing: .1em; margin-bottom: 8px; text-transform: uppercase; }.resort-search-field { background: #fff; border: 1px solid rgba(11,29,42,.22); display: grid; grid-template-columns: 1fr auto; }.resort-search-field input { appearance: none; background: #fff; border: 0; border-radius: 0; color: var(--ink); font-family: var(--sans); font-size: 1rem; min-width: 0; outline: 0; padding: 19px 20px; width: 100%; }.resort-search-field input:focus { box-shadow: inset 0 0 0 3px rgba(36,153,181,.25); }.resort-search-field button { background: var(--ink); border: 0; color: #fff; cursor: pointer; font-size: .62rem; font-weight: 900; letter-spacing: .08em; padding: 0 22px; text-transform: uppercase; }.resort-search-field button span { color: var(--lime); font-size: 1rem; margin-left: 7px; }
.resort-search-results { background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 45px rgba(3,15,24,.22); left: 0; max-height: 390px; overflow-y: auto; position: absolute; right: 0; top: calc(100% + 7px); z-index: 1100; }.resort-search-results[hidden] { display: none; }.resort-search-results a, .archive-hero .resort-search-results a { align-items: center; border-bottom: 1px solid var(--line); color: var(--ink); display: grid; font-size: inherit; gap: 13px; grid-template-columns: 14px 1fr auto; letter-spacing: 0; margin: 0; padding: 13px 16px; text-decoration: none; text-transform: none; }.resort-search-results a:hover, .resort-search-results a:focus { background: var(--ice); outline: 0; }.resort-search-results a > span { display: grid; gap: 3px; }.resort-search-results strong { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; line-height: 1.1; }.resort-search-results small { color: var(--muted); font-size: .52rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.resort-search-results b { color: var(--signal); font-size: 1rem; }.search-scale { border-radius: 50%; display: inline-block; height: 10px; width: 10px; }.search-scale.scale-flagship { background: var(--signal); box-shadow: 0 0 0 3px rgba(230,80,50,.18); }.search-scale.scale-regional { background: #2499b5; }.search-scale.scale-local { background: var(--ink-2); height: 8px; width: 8px; }.resort-search-empty { color: var(--muted); font-size: .7rem; line-height: 1.5; margin: 0; padding: 18px; }
.guide-search-inline { align-items: center; background: var(--ice); display: grid; gap: 25px; grid-template-columns: auto minmax(300px,700px); justify-content: space-between; margin-top: 52px; padding: 22px 24px; }.guide-search-inline > span { color: var(--signal); font-size: .55rem; font-weight: 900; letter-spacing: .1em; }.guide-search-inline .resort-guide-search > label { height: 0; margin: 0; overflow: hidden; position: absolute; width: 0; }.guide-search-inline .resort-search-field input { padding-bottom: 14px; padding-top: 14px; }
.search-on-dark > label { color: var(--lime); }.search-on-dark .resort-search-field { border-color: rgba(255,255,255,.35); }.resort-archive-hero { overflow: visible; }.resort-archive-hero .resort-guide-search { margin-top: 25px; }.resort-archive-hero .resort-search-field { grid-template-columns: 1fr; }.resort-archive-hero .resort-search-field button { min-height: 52px; }.resort-archive-hero .resort-search-results { line-height: normal; }

/* Atlas preview and maps */
.atlas-intro { background: var(--ice); display: grid; grid-template-columns: .42fr .58fr; padding: 120px 0 120px 7vw; }
.atlas-intro-copy { align-self: center; padding-right: 6vw; }
.atlas-intro-copy h2 { font-family: var(--serif); font-size: clamp(3.8rem,6vw,6.8rem); font-weight: 400; letter-spacing: -.065em; line-height: .86; margin: 0; }
.atlas-intro-copy h2 em { color: #2f8da5; font-weight: 400; }
.atlas-intro-copy > p { color: var(--muted); line-height: 1.75; margin: 35px 0 25px; max-width: 490px; }
.atlas-key { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 30px; }
.atlas-key span, .atlas-legend span { align-items: center; display: flex; font-size: .6rem; font-weight: 800; gap: 8px; letter-spacing: .07em; text-transform: uppercase; }
.flagship-dot, .regional-dot, .local-scale-dot { border-radius: 50%; display: inline-block; flex: 0 0 auto; }
.flagship-dot { background: var(--signal); box-shadow: 0 0 0 4px rgba(230,80,50,.18); height: 13px; width: 13px; }
.regional-dot { background: #2499b5; height: 10px; width: 10px; }.local-scale-dot { background: var(--ink-2); height: 8px; width: 8px; }
.atlas-preview { min-height: 650px; position: relative; }
.ski-map { background: #c7dce0; height: 100%; min-height: 560px; width: 100%; }
.map-coordinate { background: var(--ink); bottom: -1px; color: #fff; display: flex; flex-direction: column; padding: 18px 22px; position: absolute; right: 0; z-index: 500; }
.map-coordinate span { color: var(--lime); font-family: var(--serif); font-size: 1.5rem; }.map-coordinate b { font-size: .55rem; letter-spacing: .12em; margin-top: 4px; }
.ski-pin { align-items: center; background: var(--ink-2); border: 2px solid #fff; border-radius: 50% 50% 50% 0; box-shadow: 0 3px 10px rgba(0,0,0,.25); color: #fff; display: flex; height: 100% !important; justify-content: center; transform: rotate(-45deg); width: 100% !important; }
.ski-pin span { font-size: .5rem; font-weight: 900; transform: rotate(45deg); }.ski-pin.scale-flagship span { font-size: .72rem; }
.ski-pin.scale-flagship { background: var(--signal); border-width: 3px; box-shadow: 0 0 0 5px rgba(230,80,50,.2),0 6px 18px rgba(0,0,0,.34); }.ski-pin.scale-regional { background: #2499b5; }.ski-pin.scale-local { background: var(--ink-2); }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: var(--ink); color: #fff; }
.leaflet-popup-content-wrapper { border-radius: 0; box-shadow: 0 12px 35px rgba(0,0,0,.3); }
.leaflet-popup-content { margin: 18px 20px; min-width: 210px; }
.map-popup small { color: var(--lime); display: block; font-size: .55rem; font-weight: 800; letter-spacing: .1em; margin-bottom: 7px; text-transform: uppercase; }
.map-popup strong { display: block; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; line-height: 1.08; }
.map-popup p { color: #c9d9df; font-size: .7rem; margin: 9px 0; }
.map-popup a { color: var(--lime); font-size: .63rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

/* Guide cards */
.guide-library { padding: 130px 7vw; }
.section-heading { align-items: end; display: grid; gap: 10vw; grid-template-columns: 1fr .75fr; }
.section-heading h2 { font-family: var(--serif); font-size: clamp(3.7rem,6vw,6.6rem); font-weight: 400; letter-spacing: -.065em; line-height: .88; margin: 0; }
.section-heading h2 em { color: var(--signal); font-weight: 400; }
.section-heading > p { color: var(--muted); line-height: 1.75; margin: 0 0 8px; max-width: 560px; }
.guide-filter-row { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 24px; margin: 65px 0 38px; padding-bottom: 16px; }
.guide-filter-row button, .archive-filters button { background: none; border: 0; color: var(--muted); cursor: pointer; font-size: .62rem; font-weight: 800; letter-spacing: .08em; padding: 7px 0; text-transform: uppercase; }
.guide-filter-row button.active, .guide-filter-row button:hover, .archive-filters button.active { color: var(--signal); }
.guide-filter-row > a { font-size: .64rem; font-weight: 800; letter-spacing: .08em; margin-left: auto; text-decoration: none; text-transform: uppercase; }
.resort-card-grid { display: grid; gap: 55px 24px; grid-template-columns: repeat(3,1fr); }
.resort-card[hidden], .archive-resort-card[hidden] { display: none; }
.resort-card-image { display: block; height: 390px; overflow: hidden; position: relative; }
.resort-card-image img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }.resort-card:hover img { transform: scale(1.025); }
.resort-card-image span { background: var(--lime); bottom: 0; color: var(--ink); font-family: var(--serif); font-size: 1.6rem; left: 0; padding: 14px 16px; position: absolute; }
.resort-card-2 { margin-top: 80px; }.resort-card-3 { margin-top: 25px; }
.resort-card-copy { padding: 22px 4px; }
.resort-card-copy > small { color: var(--signal); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.resort-card-copy h3 { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -.035em; line-height: 1; margin: 12px 0; }.resort-card-copy h3 a { text-decoration: none; }
.resort-card-copy > p { color: var(--muted); font-size: .83rem; line-height: 1.55; min-height: 62px; }
.resort-card-copy dl { border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; margin: 20px 0 0; padding-top: 15px; }
.resort-card-copy dt { color: var(--muted); font-size: .52rem; font-weight: 800; letter-spacing: .09em; margin-bottom: 5px; text-transform: uppercase; }.resort-card-copy dd { font-size: .72rem; font-weight: 700; margin: 0; }

/* Field notes */
.field-notes-entry { background: var(--ink); color: #fff; display: grid; grid-template-columns: 1fr 1fr; }
.field-note-photo { min-height: 750px; overflow: hidden; position: relative; }.field-note-photo img { height: 100%; object-fit: cover; width: 100%; }
.field-note-photo span { background: var(--lime); color: var(--ink); font-size: .63rem; font-weight: 900; left: 0; letter-spacing: .12em; line-height: 1.5; padding: 22px; position: absolute; top: 0; }
.field-note-copy { align-self: center; padding: 90px 8vw; }
.field-note-copy h2 { font-family: var(--serif); font-size: clamp(4rem,6vw,7rem); font-weight: 400; letter-spacing: -.07em; line-height: .85; margin: 0; }.field-note-copy h2 em { color: var(--lime); font-weight: 400; }
.field-note-copy > p:not(.eyebrow) { color: #bfd0d6; line-height: 1.75; margin: 34px 0; max-width: 560px; }
.report-context { border-bottom: 1px solid rgba(255,255,255,.18); border-top: 1px solid rgba(255,255,255,.18); display: grid; margin-bottom: 34px; }
.report-context span { align-items: center; border-bottom: 1px solid rgba(255,255,255,.13); display: flex; font-size: .7rem; font-weight: 700; gap: 18px; padding: 14px 0; }.report-context span:last-child { border: 0; }.report-context b { color: var(--lime); font-family: var(--serif); font-size: 1.1rem; }
.field-note-copy > div:last-child { align-items: center; display: flex; gap: 28px; }.field-note-copy > div:last-child > a:not(.field-primary) { font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.international-guide { padding: 130px 7vw; }
.international-guide > div:first-child { display: grid; gap: 8vw; grid-template-columns: 1fr .85fr; }
.international-guide h2 { font-family: var(--serif); font-size: clamp(4rem,6.5vw,7.2rem); font-weight: 400; letter-spacing: -.065em; line-height: .87; margin: 0; }.international-guide h2 em { color: #2f8da5; font-weight: 400; }
.international-guide > div:first-child > p:last-child { color: var(--muted); line-height: 1.75; margin-top: 60px; max-width: 560px; }
.international-guide ol { display: grid; grid-template-columns: repeat(4,1fr); list-style: none; margin: 85px 0 48px; padding: 0; }
.international-guide li { border-left: 1px solid var(--line); min-height: 290px; padding: 24px 30px; }.international-guide li:last-child { border-right: 1px solid var(--line); }
.international-guide li > span { color: var(--signal); font-family: var(--serif); font-size: 2rem; }.international-guide li small { color: var(--muted); display: block; font-size: .55rem; font-weight: 800; letter-spacing: .11em; margin-top: 45px; }
.international-guide li h3 { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; line-height: 1.1; margin: 12px 0; }.international-guide li p { color: var(--muted); font-size: .76rem; line-height: 1.6; }
.source-principles { background: var(--paper); display: grid; grid-template-columns: repeat(3,1fr); padding: 70px 7vw; }
.source-principles > div { border-left: 1px solid rgba(11,29,42,.2); min-height: 210px; padding: 10px 35px; }.source-principles > div:last-child { border-right: 1px solid rgba(11,29,42,.2); }
.source-principles span { color: var(--signal); font-family: var(--serif); font-size: 1.8rem; }.source-principles h3 { font-family: var(--serif); font-size: 1.45rem; font-weight: 400; }.source-principles p { color: var(--muted); font-size: .78rem; line-height: 1.6; }

/* Archive pages */
.archive-hero, .atlas-hero, .know-hero, .share-report-hero, .account-hero { background-color: var(--ink); background-image: linear-gradient(90deg,rgba(6,20,30,.92),rgba(6,20,30,.64)),var(--csh-banner-image); background-position: center; background-size: cover; color: #fff; display: grid; gap: 9vw; grid-template-columns: 1fr .58fr; overflow: hidden; padding: 110px 7vw 90px; position: relative; }
.archive-hero::after, .atlas-hero::after, .know-hero::after, .share-report-hero::after, .account-hero::after, .standard-page-hero::after, .single-report > header::after, .error-page::after { background: repeating-radial-gradient(ellipse at 85% 20%,transparent 0 28px,rgba(255,255,255,.07) 29px 30px,transparent 31px 58px); content: ''; inset: 0; pointer-events: none; position: absolute; }
.archive-hero h1, .atlas-hero h1, .know-hero h1, .share-report-hero h1, .account-hero h1 { font-family: var(--serif); font-size: clamp(4rem,7vw,8rem); font-weight: 400; letter-spacing: -.075em; line-height: .84; margin: 0; position: relative; z-index: 1; }.archive-hero h1 em, .atlas-hero h1 em, .know-hero h1 em, .share-report-hero h1 em, .account-hero h1 em { color: var(--lime); font-weight: 400; }
.archive-hero > p, .archive-hero > div:last-child, .atlas-hero > div:last-child, .know-hero > p, .share-report-hero > div:last-child { align-self: end; color: #c2d3d8; line-height: 1.75; max-width: 540px; position: relative; z-index: 1; }.archive-hero > div:last-child a, .share-report-hero > div:last-child a { color: var(--lime); display: inline-block; font-size: .7rem; font-weight: 800; margin-top: 18px; text-transform: uppercase; }
.archive-toolbar { align-items: center; border-bottom: 1px solid var(--line); display: flex; margin: 0 7vw; padding: 32px 0 15px; }.archive-filters { display: flex; gap: 26px; }.archive-toolbar > a { font-size: .65rem; font-weight: 800; margin-left: auto; text-decoration: none; text-transform: uppercase; }
.resort-archive-grid { display: grid; gap: 0; grid-template-columns: repeat(2,1fr); padding: 80px 7vw 130px; }
.archive-resort-card { border-bottom: 1px solid var(--line); display: grid; gap: 30px; grid-template-columns: .85fr 1fr; padding: 32px 30px 32px 0; }.archive-resort-card:nth-child(even) { border-left: 1px solid var(--line); padding-left: 30px; padding-right: 0; }
.archive-card-image { display: block; height: 320px; overflow: hidden; position: relative; }.archive-card-image img { height: 100%; object-fit: cover; width: 100%; }.archive-card-image span { background: var(--lime); bottom: 0; color: var(--ink); font-family: var(--serif); font-size: 1.2rem; left: 0; padding: 12px; position: absolute; }
.archive-resort-card > div { align-self: center; }.archive-resort-card small { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.archive-resort-card h2 { font-family: var(--serif); font-size: 2.2rem; font-weight: 400; letter-spacing: -.04em; line-height: 1; margin: 12px 0; }.archive-resort-card h2 a { text-decoration: none; }.archive-resort-card p { color: var(--muted); font-size: .78rem; line-height: 1.55; }
.archive-resort-card dl { border-top: 1px solid var(--line); margin: 18px 0; }.archive-resort-card dl div { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 70px 1fr; padding: 9px 0; }.archive-resort-card dt { color: var(--muted); font-size: .5rem; font-weight: 800; text-transform: uppercase; }.archive-resort-card dd { font-size: .67rem; margin: 0; }.card-link { font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

/* Featured ten and complete guide directory */
.top-ten-guides { background: var(--paper); padding: 115px 7vw 125px; }.top-ten-guides > header, .all-guides-heading { align-items: end; display: grid; gap: 9vw; grid-template-columns: 1fr .7fr; }.top-ten-guides > header h2, .all-guides-heading h2 { font-family: var(--serif); font-size: clamp(3.8rem,6vw,6.8rem); font-weight: 400; letter-spacing: -.065em; line-height: .87; margin: 0; }.top-ten-guides > header h2 em, .all-guides-heading h2 em { color: var(--signal); font-weight: 400; }.top-ten-guides > header > p, .all-guides-heading > p { color: var(--muted); line-height: 1.75; margin: 0 0 8px; max-width: 570px; }
.top-ten-grid { display: grid; gap: 26px; grid-template-columns: repeat(2,1fr); list-style: none; margin: 70px 0 0; padding: 0; }.top-ten-grid > li { background: #fff; display: grid; grid-template-columns: .82fr 1.18fr; min-height: 335px; }.top-ten-image { min-height: 335px; overflow: hidden; position: relative; }.top-ten-image img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }.top-ten-grid > li:hover .top-ten-image img { transform: scale(1.025); }.top-ten-image > span { background: var(--lime); bottom: 0; color: var(--ink); font-family: var(--serif); font-size: 1.5rem; left: 0; padding: 12px 14px; position: absolute; }.top-ten-grid > li > div { align-self: center; padding: 30px; }.top-ten-grid > li > div > small { color: var(--signal); font-size: .54rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.top-ten-grid h3 { font-family: var(--serif); font-size: 2rem; font-weight: 400; letter-spacing: -.035em; line-height: 1; margin: 13px 0; }.top-ten-grid h3 a { text-decoration: none; }.top-ten-grid p { color: var(--muted); font-size: .75rem; line-height: 1.6; }.top-ten-grid li > div > div { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 18px; justify-content: space-between; margin-top: 22px; padding-top: 15px; }.top-ten-grid li > div > div span { color: var(--muted); font-size: .52rem; font-weight: 800; text-transform: uppercase; }.top-ten-grid li > div > div a { color: var(--signal); font-size: .55rem; font-weight: 900; text-transform: uppercase; }
.all-guides-heading { padding: 105px 7vw 55px; }.archive-toolbar { gap: 25px; }.archive-filters { flex-wrap: wrap; row-gap: 10px; }.resort-guide-directory { padding: 45px 7vw 125px; }.resort-guide-directory ol { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); list-style: none; margin: 0; padding: 0; }.resort-guide-directory li { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }.resort-guide-directory li[hidden] { display: none; }.resort-guide-directory a { align-items: center; display: grid; grid-template-columns: 44px 1fr auto; min-height: 92px; padding: 15px 17px; text-decoration: none; }.resort-guide-directory a:hover, .resort-guide-directory a:focus { background: var(--ice); outline: 0; }.resort-guide-directory a > span { color: var(--signal); font-family: var(--serif); font-size: 1rem; grid-row: 1/3; }.resort-guide-directory strong { align-self: end; font-family: var(--serif); font-size: 1.13rem; font-weight: 400; line-height: 1.1; padding-right: 10px; }.resort-guide-directory small { align-self: start; color: var(--muted); font-size: .48rem; grid-column: 2; letter-spacing: .04em; margin-top: 5px; text-transform: uppercase; }.resort-guide-directory b { color: var(--signal); font-size: 1rem; grid-column: 3; grid-row: 1/3; }

/* Resort guide */
.resort-guide-hero { color: #fff; height: 800px; position: relative; }.resort-guide-hero > img { height: 100%; object-fit: cover; width: 100%; }.resort-hero-shade { background: linear-gradient(0deg,rgba(3,15,24,.92),rgba(3,15,24,.08) 65%); inset: 0; position: absolute; }.resort-hero-copy { bottom: 170px; left: 7vw; max-width: 1000px; position: absolute; }.resort-hero-copy h1 { font-family: var(--serif); font-size: clamp(4.8rem,8.5vw,9.5rem); font-weight: 400; letter-spacing: -.075em; line-height: .82; margin: 0; }.resort-hero-copy > p:last-child { color: #d6e4e8; font-size: 1rem; line-height: 1.6; margin: 25px 0 0; max-width: 650px; }
.resort-facts { background: rgba(11,29,42,.92); bottom: 0; display: grid; grid-template-columns: repeat(4,1fr); left: 0; position: absolute; right: 0; }.resort-facts div { border-right: 1px solid rgba(255,255,255,.18); padding: 26px 4vw; }.resort-facts small { color: var(--lime); display: block; font-size: .52rem; font-weight: 800; letter-spacing: .12em; margin-bottom: 6px; }.resort-facts strong { font-size: .75rem; line-height: 1.4; }
.guide-jump { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 28px; padding: 19px 7vw; }.guide-jump span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.guide-jump a { color: var(--muted); font-size: .6rem; font-weight: 700; text-decoration: none; text-transform: uppercase; }
.guide-opening { display: grid; gap: 10vw; grid-template-columns: 1fr .8fr; padding: 120px 10vw; }.guide-opening h2, .guide-arrival h2, .guide-road-map h2, .guide-mountain h2, .guide-official-map h2, .guide-trail-map h2, .guide-stay h2, .guide-reports h2 { font-family: var(--serif); font-size: clamp(3.8rem,6vw,6.8rem); font-weight: 400; letter-spacing: -.065em; line-height: .87; margin: 0; }.guide-opening h2 em, .guide-arrival h2 em, .guide-road-map h2 em, .guide-mountain h2 em, .guide-official-map h2 em, .guide-trail-map h2 em, .guide-stay h2 em, .guide-reports h2 em { color: var(--signal); font-weight: 400; }.guide-opening > div:last-child { align-self: center; }.guide-opening .guide-lede { color: var(--ink); font-family: var(--serif); font-size: 1.9rem; line-height: 1.3; }.guide-opening > div:last-child > p:not(.guide-lede) { color: var(--muted); line-height: 1.7; }.guide-opening a { color: var(--signal); font-size: .65rem; font-weight: 800; text-transform: uppercase; }.resort-standout { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin: 28px 0 25px; padding: 20px 0; }.resort-standout span { color: var(--signal); display: block; font-size: .52rem; font-weight: 900; letter-spacing: .12em; margin-bottom: 8px; }.resort-standout p { color: var(--muted); font-size: .85rem; line-height: 1.55; margin: 0; }
.guide-arrival { background: var(--ink); color: #fff; display: grid; grid-template-columns: 1fr 1fr; }.guide-arrival-image { min-height: 720px; position: relative; }.guide-arrival-image img { height: 100%; object-fit: cover; width: 100%; }.guide-arrival-image span { background: var(--lime); color: var(--ink); font-size: .64rem; font-weight: 900; left: 0; letter-spacing: .1em; line-height: 1.45; padding: 22px; position: absolute; top: 0; }.guide-arrival-copy { align-self: center; padding: 80px 8vw; }.guide-arrival-copy > p:not(.eyebrow) { color: #c3d1d7; line-height: 1.7; }.guide-arrival-copy ol { list-style: none; margin: 35px 0 0; padding: 0; }.guide-arrival-copy li { border-top: 1px solid rgba(255,255,255,.16); display: grid; gap: 20px; grid-template-columns: 45px 1fr; padding: 16px 0; }.guide-arrival-copy li > span { color: var(--lime); font-family: var(--serif); font-size: 1.25rem; }.guide-arrival-copy li strong { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; }.guide-arrival-copy li p { color: #b7c8ce; font-size: .72rem; line-height: 1.5; margin: 5px 0; }
.guide-road-map { background: var(--paper); display: grid; gap: 7vw; grid-template-columns: .62fr 1fr; padding: 110px 7vw; }.road-map-copy { align-self: center; }.road-map-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; margin: 30px 0; }.road-distance { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 5px; margin: 28px 0; padding: 18px 0; }.road-distance strong { color: var(--signal); font-family: var(--serif); font-size: 2rem; font-weight: 400; }.road-distance span { color: var(--muted); font-size: .62rem; line-height: 1.5; }.road-map-panel { min-width: 0; }.road-map-canvas { border: 1px solid var(--line); height: 480px; min-height: 480px; }.transport-options { background: #fff; display: grid; grid-template-columns: repeat(3,1fr); }.transport-options article { border: 1px solid var(--line); border-top: 0; display: grid; gap: 12px; grid-template-columns: 30px 1fr; padding: 20px 16px; }.transport-options article + article { border-left: 0; }.transport-options article > span { color: var(--signal); font-family: var(--serif); font-size: 1rem; }.transport-options strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; }.transport-options p { color: var(--muted); font-size: .64rem; line-height: 1.55; margin: 7px 0 0; }.road-map-note { color: var(--muted); font-size: .58rem; line-height: 1.55; margin: 14px 0 0; }.road-map-note a { color: var(--signal); font-weight: 800; }
.road-map-copy { align-self: start; padding-top: 92px; position: sticky; top: 30px; }
.road-route-intro { border-left: 3px solid var(--signal); padding-left: 18px; }
.road-route-intro strong { color: var(--ink); display: block; font-family: var(--serif); font-size: 1.18rem; font-weight: 400; margin-bottom: 5px; }
.road-app-actions { background: var(--ink); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.road-app-actions a { align-items: center; color: #fff; display: grid; gap: 12px; grid-template-columns: 34px minmax(0,1fr) auto; min-height: 92px; padding: 16px; text-decoration: none; transition: background .2s ease; }
.road-app-actions a + a { border-left: 1px solid rgba(255,255,255,.18); }
.road-app-actions a:hover, .road-app-actions a:focus-visible { background: var(--ink-2); outline: 0; }
.road-app-actions a > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.road-app-actions strong { font-family: var(--serif); font-size: .95rem; font-weight: 400; line-height: 1.1; }
.road-app-actions small { color: #b9c9cf; font-size: .48rem; font-weight: 800; letter-spacing: .08em; margin-top: 5px; text-transform: uppercase; }
.road-app-actions b { color: var(--lime); font-size: 1rem; font-weight: 400; }
.map-app-mark { align-items: center; border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 32px; font-size: .66rem; font-weight: 900; height: 32px; justify-content: center; width: 32px; }
.google-mark { background: #245faf; }.apple-mark { background: #242724; border: 1px solid rgba(255,255,255,.34); }.waze-mark { background: #52b9cf; color: #102a31; }
.road-directions { background: #fff; border: 1px solid var(--line); border-top: 0; }
.road-directions > header { align-items: end; background: var(--ice); display: grid; gap: 28px; grid-template-columns: 1fr auto; padding: 27px 28px 24px; }
.road-directions > header .eyebrow { font-size: .52rem; margin-bottom: 8px; }
.road-directions h3 { font-family: var(--serif); font-size: clamp(1.55rem,2.4vw,2.25rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; margin: 0; }
.road-directions > header > p { color: var(--muted); font-size: .58rem; line-height: 1.5; margin: 0; max-width: 235px; text-align: right; }
.road-directions ol { list-style: none; margin: 0; max-height: 430px; overflow-y: auto; padding: 0 28px; scrollbar-color: var(--signal) var(--paper); }
.road-directions li { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 16px; grid-template-columns: 30px 1fr; padding: 18px 0; }
.road-directions li:last-child { border-bottom: 0; }
.road-directions li > span { color: var(--signal); font-family: var(--serif); font-size: .85rem; padding-top: 1px; }
.road-directions li div { display: grid; gap: 6px; }
.road-directions li strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; line-height: 1.25; }
.road-directions li small { color: var(--muted); font-size: .55rem; font-weight: 700; letter-spacing: .04em; }
.road-step-loading { min-height: 82px; }
.guide-mountain { display: grid; gap: 10vw; grid-template-columns: 1fr .75fr; padding: 120px 10vw; }.guide-mountain > div:first-child > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; margin: 35px 0; }.terrain-note { border-left: 4px solid var(--signal); padding: 5px 0 5px 22px; }.terrain-note span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.terrain-note p { font-size: .78rem; line-height: 1.55; }.mountain-data { background: var(--ice); display: grid; grid-template-columns: repeat(3,1fr); padding: 30px; }.mountain-data > div { border-right: 1px solid var(--line); padding: 15px; }.mountain-data > div:nth-child(3) { border: 0; }.mountain-data small { color: var(--muted); display: block; font-size: .48rem; font-weight: 800; letter-spacing: .09em; }.mountain-data strong { display: block; font-family: var(--serif); font-size: 2.2rem; font-weight: 400; margin: 12px 0 4px; }.mountain-data span { color: var(--muted); font-size: .6rem; }.mountain-data > p { border-top: 1px solid var(--line); color: var(--muted); font-size: .66rem; grid-column: 1/-1; line-height: 1.5; margin: 20px 0 0; padding: 18px 15px 0; }
.guide-official-map { align-items: center; background: linear-gradient(135deg,#f5f3ea,#e7efeb); display: grid; gap: 9vw; grid-template-columns: .78fr 1.05fr; overflow: hidden; padding: 110px 9vw; position: relative; }
.guide-official-map::before { background: repeating-radial-gradient(ellipse at 90% 130%,transparent 0 74px,rgba(16,42,53,.06) 75px 76px,transparent 77px 138px); content: ""; inset: 0; pointer-events: none; position: absolute; }
.official-map-copy, .official-map-ticket { position: relative; z-index: 1; }
.official-map-copy > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; margin: 32px 0; max-width: 650px; }
.official-map-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 22px; }
.official-map-actions .button { background: var(--signal); border: 1px solid var(--signal); color: #fff; font-size: .62rem; font-weight: 900; letter-spacing: .075em; padding: 18px 21px; text-decoration: none; text-transform: uppercase; }
.official-map-actions .button span { color: #fff; margin-left: 12px; }
.official-map-actions > a:not(.button) { border-bottom: 1px solid rgba(16,42,53,.45); color: var(--ink); font-size: .58rem; font-weight: 850; letter-spacing: .06em; padding-bottom: 7px; text-decoration: none; text-transform: uppercase; }
.official-map-actions a:hover, .official-map-actions a:focus-visible { border-color: var(--ink); filter: brightness(.92); outline: 0; }
.official-map-ticket { background: linear-gradient(145deg,#123746,#071b26); border: 1px solid rgba(255,255,255,.5); box-shadow: 0 35px 70px rgba(16,42,53,.23); color: #fff; display: grid; grid-template-rows: auto auto 1fr auto auto; min-height: 520px; overflow: hidden; padding: 36px; text-decoration: none; transform: rotate(1deg); transition: box-shadow .2s ease,transform .2s ease; }
.official-map-ticket::before { background: repeating-radial-gradient(ellipse at 54% 115%,transparent 0 54px,rgba(255,255,255,.075) 55px 56px,transparent 57px 102px); content: ""; inset: 0; pointer-events: none; position: absolute; }
.official-map-ticket::after { background: linear-gradient(90deg,transparent 0 32%,rgba(255,255,255,.06) 32% 32.5%,transparent 32.5% 66%,rgba(255,255,255,.06) 66% 66.5%,transparent 66.5%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.official-map-ticket > * { position: relative; z-index: 1; }
.official-map-ticket > span:first-child { color: var(--lime); font-size: .51rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.official-map-ticket > small { color: #bfd0d6; font-size: .58rem; font-weight: 800; letter-spacing: .08em; margin-top: 8px; text-transform: uppercase; }
.official-map-ticket > strong { align-self: center; font-family: var(--serif); font-size: clamp(2.7rem,4.2vw,5.4rem); font-weight: 400; letter-spacing: -.055em; line-height: .88; max-width: 680px; }
.official-map-ticket > em { color: #d6e3e6; font-size: .68rem; font-style: normal; letter-spacing: .04em; margin: 20px 0 0; }
.official-map-ticket > i { inset: 0; pointer-events: none; position: absolute; }
.official-map-ticket > i b { background: #fff; border-radius: 99px; height: 4px; left: 48%; opacity: .83; position: absolute; top: 50%; transform-origin: left center; width: 31%; }
.official-map-ticket > i b:nth-child(1) { background: #54a86d; left: 14%; top: 70%; transform: rotate(-24deg); width: 26%; }
.official-map-ticket > i b:nth-child(2) { background: #5f91c9; left: 37%; top: 68%; transform: rotate(-68deg); width: 21%; }
.official-map-ticket > i b:nth-child(3) { background: #fff; left: 56%; top: 67%; transform: rotate(-33deg); width: 29%; }
.official-map-ticket > i b:nth-child(4) { background: var(--lime); height: 3px; left: 67%; top: 77%; transform: rotate(18deg); width: 19%; }
.official-map-ticket > i b:nth-child(5) { background: transparent; border-top: 3px dotted #fff; height: 0; left: 48%; top: 72%; transform: rotate(83deg); width: 20%; }
.official-map-ticket-action { align-items: center; border-top: 1px solid rgba(255,255,255,.24); display: flex; font-size: .58rem; font-weight: 900; justify-content: space-between; letter-spacing: .1em; margin-top: 30px; padding-top: 20px; text-transform: uppercase; }
.official-map-ticket-action b { color: var(--lime); font-size: 1.2rem; }
.official-map-ticket:hover, .official-map-ticket:focus-visible { box-shadow: 0 42px 80px rgba(16,42,53,.32); outline: 3px solid var(--lime); outline-offset: 4px; transform: rotate(0) translateY(-5px); }
.guide-trail-map { background: #07151e; color: #fff; display: grid; gap: 7vw; grid-template-columns: .58fr 1.05fr; padding: 110px 7vw; }
.guide-trail-map h2 em { color: var(--lime); }
.trail-map-copy { align-self: center; }
.trail-map-copy > p:not(.eyebrow) { color: #c0d0d6; line-height: 1.7; margin: 30px 0; }
.trail-map-caution { border-left: 4px solid var(--lime); display: grid; gap: 8px; padding: 8px 0 8px 20px; }
.trail-map-caution strong { color: var(--lime); font-size: .55rem; letter-spacing: .1em; }
.trail-map-caution span { color: #b8c9cf; font-size: .7rem; line-height: 1.55; }
.trail-official-link { align-items: center; border-bottom: 1px solid rgba(255,255,255,.5); color: #fff; display: inline-flex; font-size: .62rem; font-weight: 800; gap: 20px; letter-spacing: .07em; margin-top: 30px; padding-bottom: 8px; text-decoration: none; text-transform: uppercase; }
.trail-official-link span { color: var(--lime); font-size: 1rem; }
.trail-official-link:hover, .trail-official-link:focus-visible { border-color: var(--lime); color: var(--lime); outline: 0; }
.trail-map-panel { min-width: 0; position: relative; }
.trail-map-toolbar { background: linear-gradient(135deg,#102935,#173c49); border: 1px solid rgba(255,255,255,.18); border-bottom: 0; border-radius: 4px 4px 0 0; display: flex; flex-wrap: wrap; gap: 4px; padding: 9px; }
.trail-map-toolbar button { background: transparent; border: 1px solid transparent; border-radius: 2px; color: #c2d0d5; cursor: pointer; font-size: .54rem; font-weight: 900; letter-spacing: .08em; min-height: 38px; padding: 0 14px; text-transform: uppercase; transition: background .18s ease,color .18s ease,transform .18s ease; }
.trail-map-toolbar button:hover, .trail-map-toolbar button:focus-visible { border-color: rgba(255,255,255,.35); color: #fff; outline: 0; }
.trail-map-toolbar button.active { background: linear-gradient(135deg,#d8f786,var(--lime)); box-shadow: 0 5px 16px rgba(201,240,111,.18); color: var(--ink); transform: translateY(-1px); }
.trail-map-stage { box-shadow: 0 24px 55px rgba(0,10,17,.3); position: relative; }
.trail-map-canvas { background: linear-gradient(180deg,#fbfcf8 0%,#e5efec 100%); border: 1px solid rgba(255,255,255,.24); height: 680px; isolation: isolate; min-height: 680px; }
.trail-map-canvas::before { background-image: var(--piste-map-image); background-position: center; background-size: cover; content: ""; filter: grayscale(1) saturate(.45) contrast(.88); inset: 0; opacity: .16; pointer-events: none; position: absolute; z-index: 0; }
.trail-map-canvas::after { background: repeating-radial-gradient(ellipse at 50% 116%,transparent 0 56px,rgba(23,60,73,.075) 57px 58px,transparent 59px 108px); content: ""; inset: 0; opacity: .78; pointer-events: none; position: absolute; z-index: 1; }
.trail-map-canvas .leaflet-control-zoom a { background: #fffdf7; color: var(--ink); }
.trail-map-canvas .leaflet-control-zoom a:hover, .trail-map-canvas .leaflet-control-zoom a:focus { background: var(--lime); color: var(--ink); }
.trail-map-status { backdrop-filter: blur(8px); background: rgba(11,29,42,.88); border: 1px solid rgba(255,255,255,.62); border-radius: 3px; box-shadow: 0 8px 22px rgba(11,29,42,.12); color: #fff; display: grid; gap: 4px; max-width: 255px; padding: 12px 15px; pointer-events: none; position: absolute; right: 14px; top: 14px; z-index: 650; }
.trail-map-status strong { font-family: var(--serif); font-size: .93rem; font-weight: 400; }
.trail-map-status span { color: #c0d0d6; font-size: .5rem; letter-spacing: .07em; line-height: 1.4; text-transform: uppercase; }
.trail-map-status.ready { background: rgba(255,253,247,.9); color: var(--ink); }
.trail-map-status.ready span { color: var(--muted); }
.trail-map-status.error { background: rgba(230,80,50,.96); }
.trail-map-status.error span { color: #fff; }
.piste-label-icon { background: none !important; border: 0 !important; }
.piste-run-label, .piste-lift-label { backdrop-filter: blur(3px); border-radius: 3px; box-shadow: 0 3px 10px rgba(11,29,42,.12); display: inline-block; font-size: .45rem; font-weight: 900; line-height: 1.15; padding: 3px 6px; transform: translate(-50%,-50%); white-space: nowrap; }
.piste-label-tier-medium, .piste-label-tier-detail { display: none; }
.trail-map-canvas.piste-zoom-medium .piste-label-tier-medium, .trail-map-canvas.piste-zoom-detail .piste-label-tier-detail { display: inline-block; }
.piste-run-label { background: rgba(255,253,247,.9); border: 1px solid rgba(16,42,53,.11); box-shadow: 0 2px 7px rgba(11,29,42,.1); transform: translate(-50%,-50%) rotate(var(--piste-label-angle,0deg)); }
.piste-run-label.piste-easier { color: #19753b; }.piste-run-label.piste-intermediate { color: #165f9b; }.piste-run-label.piste-advanced { background: rgba(16,24,29,.92); color: #fff; }.piste-run-label.piste-unknown { color: #5e6c72; }
.piste-lift-label { background: linear-gradient(135deg,rgba(218,248,137,.96),rgba(191,232,98,.96)); border: 1px solid rgba(104,140,31,.2); color: #102a35; }
.piste-sector-icon { background: none !important; border: 0 !important; }
.piste-sector-icon > span { background: linear-gradient(145deg,rgba(18,52,65,.97),rgba(10,35,47,.97)); border: 1px solid rgba(255,255,255,.28); border-bottom: 3px solid var(--lime); border-radius: 5px 5px 2px 2px; box-shadow: 0 8px 22px rgba(16,42,53,.18); color: #fff; display: grid; gap: 3px; min-width: 96px; padding: 8px 11px 7px; position: relative; text-align: center; transform: translate(-50%,-100%); white-space: nowrap; }
.piste-sector-icon > span::after { border-left: 1px solid rgba(16,42,53,.35); bottom: -14px; content: ""; height: 11px; left: 50%; position: absolute; }
.piste-sector-icon small { color: var(--lime); font-size: .34rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.piste-sector-icon strong { font-family: var(--serif); font-size: .76rem; font-weight: 400; line-height: 1; }
.leaflet-tooltip.piste-hover-label { background: #fffdf7; border: 1px solid rgba(11,29,42,.2); border-radius: 2px; box-shadow: 0 6px 18px rgba(11,29,42,.15); color: var(--ink); font-size: .62rem; font-weight: 800; padding: 7px 9px; }
.leaflet-tooltip.piste-lift-hover { background: var(--lime); }
.trail-map-canvas .leaflet-popup-content-wrapper, .trail-map-canvas .leaflet-popup-tip { background: #fffdf7; color: var(--ink); }
.trail-map-canvas .leaflet-popup-content { margin: 16px 18px; }
.piste-map-popup { display: grid; gap: 7px; }
.piste-map-popup small { color: var(--signal); font-size: .49rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.piste-map-popup strong { font-family: var(--serif); font-size: 1.18rem; font-weight: 400; line-height: 1.05; }
.piste-map-popup p { color: var(--muted); font-size: .61rem; line-height: 1.5; margin: 0; }
.trail-map-key { align-items: center; background: linear-gradient(180deg,#fffdf8,#f5f5ed); border-radius: 0 0 4px 4px; color: var(--ink); display: grid; gap: 12px 18px; grid-template-columns: repeat(5,auto); padding: 16px 18px; }
.trail-map-key span { align-items: center; display: flex; font-size: .49rem; font-weight: 900; gap: 8px; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.trail-map-key i { display: inline-block; flex: 0 0 auto; }
.piste-symbol { height: 10px; width: 10px; }
.piste-green { background: #24964f; border-radius: 50%; }.piste-blue { background: #2478bd; }.piste-black { background: #20272c; transform: rotate(45deg); }.piste-double { background: #090d10; box-shadow: 6px -6px 0 #090d10; margin-right: 6px; transform: rotate(45deg); }
.piste-lift-line { border-top: 3px dotted #142c38; height: 3px; width: 24px; }
.trail-map-key small { color: var(--muted); font-size: .49rem; grid-column: 1/-1; line-height: 1.4; }
.trail-map-source { color: #8fa4ac; font-size: .48rem; line-height: 1.5; margin: 11px 0 0; }
.trail-map-source a { color: #c7d7dc; }
.guide-stay { background: #234553; color: #fff; display: grid; gap: 10vw; grid-template-columns: 1fr .65fr; padding: 110px 10vw; }.guide-stay h2 em { color: var(--lime); }.guide-stay > div > p:not(.eyebrow) { color: #cfdee2; line-height: 1.7; margin: 30px 0; }.guide-stay dl { border-top: 1px solid rgba(255,255,255,.18); }.guide-stay dl div { border-bottom: 1px solid rgba(255,255,255,.18); display: grid; gap: 30px; grid-template-columns: 150px 1fr; padding: 14px 0; }.guide-stay dt { color: var(--lime); font-size: .52rem; font-weight: 800; letter-spacing: .1em; }.guide-stay dd { font-size: .74rem; line-height: 1.5; margin: 0; }.guide-stay aside { align-self: center; background: var(--lime); color: var(--ink); padding: 48px; transform: rotate(1.2deg); }.guide-stay aside span { font-size: .55rem; font-weight: 900; letter-spacing: .12em; }.guide-stay aside p { font-family: var(--serif); font-size: 1.45rem; line-height: 1.4; }
.official-check { align-items: center; background: var(--paper); display: grid; gap: 8vw; grid-template-columns: 1fr auto; padding: 65px 10vw; }.official-check span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.official-check h2 { font-family: var(--serif); font-size: 2rem; font-weight: 400; margin: 9px 0; }.official-check p { color: var(--muted); font-size: .78rem; line-height: 1.6; max-width: 760px; }.official-check > a { background: var(--ink); color: #fff; font-size: .66rem; font-weight: 800; letter-spacing: .08em; padding: 18px 20px; text-decoration: none; text-transform: uppercase; }.official-check > a span { color: var(--lime); }
.guide-reports { display: grid; gap: 8vw; grid-template-columns: .75fr 1.1fr; padding: 110px 10vw; }.guide-reports > div:first-child > p:not(.eyebrow) { color: var(--muted); line-height: 1.7; }.guide-reports > div:first-child > a { color: var(--signal); font-size: .66rem; font-weight: 800; text-transform: uppercase; }.guide-reports ol { list-style: none; margin: 0; padding: 0; }.guide-reports li { border-top: 1px solid var(--line); padding: 22px 0; }.guide-reports li small { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.guide-reports li h3 { font-family: var(--serif); font-size: 1.5rem; font-weight: 400; margin: 8px 0; }.guide-reports li h3 a { text-decoration: none; }.guide-reports li p { color: var(--muted); font-size: .76rem; line-height: 1.6; }.reports-empty { align-self: center; background: var(--ice); padding: 45px; }.reports-empty span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.reports-empty h3 { font-family: var(--serif); font-size: 2rem; font-weight: 400; margin: 13px 0; }.reports-empty p { color: var(--muted); line-height: 1.6; }.guide-next { border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin: 0 7vw; padding: 28px 0 50px; }.guide-next a { font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }

/* Atlas full page */
.atlas-hero > div:last-child small { color: var(--lime); display: block; font-size: .55rem; font-weight: 800; letter-spacing: .09em; margin-top: 20px; text-transform: uppercase; }
.atlas-app { display: grid; grid-template-columns: 360px 1fr; height: 790px; }
.atlas-sidebar { background: #fff; border-right: 1px solid var(--line); display: flex; flex-direction: column; overflow: hidden; padding: 26px; }.atlas-sidebar-heading { align-items: end; display: grid; grid-template-columns: 1fr auto; }.atlas-sidebar-heading > span { color: var(--signal); font-size: .52rem; font-weight: 800; grid-column: 1/-1; letter-spacing: .1em; }.atlas-sidebar-heading h2 { font-family: var(--serif); font-size: 2.3rem; font-weight: 400; margin: 8px 0; }.atlas-sidebar-heading b { color: var(--muted); font-size: .58rem; margin-bottom: 14px; }.atlas-sidebar label { display: block; margin: 12px 0; }.atlas-sidebar label > span, .atlas-sidebar legend { color: var(--muted); display: block; font-size: .52rem; font-weight: 800; letter-spacing: .09em; margin-bottom: 6px; text-transform: uppercase; }.atlas-sidebar input, .atlas-sidebar select { background: var(--snow); border: 1px solid var(--line); border-radius: 0; padding: 12px; width: 100%; }.atlas-sidebar fieldset { border: 0; display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0; padding: 0; }.atlas-sidebar fieldset button { background: var(--paper); border: 0; color: var(--ink); cursor: pointer; font-size: .55rem; font-weight: 800; padding: 8px 9px; text-transform: uppercase; }.atlas-sidebar fieldset button.active { background: var(--ink); color: var(--lime); }.atlas-list { border-top: 1px solid var(--line); flex: 1; margin-top: 12px; overflow: auto; padding-top: 8px; }.atlas-list button { align-items: center; background: none; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); cursor: pointer; display: grid; grid-template-columns: 1fr auto; padding: 12px 4px; text-align: left; width: 100%; }.atlas-list button strong { font-family: var(--serif); font-size: .98rem; font-weight: 400; }.atlas-list button small { color: var(--muted); display: block; font-size: .52rem; margin-top: 3px; }.atlas-list button span { background: var(--paper); font-size: .48rem; font-weight: 800; padding: 5px; }.atlas-list button span.guide { background: var(--signal); color: #fff; }.atlas-map-wrap { position: relative; }.full-map { min-height: 790px; }.atlas-legend { background: rgba(255,255,255,.94); bottom: 22px; display: flex; gap: 18px; left: 50%; padding: 13px 18px; position: absolute; transform: translateX(-50%); z-index: 600; }.atlas-method { background: var(--paper); display: grid; gap: 6vw; grid-template-columns: 1fr 1fr auto; padding: 70px 7vw; }.atlas-method > div { border-left: 1px solid var(--line); padding-left: 25px; }.atlas-method span { color: var(--signal); font-size: .52rem; font-weight: 800; letter-spacing: .1em; }.atlas-method h2 { font-family: var(--serif); font-size: 1.7rem; font-weight: 400; margin: 10px 0; }.atlas-method p { color: var(--muted); font-size: .74rem; line-height: 1.6; }.atlas-method > a { align-self: end; font-size: .62rem; font-weight: 800; text-transform: uppercase; }

.atlas-list button span.scale-flagship { background: var(--signal); color: #fff; }.atlas-list button span.scale-regional { background: #2499b5; color: #fff; }.atlas-list button span.scale-local { background: var(--ink-2); color: #fff; }
.atlas-sidebar .atlas-search { align-items: end; display: grid; gap: 6px; grid-template-columns: 1fr auto; margin: 12px 0; }.atlas-sidebar .atlas-search label { margin: 0; }.atlas-sidebar .atlas-search label > span { color: var(--muted); display: block; font-size: .52rem; font-weight: 800; letter-spacing: .09em; margin-bottom: 6px; text-transform: uppercase; }.atlas-sidebar .atlas-search button { background: var(--ink); border: 0; color: var(--lime); cursor: pointer; font-size: .55rem; font-weight: 900; min-height: 42px; padding: 0 13px; text-transform: uppercase; }

/* Reports */
.report-principles { background: var(--lime); display: flex; gap: 5vw; justify-content: center; padding: 18px; }.report-principles span { font-size: .55rem; font-weight: 900; letter-spacing: .09em; }.report-archive-grid { display: grid; gap: 32px; grid-template-columns: repeat(3,1fr); padding: 100px 7vw; }.report-card { border-bottom: 1px solid var(--line); }.report-card-image { display: block; height: 300px; }.report-card-image img { height: 100%; object-fit: cover; width: 100%; }.report-card > div { padding: 20px 0 28px; }.report-card small { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.report-card h2 { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; line-height: 1.05; }.report-card h2 a { text-decoration: none; }.report-card p { color: var(--muted); font-size: .78rem; line-height: 1.6; }.report-card dl { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; }.report-card dl div { padding: 10px; }.report-card dt { color: var(--muted); font-size: .5rem; font-weight: 800; text-transform: uppercase; }.report-card dd { font-size: .68rem; margin: 4px 0 0; }.report-card > div > a { font-size: .62rem; font-weight: 800; text-transform: uppercase; }.report-empty { grid-column: 1/-1; margin: 30px auto; max-width: 650px; text-align: center; }.report-empty span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.report-empty h2 { font-family: var(--serif); font-size: 3.2rem; font-weight: 400; }.report-empty p { color: var(--muted); line-height: 1.7; }
.single-report > header { background-color: var(--ink); background-image: linear-gradient(90deg,rgba(6,20,30,.94),rgba(6,20,30,.62)),var(--csh-banner-image); background-position: center; background-size: cover; color: #fff; overflow: hidden; padding: 100px 12vw 70px; position: relative; }.single-report > header > * { position: relative; z-index: 1; }.single-report > header h1 { font-family: var(--serif); font-size: clamp(4rem,7vw,7.8rem); font-weight: 400; letter-spacing: -.065em; line-height: .9; margin: 0; max-width: 1100px; }.single-report > header > p:not(.eyebrow) { color: #c5d6dc; font-family: var(--serif); font-size: 1.45rem; line-height: 1.4; max-width: 850px; }.single-report > header dl { border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: repeat(4,1fr); margin: 45px 0 0; }.single-report > header dl div { border-right: 1px solid rgba(255,255,255,.2); padding: 18px; }.single-report > header dt { color: var(--lime); font-size: .52rem; font-weight: 800; letter-spacing: .1em; }.single-report > header dd { font-size: .74rem; font-weight: 700; margin: 6px 0 0; }.single-report-hero { height: 650px; }.single-report-hero img { height: 100%; object-fit: cover; width: 100%; }.report-body { display: grid; gap: 8vw; grid-template-columns: .48fr 1fr; padding: 100px 12vw; }.report-body aside { align-self: start; background: var(--lime); padding: 35px; }.report-body aside > span { font-size: .55rem; font-weight: 900; letter-spacing: .1em; }.report-body aside dl div { border-top: 1px solid rgba(11,29,42,.24); padding: 12px 0; }.report-body aside dt { font-size: .5rem; font-weight: 800; text-transform: uppercase; }.report-body aside dd { font-size: .74rem; line-height: 1.5; margin: 5px 0; }.report-body aside small { display: block; font-size: .6rem; line-height: 1.5; }.report-prose { font-family: var(--serif); font-size: 1.2rem; line-height: 1.8; }.report-prose > a { font-family: var(--sans); font-size: .6rem; font-weight: 800; text-transform: uppercase; }.report-gallery { display: grid; gap: 14px; grid-template-columns: repeat(2,1fr); margin: 35px 0; }.report-gallery img { height: 320px; object-fit: cover; width: 100%; }.report-review-note { border-top: 1px solid var(--line); color: var(--muted); font-family: var(--sans); font-size: .7rem; padding-top: 20px; }

/* Account, forms, standard pages */
.account-pass { align-self: center; background: var(--lime); color: var(--ink); display: flex; flex-direction: column; justify-self: center; padding: 25px; transform: rotate(2deg); width: 250px; }.account-pass::before { border-bottom: 2px dashed rgba(11,29,42,.35); content: ''; margin-bottom: 15px; }.account-pass span, .account-pass small { font-size: .57rem; font-weight: 800; letter-spacing: .1em; }.account-pass strong { font-family: var(--serif); font-size: 1.8rem; margin: 15px 0; }.account-page-body { padding: 90px 7vw; }.common-account-entry { margin: 30px auto; max-width: 760px; text-align: center; }.common-account-entry > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.common-account-entry h2 { font-family: var(--serif); font-size: 4rem; font-weight: 400; margin: 18px 0; }.common-account-entry p { color: var(--muted); line-height: 1.7; }.common-account-entry small { color: var(--muted); display: block; margin-top: 18px; }
.ski-account { display: grid; gap: 35px; }.account-identity { align-items: center; background: var(--ink); color: #fff; display: grid; gap: 10px; grid-template-columns: 1fr 1fr auto; padding: 35px; }.account-identity > span { color: var(--lime); font-size: .55rem; font-weight: 800; grid-column: 1/-1; letter-spacing: .1em; }.account-identity h2 { font-family: var(--serif); font-size: 2.5rem; font-weight: 400; margin: 0; }.account-identity p { color: #c3d3d9; }.account-identity b { color: var(--lime); font-size: .65rem; }.account-identity div { display: flex; gap: 18px; grid-column: 1/-1; }.account-identity a { font-size: .6rem; font-weight: 800; text-transform: uppercase; }.ski-preferences { background: var(--ice); display: grid; gap: 7vw; grid-template-columns: .75fr 1fr; padding: 50px; }.ski-preferences > div > span, .account-reports > div > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.ski-preferences h2, .account-reports h2 { font-family: var(--serif); font-size: 3rem; font-weight: 400; line-height: 1; }.ski-preferences p { color: var(--muted); line-height: 1.6; }.ski-preferences form { display: grid; gap: 15px; }.ski-preferences label { font-size: .65rem; font-weight: 800; text-transform: uppercase; }.ski-preferences input:not([type=checkbox]), .ski-preferences select { background: #fff; border: 1px solid var(--line); border-radius: 0; display: block; margin-top: 6px; padding: 13px; width: 100%; }.account-reports { border: 1px solid var(--line); padding: 45px; }.account-reports > div:first-child { align-items: end; display: grid; grid-template-columns: 1fr auto; }.account-reports > div:first-child span { grid-column: 1/-1; }.account-reports > div:first-child a { font-size: .62rem; font-weight: 800; margin-bottom: 30px; text-transform: uppercase; }.account-reports ol { list-style: none; margin: 0; padding: 0; }.account-reports li { border-top: 1px solid var(--line); display: grid; grid-template-columns: 160px 1fr auto; padding: 16px 0; }.account-reports li small { color: var(--signal); font-size: .55rem; font-weight: 800; }.account-reports li span { color: var(--muted); font-size: .65rem; }.account-empty { text-align: center; }
.share-report-layout { display: grid; gap: 8vw; grid-template-columns: .42fr 1fr; padding: 90px 8vw 120px; }.share-report-layout > aside { align-self: start; background: var(--ice); padding: 35px; position: sticky; top: 30px; }.share-report-layout > aside > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.share-report-layout ol { list-style: none; margin: 25px 0 0; padding: 0; }.share-report-layout li { border-top: 1px solid var(--line); display: grid; gap: 15px; grid-template-columns: 35px 1fr; padding: 14px 0; }.share-report-layout li b { color: var(--signal); font-family: var(--serif); }.share-report-layout li p { color: var(--muted); font-size: .7rem; line-height: 1.5; margin: 0; }.share-report-layout li strong { color: var(--ink); display: block; font-family: var(--serif); font-size: 1rem; font-weight: 400; }.trip-report-form, .flag-form { display: grid; gap: 20px; }.form-intro > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.form-intro h3 { font-family: var(--serif); font-size: 2.8rem; font-weight: 400; margin: 12px 0; }.form-intro p { color: var(--muted); line-height: 1.6; }.trip-report-form > label:not(.check-label), .flag-form label { color: var(--ink); font-size: .64rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }.trip-report-form input:not([type=checkbox]), .trip-report-form select, .trip-report-form textarea, .flag-form input, .flag-form select, .flag-form textarea { background: #fff; border: 1px solid var(--line); border-radius: 0; display: block; margin-top: 7px; padding: 14px; width: 100%; }.trip-report-form textarea, .flag-form textarea { line-height: 1.5; resize: vertical; }.form-row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }.check-label { align-items: start; display: flex; font-size: .7rem !important; font-weight: 400 !important; gap: 10px; line-height: 1.5; text-transform: none !important; }.check-label input { margin-top: 3px; }.form-hint, .form-security-note { color: var(--muted); font-size: .64rem; margin: -12px 0 0; }.form-security-note { background: #fff3c4; padding: 12px; }.submission-message, .account-message { background: var(--ice); border-left: 4px solid var(--signal); padding: 16px; }.submission-message.success { border-color: #2b9b62; }.submission-gate { background: var(--ice); padding: 55px; text-align: center; }.submission-gate > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.submission-gate h3 { font-family: var(--serif); font-size: 3rem; font-weight: 400; margin: 15px 0; }.submission-gate p { color: var(--muted); line-height: 1.6; }

.know-guide-grid { display: grid; grid-template-columns: repeat(3,1fr); padding: 90px 7vw; }.know-guide-grid article { border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); min-height: 390px; padding: 35px; }.know-guide-grid article:nth-child(3n) { border-right: 1px solid var(--line); }.know-guide-grid article > span { color: var(--signal); font-family: var(--serif); font-size: 2rem; }.know-guide-grid article small { color: var(--muted); display: block; font-size: .55rem; font-weight: 800; letter-spacing: .1em; margin-top: 45px; }.know-guide-grid h2 { font-family: var(--serif); font-size: 1.7rem; font-weight: 400; line-height: 1.15; }.know-guide-grid p { color: var(--muted); font-size: .78rem; line-height: 1.7; }
.esim-guide { background: #07151e; color: #fff; display: grid; gap: 8vw; grid-template-columns: .72fr 1.12fr; overflow: hidden; padding: 110px 7vw; position: relative; }
.esim-guide::before { background: repeating-radial-gradient(ellipse at 85% -10%,transparent 0 53px,rgba(255,255,255,.055) 54px 55px,transparent 56px 101px); content: ""; inset: 0; pointer-events: none; position: absolute; }
.esim-guide > * { position: relative; z-index: 1; }
.esim-intro h2 { font-family: var(--serif); font-size: clamp(3.8rem,5.8vw,6.6rem); font-weight: 400; letter-spacing: -.065em; line-height: .87; margin: 0; }
.esim-intro h2 em, .esim-comparison-heading h3 em { color: var(--lime); font-weight: 400; }
.esim-intro > p:not(.eyebrow) { color: #bfd0d6; line-height: 1.75; margin: 30px 0; }
.esim-default { border-left: 4px solid var(--lime); display: grid; gap: 9px; margin-top: 34px; padding: 7px 0 7px 20px; }
.esim-default span { color: var(--lime); font-size: .52rem; font-weight: 900; letter-spacing: .12em; }
.esim-default strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 400; }
.esim-default small { color: #9fb3ba; font-size: .61rem; line-height: 1.55; }
.esim-steps { border-top: 1px solid rgba(255,255,255,.18); }
.esim-steps article { border-bottom: 1px solid rgba(255,255,255,.18); display: grid; gap: 18px; grid-template-columns: 38px 1fr; padding: 22px 0; }
.esim-steps article > span { color: var(--lime); font-size: .57rem; font-weight: 900; padding-top: 5px; }
.esim-steps small { color: #8ea5ad; display: block; font-size: .47rem; font-weight: 850; letter-spacing: .11em; }
.esim-steps h3 { font-family: var(--serif); font-size: 1.24rem; font-weight: 400; margin: 6px 0 8px; }
.esim-steps p { color: #bfd0d6; font-size: .68rem; line-height: 1.65; margin: 0; }
.esim-comparison-heading { align-items: end; border-top: 1px solid rgba(255,255,255,.2); display: grid; gap: 7vw; grid-column: 1/-1; grid-template-columns: 1fr .62fr; margin-top: 20px; padding-top: 65px; }
.esim-comparison-heading h3 { font-family: var(--serif); font-size: clamp(3rem,4.7vw,5.6rem); font-weight: 400; letter-spacing: -.06em; line-height: .9; margin: 0; }
.esim-affiliate-note { border-left: 3px solid var(--signal); padding-left: 20px; }
.esim-affiliate-note strong { color: #fff; font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.esim-affiliate-note p { color: #a9bec5; font-size: .64rem; line-height: 1.6; }
.esim-affiliate-note a { color: var(--lime); font-size: .52rem; font-weight: 850; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.ski-esim-grid { display: grid; gap: 1px; grid-column: 1/-1; grid-template-columns: repeat(5,minmax(0,1fr)); }
.ski-esim-card { background: #102b37; border-top: 3px solid transparent; display: flex; flex-direction: column; min-height: 350px; padding: 26px 22px; }
.ski-esim-card:nth-child(-n+2) { border-color: var(--lime); }
.ski-esim-card > span { color: var(--lime); font-family: var(--serif); font-size: 1.35rem; }
.ski-esim-card > small { color: #8fa6ae; font-size: .48rem; font-weight: 850; letter-spacing: .07em; margin-top: 32px; text-transform: uppercase; }
.ski-esim-card h3 { font-family: var(--serif); font-size: 1.65rem; font-weight: 400; margin: 10px 0 15px; }
.ski-esim-card p { color: #b7c8ce; font-size: .63rem; line-height: 1.65; margin: 0 0 25px; }
.ski-esim-card a { align-items: center; background: var(--signal); color: #fff; display: flex; font-size: .51rem; font-weight: 900; justify-content: space-between; letter-spacing: .06em; margin-top: auto; padding: 14px; text-decoration: none; text-transform: uppercase; }
.ski-esim-card a b { color: #fff; font-size: .85rem; }
.ski-esim-card a:hover, .ski-esim-card a:focus-visible { background: var(--lime); color: var(--ink); outline: 0; }.ski-esim-card a:hover b, .ski-esim-card a:focus-visible b { color: var(--ink); }
.esim-more { align-items: center; background: rgba(255,255,255,.055); display: flex; gap: 35px; grid-column: 1/-1; justify-content: space-between; padding: 22px 25px; }
.esim-more p { color: #91a8b0; font-size: .55rem; line-height: 1.6; margin: 0; max-width: 750px; }
.esim-more a { color: var(--lime); flex: 0 0 auto; font-size: .55rem; font-weight: 900; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }.esim-more a span { margin-left: 12px; }
.esim-sources { display: grid; gap: 1px; grid-column: 1/-1; grid-template-columns: repeat(3,1fr); }
.esim-sources a { background: #fffdf7; color: var(--ink); display: grid; gap: 7px; padding: 18px 20px; text-decoration: none; }
.esim-sources strong { font-family: var(--serif); font-size: .88rem; font-weight: 400; }.esim-sources span { color: var(--signal); font-size: .48rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.esim-sources a:hover, .esim-sources a:focus-visible { background: var(--lime); outline: 0; }
.canadian-language-preview { background: #234553; color: #fff; display: grid; gap: 8vw; grid-template-columns: .75fr 1fr; padding: 100px 9vw; }.canadian-language-preview h2 { font-family: var(--serif); font-size: clamp(3.5rem,5.5vw,6rem); font-weight: 400; letter-spacing: -.06em; line-height: .9; margin: 0; }.canadian-language-preview h2 em { color: var(--lime); font-weight: 400; }.canadian-language-preview > div:first-child > p:not(.eyebrow) { color: #cfdee2; line-height: 1.7; margin: 28px 0; }.canadian-language-preview > div:first-child > a { color: var(--lime); font-size: .64rem; font-weight: 800; text-transform: uppercase; }.language-preview-terms { display: grid; grid-template-columns: 1fr 1fr; }.language-preview-terms article { border: 1px solid rgba(255,255,255,.18); min-height: 175px; padding: 24px; }.language-preview-terms article:nth-child(even) { border-left: 0; }.language-preview-terms article:nth-child(n+3) { border-top: 0; }.language-preview-terms span { color: var(--lime); display: block; font-size: .52rem; font-weight: 800; letter-spacing: .1em; }.language-preview-terms strong { display: block; font-family: var(--serif); font-size: 1.4rem; font-weight: 400; margin: 22px 0 8px; }.language-preview-terms small { color: #b9cbd1; font-size: .65rem; line-height: 1.5; }
.language-hero { background-color: var(--ink); background-image: linear-gradient(90deg,rgba(6,20,30,.94),rgba(6,20,30,.58)),var(--csh-banner-image); background-position: center; background-size: cover; color: #fff; display: grid; gap: 9vw; grid-template-columns: 1fr .55fr; overflow: hidden; padding: 110px 7vw 90px; position: relative; }.language-hero h1 { font-family: var(--serif); font-size: clamp(5rem,8vw,9rem); font-weight: 400; letter-spacing: -.075em; line-height: .82; margin: 0; }.language-hero h1 em { color: var(--lime); font-weight: 400; }.language-hero > div:last-child { align-self: end; color: #cad9de; line-height: 1.7; }.language-hero small { color: var(--lime); display: block; font-size: .55rem; font-weight: 800; letter-spacing: .09em; margin-top: 18px; text-transform: uppercase; }
.language-opening { display: grid; gap: 8vw; grid-template-columns: .75fr 1fr; padding: 110px 10vw; }.language-opening > div:first-child span, .boundary-heading .eyebrow, .rating-language .eyebrow, .culture-language > div > span { color: var(--signal); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.language-opening h2, .boundary-language h2, .rating-language h2, .culture-language h2, .language-sources h2 { font-family: var(--serif); font-size: clamp(3.5rem,5.5vw,6rem); font-weight: 400; letter-spacing: -.06em; line-height: .9; margin: 18px 0; }.language-opening h2 em, .boundary-language h2 em, .rating-language h2 em, .culture-language h2 em, .language-sources h2 em { color: var(--signal); font-weight: 400; }.language-opening > div:last-child > p { color: var(--muted); font-family: var(--serif); font-size: 1.35rem; line-height: 1.6; }.language-opening dl { border-top: 1px solid var(--line); }.language-opening dl div { border-bottom: 1px solid var(--line); display: grid; gap: 25px; grid-template-columns: 110px 1fr; padding: 15px 0; }.language-opening dt { color: var(--signal); font-size: .57rem; font-weight: 800; text-transform: uppercase; }.language-opening dd { color: var(--muted); font-size: .75rem; line-height: 1.55; margin: 0; }
.boundary-language { background: var(--ink); color: #fff; padding: 100px 8vw; }.boundary-heading { display: grid; gap: 6vw; grid-template-columns: .8fr 1fr; }.boundary-heading .eyebrow { grid-column: 1/-1; }.boundary-heading h2 { margin: 0; }.boundary-heading h2 em { color: var(--lime); }.boundary-heading > p:last-child { align-self: end; color: #c2d2d8; line-height: 1.75; }.boundary-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 70px; }.boundary-grid article { border: 1px solid rgba(255,255,255,.18); min-height: 340px; padding: 32px; }.boundary-grid article + article { border-left: 0; }.boundary-grid span { color: var(--lime); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.boundary-grid h3 { font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }.boundary-grid p { color: #b9cbd1; font-size: .76rem; line-height: 1.7; }.boundary-language aside { background: var(--lime); color: var(--ink); display: grid; gap: 4vw; grid-template-columns: auto 1fr; margin-top: 35px; padding: 25px 32px; }.boundary-language aside strong { font-size: .65rem; letter-spacing: .1em; }.boundary-language aside p { font-size: .75rem; line-height: 1.6; margin: 0; }
.rating-language { display: grid; gap: 7vw; grid-template-columns: .58fr 1fr; padding: 110px 8vw; }.rating-language > div:first-child > p:last-child { color: var(--muted); line-height: 1.7; }.rating-table { border-top: 1px solid var(--line); }.rating-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 15px; grid-template-columns: 38px 145px 145px 1fr; padding: 20px 0; }.rating-symbol { display: block; height: 24px; margin: auto; width: 24px; }.green-circle { background: #2d9b53; border-radius: 50%; }.blue-square { background: #2780c2; }.black-diamond, .double-black { background: #152a35; transform: rotate(45deg); }.double-black { box-shadow: 9px -9px 0 #152a35; height: 17px; margin-left: 7px; width: 17px; }.rating-row strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }.rating-row small { color: var(--signal); font-size: .54rem; font-weight: 800; text-transform: uppercase; }.rating-row p { color: var(--muted); font-size: .72rem; line-height: 1.55; margin: 0; }.rating-rule { border-left: 4px solid var(--signal); color: var(--muted); font-size: .72rem; grid-column: 2; line-height: 1.6; padding-left: 18px; }
.culture-language { display: grid; grid-template-columns: 1fr 1fr; }.culture-language > div { padding: 90px 8vw; }.apres-card { background: var(--lime); }.speed-card { background: #234553; color: #fff; }.speed-card > span { color: var(--lime) !important; }.culture-language h2 { font-size: clamp(3.3rem,4.8vw,5.5rem); }.speed-card h2 em { color: var(--lime); }.culture-language > div > p, .culture-language li { font-size: .77rem; line-height: 1.7; }.apres-card ul { border-top: 1px solid rgba(11,29,42,.25); padding: 15px 0 0 20px; }.speed-card > p, .speed-card li { color: #c2d3d9; }.speed-card ol { list-style: none; margin: 30px 0 0; padding: 0; }.speed-card li { border-top: 1px solid rgba(255,255,255,.18); display: grid; gap: 15px; grid-template-columns: 35px 1fr; padding: 13px 0; }.speed-card li b { color: var(--lime); font-family: var(--serif); font-size: 1.2rem; }.speed-card li p { margin: 0; }.speed-card li strong { color: #fff; }
.language-sources { background: var(--ink); color: #fff; display: grid; gap: 8vw; grid-template-columns: .65fr 1fr; padding: 90px 8vw; }.language-sources h2 { font-size: clamp(3.2rem,5vw,5.2rem); }.language-sources h2 em { color: var(--lime); }.language-sources > div:last-child { border-top: 1px solid rgba(255,255,255,.2); }.language-sources a { align-items: center; border-bottom: 1px solid rgba(255,255,255,.2); color: #fff; display: grid; gap: 20px; grid-template-columns: 1fr auto; padding: 18px 0; text-decoration: none; }.language-sources a strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }.language-sources a span { color: var(--lime); font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.live-source-callout { background: var(--ink); color: #fff; display: grid; gap: 8vw; grid-template-columns: 1fr 1fr; padding: 90px 10vw; }.live-source-callout h2 { font-family: var(--serif); font-size: 4rem; font-weight: 400; margin: 0; }.live-source-callout p, .live-source-callout li { color: #bfd0d6; line-height: 1.7; }.live-source-callout ul { align-self: center; list-style: none; margin: 0; padding: 0; }.live-source-callout li { border-top: 1px solid rgba(255,255,255,.17); padding: 13px 0; }.standard-page-hero { background-color: var(--ink); background-image: linear-gradient(90deg,rgba(6,20,30,.94),rgba(6,20,30,.64)),var(--csh-banner-image); background-position: center; background-size: cover; color: #fff; overflow: hidden; padding: 100px 12vw 80px; position: relative; }.standard-page-hero > *, .error-page > *, .account-pass { position: relative; z-index: 1; }.standard-page-hero h1 { font-family: var(--serif); font-size: clamp(4rem,7vw,7rem); font-weight: 400; letter-spacing: -.06em; margin: 0; }.standard-page-content { padding: 80px 12vw 120px; }.standard-page-content > article { font-family: var(--serif); font-size: 1.15rem; line-height: 1.8; max-width: 940px; }.standard-page-content h2 { border-top: 1px solid var(--line); font-size: 2rem; font-weight: 400; margin-top: 50px; padding-top: 30px; }.standard-page-content h3 { font-weight: 400; }.standard-page-content li { margin: 9px 0; }.error-page { background-color: var(--ink); background-image: linear-gradient(90deg,rgba(6,20,30,.94),rgba(6,20,30,.62)),var(--csh-banner-image); background-position: center; background-size: cover; color: #fff; min-height: 680px; overflow: hidden; padding: 120px 12vw; position: relative; }.error-page > span { color: var(--lime); font-size: .6rem; font-weight: 800; letter-spacing: .1em; }.error-page h1 { font-family: var(--serif); font-size: clamp(5rem,9vw,9rem); font-weight: 400; letter-spacing: -.07em; line-height: .8; margin: 40px 0; }.error-page h1 em { color: var(--lime); font-weight: 400; }.error-page p { color: #bfd0d6; }.error-page > div { align-items: center; display: flex; gap: 25px; margin-top: 35px; }

/* Footer */
.site-footer { background: #07151e; color: #fff; padding: 90px 7vw 25px; }.footer-lead { align-items: end; border-bottom: 1px solid rgba(255,255,255,.17); display: grid; gap: 7vw; grid-template-columns: .75fr 1fr; padding-bottom: 70px; }.footer-kicker { color: var(--lime); font-size: .55rem; font-weight: 800; letter-spacing: .1em; }.footer-lead h2 { font-family: var(--serif); font-size: clamp(3rem,5vw,5.5rem); font-weight: 400; letter-spacing: -.06em; line-height: .9; margin: 18px 0 0; }.footer-lead h2 em { color: var(--lime); font-weight: 400; }.sister-sites { display: grid; grid-template-columns: 1fr 1fr; }.sister-sites a { border: 1px solid rgba(255,255,255,.18); display: flex; flex-direction: column; padding: 25px; text-decoration: none; }.sister-sites a + a { border-left: 0; }.sister-sites a.active { background: var(--lime); color: var(--ink); }.sister-sites small { font-size: .5rem; font-weight: 800; letter-spacing: .1em; }.sister-sites strong { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; margin: 20px 0 7px; }.sister-sites span { font-size: .64rem; }.footer-grid { display: grid; gap: 5vw; grid-template-columns: 1.4fr repeat(3,1fr); padding: 65px 0; }.footer-wordmark { align-self: start; }.footer-grid nav { display: flex; flex-direction: column; gap: 10px; }.footer-grid nav strong { color: var(--lime); font-size: .55rem; letter-spacing: .1em; margin-bottom: 10px; text-transform: uppercase; }.footer-grid nav a { color: #b7c6cc; font-size: .68rem; text-decoration: none; }.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); color: #7f959f; display: flex; font-size: .56rem; justify-content: space-between; letter-spacing: .03em; padding-top: 18px; }.footer-bottom a { color: #a8bbc2; }

@media (max-width: 1100px) {
	.site-header { grid-template-columns: 210px 1fr auto; }.nav-links { gap: 15px; }.nav-links a { font-size: .6rem; }.nav-links .network-link { padding-left: 15px; }
	.resort-finder { grid-template-columns: 1fr 1fr 1fr; }.finder-title { grid-column: 1/-1; }.resort-finder button { min-height: 74px; }.resort-finder label:nth-of-type(3) { border-right: 0; }
	.ski-hero { min-height: 1020px; }.ski-hero-image { height: 1020px; }
	.resort-card-grid { grid-template-columns: repeat(2,1fr); }.resort-card-3 { margin-top: 0; }
	.resort-archive-grid { grid-template-columns: 1fr; }.archive-resort-card:nth-child(even) { border-left: 0; padding-left: 0; padding-right: 30px; }
	.atlas-app { grid-template-columns: 320px 1fr; }
}
@media (max-width: 820px) {
	.site-header, .site-header.over-hero { background: var(--ink); grid-template-columns: 1fr auto auto; min-height: 72px; position: relative; }.member-button { padding: 9px; }.member-button span { display: none; }
	.nav-toggle { background: none; border: 0; color: #fff; cursor: pointer; display: block; height: 42px; order: 2; position: relative; width: 46px; }.nav-toggle span { background: #fff; display: block; height: 1px; margin: 5px auto; transition: .2s; width: 22px; }.nav-toggle b { display: none; }.nav-toggle[aria-expanded=true] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.nav-toggle[aria-expanded=true] span:nth-child(2) { opacity: 0; }.nav-toggle[aria-expanded=true] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
	.nav-links { align-items: stretch; background: var(--ink); display: none; flex-direction: column; inset: 72px 0 auto; min-height: calc(100vh - 72px); padding: 35px 7vw; position: absolute; }.nav-links.open { display: flex; }.nav-links a { border-bottom: 1px solid rgba(255,255,255,.15); font-family: var(--serif); font-size: 1.8rem; font-weight: 400; padding: 13px 0; text-transform: none; }.nav-links .network-link { border-left: 0; padding-left: 0; }
	.ski-hero, .ski-hero-image { min-height: 980px; height: 980px; }.ski-hero-copy { left: 7vw; right: 7vw; top: 100px; }.ski-hero-copy h1 { font-size: clamp(4rem,16vw,7rem); }.hero-ticket { display: none; }.resort-finder { grid-template-columns: 1fr; left: 5vw; right: 5vw; }.finder-title { grid-column: auto; }.resort-finder label { min-height: 65px; }.resort-finder button { min-height: 62px; }.ski-hero-copy > div { align-items: flex-start; flex-direction: column; gap: 18px; }
	.finder-result, .atlas-intro, .field-notes-entry, .section-heading, .international-guide > div:first-child, .archive-hero, .atlas-hero, .know-hero, .share-report-hero, .account-hero, .guide-opening, .guide-arrival, .guide-mountain, .guide-official-map, .guide-trail-map, .guide-stay, .guide-reports, .report-body, .ski-preferences, .share-report-layout, .canadian-language-preview, .language-hero, .language-opening, .rating-language, .language-sources, .live-source-callout, .footer-lead { grid-template-columns: 1fr; }
	.finder-result-image { min-height: 360px; }.atlas-intro { padding-left: 7vw; }.atlas-preview { min-height: 530px; }.section-heading { gap: 35px; }.resort-card-grid { grid-template-columns: 1fr; }.resort-card-2 { margin-top: 0; }.field-note-photo { min-height: 500px; }.international-guide > div:first-child > p:last-child { margin-top: 0; }.international-guide ol { grid-template-columns: 1fr 1fr; }.source-principles { grid-template-columns: 1fr; }.source-principles > div, .source-principles > div:last-child { border-bottom: 1px solid var(--line); border-left: 0; border-right: 0; min-height: 0; padding: 30px 0; }
	.archive-hero, .atlas-hero, .know-hero, .share-report-hero, .account-hero { gap: 40px; padding-top: 80px; }.archive-toolbar { align-items: flex-start; flex-direction: column; gap: 15px; }.archive-toolbar > a { margin-left: 0; }.archive-filters { flex-wrap: wrap; }.archive-resort-card { grid-template-columns: .7fr 1fr; }.resort-guide-hero { height: 720px; }.resort-hero-copy { bottom: 230px; }.resort-facts { grid-template-columns: 1fr; }.resort-facts div { padding: 12px 7vw; }.guide-jump { overflow-x: auto; white-space: nowrap; }.guide-arrival-image { min-height: 500px; }.mountain-data { min-height: 300px; }.guide-official-map { gap: 55px; }.official-map-ticket { min-height: 450px; }.guide-trail-map { gap: 50px; }.trail-map-canvas { height: 520px; }.official-check { grid-template-columns: 1fr; }.guide-reports { gap: 50px; }
	.atlas-app { display: flex; flex-direction: column; height: auto; }.atlas-sidebar { max-height: 560px; }.atlas-map-wrap { height: 620px; }.atlas-legend { align-items: flex-start; flex-direction: column; left: 15px; transform: none; }.atlas-method { grid-template-columns: 1fr; }.report-archive-grid { grid-template-columns: 1fr 1fr; }.single-report > header dl { grid-template-columns: 1fr 1fr; }.report-body aside { position: static; }
	.know-guide-grid { grid-template-columns: repeat(2,1fr); }.know-guide-grid article:nth-child(3n) { border-right: 0; }.boundary-heading, .boundary-grid, .culture-language { grid-template-columns: 1fr; }.boundary-grid article + article { border-left: 1px solid rgba(255,255,255,.18); border-top: 0; }.rating-rule { grid-column: auto; }.share-report-layout > aside { position: static; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-wordmark { grid-column: 1/-1; }.footer-bottom { flex-direction: column; }
}
@media (max-width: 560px) {
	.wordmark span { font-size: .84rem; }.wordmark i { font-size: .9rem; }.member-button { font-size: .55rem; }.ski-hero, .ski-hero-image { height: 1040px; }.ski-hero-copy h1 { font-size: 4.4rem; }.ski-hero-copy > p:not(.eyebrow) { font-size: .9rem; }.resort-finder { bottom: 20px; }
	.finder-result-copy { padding: 55px 7vw; }.finder-result-copy dl { grid-template-columns: 1fr; }.finder-result-copy dl div { border-bottom: 1px solid var(--line); border-right: 0; }.finder-result-copy dl div:last-child { border-bottom: 0; }
	.atlas-intro, .guide-library, .international-guide { padding-bottom: 80px; padding-top: 80px; }.atlas-intro-copy h2, .section-heading h2, .field-note-copy h2, .international-guide h2, .guide-opening h2, .guide-arrival h2, .guide-mountain h2, .guide-official-map h2, .guide-trail-map h2, .guide-stay h2, .guide-reports h2, .language-opening h2, .boundary-language h2, .rating-language h2, .culture-language h2, .language-sources h2 { font-size: 3.5rem; }.resort-card-image { height: 340px; }.field-note-copy { padding: 70px 7vw; }.field-note-copy > div:last-child { align-items: flex-start; flex-direction: column; }
	.international-guide ol { grid-template-columns: 1fr; }.international-guide li { border-right: 1px solid var(--line); min-height: 0; }.archive-hero h1, .atlas-hero h1, .know-hero h1, .share-report-hero h1, .account-hero h1, .language-hero h1 { font-size: 4rem; }.archive-resort-card, .archive-resort-card:nth-child(even) { gap: 18px; grid-template-columns: 1fr; padding-right: 0; }.archive-card-image { height: 300px; }.resort-hero-copy { bottom: 265px; }.resort-hero-copy h1 { font-size: 4.4rem; }.resort-facts strong { font-size: .65rem; }.guide-opening, .guide-mountain, .guide-official-map, .guide-trail-map, .guide-stay, .guide-reports { padding-left: 7vw; padding-right: 7vw; }.official-map-ticket { min-height: 390px; padding: 25px; }.official-map-ticket > strong { font-size: 3.1rem; }.official-map-actions { align-items: flex-start; flex-direction: column; }.mountain-data { grid-template-columns: 1fr; }.mountain-data > div { border-bottom: 1px solid var(--line); border-right: 0; }.trail-map-canvas { height: 450px; }.trail-map-key { align-items: flex-start; flex-direction: column; gap: 8px; }.trail-map-key small { margin-left: 0; }.guide-stay aside { padding: 30px; }.official-check { padding-left: 7vw; padding-right: 7vw; }
	.report-archive-grid { grid-template-columns: 1fr; }.report-principles { align-items: center; flex-direction: column; }.single-report > header { padding-left: 7vw; padding-right: 7vw; }.single-report > header h1 { font-size: 3.8rem; }.single-report > header dl { grid-template-columns: 1fr; }.single-report > header dl div { border-bottom: 1px solid rgba(255,255,255,.2); border-right: 0; }.report-body { padding-left: 7vw; padding-right: 7vw; }.report-gallery { grid-template-columns: 1fr; }.account-identity { grid-template-columns: 1fr; }.account-identity > span, .account-identity div { grid-column: auto; }.ski-preferences, .account-reports { padding: 30px 20px; }.account-reports > div:first-child, .account-reports li { grid-template-columns: 1fr; }.form-row { grid-template-columns: 1fr; }.submission-gate { padding: 35px 20px; }.know-guide-grid, .language-preview-terms { grid-template-columns: 1fr; }.know-guide-grid article, .know-guide-grid article:nth-child(3n) { border-right: 1px solid var(--line); }.language-preview-terms article:nth-child(even), .language-preview-terms article:nth-child(n+3) { border-left: 1px solid rgba(255,255,255,.18); border-top: 0; }.boundary-language aside { grid-template-columns: 1fr; }.rating-row { grid-template-columns: 35px 1fr; }.rating-row small, .rating-row p { grid-column: 2; }.language-sources a { align-items: start; grid-template-columns: 1fr; }.live-source-callout h2 { font-size: 3rem; }.standard-page-content { padding-left: 7vw; padding-right: 7vw; }.sister-sites, .footer-grid { grid-template-columns: 1fr; }.sister-sites a + a { border-left: 1px solid rgba(255,255,255,.18); border-top: 0; }.footer-wordmark { grid-column: auto; }
}

@media (max-width: 820px) {
	.guide-road-map { gap: 50px; grid-template-columns: 1fr; }
	.road-map-canvas { height: 520px; min-height: 520px; }
	.road-map-copy { align-self: start; padding-top: 0; position: static; }
	.resort-guide-hero { height: 760px; }
	.resort-hero-copy { bottom: 270px; }
	.resort-facts { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
	.guide-road-map { padding-left: 7vw; padding-right: 7vw; }
	.guide-road-map h2 { font-size: 3.5rem; }
	.road-app-actions { grid-template-columns: 1fr; }
	.road-app-actions a { min-height: 76px; }
	.road-app-actions a + a { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); }
	.road-directions > header { align-items: start; grid-template-columns: 1fr; padding: 24px 20px; }
	.road-directions > header > p { max-width: none; text-align: left; }
	.road-directions ol { max-height: 370px; padding-left: 20px; padding-right: 20px; }
	.transport-options { grid-template-columns: 1fr; }
	.transport-options article + article { border-left: 1px solid var(--line); }
	.road-map-canvas { height: 450px; min-height: 450px; }
}
@media (max-width: 820px) {
	.resort-search-band { gap: 35px; grid-template-columns: 1fr; }
	.guide-search-inline { align-items: stretch; grid-template-columns: 1fr; }
	.resort-archive-hero { padding-bottom: 55px; }
}
@media (max-width: 560px) {
	.resort-search-band { padding: 45px 7vw; }
	.resort-search-band h2 { font-size: 3.3rem; }
	.resort-search-field { grid-template-columns: 1fr; }
	.resort-search-field button { min-height: 50px; }
	.resort-search-results { max-height: 330px; }
	.guide-search-inline { margin-top: 35px; padding: 18px; }
	.resort-search-results strong { font-size: 1rem; }
}
@media (max-width: 1100px) {
	.top-ten-grid { grid-template-columns: 1fr; }
	.resort-guide-directory ol { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 820px) {
	.top-ten-guides > header, .all-guides-heading { align-items: start; grid-template-columns: 1fr; }
	.top-ten-guides { padding-bottom: 90px; padding-top: 90px; }
	.all-guides-heading { gap: 30px; padding-top: 85px; }
}
@media (max-width: 560px) {
	.top-ten-guides > header h2, .all-guides-heading h2 { font-size: 3.5rem; }
	.top-ten-grid { margin-top: 45px; }
	.top-ten-grid > li { grid-template-columns: 1fr; }
	.top-ten-image { min-height: 260px; }
	.resort-guide-directory ol { grid-template-columns: 1fr; }
	.resort-guide-directory { padding-left: 7vw; padding-right: 7vw; }
}
@media (max-width: 820px) {
	.trail-map-canvas { height: 600px; min-height: 600px; }
	.trail-map-key { grid-template-columns: repeat(3,auto); }
	.trail-map-key small { grid-column: 1/-1; }
}
@media (max-width: 560px) {
	.trail-map-toolbar button { flex: 1 0 50%; padding-left: 8px; padding-right: 8px; }
	.trail-map-canvas { height: 520px; min-height: 520px; }
	.trail-map-status { left: 54px; max-width: none; right: 10px; top: 10px; }
	.trail-map-key { grid-template-columns: 1fr 1fr; padding: 15px; }
	.trail-map-key span { white-space: normal; }
	.piste-run-label, .piste-lift-label { font-size: .42rem; }
}
@media (max-width: 1100px) {
	.ski-esim-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 820px) {
	.esim-guide { gap: 60px; grid-template-columns: 1fr; padding: 90px 7vw; }
	.esim-comparison-heading, .ski-esim-grid, .esim-more, .esim-sources { grid-column: auto; }
	.esim-comparison-heading { align-items: start; gap: 35px; grid-template-columns: 1fr; }
	.ski-esim-grid { grid-template-columns: 1fr 1fr; }
	.esim-more { align-items: flex-start; flex-direction: column; }
	.esim-sources { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.esim-intro h2, .esim-comparison-heading h3 { font-size: 3.45rem; }
	.esim-steps article { grid-template-columns: 30px 1fr; }
	.ski-esim-grid { grid-template-columns: 1fr; }
	.ski-esim-card { min-height: 300px; }
	.esim-more a { line-height: 1.5; }
}

/* Mountain weather */
.guide-weather { background: var(--ice); overflow: hidden; padding: 110px 7vw 80px; position: relative; }
.guide-weather::before { background: repeating-radial-gradient(ellipse at 88% 18%,transparent 0 68px,rgba(11,29,42,.065) 69px 70px,transparent 71px 128px); content: ''; inset: -25% -5% 30% 35%; pointer-events: none; position: absolute; transform: rotate(-7deg); }
.weather-heading { align-items: end; display: grid; gap: 8vw; grid-template-columns: .82fr 1fr; margin-bottom: 58px; position: relative; z-index: 1; }
.weather-heading h2 { font-family: var(--serif); font-size: clamp(3.8rem,6vw,6.8rem); font-weight: 400; letter-spacing: -.065em; line-height: .87; margin: 0; }
.weather-heading h2 em { color: var(--signal); font-weight: 400; }
.weather-heading > div:last-child > p:first-child { color: var(--muted); font-size: 1rem; line-height: 1.75; margin: 0; max-width: 640px; }
.weather-updated { border-left: 3px solid var(--signal); color: var(--ink); font-size: .6rem; font-weight: 800; letter-spacing: .055em; margin: 22px 0 0; padding: 4px 0 4px 14px; text-transform: uppercase; }
.weather-updated.is-stale { color: #9e442f; }
.weather-board { box-shadow: 0 28px 70px rgba(11,29,42,.13); display: grid; grid-template-columns: minmax(245px,.7fr) minmax(0,2fr); position: relative; z-index: 1; }
.weather-now { background: var(--ink); color: #fff; display: flex; flex-direction: column; justify-content: center; min-height: 340px; padding: 34px; }
.weather-now-kicker { color: var(--lime); font-size: .53rem; font-weight: 900; letter-spacing: .14em; }
.weather-now-reading { align-items: center; display: flex; gap: 20px; margin: 35px 0 20px; }
.weather-now-reading > span { color: var(--lime); font-family: var(--serif); font-size: 4.6rem; font-weight: 400; line-height: .8; }
.weather-now-reading strong { font-family: var(--serif); font-size: clamp(3.1rem,4.5vw,5.2rem); font-weight: 400; letter-spacing: -.06em; line-height: .8; }
.weather-now h3 { font-family: var(--serif); font-size: 1.65rem; font-weight: 400; margin: 0; }
.weather-now > p { color: #b9cbd2; font-size: .62rem; line-height: 1.55; margin: 10px 0 0; }
.weather-days { background: #fff; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.weather-days article { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; min-height: 170px; padding: 22px; }
.weather-days article:nth-child(n+4) { border-bottom: 0; }
.weather-days article:nth-child(3n) { border-right: 0; }
.weather-days article > small { color: var(--signal); font-size: .49rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.weather-days article > span { color: var(--ink-2); font-family: var(--serif); font-size: 2rem; line-height: 1; margin: 13px 0 8px; }
.weather-days h3 { font-family: var(--serif); font-size: 1rem; font-weight: 400; line-height: 1.1; margin: 0; }
.weather-day-temperatures { font-family: var(--serif); font-size: 1.35rem; margin: 12px 0 3px; }
.weather-day-detail { color: var(--muted); font-size: .51rem; line-height: 1.45; margin: 0; }
.weather-day-placeholder { background: linear-gradient(110deg,#fff 12%,#edf2ef 27%,#fff 42%); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 170px; }
.weather-unavailable { align-self: center; color: var(--muted); font-family: var(--serif); font-size: 1.4rem; grid-column: 1/-1; line-height: 1.45; margin: 0; padding: 55px; }
.weather-source { align-items: start; display: grid; gap: 5vw; grid-template-columns: 1fr auto; padding-top: 25px; position: relative; z-index: 1; }
.weather-source > p { color: var(--muted); font-size: .58rem; line-height: 1.6; margin: 0; max-width: 720px; }
.weather-source > p strong { color: var(--ink); }
.weather-source > div { display: flex; flex-wrap: wrap; gap: 22px; justify-content: flex-end; }
.weather-source a { color: var(--ink); font-size: .52rem; font-weight: 900; letter-spacing: .05em; text-decoration-color: var(--signal); text-underline-offset: 5px; text-transform: uppercase; }

@media (max-width: 1100px) {
	.weather-board { grid-template-columns: 1fr; }
	.weather-now { min-height: 280px; }
}
@media (max-width: 820px) {
	.weather-heading { align-items: start; gap: 34px; grid-template-columns: 1fr; }
	.weather-source { grid-template-columns: 1fr; }
	.weather-source > div { justify-content: flex-start; }
}
@media (max-width: 560px) {
	.guide-weather { padding: 85px 7vw 65px; }
	.weather-heading h2 { font-size: 3.5rem; }
	.weather-now { min-height: 260px; padding: 28px; }
	.weather-now-reading > span { font-size: 3.7rem; }
	.weather-days { grid-template-columns: 1fr 1fr; }
	.weather-days article { min-height: 180px; padding: 18px; }
	.weather-days article:nth-child(n+4) { border-bottom: 1px solid var(--line); }
	.weather-days article:nth-child(3n) { border-right: 1px solid var(--line); }
	.weather-days article:nth-child(2n) { border-right: 0; }
	.weather-days article:nth-child(n+5) { border-bottom: 0; }
	.weather-source > div { align-items: flex-start; flex-direction: column; }
}
