:root {
  --snow: #f4ebdd;
  --snow-soft: #faf6ee;
  --paper: #fffdf8;
  --ink: #25282a;
  --muted: #68737a;
  --navy: #18324a;
  --navy-deep: #102638;
  --orange: #d9683a;
  --mustard: #d8a62e;
  --teal: #3e7774;
  --brick: #a94438;
  --bluegray: #8798a3;
  --line: #d8d0c4;
  --line-dark: rgba(24, 50, 74, 0.2);
  --shadow-sm: 0 8px 20px rgba(31, 40, 47, 0.08);
  --shadow-md: 0 18px 45px rgba(31, 40, 47, 0.13);
  --radius: 8px;
  --max: 1180px;
  --display: "Arial Narrow", "Aptos Narrow", "Roboto Condensed", sans-serif;
  --body: Aptos, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
  margin: 0;
  background: var(--snow);
  color: var(--ink);
  font-family: var(--body);
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; }
.container { width: min(var(--max), calc(100% - 42px)); margin: 0 auto; }
.skip { position: fixed; left: -9999px; top: 10px; z-index: 999; }
.skip:focus { left: 16px; background: var(--paper); border: 2px solid var(--navy); padding: 10px 14px; }

h1, h2, h3, h4 {
  margin-top: 0;
  color: var(--navy);
  font-family: var(--display);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.015em;
}
h1 { font-size: clamp(3.2rem, 7vw, 6rem); margin-bottom: 22px; }
h2 { font-size: clamp(2.25rem, 4.5vw, 3.65rem); margin-bottom: 18px; }
h3 { font-size: 1.8rem; line-height: 1.04; }
p { margin-top: 0; }

/* Header and brand */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(244, 235, 221, 0.96);
  border-bottom: 1px solid rgba(24, 50, 74, 0.18);
  backdrop-filter: blur(12px);
}
.site-header::after {
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(90deg, var(--orange) 0 25%, var(--mustard) 25% 50%, var(--teal) 50% 75%, var(--brick) 75% 100%);
}
.nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; color: var(--navy); }
.brand-copy { display: grid; gap: 3px; line-height: 1; }
.brand-copy strong { font-family: var(--display); font-size: 1.28rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.055em; }
.brand-copy small { color: var(--muted); font-family: var(--display); font-size: .56rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.brand-mark {
  position: relative;
  width: 39px;
  height: 32px;
  flex: 0 0 39px;
  overflow: hidden;
  background: var(--navy);
  clip-path: polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%, 9% 50%);
}
.brand-mark::before,
.brand-mark::after {
  content: "";
  position: absolute;
  bottom: 6px;
  width: 19px;
  height: 16px;
  background: var(--snow);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
.brand-mark::before { left: 4px; }
.brand-mark::after { right: 2px; height: 12px; opacity: .72; }
.nav-links { display: flex; align-items: center; gap: 26px; }
.nav-links a { position: relative; text-decoration: none; font-size: 0.92rem; font-weight: 700; color: var(--navy); }
.nav-links a:not(.nav-tool)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--orange); transition: right 160ms ease; }
.nav-links a:not(.nav-tool):hover::after { right: 0; }
.nav-tool { border: 1px solid var(--navy); padding: 9px 14px; background: transparent; }
.nav-tool:hover { background: var(--navy); color: var(--snow); }
.menu { display: none; border: 1px solid var(--navy); background: transparent; color: var(--navy); padding: 8px 12px; font-weight: 700; }

/* Shared editorial details */
.eyebrow,
.card-tag,
.podium-label,
.quick-fact small,
.ranking-board-head,
.category-score span,
.winner-summary span {
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
}
.eyebrow { margin: 0 0 13px; color: var(--brick); font-size: 0.78rem; }
.lede { max-width: 760px; color: #52616a; font-size: clamp(1.08rem, 1.9vw, 1.28rem); line-height: 1.48; }
.section { padding: 88px 0; }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 0.65fr); gap: 46px; align-items: end; margin-bottom: 38px; }
.section-head h2 { margin-bottom: 0; }
.section-head > p:last-child { margin: 0; color: var(--muted); font-size: 1.04rem; }
.surface-soft { background: #e9e3d8; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.surface-dark { background: var(--navy); color: var(--snow); }
.surface-dark h2, .surface-dark h3 { color: var(--snow); }
.surface-dark .eyebrow { color: var(--mustard); }
.surface-dark p { color: #d7dedf; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 45px;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: 3px;
  font-family: var(--display);
  font-size: 0.93rem;
  font-weight: 700;
  letter-spacing: 0.045em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 140ms ease, background 140ms ease, box-shadow 140ms ease;
}
.button:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.button-primary { background: var(--navy); color: var(--snow); }
.button-primary:hover { background: #21425d; }
.button-orange { background: var(--orange); color: #fff; }
.button-orange:hover { background: #be5129; }
.button-secondary { background: transparent; border-color: currentColor; color: var(--navy); }
.hero-actions, .inline-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 27px; }
.text-link { color: var(--brick); font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 4px; }

/* Homepage hero */
.ranking-hero {
  position: relative;
  isolation: isolate;
  min-height: 650px;
  padding: 86px 0 68px;
  overflow: hidden;
  background-color: var(--navy-deep);
  background-image: url("images/homepage-powder-skiers.jpg");
  background-position: 16% 70%;
  background-size: 112% auto;
  background-repeat: no-repeat;
}
.ranking-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(10, 28, 42, 0.95) 0%, rgba(10, 28, 42, 0.84) 34%, rgba(10, 28, 42, 0.42) 59%, rgba(10, 28, 42, 0.10) 100%),
    linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.16));
}
.ranking-hero::after {
  content: "GETTY IMAGES · UNSPLASH";
  position: absolute;
  right: 18px;
  bottom: 15px;
  color: rgba(255,255,255,.7);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
}
.ranking-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(370px, 0.78fr); gap: 58px; align-items: center; }
.ranking-hero h1 { max-width: 800px; color: var(--snow); text-wrap: balance; }
.ranking-hero .lede { color: #e6e4dc; max-width: 720px; }
.ranking-hero .eyebrow { color: var(--mustard); }
.ranking-hero .button-primary { background: var(--orange); }
.ranking-hero .button-secondary { color: var(--snow); border-color: rgba(255,255,255,.65); }
.trust { display: flex; flex-wrap: wrap; gap: 13px 20px; margin-top: 30px; color: #dfe4e2; font-size: 0.89rem; font-weight: 600; }
.trust span { position: relative; padding-left: 20px; }
.trust span::before { content: "✦"; position: absolute; left: 0; color: var(--mustard); }

.ranking-board {
  position: relative;
  background: rgba(255, 253, 248, 0.96);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: var(--shadow-md);
  padding: 18px 18px 15px;
}
.ranking-board::before,
.ranking-board::after { content: ""; position: absolute; top: 50%; width: 18px; height: 36px; transform: translateY(-50%); background: rgba(24,50,74,.88); border-radius: 50%; }
.ranking-board::before { left: -10px; }
.ranking-board::after { right: -10px; }
.ranking-board-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 8px 14px; color: var(--navy); font-size: .75rem; }
.ranking-board-head a { color: var(--brick); letter-spacing: 0; text-transform: none; text-decoration: none; }
.board-row { display: grid; grid-template-columns: 42px 1fr 52px; gap: 12px; align-items: center; min-height: 70px; padding: 12px 9px; border-top: 1px solid var(--line); color: var(--navy); text-decoration: none; }
.board-row:hover { background: #f3ede3; }
.board-row.top { margin: 0 -3px; background: #efe2c2; border-top: 0; border-left: 4px solid var(--mustard); }
.board-row b { font-family: var(--display); font-size: 2rem; color: var(--orange); line-height: 1; }
.board-row span { display: grid; }
.board-row strong { font-size: .99rem; }
.board-row small { color: var(--muted); line-height: 1.25; }
.board-row em { font-family: var(--display); font-size: 1.35rem; font-style: normal; font-weight: 800; text-align: right; color: var(--teal); }

.ranking-strip { background: var(--snow-soft); border-bottom: 1px solid var(--line); }
.ranking-strip-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ranking-strip-grid a { position: relative; display: grid; gap: 2px; min-height: 128px; padding: 28px 24px; border-right: 1px solid var(--line); text-decoration: none; }
.ranking-strip-grid a:last-child { border-right: 0; }
.ranking-strip-grid a::before { content: ""; position: absolute; top: 0; left: 0; width: 42px; height: 4px; background: var(--teal); transition: width 180ms ease; }
.ranking-strip-grid a:nth-child(2)::before { background: var(--mustard); }
.ranking-strip-grid a:nth-child(3)::before { background: var(--orange); }
.ranking-strip-grid a:nth-child(4)::before { background: var(--brick); }
.ranking-strip-grid a:hover::before { width: 100%; }
.ranking-strip-grid span { color: var(--brick); font-family: var(--display); font-size: .72rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.ranking-strip-grid strong { color: var(--navy); font-size: 1.03rem; }
.ranking-strip-grid small { color: var(--muted); line-height: 1.3; }

/* Ranking cards */
.ranking-main { padding-top: 94px; }
.podium-grid { display: grid; grid-template-columns: 1.12fr 1fr 1fr; gap: 18px; }
.podium-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 470px;
  padding: 29px 27px 26px;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
}
.podium-card::after { content: ""; position: absolute; right: -43px; bottom: -47px; width: 145px; height: 115px; background: var(--snow); transform: rotate(-17deg); clip-path: polygon(50% 0, 100% 100%, 0 100%); opacity: .75; }
.podium-card.first { border-top: 7px solid var(--mustard); background: linear-gradient(180deg, #fffaf0 0%, var(--paper) 45%); }
.podium-card:nth-child(2) { border-top: 7px solid var(--orange); }
.podium-card:nth-child(3) { border-top: 7px solid var(--teal); }
.podium-rank { position: absolute; top: 13px; right: 17px; color: rgba(24,50,74,.12); font-family: var(--display); font-size: 4.8rem; font-weight: 800; line-height: 1; }
.podium-card.first .podium-rank { color: rgba(216,166,46,.26); }
.podium-label { min-height: 36px; padding-right: 56px; color: var(--brick); font-size: .72rem; }
.podium-title { display: flex; gap: 14px; align-items: flex-start; margin: 23px 0 14px; }
.podium-title h3, .podium-title h2 { margin: 0 0 6px; color: var(--navy); font-size: 2rem; }
.podium-title p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.4; }
.pass-icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 49px;
  height: 49px;
  color: var(--snow);
  background: var(--navy);
  border: 3px solid var(--snow);
  outline: 1px solid var(--navy);
  border-radius: 50%;
  font-family: var(--display);
  font-size: .98rem;
  font-weight: 800;
  letter-spacing: .04em;
}
.podium-score { display: flex; align-items: baseline; margin: 9px 0 6px; color: var(--navy); }
.podium-score strong { font-family: var(--display); font-size: 4rem; line-height: 1; }
.podium-score span { color: var(--muted); font-weight: 700; }
.podium-card ul { margin: 14px 0 26px; padding-left: 20px; color: #40505a; }
.podium-card li { margin: 8px 0; }
.podium-card .button { position: relative; z-index: 1; margin-top: auto; }

.compact-ranking-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.compact-ranking-list a { display: grid; grid-template-columns: 47px 47px 1fr 55px; gap: 13px; align-items: center; min-height: 92px; padding: 15px 17px; background: var(--paper); border: 1px solid var(--line); text-decoration: none; transition: transform 130ms ease, box-shadow 130ms ease; }
.compact-ranking-list a:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.compact-ranking-list b { display: grid; place-items: center; width: 42px; height: 54px; color: var(--navy); background: #e8dcc7; font-family: var(--display); font-size: 1.7rem; clip-path: polygon(0 0,100% 0,100% 82%,50% 100%,0 82%); }
.compact-ranking-list span:nth-child(3) { display: grid; }
.compact-ranking-list small { color: var(--muted); line-height: 1.25; }
.compact-ranking-list em { color: var(--teal); font-family: var(--display); font-size: 1.4rem; font-style: normal; font-weight: 800; text-align: right; }
.center-action { margin-top: 30px; text-align: center; }

.ranking-guide-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ranking-guide-card { position: relative; display: grid; grid-template-columns: 62px 1fr; gap: 16px; min-height: 275px; padding: 29px; overflow: hidden; background: var(--paper); border: 1px solid var(--line); text-decoration: none; transition: transform 150ms ease, box-shadow 150ms ease; }
.ranking-guide-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.ranking-guide-card::after { content: ""; position: absolute; right: -20px; bottom: -35px; width: 145px; height: 110px; background: var(--teal); opacity: .12; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.ranking-guide-card:nth-child(2)::after { background: var(--mustard); }
.ranking-guide-card:nth-child(3)::after { background: var(--orange); }
.guide-number { color: var(--bluegray); font-family: var(--display); font-size: 2.6rem; font-weight: 800; line-height: 1; }
.card-tag { margin: 0; color: var(--brick); font-size: .72rem; }
.ranking-guide-card h3 { margin: 12px 0 13px; }
.ranking-guide-card p { color: var(--muted); }
.ranking-guide-card strong { color: var(--navy); }

.review-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.review-tile { position: relative; display: grid; grid-template-columns: 53px 1fr; gap: 4px 14px; min-height: 145px; padding: 20px; background: var(--paper); border: 1px solid var(--line); text-decoration: none; transition: transform 130ms ease, box-shadow 130ms ease; }
.review-tile:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.review-tile .pass-icon { grid-row: 1 / 3; }
.review-tile strong { align-self: end; color: var(--navy); font-size: 1.02rem; }
.review-tile > span:last-child { align-self: start; color: var(--muted); font-size: .84rem; line-height: 1.3; }
.ranked-review-tiles .review-tile > b, .ranked-review-tile > b { position: absolute; top: 10px; right: 12px; color: var(--orange); font-family: var(--display); font-size: 1.1rem; }

/* Methodology and tools */
.methodology-callout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(410px, .82fr); gap: 42px; align-items: center; }
.methodology-callout > div:first-child p:last-child { max-width: 680px; }
.methodology-points { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.methodology-points div { padding: 19px; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); }
.methodology-points strong { display: block; color: var(--mustard); font-family: var(--display); font-size: 2.2rem; line-height: 1; }
.methodology-points span { color: #d4dedf; font-size: .82rem; }
.methodology-callout > .button { grid-column: 1 / -1; justify-self: start; }
.tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tool-card { min-height: 220px; padding: 30px; background: var(--paper); border: 1px solid var(--line); }
.tool-card.dark { background: var(--navy); color: var(--snow); }
.tool-card.dark h3 { color: var(--snow); }
.tool-card p { color: var(--muted); }
.tool-card.dark p { color: #d4dee1; }
.tools-secondary { padding-top: 68px; }
.newsletter { position: relative; display: flex; justify-content: space-between; gap: 34px; align-items: center; padding: 42px; overflow: hidden; background: var(--mustard); border: 1px solid #b38318; }
.newsletter::after { content: ""; position: absolute; right: -70px; top: -50px; width: 260px; height: 190px; background: var(--snow); opacity: .2; clip-path: polygon(50% 0,100% 100%,0 100%); }
.newsletter h2, .newsletter .eyebrow { color: var(--navy); }
.newsletter p { color: #3f3c31; }
.newsletter form { position: relative; z-index: 1; display: flex; gap: 8px; min-width: min(430px, 100%); }
.newsletter input { width: 100%; padding: 12px 13px; border: 1px solid var(--navy); background: var(--paper); }

/* Interior page hero */
.page-hero { position: relative; padding: 65px 0 48px; overflow: hidden; background: var(--snow-soft); border-bottom: 1px solid var(--line); }
.page-hero h1 { max-width: 940px; font-size: clamp(3.2rem, 6vw, 5.4rem); }
.breadcrumbs { margin-bottom: 22px; color: var(--muted); font-size: .85rem; }
.breadcrumbs a { text-decoration: none; }

/* Review hero */
.review-header {
  min-height: 570px;
  display: flex;
  align-items: flex-end;
  color: var(--snow);
  background: var(--navy-deep) url("images/homepage-powder-skiers.jpg") 78% 52% / cover no-repeat;
  border-bottom: 0;
}
/* Per-pass hero imagery injected below for better page variety. */
.review-header::after { display: none; }
.review-header .container { padding-bottom: 28px; }
.review-header h1 { max-width: 850px; color: var(--snow); }
.review-header .breadcrumbs, .review-header .lede { color: #dce3e2; }
.review-header .eyebrow { color: var(--mustard); }
.review-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; }
.meta-pill { padding: 7px 11px; color: #f4f0e6; border: 1px solid rgba(255,255,255,.35); background: rgba(24,50,74,.38); font-size: .82rem; }
.rating-hero { display: grid; grid-template-columns: 154px minmax(0, 740px); gap: 28px; align-items: center; margin-top: 27px; }
.rating-hero h2 { margin-bottom: 8px; color: var(--snow); font-size: 2.35rem; }
.rating-hero p { color: #dce4e4; }
.rating-circle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 150px;
  color: var(--navy);
  background: var(--mustard);
  font-family: var(--display);
  font-size: 3.1rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  clip-path: polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);
}
.rating-circle:not(.profile-rating-circle) strong {
  display: block;
  margin: 0;
  font: inherit;
  line-height: 1;
  text-align: center;
}
.rating-circle:not(.profile-rating-circle)::before {
  content: "EDITOR SCORE";
  position: absolute;
  top: 15px;
  left: 0;
  right: 0;
  font-size: .62rem;
  letter-spacing: .1em;
  text-align: center;
}
.rating-circle:not(.profile-rating-circle) span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 34px;
  margin: 0;
  font-size: .86rem;
  text-align: center;
}
.review-layout { padding-top: 42px; }

/* Editorial article system */
.quick-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-bottom: 30px; background: var(--paper); border: 1px solid var(--line); }
.quick-fact { padding: 18px 20px; border-right: 1px solid var(--line); }
.quick-fact:last-child { border-right: 0; }
.quick-fact small { display: block; color: var(--brick); font-size: .67rem; }
.quick-fact strong { display: block; margin-top: 5px; color: var(--navy); }
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 32px; align-items: start; }
.article { background: var(--paper); border: 1px solid var(--line); padding: 42px 46px; }
.article h2 { position: relative; margin: 55px 0 20px; padding-top: 18px; font-size: 2.55rem; }
.article h2::before { content: ""; position: absolute; top: 0; left: 0; width: 72px; height: 4px; background: var(--orange); }
.article h2:first-child { margin-top: 0; }
.article h3 { margin: 34px 0 13px; font-size: 1.65rem; }
.article p, .article li { color: #46535a; }
.article li { margin: 7px 0; }
.article table { width: 100%; margin: 22px 0; border-collapse: collapse; }
.article th, .article td { padding: 13px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.article th { color: var(--navy); background: #eee7dc; font-family: var(--display); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.verdict-box { position: relative; padding: 28px 30px 27px 34px; background: #e5ece8; border-left: 6px solid var(--teal); }
.verdict-box::after { content: "VERDICT"; position: absolute; right: 15px; top: 12px; color: rgba(62,119,116,.15); font-family: var(--display); font-size: 2.2rem; font-weight: 800; letter-spacing: .06em; }
.verdict-box .eyebrow { color: var(--teal); }
.score-row { display: grid; grid-template-columns: 155px 1fr 46px; gap: 13px; align-items: center; margin: 13px 0; }
.score-row > span { color: var(--navy); font-weight: 600; }
.score-row > strong { color: var(--navy); font-family: var(--display); font-size: 1.15rem; }
.bar { height: 8px; overflow: hidden; background: #ded8cf; }
.bar span { display: block; height: 100%; background: var(--teal); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.pros, .cons { padding: 24px; border: 1px solid var(--line); }
.pros { background: #e9efea; border-top: 5px solid var(--teal); }
.cons { background: #f5e7e1; border-top: 5px solid var(--brick); }
.pros h3 { color: var(--teal); }
.cons h3 { color: var(--brick); }
.break-widget { margin: 26px 0; padding: 28px; background: #ebe5db; border: 1px solid var(--line); }
.break-widget input[type="range"] { width: 100%; accent-color: var(--orange); }
.break-output { display: flex; justify-content: space-between; gap: 18px; margin-top: 16px; }
.break-output > div { flex: 1; padding-top: 10px; border-top: 1px solid var(--line-dark); }
.big-number { color: var(--navy); font-family: var(--display); font-size: 2.3rem; font-weight: 800; line-height: 1.1; }
.sources { font-size: .9rem; }
.sources a { color: var(--brick); }

.sidebar { position: sticky; top: 100px; display: grid; gap: 15px; }
.side-card { background: var(--paper); border: 1px solid var(--line); padding: 21px; }
.side-card h2, .side-card h3 { margin-bottom: 13px; color: var(--navy); font-size: 1.5rem; }
.side-card a { display: block; margin: 9px 0; color: var(--brick); font-weight: 700; text-decoration: none; }
.side-card .button { color: var(--snow); }
.ad-slot { padding: 20px; color: var(--muted); background: #e8e1d5; border: 1px dashed var(--bluegray); font-size: .82rem; }

/* Rankings and category pages */
.ranking-page-hero { padding-bottom: 52px; }
.winner-summary { display: grid; max-width: 760px; margin-top: 28px; padding: 18px 22px 18px 26px; background: var(--paper); border: 1px solid var(--line); border-left: 6px solid var(--mustard); }
.winner-summary span { color: var(--brick); font-size: .7rem; }
.winner-summary strong { color: var(--navy); font-family: var(--display); font-size: 1.9rem; }
.winner-summary small { color: var(--muted); }
.category-rank-list { display: grid; gap: 18px; }
.category-rank-card { display: grid; grid-template-columns: 76px minmax(0, 1fr) 106px; gap: 23px; padding: 28px; background: var(--paper); border: 1px solid var(--line); }
.category-rank-card.winner-card { border-top: 7px solid var(--mustard); background: linear-gradient(110deg, #fff9eb, var(--paper) 54%); }
.category-rank-number { color: #c9c1b4; font-family: var(--display); font-size: 4.2rem; font-weight: 800; line-height: .9; }
.winner-card .category-rank-number { color: var(--mustard); }
.category-rank-main .podium-title { margin: 4px 0; }
.category-rank-main .podium-title h2 { font-size: 2.35rem; }
.category-reasons { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 10px; margin: 20px 0; }
.category-reasons div { padding: 14px; background: #eee8de; }
.category-reasons strong { display: block; color: var(--navy); font-size: .78rem; }
.category-reasons span { color: var(--muted); font-size: .8rem; }
.category-score { padding: 14px; background: var(--navy); text-align: center; }
.category-score strong { display: block; color: var(--mustard); font-family: var(--display); font-size: 2.2rem; line-height: 1; }
.category-score span { color: #d9e1e2; font-size: .62rem; }
.narrow-callout { max-width: 850px; text-align: center; }
.ranking-summary-panel { grid-column: 1 / -1; padding: 31px; color: var(--snow); background: var(--navy); }
.ranking-summary-panel h2 { color: var(--snow); }
.ranking-summary-head { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 22px; }
.ranking-summary-head > p { max-width: 460px; color: #d7e0e2; }
.summary-ranking-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.summary-ranking-grid a { display: grid; grid-template-columns: 38px 1fr 47px; gap: 10px; align-items: center; min-height: 62px; padding: 11px 13px; color: var(--snow); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); text-decoration: none; }
.summary-ranking-grid a:hover { background: rgba(255,255,255,.12); }
.summary-ranking-grid b { color: var(--orange); font-family: var(--display); font-size: 1.45rem; }
.summary-ranking-grid span { display: grid; font-weight: 700; }
.summary-ranking-grid small { color: #c1d0d3; font-size: .72rem; font-weight: 400; }
.summary-ranking-grid em { color: var(--mustard); font-family: var(--display); font-size: 1.2rem; font-style: normal; font-weight: 800; text-align: right; }
.ranking-category-links { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; }
.ranking-category-links a { color: var(--snow); font-weight: 700; }

/* Comparison pages */
.comparison-hero { background: #ebe5db; }
.vs { display: grid; grid-template-columns: 1fr 74px 1fr; gap: 18px; align-items: center; margin-top: 30px; }
.vs-card { padding: 24px; background: var(--paper); border: 1px solid var(--line); }
.vs-card.winner { border-top: 6px solid var(--mustard); }
.vs-card h2 { margin-bottom: 8px; font-size: 2.2rem; }
.vs-mark { display: grid; place-items: center; width: 58px; height: 58px; color: var(--snow); background: var(--brick); border-radius: 50%; font-family: var(--display); font-weight: 800; }
.compare-table { width: 100%; border-collapse: collapse; }
.compare-table th, .compare-table td { padding: 14px 11px; border-bottom: 1px solid var(--line); text-align: left; }
.compare-table th { color: var(--navy); background: #e9e2d7; }

/* Finder and database */
.finder-wrap { display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; }
.finder, .finder-results { min-height: 500px; padding: 31px; background: var(--paper); border: 1px solid var(--line); }
.finder-results { background: var(--navy); color: var(--snow); }
.finder-results h2 { color: var(--snow); }
.finder-results p { color: #d8e1e1; }
.question { margin-bottom: 24px; border: 0; padding: 0; }
.question label, .question legend { display: block; margin-bottom: 8px; color: var(--navy); font-weight: 700; }
.finder input[type="number"], .finder select, .filter-bar input, .filter-bar select { width: 100%; padding: 12px; color: var(--ink); background: #fffdf8; border: 1px solid var(--line-dark); border-radius: 0; }
.segments { display: flex; flex-wrap: wrap; gap: 8px; }
.segments label { margin: 0; padding: 8px 10px; background: #ece5d9; border: 1px solid var(--line); font-size: .9rem; }
.finder-result { margin-top: 13px; padding: 16px; color: var(--ink); background: var(--paper); border-left: 5px solid var(--teal); }
.finder-result.top { border-left-color: var(--mustard); }
.finder-result h3 { margin-bottom: 7px; font-size: 1.55rem; }
.finder-result p { color: var(--muted); }
.finder-result-head { display: flex; justify-content: space-between; gap: 16px; }
.finder-result-head strong { color: var(--teal); font-family: var(--display); font-size: 1.5rem; }
.filter-bar { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.pass-table { width: 100%; background: var(--paper); border-collapse: collapse; border: 1px solid var(--line); }
.pass-table th, .pass-table td { padding: 14px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.pass-table th { color: var(--snow); background: var(--navy); font-family: var(--display); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.notice { margin-top: 18px; padding: 16px; color: #59666d; background: #e9e2d7; border-left: 4px solid var(--mustard); font-size: .88rem; }

/* Footer */
.footer { padding: 58px 0 26px; color: #dbe2e2; background: var(--navy-deep); border-top: 7px solid var(--orange); }
.footer .brand { color: var(--snow); }
.footer .brand-mark { background: var(--snow); }
.footer .brand-mark::before, .footer .brand-mark::after { background: var(--navy-deep); }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 35px; }
.footer-heading { margin: 0 0 12px; color: var(--mustard); font-family: var(--display); font-size: 1rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.footer p { color: #b9c8cb; }
.footer a { display: block; margin: 7px 0; color: #d5dfe0; text-decoration: none; }
.footer a:hover { color: var(--mustard); }
.fineprint { margin-top: 38px; padding-top: 20px; color: #98aaae; border-top: 1px solid rgba(255,255,255,.14); font-size: .78rem; }

/* Utility */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.editorial-card, .pass-card, .info-card { background: var(--paper); border: 1px solid var(--line); }
.editorial-card { display: flex; flex-direction: column; min-height: 300px; padding: 27px; }
.editorial-card h2, .editorial-card h3 { margin: 0 0 1em; font-size: 1.8rem; line-height: 1.04; }
.editorial-card p { color: var(--muted); }
.editorial-card .text-link { margin-top: auto; }
.ranked-list { display: grid; gap: 12px; }
.ranked-item { display: grid; grid-template-columns: 62px minmax(190px,1.2fr) minmax(180px,1fr) 118px 128px; gap: 15px; align-items: center; padding: 17px; background: var(--paper); border: 1px solid var(--line); }
.rank-badge { color: var(--orange); font-family: var(--display); font-size: 2rem; font-weight: 800; }
.pass-name { display: flex; gap: 13px; align-items: center; }
.pass-name h3 { margin: 0; font-size: 1.45rem; }
.pass-name small, .best-for span, .price-cell span { color: var(--muted); font-size: .8rem; }
.best-for strong, .price-cell strong { display: block; }
.rating-pill { padding: 6px 10px; color: var(--snow); background: var(--teal); text-align: center; font-family: var(--display); font-weight: 800; }
.stats { background: var(--paper); border-bottom: 1px solid var(--line); }
.stat-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.stat { padding: 25px; border-right: 1px solid var(--line); }
.stat:last-child { border-right: 0; }
.stat strong { display: block; color: var(--navy); font-family: var(--display); font-size: 2rem; }
.stat span { color: var(--muted); font-size: .82rem; }

@media (max-width: 1030px) {
  .ranking-hero-grid { grid-template-columns: 1fr; }
  .ranking-board { max-width: 760px; }
  .ranking-hero { min-height: auto; }
  .podium-grid { grid-template-columns: 1fr 1fr; }
  .podium-card.first { grid-column: 1 / -1; }
  .ranking-guide-grid { grid-template-columns: 1fr 1fr; }
  .review-tiles { grid-template-columns: repeat(2, 1fr); }
  .methodology-callout { grid-template-columns: 1fr; }
  .methodology-callout > .button { grid-column: auto; }
  .category-reasons { grid-template-columns: 1fr; }
  .category-rank-card { grid-template-columns: 58px 1fr 92px; }
  .content-grid { grid-template-columns: minmax(0,1fr) 270px; }
  .article { padding: 36px; }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 780px) {
  .container { width: min(100% - 28px, var(--max)); }
  .section { padding: 66px 0; }
  .section-head { grid-template-columns: 1fr; gap: 15px; }
  .menu { display: block; }
  .nav-links { display: none; position: absolute; left: 14px; right: 14px; top: 78px; padding: 18px; background: var(--snow-soft); border: 1px solid var(--line-dark); box-shadow: var(--shadow-md); }
  .nav-links.open { display: grid; gap: 12px; }
  .nav-tool { text-align: center; }
  .ranking-hero { padding: 62px 0 56px; background-position: 62% center; }
  .ranking-hero::before { background: linear-gradient(90deg, rgba(12,31,45,.96), rgba(12,31,45,.75)); }
  .ranking-hero h1 { font-size: clamp(3.25rem, 14vw, 4.5rem); }
  .ranking-board { margin-top: 4px; }
  .ranking-strip-grid { grid-template-columns: 1fr 1fr; }
  .ranking-strip-grid a:nth-child(2) { border-right: 0; }
  .ranking-strip-grid a:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .podium-grid, .compact-ranking-list, .ranking-guide-grid, .tool-grid, .finder-wrap { grid-template-columns: 1fr; }
  .podium-card.first { grid-column: auto; }
  .compact-ranking-list a { grid-template-columns: 42px 45px 1fr 48px; }
  .methodology-points { grid-template-columns: 1fr 1fr; }
  .newsletter { display: grid; padding: 30px; }
  .newsletter form { min-width: 0; }
  .quick-facts { grid-template-columns: 1fr 1fr; }
  .quick-fact:nth-child(2) { border-right: 0; }
  .quick-fact:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .content-grid { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .review-header { min-height: 630px; background-position: 65% center; }
  .review-header .container { padding-bottom: 10px; }
  .rating-hero { grid-template-columns: 115px 1fr; }
  .rating-circle { width: 108px; height: 120px; font-size: 2.4rem; }
  .rating-circle:not(.profile-rating-circle) span { bottom: 27px; }
  .rating-circle::before { top: 12px; font-size: .52rem; }
  .category-rank-card { grid-template-columns: 48px 1fr; }
  .category-score { grid-column: 2; justify-self: start; display: flex; gap: 5px; align-items: baseline; }
  .summary-ranking-grid { grid-template-columns: 1fr; }
  .filter-bar { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: auto; }
  .vs { grid-template-columns: 1fr; }
  .vs-mark { margin: auto; }
}

@media (max-width: 560px) {
  h1 { font-size: 3.25rem; }
  h2 { font-size: 2.45rem; }
  .ranking-strip-grid, .review-tiles, .card-grid, .methodology-points, .quick-facts, .footer-grid { grid-template-columns: 1fr; }
  .ranking-strip-grid a { border-right: 0; border-bottom: 1px solid var(--line); }
  .ranking-strip-grid a:last-child { border-bottom: 0; }
  .compact-ranking-list a { grid-template-columns: 38px 42px 1fr 45px; padding: 13px; }
  .podium-card { min-height: auto; }
  .newsletter form { display: grid; }
  .review-header { min-height: 720px; align-items: end; background-position: 68% center; }
  .review-header h1 { font-size: 3rem; }
  .rating-hero { grid-template-columns: 1fr; }
  .rating-circle { width: 102px; height: 112px; }
  .rating-circle:not(.profile-rating-circle) span { bottom: 25px; }
  .article { padding: 28px 22px; }
  .article h2 { font-size: 2.2rem; }
  .two-col { grid-template-columns: 1fr; }
  .score-row { grid-template-columns: 112px 1fr 36px; font-size: .88rem; }
  .break-output { display: grid; }
  .filter-bar { grid-template-columns: 1fr; }
  .pass-table thead { display: none; }
  .pass-table, .pass-table tbody, .pass-table tr, .pass-table td { display: block; width: 100%; }
  .pass-table tr { padding: 13px 0; border-bottom: 2px solid var(--navy); }
  .pass-table td { display: grid; grid-template-columns: 105px 1fr; gap: 12px; padding: 8px 13px; border: 0; }
  .pass-table td::before { content: attr(data-label); color: var(--brick); font-family: var(--display); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
  .footer-grid > div, .footer-grid > div:first-child, .footer-grid > div:last-child { grid-column: auto; }
}

/* Location personalization */
.location-nav {
  display: inline-grid;
  gap: 0;
  padding: 7px 11px;
  color: var(--navy);
  background: #efe5d4;
  border: 1px solid var(--line-dark);
  font-family: var(--display);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.08;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}
.location-nav span { color: var(--brick); font-size: .6rem; letter-spacing: .1em; }
.location-nav:hover { background: var(--paper); }
.location-home-section { padding-top: 58px; padding-bottom: 74px; background: #ddd7cc; border-bottom: 1px solid var(--line); }
.location-onboarding { position: relative; padding: 36px; overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-top: 7px solid var(--orange); box-shadow: var(--shadow-sm); }
.location-onboarding::after { content:""; position:absolute; right:-55px; bottom:-72px; width:235px; height:190px; background:var(--teal); opacity:.08; clip-path:polygon(50% 0,100% 100%,0 100%); pointer-events:none; }
.location-onboarding > div:first-child { max-width: 780px; }
.location-onboarding h2 { margin-bottom: 12px; }
.location-onboarding p { color: var(--muted); }
.location-onboarding.personalized { border-top-color: var(--mustard); }
.location-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 25px; }
.location-title > div:first-child { max-width: 780px; }
.location-actions { position: relative; z-index: 2; display: flex; align-items: center; gap: 12px; }
.location-form { position: relative; z-index: 1; display: grid; grid-template-columns: 1.1fr 1fr 1fr auto; gap: 12px; align-items: end; margin-top: 24px; }
.location-form.compact { grid-template-columns: 1fr 1fr 1fr auto; }
.location-field label { display: block; margin-bottom: 6px; color: var(--navy); font-family: var(--display); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.location-field input, .location-field select { width: 100%; min-height: 46px; padding: 10px 12px; color: var(--ink); background: #fffdf8; border: 1px solid var(--line-dark); border-radius: 0; }
.location-status { grid-column: 1 / -1; min-height: 1em; margin: 0; color: var(--brick) !important; font-size: .84rem; }
.sample-zips { margin-top: 13px; color: var(--muted); font-size: .82rem; }
.privacy-note { margin: 12px 0 0; color: var(--muted); font-size: .8rem; }
.text-button, .mini-location-button { padding: 0; color: var(--brick); background: transparent; border: 0; font-weight: 800; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; cursor: pointer; }
.mini-location-button { font-size: .84rem; }
.ranking-mode { display: inline-flex; margin: 18px 0; padding: 4px; background: #e7ded0; border: 1px solid var(--line); }
.ranking-mode button { padding: 9px 13px; color: var(--navy); background: transparent; border: 0; font-family: var(--display); font-size: .8rem; font-weight: 800; text-transform: uppercase; cursor: pointer; }
.ranking-mode button.active { color: var(--snow); background: var(--navy); }
.personal-ranking-list { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.personal-ranking-list a { display: grid; grid-template-columns: 42px 1fr 72px 64px; gap: 13px; align-items: center; min-height: 82px; padding: 13px 15px; color: inherit; background: #fffdf8; border: 1px solid var(--line); text-decoration: none; }
.personal-ranking-list a:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.personal-ranking-list a > b { display: grid; place-items: center; width: 38px; height: 48px; color: var(--navy); background: #eadabf; font-family: var(--display); font-size: 1.45rem; clip-path: polygon(0 0,100% 0,100% 82%,50% 100%,0 82%); }
.personal-ranking-list a > span { display: grid; }
.personal-ranking-list a > span small { color: var(--muted); line-height: 1.25; }
.personal-ranking-list a > div { display: grid; text-align: right; }
.personal-ranking-list em { color: var(--teal); font-family: var(--display); font-size: 1.3rem; font-style: normal; font-weight: 800; line-height: 1; }
.personal-ranking-list a > div:last-child em { color: var(--navy); }
.personal-ranking-list a > div small { color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.preference-and-combo { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; margin-top: 18px; }
.preferred-resorts, .pass-combo { position: relative; z-index: 1; padding: 22px; background: #eee7dc; border: 1px solid var(--line); }
.preferred-resorts > div:first-child { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.preferred-resorts > div:first-child span { color: var(--muted); font-size: .8rem; }
.resort-chip-list { display: flex; flex-wrap: wrap; gap: 7px; }
.resort-chip input { position: absolute; opacity: 0; pointer-events: none; }
.resort-chip span { display: inline-flex; align-items: baseline; gap: 6px; padding: 7px 9px; color: var(--navy); background: var(--paper); border: 1px solid var(--line-dark); font-size: .79rem; cursor: pointer; }
.resort-chip small { color: var(--muted); }
.resort-chip input:checked + span { color: var(--snow); background: var(--teal); border-color: var(--teal); }
.resort-chip input:checked + span small { color: #e7f2ef; }
.pass-combo { background: var(--navy); color: var(--snow); }
.pass-combo h3 { color: var(--snow); }
.pass-combo p { color: #d7e1e1; }
.pass-combo .eyebrow { color: var(--mustard); }
.combo-links { display: flex; flex-wrap: wrap; gap: 12px; }
.combo-links a { color: var(--mustard); font-weight: 800; }
.nearby-resort-strip { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-top: 14px; }
.nearby-resort-strip > span { color: var(--navy); font-weight: 800; }
.nearby-resort-strip small { padding: 5px 8px; background: #e6ded2; border: 1px solid var(--line); }
.near-you-badge { display: inline-flex; align-items: center; gap: 6px; width: fit-content; margin-top: 10px; padding: 7px 10px; color: var(--snow); background: var(--navy); border-left: 4px solid var(--mustard); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); font-family: var(--display); font-size: .72rem; line-height: 1.2; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.location-ranking-section { padding: 48px 0; background: #ddd7cc; border-bottom: 1px solid var(--line); }

/* Review proximity module */
#reviewProximityMount { border-bottom: 1px solid var(--line); }
.review-proximity { padding: 52px 0; background: #e8e2d8; overflow: hidden; }
.review-proximity.no-location { background: #e5ece8; }
.review-proximity.no-location > div,
.proximity-heading,
.proximity-summary,
.proximity-table-wrap,
.map-and-misses,
.location-controls,
.proximity-purchase-step {
  width: min(var(--max), calc(100% - 42px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
.review-proximity.no-location > div { margin-top: 0; margin-bottom: 0; }
.proximity-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 36px; align-items: end; margin-top: 0; margin-bottom: 25px; }
.proximity-heading > div:first-child { max-width: 760px; }
.proximity-heading h2 { margin-bottom: 12px; }
.proximity-heading p { color: var(--muted); }
.dual-score { display: flex; align-items: stretch; border: 1px solid var(--line-dark); }
.dual-score > div { display: grid; min-width: 125px; padding: 13px 16px; background: var(--paper); text-align: center; }
.dual-score > div + div { border-left: 1px solid var(--line); }
.dual-score .personal { color: var(--snow); background: var(--teal); }
.dual-score span { font-family: var(--display); font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dual-score strong { font-family: var(--display); font-size: 2.3rem; line-height: 1; }
.dual-score small { font-weight: 700; }
.proximity-summary { display: grid; grid-template-columns: 1.2fr repeat(3,1fr); margin-top: 0; margin-bottom: 18px; background: var(--paper); border: 1px solid var(--line); }
.proximity-summary > div { display: grid; align-content: start; min-height: 108px; padding: 18px; border-right: 1px solid var(--line); }
.proximity-summary > div:last-child { border-right: 0; }
.proximity-summary strong { color: var(--navy); font-family: var(--display); font-size: 1.55rem; line-height: 1.1; }
.proximity-summary span { color: var(--muted); font-size: .78rem; }
.proximity-summary small { color: var(--brick); font-weight: 700; }
.proximity-table-wrap { margin-top: 0; margin-bottom: 0; overflow-x: hidden; background: var(--paper); border: 1px solid var(--line); }
.proximity-table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.proximity-table th, .proximity-table td { min-width: 0; padding: 13px 12px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; text-align: left; vertical-align: top; }
.proximity-table th { color: var(--snow); background: var(--navy); font-family: var(--display); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.proximity-table th:nth-child(1), .proximity-table td:nth-child(1) { width: 39%; }
.proximity-table th:nth-child(2), .proximity-table td:nth-child(2) { width: 21%; }
.proximity-table th:nth-child(3), .proximity-table td:nth-child(3) { width: 13%; }
.proximity-table th:nth-child(4), .proximity-table td:nth-child(4) { width: 15%; }
.proximity-table th:nth-child(5), .proximity-table td:nth-child(5) { width: 12%; }
.proximity-table td:nth-child(2), .proximity-table td:nth-child(3), .proximity-table td:nth-child(5) { font-variant-numeric: tabular-nums; }
.proximity-table td small { display: block; color: var(--muted); font-size: .72rem; line-height: 1.25; }
.trip-pill { display: inline-block; padding: 4px 7px; color: var(--navy); background: #e8dcc7; font-family: var(--display); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.trip-pill.day-trip { color: #fff; background: var(--teal); }
.trip-pill.weekend { color: #fff; background: var(--orange); }
.trip-pill.destination { color: #fff; background: var(--brick); }
.map-and-misses { display: grid; grid-template-columns: 1.2fr .8fr; gap: 16px; margin-top: 18px; margin-bottom: 0; }
.map-and-misses > div { padding: 22px; background: var(--paper); border: 1px solid var(--line); }
.proximity-map { width: 100%; min-height: 260px; background: #eee8dc; border: 1px solid var(--line); }
.proximity-map text { fill: var(--navy); font-family: var(--body); font-size: 10px; font-weight: 700; }
.proximity-map .map-user { fill: var(--orange); stroke: var(--paper); stroke-width: 4; }
.proximity-map .map-resort { fill: var(--teal); stroke: var(--paper); stroke-width: 3; }
.map-note { margin: 9px 0 0; color: var(--muted); font-size: .75rem; }
.misses-card { border-top: 6px solid var(--brick) !important; }
.misses-card .eyebrow { color: var(--brick); }
.miss-row { display: flex; justify-content: space-between; gap: 15px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.miss-row span { display: grid; }
.miss-row small { color: var(--muted); }
.miss-row em { color: var(--brick); font-size: .78rem; font-style: normal; font-weight: 800; text-align: right; }
.location-controls { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; margin-top: 14px; margin-bottom: 0; }
.location-controls span { margin-left: auto; color: var(--muted); font-size: .75rem; }

/* Modal */
.modal-open { overflow: hidden; }
.location-modal-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: rgba(9,25,36,.76); }
.location-modal { position: relative; width: min(920px, 100%); max-height: min(90vh, 760px); overflow: auto; padding: 34px; background: var(--snow-soft); border-top: 7px solid var(--orange); box-shadow: 0 25px 80px rgba(0,0,0,.35); }
.location-modal h2 { max-width: 720px; margin-bottom: 12px; }
.location-modal > p { max-width: 760px; color: var(--muted); }
.modal-close { position: absolute; right: 13px; top: 10px; width: 38px; height: 38px; color: var(--navy); background: transparent; border: 1px solid var(--line-dark); font-size: 1.5rem; cursor: pointer; }
.location-modal .preferred-resorts { margin-top: 16px; }

/* Finder location integration */
.finder-location-intro { display: flex; justify-content: space-between; gap: 15px; align-items: center; margin: -5px 0 24px; padding: 13px 15px; background: #e5ece8; border-left: 4px solid var(--teal); }
.finder-location-intro > div { display: grid; }
.finder-location-intro span { color: var(--muted); font-size: .78rem; }
.finder-near { color: var(--navy) !important; font-size: .84rem; }

@media (max-width: 1030px) {
  .location-form, .location-form.compact { grid-template-columns: 1fr 1fr; }
  .location-form .button { width: 100%; }
  .personal-ranking-list { grid-template-columns: 1fr; }
  .preference-and-combo, .map-and-misses { grid-template-columns: 1fr; }
  .proximity-summary { grid-template-columns: 1fr 1fr; }
  .proximity-summary > div:nth-child(2) { border-right: 0; }
  .proximity-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 780px) {
  .location-nav { width: 100%; text-align: center; }
  .location-title, .proximity-heading { grid-template-columns: 1fr; display: grid; }
  .location-actions { justify-content: flex-start; }
  .personal-ranking-list a { grid-template-columns: 38px 1fr 58px 55px; padding: 11px; }
  .preference-and-combo { grid-template-columns: 1fr; }
  .preferred-resorts > div:first-child { display: grid; }
  .review-proximity.no-location > div,
  .proximity-heading,
  .proximity-summary,
  .proximity-table-wrap,
  .map-and-misses,
  .location-controls,
  .proximity-purchase-step { width: min(var(--max), calc(100% - 28px)); }
  .dual-score { width: fit-content; }
  .location-controls span { width: 100%; margin-left: 0; }
}

@media (max-width: 560px) {
  .location-onboarding, .location-modal { padding: 24px 19px; }
  .location-form, .location-form.compact { grid-template-columns: 1fr; }
  .personal-ranking-list a { grid-template-columns: 34px 1fr 48px; }
  .personal-ranking-list a > div:last-child { display: none; }
  .personal-ranking-list a > b { width: 32px; height: 42px; }
  .proximity-summary { grid-template-columns: 1fr; }
  .proximity-summary > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .proximity-summary > div:last-child { border-bottom: 0; }
  .dual-score { width: 100%; }
  .dual-score > div { min-width: 0; flex: 1; }
  .miss-row { display: grid; }
  .miss-row em { text-align: left; }
  .nearby-resort-strip { align-items: flex-start; }
}
.filter-bar:has(#nearby) { grid-template-columns: 1.35fr repeat(4, 1fr); }
@media (max-width: 1030px) { .filter-bar:has(#nearby) { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 560px) { .filter-bar:has(#nearby) { grid-template-columns: 1fr; } }


@media (max-width: 700px) {
  .proximity-table-wrap { overflow: visible; border: 0; background: transparent; }
  .proximity-table, .proximity-table tbody { display: block; width: 100%; }
  .proximity-table thead { display: none; }
  .proximity-table tr {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
    margin-bottom: 12px;
    padding: 14px 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-sm);
  }
  .proximity-table td,
  .proximity-table td:nth-child(n) {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 10px;
    width: auto;
    padding: 8px 0;
    border: 0;
    overflow-wrap: anywhere;
  }
  .proximity-table td:first-child {
    grid-column: 1 / -1;
    display: block;
    padding-bottom: 11px;
    border-bottom: 1px solid var(--line);
  }
  .proximity-table td:not(:first-child)::before {
    color: var(--brick);
    font-family: var(--display);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .proximity-table td:nth-child(2)::before { content: "Access"; }
  .proximity-table td:nth-child(3)::before { content: "Maps"; }
  .proximity-table td:nth-child(4)::before { content: "Access"; }
  .proximity-table td:nth-child(5)::before { content: "Trip"; }
  .trip-pill { white-space: nowrap; }
}

@media (max-width: 480px) {
  .proximity-table tr { grid-template-columns: 1fr; }
  .proximity-table td,
  .proximity-table td:nth-child(n) { grid-column: 1; }
  .proximity-table td:first-child { grid-column: 1; }
}

/* Behavioral decision architecture */
.behavior-path { position: relative; z-index: 48; background: #eee6d8; border-bottom: 1px solid var(--line); }
.behavior-path-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; min-height: 66px; padding-top: 9px; padding-bottom: 9px; }
.behavior-path-label { display: grid; min-width: 150px; }
.behavior-path-label span { color: var(--brick); font-family: var(--display); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.behavior-path-label strong { color: var(--navy); font-size: .86rem; }
.behavior-path ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.behavior-path li { position: relative; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .72rem; }
.behavior-path li:not(:last-child)::after { content: ''; position: absolute; left: 34px; right: 8px; top: 13px; height: 1px; background: var(--line-dark); }
.behavior-path li span { position: relative; z-index: 1; display: grid; place-items: center; width: 27px; height: 27px; color: var(--muted); background: var(--paper); border: 1px solid var(--line-dark); border-radius: 50%; font-family: var(--display); font-weight: 900; }
.behavior-path li b { position: relative; z-index: 2; padding-right: 8px; background: #eee6d8; white-space: nowrap; }
.behavior-path li.complete { color: var(--navy); }
.behavior-path li.complete span { color: #fff; background: var(--teal); border-color: var(--teal); }
.behavior-path-action { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 8px 14px; color: #fff; background: var(--orange); border: 0; font-family: var(--display); font-size: .7rem; font-weight: 900; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.behavior-immediate-benefit { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px 14px; align-items:center; max-width: 820px; margin-top: 18px; padding: 13px 15px; color: var(--navy); background: rgba(244,235,221,.94); border-left: 4px solid var(--mustard); font-size: .85rem; }
.behavior-immediate-benefit strong { font-family: var(--display); }
.behavior-benefit-action { color:var(--brick); font-family:var(--display); font-size:.8rem; font-weight:800; letter-spacing:.02em; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; white-space:nowrap; }
.behavior-benefit-action:hover { color:var(--navy); }
.behavior-card-actions { display: grid; gap: 8px; margin-top: auto; }
.behavior-card-actions + .button { margin-top: 8px; }
.button-quiet { color: var(--navy); background: transparent; border: 1px solid var(--line-dark); }
.button-quiet:hover, .button-quiet[aria-pressed="true"] { color: var(--snow); background: var(--teal); border-color: var(--teal); }
.behavior-operator-link { text-align: center; }
.behavior-click-note { margin: 9px 0 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }

.behavior-location-form.location-form, .behavior-location-form.location-form.compact { grid-template-columns: minmax(230px, 1fr) auto; align-items: end; }
.behavior-location-form .zip-field small { display: block; max-width: 430px; margin-top: 5px; color: var(--muted); font-size: .72rem; }
.behavior-location-form .location-primary-action { min-height: 48px; }
.location-refinements { grid-column: 1 / -1; padding-top: 5px; border-top: 1px solid var(--line); }
.location-refinements summary { display: flex; width: fit-content; gap: 8px; color: var(--navy); font-family: var(--display); font-size: .76rem; font-weight: 900; cursor: pointer; }
.location-refinements summary span { color: var(--muted); font-family: var(--body); font-weight: 600; }
.location-refinement-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 650px; margin-top: 12px; }
.behavior-location-form .location-status { grid-column: 1 / -1; }

.behavior-recommendation-section { padding: 0 0 48px; background: #ddd7cc; }
.behavior-recommendation { display: grid; grid-template-columns: 1fr minmax(250px, 340px); gap: 40px; align-items: center; padding: 30px; color: var(--snow); background: var(--navy); border-top: 7px solid var(--mustard); box-shadow: 0 15px 32px rgba(24,50,74,.12); }
.behavior-recommendation h2 { margin-bottom: 8px; color: var(--snow); }
.behavior-recommendation p { color: #dbe3e4; }
.behavior-recommendation .eyebrow { color: var(--mustard); }
.behavior-recommendation-actions { display: grid; gap: 9px; }
.behavior-recommendation-actions .button-secondary { color: var(--snow); border-color: rgba(255,255,255,.55); }
.behavior-recommendation-actions .button-quiet { color: var(--snow); border-color: rgba(255,255,255,.4); }
.behavior-reassurance { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.behavior-reassurance span { padding: 5px 8px; color: #e9efef; border: 1px solid rgba(255,255,255,.2); font-size: .68rem; }

.review-decision-card { display: grid; grid-template-columns: 1fr 310px; gap: 30px; align-items: center; margin-top: 26px; padding: 25px; color: var(--navy); background: var(--paper); border-top: 6px solid var(--orange); box-shadow: 0 14px 30px rgba(24,50,74,.12); }
.review-decision-card h2 { margin-bottom: 10px; font-size: clamp(1.45rem, 3vw, 2.1rem); }
.review-decision-actions { display: grid; gap: 9px; }
.decision-fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.decision-fit-grid p { margin: 0; padding: 12px; background: #eee7dc; border-left: 3px solid var(--teal); font-size: .86rem; }
.decision-fit-grid p:last-child { border-left-color: var(--brick); }
.sticky-purchase-bar { position: fixed; z-index: 90; left: 50%; bottom: 14px; width: min(920px, calc(100% - 28px)); transform: translateX(-50%); color: var(--snow); background: rgba(24,50,74,.96); border: 1px solid rgba(255,255,255,.25); box-shadow: 0 16px 45px rgba(0,0,0,.28); backdrop-filter: blur(8px); }
.sticky-purchase-inner { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 11px 13px 11px 18px; }
.sticky-purchase-inner > div:first-child { display: grid; }
.sticky-purchase-inner small { color: var(--mustard); font-family: var(--display); font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.sticky-purchase-inner strong { font-size: .86rem; }
.sticky-purchase-inner > div:last-child { display: flex; gap: 8px; }
.sticky-purchase-bar .button { min-height: 39px; padding: 8px 13px; }
.sticky-purchase-bar .button-quiet { color: var(--snow); border-color: rgba(255,255,255,.4); }
.proximity-purchase-step { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; margin-top: 18px; margin-bottom: 0; padding: 22px; background: var(--paper); border-left: 6px solid var(--teal); }
.proximity-purchase-step h3 { margin-bottom: 5px; }
.proximity-purchase-step p { margin: 0; color: var(--muted); }

.finder-behavior-progress { margin-bottom: 20px; padding: 18px; background: #e5ece8; border-left: 5px solid var(--teal); }
.finder-behavior-progress > div:first-child { display: flex; justify-content: space-between; gap: 15px; }
.finder-behavior-progress span { color: var(--muted); font-size: .75rem; }
.finder-behavior-progress strong { color: var(--navy); font-family: var(--display); }
.finder-progress-track { height: 7px; margin: 10px 0; overflow: hidden; background: #cdd8d3; }
.finder-progress-track span { display: block; height: 100%; background: var(--teal); transition: width .2s ease; }
.finder-behavior-progress p { margin: 0; color: var(--muted); font-size: .78rem; }
.behavior-best-match { display: inline-block; margin: -1px 0 10px; padding: 5px 8px; color: var(--snow); background: var(--teal); font-family: var(--display); font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.finder-result-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 13px; }
.finder-alt-separator { color: var(--muted); font-size: .75rem; }

.shortlist-dock { position: fixed; z-index: 95; right: 18px; bottom: 92px; }
.shortlist-dock button { display: grid; min-width: 150px; padding: 10px 14px; color: var(--snow); background: var(--teal); border: 0; box-shadow: 0 8px 24px rgba(24,50,74,.24); text-align: left; cursor: pointer; }
.shortlist-dock span { font-family: var(--display); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.shortlist-dock strong { font-size: .83rem; }
.shortlist-modal-backdrop { position: fixed; inset: 0; z-index: 210; display: grid; place-items: center; padding: 20px; background: rgba(9,25,36,.78); }
.shortlist-modal { position: relative; width: min(760px, 100%); max-height: 88vh; overflow: auto; padding: 32px; background: var(--snow-soft); border-top: 7px solid var(--teal); box-shadow: 0 25px 80px rgba(0,0,0,.35); }
.shortlist-items { display: grid; gap: 10px; margin: 20px 0; }
.shortlist-items article { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 14px; background: var(--paper); border: 1px solid var(--line); }
.shortlist-items article > div:first-child { display: grid; }
.shortlist-items span { color: var(--muted); font-size: .78rem; }
.shortlist-items article > div:last-child { display: flex; gap: 7px; align-items: center; }
.shortlist-items .button { min-height: 38px; padding: 8px 11px; }
.shortlist-principle { padding: 13px; color: var(--navy); background: #e5ece8; border-left: 4px solid var(--teal); }

@media (max-width: 980px) {
  .behavior-path-inner { grid-template-columns: 1fr auto; }
  .behavior-path-label { display: none; }
  .behavior-recommendation, .review-decision-card { grid-template-columns: 1fr; }
  .review-decision-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .proximity-purchase-step { grid-template-columns: 1fr; }
}

@media (max-width: 780px) {
  .behavior-path { overflow-x: auto; }
  .behavior-path-inner { min-width: 690px; }
  .behavior-location-form.location-form, .behavior-location-form.location-form.compact { grid-template-columns: 1fr; }
  .location-refinements, .behavior-location-form .location-status { grid-column: 1; }
  .behavior-recommendation { padding: 24px 19px; }
  .decision-fit-grid { grid-template-columns: 1fr; }
  .review-decision-card { margin-top: 18px; padding: 20px; }
  .review-decision-actions { grid-template-columns: 1fr; }
  .sticky-purchase-bar { bottom: 7px; }
  .sticky-purchase-inner > div:first-child { display: none; }
  .sticky-purchase-inner { justify-content: stretch; padding: 7px; }
  .sticky-purchase-inner > div:last-child { display: grid; grid-template-columns: .9fr 1.1fr; width: 100%; }
  .shortlist-dock { right: 10px; bottom: 76px; }
  .shortlist-items article { grid-template-columns: 1fr; }
  .shortlist-items article > div:last-child { flex-wrap: wrap; }
}

@media (max-width: 560px) {
  .behavior-immediate-benefit { grid-template-columns: 1fr; }
  .behavior-benefit-action { justify-self:start; }
  .location-refinement-grid { grid-template-columns: 1fr; }
  .behavior-recommendation-actions { grid-template-columns: 1fr; }
  .proximity-purchase-step { margin-left: 0; margin-right: 0; }
  .shortlist-modal { padding: 26px 18px; }
  .shortlist-dock button { min-width: 125px; }
}

/* Experimental mountain-travel editorial voice */
.voice-test-banner{background:#25282a;color:#f4ebdd;border-bottom:1px solid rgba(244,235,221,.18);font-size:.76rem;letter-spacing:.025em}.voice-test-banner .container{display:flex;gap:.75rem;align-items:center;justify-content:center;padding:.46rem 1rem}.voice-test-banner strong{text-transform:uppercase;color:#d8a62e;letter-spacing:.1em;font-size:.66rem}.voice-test-banner span{opacity:.84}.mountain-voice-test .review-header .lede,.mountain-voice-test .ranking-hero .lede{max-width:66rem}.mountain-voice-test .rating-hero p,.mountain-voice-test .verdict-box p:last-child{line-height:1.72}@media(max-width:620px){.voice-test-banner .container{align-items:flex-start;flex-direction:column;gap:.12rem}.voice-test-banner span{font-size:.72rem}}

/* North America regional pass directory */
.directory-controls {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .75fr) minmax(210px, .9fr);
  gap: 12px;
  padding: 18px;
  background: var(--navy);
  border: 1px solid rgba(255,255,255,.15);
  margin-bottom: 14px;
}
.directory-controls input,
.directory-controls select {
  width: 100%;
  min-height: 48px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.25);
  background: var(--paper);
  color: var(--navy);
  font: inherit;
}
.directory-count { margin: 0 0 20px; color: var(--muted); }
.directory-count strong { color: var(--navy); font-family: var(--display); font-size: 1.35rem; }
.pass-directory-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pass-directory-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 24px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 5px solid var(--teal);
  box-shadow: 0 8px 25px rgba(24,50,74,.06);
}
.pass-directory-card[hidden] { display: none; }
.pass-directory-card h2 { margin: 14px 0 3px; font-size: clamp(1.55rem, 2vw, 2rem); }
.directory-card-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.directory-region,
.directory-status,
.directory-format {
  font-size: .76rem;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
}
.directory-region { color: var(--brick); }
.directory-status { padding: 6px 9px; background: var(--cream); border: 1px solid var(--line); color: var(--navy); }
.directory-format { margin: 0 0 14px; color: var(--muted); }
.directory-facts { display: grid; grid-template-columns: minmax(120px,.65fr) minmax(0,1.35fr); gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.directory-facts div { min-width: 0; }
.directory-facts small { display: block; margin-bottom: 4px; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.directory-facts strong { display: block; overflow-wrap: anywhere; }
.directory-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 18px; }
.directory-actions .button { flex: 0 1 auto; }
.region-jump-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; margin-top: 22px; }
.region-jump-grid a { display: block; padding: 16px; border: 1px solid var(--line); background: var(--paper); font-family: var(--display); font-weight: 800; color: var(--navy); }
.region-jump-grid a:hover { border-color: var(--orange); transform: translateY(-2px); }
.track-explainer { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 22px; }
.track-explainer > div { padding: 22px; border: 1px solid var(--line); background: var(--paper); }
.track-explainer h2, .track-explainer h3 { margin: 0 0 1em; font-size: 1.8rem; line-height: 1.04; }
.regional-winner-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.regional-winner-card { padding: 22px; background: var(--paper); border: 1px solid var(--line); border-top: 5px solid var(--mustard); }
.regional-winner-card .eyebrow { margin-bottom: 8px; }
.regional-winner-card h3 { margin: 0 0 8px; }
.regional-winner-card .button { margin-top: 10px; }
.profile-only { display: inline-block; padding: 4px 7px; background: var(--cream); border: 1px solid var(--line); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 980px) {
  .directory-controls { grid-template-columns: 1fr 1fr; }
  .directory-controls input { grid-column: 1 / -1; }
  .region-jump-grid { grid-template-columns: repeat(3,1fr); }
  .regional-winner-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 680px) {
  .directory-controls,
  .pass-directory-grid,
  .track-explainer,
  .regional-winner-grid { grid-template-columns: 1fr; }
  .directory-controls input { grid-column: auto; }
  .directory-facts { grid-template-columns: 1fr; }
  .directory-actions { flex-direction: column; }
  .directory-actions .button { width: 100%; text-align: center; }
  .region-jump-grid { grid-template-columns: 1fr 1fr; }
}

/* Complete profile-page system */
.profile-rating-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.05;padding:1rem}.profile-rating-circle::before{content:none}.profile-rating-circle span{position:static;inset:auto;margin:.35rem 0 0}.profile-rating-circle strong{font-size:1rem;letter-spacing:.08em}.profile-rating-circle span{font-size:.68rem;max-width:70px;margin-top:.35rem}.profile-data-note{padding:1rem 1.1rem;border-left:4px solid var(--teal,#3E7774);background:rgba(62,119,116,.08)}.profile-facts-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(24,50,74,.18);margin:1rem 0 2rem}.profile-facts-table>div{padding:1rem;border-bottom:1px solid rgba(24,50,74,.14);display:flex;flex-direction:column;gap:.3rem}.profile-facts-table span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#66727a)}.profile-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0 2rem}.profile-related-grid a{display:flex;flex-direction:column;gap:.4rem;padding:1rem;border:1px solid rgba(24,50,74,.16);background:rgba(255,255,255,.45);text-decoration:none}.profile-related-grid small{color:var(--muted,#66727a)}.profile-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-profile .review-decision-card{margin-top:1.25rem}@media(max-width:900px){.profile-related-grid,.profile-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.profile-facts-table,.profile-related-grid,.profile-library-grid{grid-template-columns:1fr}}

/* Family and junior program research layer */
.nav-links a[href$="family-programs.html"] { white-space: nowrap; }
.family-page-hero { background: linear-gradient(145deg, rgba(24,50,74,.98), rgba(62,119,116,.92)); color: var(--cream); }
.family-page-hero .breadcrumbs, .family-page-hero .breadcrumbs a, .family-page-hero .lede { color: rgba(244,235,221,.88); }
.family-page-hero h1 { max-width: 920px; }
.family-hero-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:28px 0 22px; max-width:900px; }
.family-hero-stats div { border:1px solid rgba(244,235,221,.25); background:rgba(244,235,221,.08); padding:17px 18px; }
.family-hero-stats strong { display:block; font-family:var(--display); font-size:2rem; line-height:1; }
.family-hero-stats span { display:block; margin-top:7px; font-size:.82rem; color:rgba(244,235,221,.76); }
.family-page-hero .notice { color:var(--navy); background:var(--cream); border-left-color:var(--mustard); max-width:920px; }
.family-finder-shell { display:grid; gap:22px; }
.family-filter-panel { border:1px solid rgba(24,50,74,.16); background:#fffdf8; box-shadow:0 16px 42px rgba(24,50,74,.08); padding:28px; }
.family-filter-intro { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); column-gap:34px; align-items:end; margin-bottom:23px; }
.family-filter-intro .eyebrow { grid-column:1/-1; }
.family-filter-intro h2 { margin:0; }
.family-filter-intro p:last-child { margin:0; color:var(--muted); }
.family-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:15px; align-items:end; }
.family-filter-grid label { display:grid; gap:7px; font-size:.74rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; color:var(--navy); }
.family-filter-grid input, .family-filter-grid select { width:100%; min-width:0; border:1px solid rgba(24,50,74,.25); background:white; padding:12px 11px; color:var(--charcoal); font:inherit; font-size:.9rem; letter-spacing:0; text-transform:none; border-radius:2px; }
.family-filter-grid input:focus, .family-filter-grid select:focus { outline:3px solid rgba(216,166,46,.25); border-color:var(--mustard); }
.family-checkbox { display:flex!important; align-items:center; gap:9px!important; min-height:45px; padding:10px 11px; border:1px solid rgba(24,50,74,.16); background:rgba(244,235,221,.45); }
.family-checkbox input { width:auto; margin:0; }
.family-filter-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:20px; border-top:1px solid rgba(24,50,74,.12); padding-top:18px; font-size:.88rem; }
.family-filter-actions span { color:var(--muted); }
.family-results-summary { display:grid; grid-template-columns:150px 180px minmax(0,1fr); gap:12px; align-items:stretch; }
.family-results-summary > div { background:var(--navy); color:var(--cream); padding:17px 20px; }
.family-results-summary strong { display:block; font-family:var(--display); font-size:2rem; line-height:1; }
.family-results-summary span { display:block; margin-top:5px; font-size:.76rem; color:rgba(244,235,221,.72); }
.family-results-summary > p { margin:0; padding:16px 19px; background:rgba(216,166,46,.15); border-left:4px solid var(--mustard); }
.family-results { display:grid; gap:20px; }
.family-resort-card { border:1px solid rgba(24,50,74,.16); background:#fffdf8; box-shadow:0 10px 28px rgba(24,50,74,.07); padding:24px; overflow:hidden; }
.family-resort-card.family-status-pending { border-style:dashed; background:rgba(244,235,221,.38); }
.family-resort-card.family-status-partial { border-left:5px solid var(--mustard); }
.family-resort-card.family-status-verified { border-left:5px solid var(--teal); }
.family-resort-head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; padding-bottom:15px; border-bottom:1px solid rgba(24,50,74,.12); }
.family-resort-head h3 { margin:5px 0 0; font-size:1.55rem; }
.family-resort-meta { display:flex; gap:7px; flex-wrap:wrap; }
.family-resort-meta span { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; background:rgba(24,50,74,.07); padding:5px 8px; }
.family-verification { color:var(--teal); }
.family-status-pending .family-verification { color:var(--brick); }
.family-distance { margin:7px 0 0; color:var(--muted); font-size:.88rem; }
.family-program-count { white-space:nowrap; background:var(--navy); color:var(--cream); font-family:var(--display); font-weight:800; font-size:.78rem; padding:8px 10px; }
.family-pass-list { font-size:.88rem; margin:14px 0; }
.family-pass-list a { color:var(--teal); font-weight:700; }
.family-program-list { display:grid; gap:14px; }
.family-program-item { border:1px solid rgba(24,50,74,.12); background:white; padding:18px; }
.family-program-heading { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; }
.family-program-heading h4 { margin:5px 0 0; font-size:1.15rem; }
.family-program-heading > a { white-space:nowrap; font-size:.8rem; font-weight:800; color:var(--brick); }
.family-type-tag { display:inline-block; font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; font-weight:800; color:var(--teal); }
.family-program-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:14px 0; }
.family-program-facts div { background:rgba(244,235,221,.55); padding:10px; }
.family-program-facts small { display:block; font-size:.64rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); }
.family-program-facts strong { display:block; margin-top:4px; font-size:.83rem; line-height:1.35; }
.family-program-item > p { font-size:.87rem; margin:.7em 0 0; }
.family-extra { color:var(--brick); }
.family-source-note { color:var(--muted); font-size:.75rem!important; border-top:1px solid rgba(24,50,74,.1); padding-top:9px; }
.family-research-note { padding:18px; background:rgba(169,68,56,.07); }
.family-research-note p { margin:.4em 0 0; }
.family-pass-section { background:rgba(244,235,221,.48); }
.family-pass-warning { background:#fffdf8; border-left:5px solid var(--mustard); padding:16px 19px; margin-bottom:22px; }
.family-pass-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.family-pass-grid .family-resort-card { padding:19px; }
.family-pass-grid .family-program-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
.family-pass-grid .family-program-heading { display:block; }
.family-pass-grid .family-program-heading > a { display:inline-block; margin-top:7px; }
.family-pass-grid .family-pass-list { display:none; }
.family-coverage-footnote { color:var(--muted); font-size:.8rem; text-align:center; }
.family-pass-module { padding:30px; border:1px solid rgba(24,50,74,.15); background:#fffdf8; }
.empty-state { text-align:center; padding:45px 25px; background:rgba(244,235,221,.5); border:1px dashed rgba(24,50,74,.25); }
.home-family-teaser { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:34px; align-items:center; }
.home-family-teaser .family-mini-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.home-family-teaser .family-mini-grid div { padding:16px; background:#fffdf8; border:1px solid rgba(24,50,74,.15); }
.home-family-teaser .family-mini-grid strong { display:block; font-family:var(--display); font-size:1.7rem; color:var(--teal); }
.home-family-teaser .family-mini-grid span { font-size:.78rem; color:var(--muted); }

@media (max-width: 1050px) {
  .family-filter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .family-program-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .family-hero-stats { grid-template-columns:repeat(2,1fr); }
  .family-filter-intro { display:block; }
  .family-filter-intro p:last-child { margin-top:10px; }
  .family-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .family-results-summary { grid-template-columns:repeat(2,1fr); }
  .family-results-summary > p { grid-column:1/-1; }
  .family-pass-grid, .home-family-teaser { grid-template-columns:1fr; }
  .family-resort-head, .family-program-heading, .family-filter-actions { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 500px) {
  .family-filter-panel, .family-resort-card { padding:18px; }
  .family-filter-grid, .family-program-facts, .family-pass-grid .family-program-facts { grid-template-columns:1fr; }
  .family-hero-stats { grid-template-columns:1fr 1fr; }
  .family-results-summary { grid-template-columns:1fr 1fr; }
  .family-program-count { white-space:normal; }
}

/* Entrance-based routing states */
.route-calculating { display:inline-flex; align-items:center; gap:7px; font-weight:800; color:var(--teal); }
.route-calculating::before { content:""; width:9px; height:9px; border:2px solid rgba(62,119,116,.25); border-top-color:var(--teal); border-radius:50%; animation:route-spin .8s linear infinite; }
@keyframes route-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .route-calculating::before { animation:none; } }

/* Professional instruction affiliation badges */
.resort-name-with-badge {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.resort-name-with-badge > strong,
.resort-name-with-badge > h3 { margin:0; }
.school-affiliation-badge {
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:max-content;
  max-width:100%;
  padding:4px 7px 3px;
  border:1px solid rgba(24,50,74,.22);
  border-radius:999px;
  background:#fffdf8;
  color:var(--navy);
  font-family:var(--body);
  font-size:.65rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.055em;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
  vertical-align:middle;
}
.school-affiliation-badge:hover,
.school-affiliation-badge:focus-visible {
  border-color:var(--teal);
  color:var(--teal);
  text-decoration:none;
}
.school-affiliation-dot {
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:var(--teal);
}
.school-affiliation-csia .school-affiliation-dot { background:var(--orange); }
.school-affiliation-note {
  margin:10px 0 0;
  color:var(--muted);
  font-size:.77rem;
  line-height:1.45;
}
.family-resort-title { margin-top:7px; }
.family-resort-title h3 { margin:0; }
@media (max-width: 640px) {
  .school-affiliation-badge { font-size:.61rem; padding:4px 6px 3px; }
  .resort-name-with-badge { align-items:flex-start; }
}

/* Pass finder v2: progressive disclosure and one clear recommendation */
.sr-only {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.finder-page-hero .lede { max-width:760px; }
.finder-v2-section { padding-top:44px; }
.finder-v2-layout {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);
  gap:24px;
  align-items:start;
}
.finder-v2 {
  min-height:0;
  padding:28px;
  background:#fffdf8;
  box-shadow:0 14px 38px rgba(24,50,74,.08);
}
.finder-v2-progress { margin:0 0 18px; }
.finder-v2-progress > div:first-child { align-items:baseline; }
.finder-v2-progress strong { font-size:.88rem; text-align:right; }
.finder-v2 .finder-location-intro {
  margin:0 0 12px;
  padding:15px 16px;
}
.finder-v2 .finder-location-intro > div { gap:2px; }
.finder-v2 .finder-location-intro > div > span {
  color:var(--teal);
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.66rem;
}
.finder-v2 .finder-location-intro strong { color:var(--navy); font-size:1rem; }
.finder-v2 .finder-location-intro small { color:var(--muted); line-height:1.4; }
.finder-v2 .finder-location-intro.is-missing { background:rgba(216,166,46,.13); border-left-color:var(--mustard); }
.finder-region-fallback {
  margin-top: 3px;
}
.finder-region-fallback > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 0;
  color: var(--navy);
  font-size: .76rem;
  font-weight: 750;
  line-height: 1.4;
  text-decoration: underline;
  text-decoration-color: rgba(24,50,74,.35);
  text-underline-offset: 3px;
  cursor: pointer;
  list-style: none;
}
.finder-region-fallback > summary::-webkit-details-marker { display: none; }
.finder-region-fallback > summary::after {
  content: "+";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(24,50,74,.3);
  border-radius: 50%;
  font-size: .86rem;
  line-height: 1;
  text-decoration: none;
}
.finder-region-fallback[open] > summary::after { content: "−"; }
.finder-region-fallback > summary:hover { color: var(--brick); }
.finder-region-row {
  display:grid;
  gap:7px;
  max-width: 470px;
  margin: 10px 0 2px;
  padding:12px 14px;
  border-left:3px solid var(--teal);
  background:rgba(255,255,255,.62);
}
.finder-region-row label {
  color:var(--navy);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.finder-v2 .finder-region-row select { margin:0; }
.finder-region-row p {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.4;
}
.finder-question-card {
  min-width:0;
  margin:0;
  padding:21px 0;
  border:0;
  border-top:1px solid rgba(24,50,74,.14);
}
.finder-question-card legend,
.finder-question-title {
  display:flex;
  align-items:flex-start;
  gap:11px;
  width:100%;
  padding:0;
  color:var(--navy);
  font-family:var(--display);
  font-size:1.22rem;
  font-weight:800;
  line-height:1.2;
}
.finder-question-card legend > span,
.finder-question-title > span {
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  flex:0 0 27px;
  border-radius:50%;
  background:var(--navy);
  color:var(--cream);
  font-family:var(--body);
  font-size:.72rem;
}
.finder-question-title label { cursor:default; }
.finder-question-help {
  margin:7px 0 13px 38px;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.45;
}
.finder-question-title .finder-question-help { margin:6px 0 13px; }
.finder-choice-grid {
  display:grid;
  gap:9px;
  margin-left:38px;
}
.finder-choice-grid-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.finder-choice-grid-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.finder-choice-grid label,
.finder-choice-stack label {
  position:relative;
  cursor:pointer;
}
.finder-choice-grid input,
.finder-choice-stack input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.finder-choice-grid label > span {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  height:100%;
  padding:10px 9px;
  border:1px solid rgba(24,50,74,.22);
  background:white;
  color:var(--navy);
  font-size:.82rem;
  font-weight:750;
  line-height:1.25;
  text-align:center;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.finder-choice-grid label > span b { display:block; }
.finder-choice-grid label > span small { display:block; margin-top:3px; color:var(--muted); font-size:.69rem; font-weight:500; }
.finder-choice-grid input:checked + span,
.finder-choice-stack input:checked + span {
  border-color:var(--teal);
  background:#e5ece8;
  box-shadow:inset 0 0 0 1px var(--teal);
}
.finder-choice-grid input:focus-visible + span,
.finder-choice-stack input:focus-visible + span {
  outline:3px solid rgba(216,166,46,.35);
  outline-offset:2px;
}
.mountain-picker { margin-left:38px; }
.mountain-picker-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.finder-v2 .mountain-picker-row input {
  width:100%;
  min-width:0;
  padding:12px;
  border:1px solid var(--line-dark);
  background:white;
  color:var(--ink);
  font:inherit;
}
.mountain-picker-row .button { padding:10px 17px; }
.selected-mountains {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-height:28px;
  margin-top:10px;
}
.selected-mountains > button {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:7px 9px;
  border:1px solid rgba(24,50,74,.18);
  background:rgba(244,235,221,.58);
  color:var(--navy);
  font:inherit;
  font-size:.75rem;
  cursor:pointer;
}
.selected-mountains > button small { color:var(--muted); }
.selected-mountains > button b { margin-left:3px; font-size:1rem; line-height:1; }
.selected-mountains > button:hover,
.selected-mountains > button:focus-visible { border-color:var(--brick); color:var(--brick); }
.selected-mountains-empty { color:var(--muted); font-size:.75rem; }
.finder-refine {
  margin:7px 0 20px;
  border:1px solid rgba(24,50,74,.17);
  background:rgba(244,235,221,.35);
}
.finder-refine summary {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:15px 17px;
  color:var(--navy);
  font-weight:800;
  cursor:pointer;
}
.finder-refine summary span {
  color:var(--muted);
  font-size:.7rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.finder-refine[open] summary { border-bottom:1px solid rgba(24,50,74,.14); }
.finder-refine-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:18px; }
.finder-refine fieldset { min-width:0; margin:0; padding:0; border:0; }
.finder-refine legend { margin-bottom:9px; color:var(--navy); font-size:.78rem; font-weight:800; }
.finder-choice-stack { display:grid; gap:7px; }
.finder-choice-stack label > span {
  display:block;
  padding:9px 10px 9px 32px;
  border:1px solid rgba(24,50,74,.15);
  background:white;
  color:var(--ink);
  font-size:.76rem;
  line-height:1.35;
}
.finder-choice-stack label > span::before {
  content:"";
  position:absolute;
  left:11px;
  top:50%;
  width:10px;
  height:10px;
  transform:translateY(-50%);
  border:1px solid rgba(24,50,74,.45);
  border-radius:50%;
  background:white;
}
.finder-choice-stack input:checked + span::before { border:3px solid var(--teal); }
.finder-refine > .button { margin:0 18px 18px; }
.finder-submit { width:100%; padding:15px 20px; font-size:.92rem; }
.finder-privacy { margin:9px 0 0!important; color:var(--muted)!important; font-size:.72rem; text-align:center; }
.finder-form-error {
  margin:0 0 14px;
  padding:13px 15px;
  border-left:4px solid var(--brick);
  background:rgba(169,68,56,.08);
  color:var(--ink);
  font-size:.8rem;
}
.finder-form-error ul { margin:6px 0 0 18px; padding:0; }
.finder-results-v2 {
  position:sticky;
  top:96px;
  min-height:620px;
  padding:30px;
  overflow:visible;
  background:var(--navy);
  box-shadow:0 16px 44px rgba(24,50,74,.14);
}
.finder-empty-state { max-width:540px; }
.finder-empty-state h2 { margin-top:7px; font-size:2.35rem; }
.finder-empty-points { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:24px 0; }
.finder-empty-points span {
  padding:11px 12px;
  border:1px solid rgba(244,235,221,.2);
  background:rgba(244,235,221,.07);
  color:var(--cream);
  font-size:.76rem;
  font-weight:700;
}
.finder-coverage-note { margin-top:22px!important; color:rgba(244,235,221,.7)!important; font-size:.72rem!important; line-height:1.5; }
.finder-result-intro { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:13px; }
.finder-result-intro .eyebrow { margin:0; }
.finder-result-intro > div { display:flex; align-items:center; gap:8px; color:rgba(244,235,221,.7); font-size:.67rem; }
.finder-context-pill { padding:4px 7px; border:1px solid rgba(244,235,221,.28); color:var(--cream); font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.finder-best-card.finder-result {
  margin:0;
  padding:24px;
  border:0;
  border-top:6px solid var(--mustard);
  background:#fffdf8;
}
.finder-best-head { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; align-items:start; }
.fit-pill {
  display:inline-block;
  margin-bottom:7px;
  padding:5px 8px;
  border-radius:999px;
  font-size:.66rem;
  font-weight:850;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.fit-strong { background:#dbe9e3; color:#225f5b; }
.fit-possible { background:#f5e8c5; color:#725815; }
.fit-weak { background:#f0d8d3; color:#7b3028; }
.finder-best-head h2 { margin:0; color:var(--navy); font-size:2rem; }
.finder-best-head p { margin:7px 0 0; color:var(--muted); font-size:.86rem; }
.finder-price-reference { min-width:135px; padding:12px; background:rgba(244,235,221,.62); text-align:right; }
.finder-price-reference small { display:block; color:var(--muted); font-size:.61rem; line-height:1.3; text-transform:uppercase; letter-spacing:.055em; }
.finder-price-reference strong { display:block; margin-top:5px; color:var(--navy); font-size:.92rem; }
.finder-key-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:19px 0; }
.finder-key-facts > div { padding:11px; background:rgba(244,235,221,.48); }
.finder-key-facts small { display:block; color:var(--muted); font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; }
.finder-key-facts strong { display:block; margin-top:5px; color:var(--navy); font-size:.84rem; }
.finder-key-facts span { display:block; margin-top:3px; color:var(--muted); font-size:.67rem; line-height:1.35; }
.finder-explanation { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.finder-explanation > div { padding:15px; border:1px solid rgba(24,50,74,.13); }
.finder-explanation h3 { margin:0 0 9px; color:var(--navy); font-size:.95rem; }
.finder-explanation ul { margin:0; padding-left:17px; }
.finder-explanation li { margin:0 0 7px; color:var(--ink); font-size:.75rem; line-height:1.43; }
.finder-explanation li:last-child { margin-bottom:0; }
.finder-watch { background:rgba(169,68,56,.045); border-left:4px solid var(--brick)!important; }
.finder-household-note { margin:13px 0 0!important; color:var(--muted)!important; font-size:.7rem!important; }
.finder-result-actions { margin-top:17px; }
.finder-result-actions .button { flex:1 1 190px; text-align:center; }
.finder-conflict-note {
  display:grid;
  gap:3px;
  margin-bottom:12px;
  padding:12px 14px;
  border-left:4px solid var(--brick);
  background:#f4dfda;
  color:var(--ink);
  font-size:.76rem;
}
.finder-conflict-note span { color:var(--muted); }
.finder-refine-prompt {
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin-top:13px;
  padding:13px 15px;
  border:1px solid rgba(244,235,221,.24);
  color:var(--cream);
}
.finder-refine-prompt > div { display:grid; gap:2px; }
.finder-refine-prompt span { color:rgba(244,235,221,.7); font-size:.72rem; }
.finder-refine-prompt .text-button { color:var(--mustard); white-space:nowrap; }
.finder-alternatives { margin-top:12px; border:1px solid rgba(244,235,221,.22); }
.finder-alternatives summary { padding:14px 15px; color:var(--cream); font-size:.8rem; font-weight:800; cursor:pointer; }
.finder-alternatives[open] summary { border-bottom:1px solid rgba(244,235,221,.18); }
.finder-alternatives > div { display:grid; gap:8px; padding:10px; }
.finder-alternatives-visible { padding:0; overflow:hidden; }
.finder-alternatives-visible > .finder-alternatives-head {
  display:flex;
  justify-content:space-between;
  gap:22px;
  align-items:end;
  padding:16px 17px;
  border-bottom:1px solid rgba(244,235,221,.18);
}
.finder-alternatives-head > div { display:grid; gap:3px; }
.finder-alternatives-head span { color:var(--mustard); font-size:.63rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.finder-alternatives-head h3 { margin:0; color:var(--cream); font-size:1.12rem; }
.finder-alternatives-head p { max-width:390px; margin:0; color:rgba(244,235,221,.7); font-size:.7rem; line-height:1.45; text-align:right; }
.finder-alternatives-visible > .finder-alternatives-list { display:grid; gap:8px; padding:10px; }
.finder-alternative-card {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:15px;
  align-items:center;
  padding:13px;
  background:#fffdf8;
  color:var(--ink);
}
.finder-alternative-card span { color:var(--teal); font-size:.61rem; font-weight:850; text-transform:uppercase; letter-spacing:.065em; }
.finder-alternative-card h3 { margin:3px 0; color:var(--navy); font-size:1.05rem; }
.finder-alternative-card p { margin:0; color:var(--muted); font-size:.7rem; line-height:1.4; }
.finder-alternative-card > div:last-child { display:grid; justify-items:end; gap:7px; min-width:120px; }
.finder-alternative-card > div:last-child strong { color:var(--navy); font-size:.75rem; text-align:right; }
.finder-method-note {
  display:grid;
  gap:3px;
  margin-top:12px;
  padding:13px 15px;
  background:rgba(244,235,221,.08);
  color:var(--cream);
  font-size:.72rem;
  line-height:1.45;
}
.finder-method-note span { color:rgba(244,235,221,.72); }
.finder-principles { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.finder-principles article { padding:22px; border:1px solid rgba(24,50,74,.15); background:#fffdf8; }
.finder-principles article > strong { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:var(--navy); color:var(--cream); }
.finder-principles h3 { margin:12px 0 5px; font-size:1.1rem; }
.finder-principles p { margin:0; color:var(--muted); font-size:.8rem; }

@media (max-width:1100px) {
  .finder-v2-layout { grid-template-columns:minmax(0,1fr) minmax(380px,.95fr); }
  .finder-choice-grid-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finder-key-facts { grid-template-columns:1fr; }
  .finder-explanation { grid-template-columns:1fr; }
}
@media (max-width:850px) {
  .finder-v2-layout { grid-template-columns:1fr; }
  .finder-results-v2 { position:static; min-height:0; }
  .finder-principles { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .finder-v2, .finder-results-v2 { padding:20px; }
  .finder-v2-progress > div:first-child,
  .finder-result-intro,
  .finder-refine-prompt { align-items:flex-start; flex-direction:column; }
  .finder-v2-progress strong { text-align:left; }
  .finder-choice-grid-three,
  .finder-choice-grid-four { grid-template-columns:1fr 1fr; }
  .finder-choice-grid,
  .mountain-picker { margin-left:0; }
  .finder-question-help { margin-left:0; }
  .finder-question-card legend,
  .finder-question-title { font-size:1.12rem; }
  .mountain-picker-row { grid-template-columns:1fr; }
  .finder-refine-grid { grid-template-columns:1fr; }
  .finder-best-head { grid-template-columns:1fr; }
  .finder-price-reference { text-align:left; }
  .finder-alternative-card { grid-template-columns:1fr; }
  .finder-alternative-card > div:last-child { justify-items:start; }
  .finder-result-actions .button { width:100%; flex-basis:100%; }
}
@media (max-width:390px) {
  .finder-choice-grid-three,
  .finder-choice-grid-four { grid-template-columns:1fr; }
  .finder-empty-points { grid-template-columns:1fr; }
}
.page-finder .behavior-path { display:none; }
.finder-page-hero h1 { max-width:850px; font-size:clamp(3rem,5.4vw,4.9rem); }
.finder-v2 .finder-location-intro .button { white-space:nowrap; }

/* Kids ski free research layer */
.kids-free-wrap { position:relative; display:inline-flex; align-items:center; }
.kids-free-badge {
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:26px;
  padding:4px 8px;
  border:1px solid rgba(18,95,93,.28);
  border-radius:999px;
  background:#e7f3ed;
  color:#185d50;
  font:800 .58rem/1.15 inherit;
  letter-spacing:.02em;
  cursor:pointer;
  text-align:left;
}
.kids-free-badge:hover,
.kids-free-badge:focus-visible { border-color:#185d50; background:#d9ece3; outline:none; }
.kids-free-symbol { color:#d76a3a; font-size:.62rem; }
.kids-free-info { display:grid; place-items:center; width:15px; height:15px; border-radius:50%; background:#185d50; color:white; font-size:.52rem; }
.kids-free-popover {
  position:absolute;
  z-index:80;
  left:0;
  top:calc(100% + 7px);
  width:min(360px,calc(100vw - 36px));
  padding:15px;
  border:1px solid rgba(24,50,74,.18);
  border-radius:5px;
  background:#fffdf8;
  color:var(--ink);
  box-shadow:0 18px 38px rgba(12,30,45,.22);
  font-size:.7rem;
  line-height:1.45;
}
.kids-free-popover[hidden] { display:none; }
.kids-free-popover strong { display:block; color:var(--navy); font-size:.82rem; }
.kids-free-popover p { margin:7px 0; color:var(--muted); }
.kids-free-popover ul { margin:8px 0; padding-left:18px; color:var(--muted); }
.kids-free-popover a { display:inline-block; margin-top:4px; color:var(--teal); font-weight:800; }
.kids-free-popover small { display:block; margin-top:8px; color:#6d756e; }
.kids-free-disclaimer { padding-top:8px; border-top:1px solid rgba(24,50,74,.12); }
.resort-name-with-badge { flex-wrap:wrap; }
.resort-name-with-badge .kids-free-wrap { max-width:100%; }

.kids-free-value {
  display:grid;
  gap:3px;
  margin:10px 0 14px;
  padding:11px 13px;
  border-left:4px solid var(--teal);
  background:#edf5f0;
}
.kids-free-value.is-conditional { border-left-color:var(--mustard); background:#f7f0dd; }
.kids-free-value span { color:var(--teal); font-size:.58rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.kids-free-value strong { color:var(--navy); font-size:.8rem; }
.kids-free-value small { color:var(--muted); font-size:.67rem; line-height:1.42; }
.kids-free-not-eligible { display:block; margin:10px 0; color:var(--muted); font-size:.68rem; }
.family-pass-value-summary {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:0 0 14px;
  border:1px solid rgba(24,50,74,.14);
  background:rgba(24,50,74,.14);
}
.family-pass-value-summary > div { display:grid; gap:4px; padding:16px; background:#fffdf8; }
.family-pass-value-summary strong { color:var(--navy); font-family:var(--display); font-size:1.75rem; }
.family-pass-value-summary span { color:var(--muted); font-size:.68rem; line-height:1.4; }
.family-results-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }

.finder-kids-free-check {
  margin-top:13px;
  border:1px solid rgba(244,235,221,.24);
  color:var(--cream);
}
.finder-kids-free-check > summary {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:14px 15px;
  cursor:pointer;
  list-style:none;
}
.finder-kids-free-check > summary::-webkit-details-marker { display:none; }
.finder-kids-free-check > summary > span:first-child { display:grid; gap:3px; }
.finder-kids-free-check > summary strong { color:var(--cream); font-size:.8rem; }
.finder-kids-free-check > summary small { color:rgba(244,235,221,.7); font-size:.67rem; }
.finder-kids-free-check > summary > span:last-child { color:var(--mustard); font-size:1.2rem; }
.finder-kids-free-check[open] > summary { border-bottom:1px solid rgba(244,235,221,.18); }
.finder-kids-free-check[open] > summary > span:last-child { transform:rotate(45deg); }
.finder-kids-free-body { padding:15px; background:#fffdf8; color:var(--ink); }
.finder-kids-free-body > label { display:flex; gap:6px; align-items:baseline; color:var(--navy); font-size:.73rem; font-weight:850; }
.finder-kids-free-body > label span { color:var(--muted); font-size:.59rem; font-weight:700; text-transform:uppercase; }
.finder-kids-free-input { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin:7px 0; }
.finder-kids-free-input input { min-height:44px; padding:10px 12px; border:1px solid rgba(24,50,74,.22); background:white; color:var(--ink); }
.finder-kids-free-body > p { margin:0 0 10px; color:var(--muted); font-size:.66rem; line-height:1.4; }
.finder-kids-free-results { display:grid; gap:8px; }
.finder-kids-free-overview { display:grid; gap:3px; padding:12px; background:#edf5f0; }
.finder-kids-free-overview strong { color:var(--navy); font-size:.77rem; }
.finder-kids-free-overview span { color:var(--muted); font-size:.65rem; }
.finder-child-age-row { display:grid; gap:9px; padding:12px; border:1px solid rgba(24,50,74,.14); }
.finder-child-age-row > div:first-child { display:grid; gap:2px; }
.finder-child-age-row > div:first-child > span { color:var(--teal); font-size:.58rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.finder-child-age-row > div:first-child > strong { color:var(--navy); font-size:.76rem; }
.finder-child-age-row > div:first-child > small { color:var(--muted); font-size:.63rem; }
.finder-kid-resorts { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.finder-kid-resort { display:inline-flex; flex-wrap:wrap; align-items:center; gap:5px; padding:5px 7px; background:#f5efe4; }
.finder-kid-resort > strong { color:var(--navy); font-size:.62rem; }
.finder-kid-resort .kids-free-badge { font-size:.52rem; }
.finder-kid-resorts em { color:var(--muted); font-size:.62rem; }

@media (max-width:760px) {
  .family-pass-value-summary,
  .family-results-summary { grid-template-columns:1fr; }
  .kids-free-popover { position:fixed; left:18px; right:18px; top:auto; bottom:18px; width:auto; max-height:70vh; overflow:auto; }
  .finder-kids-free-input { grid-template-columns:1fr; }
}


/* Launch privacy, legal, and compliance UI */
.footer-grid { grid-template-columns: 1.35fr repeat(4, minmax(0, 1fr)); }
.footer-link-button { appearance:none; border:0; padding:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.footer-link-button:hover, .footer-link-button:focus-visible { color:var(--cream); text-decoration:underline; }
.footer-disclosure { margin-top:18px; padding:12px 14px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.05); font-size:.78rem; line-height:1.55; color:#b8c5c7; }
.footer-disclosure a { color:var(--cream); font-weight:700; }

.privacy-banner { position:fixed; z-index:9998; left:18px; right:18px; bottom:18px; background:#fffdf8; color:var(--navy); border:1px solid rgba(24,50,74,.24); box-shadow:0 22px 60px rgba(9,27,41,.28); }
.privacy-banner-inner { max-width:1180px; margin:0 auto; padding:22px 24px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:30px; align-items:center; }
.privacy-banner h2 { margin:.15em 0 .3em; font-size:1.45rem; }
.privacy-banner p { margin:.35em 0; max-width:760px; }
.privacy-banner a { color:var(--teal); font-weight:800; }
.privacy-banner-actions { display:grid; grid-template-columns:repeat(2,minmax(150px,1fr)); gap:9px; min-width:360px; }
.privacy-banner-actions .text-button { grid-column:1/-1; justify-self:center; }

.privacy-dialog-backdrop { position:fixed; inset:0; z-index:9999; display:grid; place-items:center; padding:20px; background:rgba(9,27,41,.68); }
.privacy-dialog { position:relative; width:min(720px,100%); max-height:90vh; overflow:auto; background:#fffdf8; color:var(--navy); padding:30px; box-shadow:0 30px 90px rgba(0,0,0,.36); }
.privacy-dialog h2 { margin:.15em 0 .7em; }
.privacy-dialog-close { position:absolute; top:12px; right:14px; border:0; background:none; font-size:2rem; line-height:1; cursor:pointer; color:var(--navy); }
.privacy-setting-row { display:flex; justify-content:space-between; gap:22px; align-items:center; padding:18px 0; border-top:1px solid rgba(24,50,74,.15); }
.privacy-setting-row p { margin:.3em 0 0; color:var(--muted); font-size:.9rem; }
.privacy-required { white-space:nowrap; font-size:.72rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; background:rgba(28,111,105,.12); color:var(--teal); padding:7px 9px; }
.privacy-switch { position:relative; display:inline-flex; flex:0 0 auto; }
.privacy-switch input { position:absolute; opacity:0; width:1px; height:1px; }
.privacy-switch span { width:52px; height:29px; border-radius:99px; background:#9aa7aa; position:relative; transition:.2s ease; }
.privacy-switch span::after { content:''; position:absolute; width:23px; height:23px; border-radius:50%; background:white; top:3px; left:3px; box-shadow:0 2px 6px rgba(0,0,0,.2); transition:.2s ease; }
.privacy-switch input:checked + span { background:var(--teal); }
.privacy-switch input:checked + span::after { transform:translateX(23px); }
.privacy-switch input:focus-visible + span { outline:3px solid var(--mustard); outline-offset:3px; }
.privacy-switch input:disabled + span { opacity:.45; cursor:not-allowed; }
.privacy-dialog-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.privacy-dialog-status { min-height:1.4em; color:var(--teal); font-weight:700; }
.privacy-dialog-links { font-size:.82rem; }
.privacy-dialog-links a { color:var(--teal); font-weight:800; }

.affiliate-inline-disclosure { font-size:.76rem!important; line-height:1.5; padding:9px 11px; margin:10px 0!important; border-left:3px solid var(--mustard); background:rgba(216,166,46,.11); color:var(--navy)!important; }
.affiliate-inline-disclosure a { color:var(--teal); font-weight:800; }

.legal-hero { background:linear-gradient(135deg,var(--navy),#214b5c); color:var(--cream); padding:58px 0 48px; }
.legal-hero .breadcrumbs a { color:var(--cream); }
.legal-hero .lede { max-width:820px; color:rgba(244,235,221,.84); }
.legal-shell { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:48px; align-items:start; }
.legal-content { width:100%; min-width:0; max-width:820px; }
.legal-content h2 { margin-top:2.1em; padding-top:.3em; border-top:1px solid rgba(24,50,74,.14); }
.legal-content h3 { margin-top:1.6em; }
.legal-content p, .legal-content li { line-height:1.72; }
.legal-content a { color:var(--teal); font-weight:750; }
.legal-meta { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.legal-meta span { padding:7px 10px; background:rgba(24,50,74,.07); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.legal-toc { position:sticky; top:110px; padding:20px; border:1px solid rgba(24,50,74,.15); background:#fffdf8; }
.legal-toc h3 { margin-top:0; }
.legal-toc a { display:block; padding:7px 0; color:var(--teal); font-weight:750; font-size:.88rem; }
.legal-callout { padding:17px 19px; background:rgba(216,166,46,.12); border-left:4px solid var(--mustard); }
.legal-note { padding:17px 19px; background:rgba(28,111,105,.09); border-left:4px solid var(--teal); }
.legal-table-wrap { overflow:auto; margin:22px 0; }
.legal-table { width:100%; border-collapse:collapse; min-width:720px; }
.legal-table th, .legal-table td { text-align:left; vertical-align:top; padding:12px; border:1px solid rgba(24,50,74,.16); font-size:.86rem; line-height:1.5; }
.legal-table th { background:rgba(24,50,74,.07); }
.legal-actions { display:flex; gap:10px; flex-wrap:wrap; margin:24px 0; }

.html-sitemap-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.html-sitemap-group { padding:20px; border:1px solid rgba(24,50,74,.15); background:#fffdf8; }
.html-sitemap-group h2 { margin-top:0; font-size:1.25rem; }
.html-sitemap-group a { display:block; padding:5px 0; color:var(--teal); font-weight:700; font-size:.88rem; }
.error-page { min-height:68vh; display:grid; place-items:center; text-align:center; }
.error-page .error-code { font-family:var(--display); font-size:clamp(5rem,16vw,11rem); line-height:.8; color:var(--teal); }

@media (max-width: 1050px) {
  .footer-grid { grid-template-columns:1.35fr repeat(2,1fr); }
  .footer-grid > div:last-child { grid-column:auto; }
  .html-sitemap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .privacy-banner { left:8px; right:8px; bottom:8px; }
  .privacy-banner-inner { grid-template-columns:1fr; gap:16px; padding:18px; }
  .privacy-banner-actions { min-width:0; grid-template-columns:1fr; }
  .privacy-banner-actions .text-button { grid-column:auto; }
  .privacy-setting-row { align-items:flex-start; }
  .legal-shell { grid-template-columns:1fr; }
  .legal-toc { position:static; order:-1; }
  .html-sitemap-grid { grid-template-columns:1fr; }
}
@media (max-width: 500px) {
  .privacy-dialog { padding:24px 18px; }
  .privacy-setting-row { flex-direction:column; }
  .privacy-dialog-actions .button { width:100%; }
}


/* Regional analytics notice */
.privacy-banner-notice { max-width:960px; margin-left:auto; margin-right:auto; }
.privacy-banner-notice .privacy-banner-inner { padding:18px 22px; }
.privacy-banner-notice h2 { font-size:1.2rem; }
.privacy-region-note { margin:.8rem 0 0; font-size:.82rem; color:var(--muted); }


/* Accessibility and visual refresh: family page */
.family-page-hero { background: linear-gradient(105deg, rgba(12,31,45,.98) 0%, rgba(24,50,74,.95) 45%, rgba(50,94,108,.92) 100%); color: var(--snow); }
.family-page-hero .breadcrumbs, .family-page-hero .breadcrumbs a, .family-page-hero .lede { color: rgba(255,248,238,.94); }
.family-page-hero .eyebrow { color: #f2c75a; }
.family-page-hero h1 { color: var(--snow); text-shadow: 0 1px 0 rgba(0,0,0,.1); }
.family-hero-shell { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:28px; align-items:end; }
.family-hero-copy { min-width:0; }
.family-hero-figure { margin: 4px 0 0; background: rgba(255,255,255,.08); border:1px solid rgba(255,248,238,.25); border-radius: 18px; overflow:hidden; box-shadow: 0 18px 40px rgba(7,18,28,.28); }
.family-hero-figure img { display:block; width:100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 55%; }
.family-hero-figure figcaption { padding:12px 14px; font-size:.84rem; color:rgba(255,248,238,.92); background:rgba(12,31,45,.55); }
.family-hero-stats div { border:1px solid rgba(255,248,238,.28); background:rgba(255,248,238,.10); }
.family-hero-stats strong { color: var(--snow); }
.family-hero-stats span { color: rgba(255,248,238,.9); }
.family-results-summary > div { background:#173550; color: var(--snow); border:1px solid rgba(255,255,255,.08); }
.family-results-summary strong { color: var(--snow) !important; }
.family-results-summary span { color: rgba(255,248,238,.92) !important; }
.family-program-count { background:#16324b; color: var(--snow) !important; border:1px solid rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.family-program-count, .family-program-count * { color: var(--snow) !important; }
.family-resort-card .family-distance { color:#4b5960; }
.family-resort-meta span { color:#46535a; }
.family-verification { color:#234f4d !important; font-weight:700; }
.family-results-summary > p { color: #23343d; }
@media (max-width: 980px) { .family-hero-shell { grid-template-columns:1fr; } .family-hero-figure { max-width: 760px; } }
@media (max-width: 620px) { .family-hero-figure img { aspect-ratio: 16 / 10; } .family-hero-figure figcaption { font-size:.8rem; } }

/* Per-pass review hero imagery */
.page-aspen-snowmass-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/aspen-snowmass-pass.jpg"); }
.page-bbmr-anytime-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/bbmr-anytime-pass.jpg"); }
.page-bold-beautiful-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/bold-beautiful-pass.jpg"); }
.page-boyne-michigan-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/boyne-michigan-pass.jpg"); }
.page-boyne-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/boyne-passport.jpg"); }
.page-cali-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/cali-pass.jpg"); }
.page-canada-grade-4-5-snowpass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/canada-grade-4-5-snowpass.jpg"); }
.page-canadian-lift-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/canadian-lift-pass.jpg"); }
.page-colorado-gems-card .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/colorado-gems-card.jpg"); }
.page-colorado-gems-parent-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/colorado-gems-parent-pass.jpg"); }
.page-colorado-gems-teen-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/colorado-gems-teen-pass.jpg"); }
.page-colorado-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/colorado-gold-pass.jpg"); }
.page-colorado-kids-ski-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/colorado-kids-ski-passport.jpg"); }
.page-epic-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/epic-pass.jpg"); }
.page-freedom-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/freedom-pass.jpg"); }
.page-ikon-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ikon-pass.jpg"); }
.page-indy-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/indy-pass.jpg"); }
.page-legendary-midwest-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/legendary-midwest-pass.jpg"); }
.page-lest-go-card .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/lest-go-card.jpg"); }
.page-michigan-cold-is-cool .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/michigan-cold-is-cool.jpg"); }
.page-midwest-gold-card .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/midwest-gold-card.jpg"); }
.page-mountain-collective .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/mountain-collective.jpg"); }
.page-mt-hood-fusion-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/mt-hood-fusion-pass.jpg"); }
.page-new-england-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/new-england-pass.jpg"); }
.page-nh-college-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/nh-college-pass.jpg"); }
.page-pa-outdoor-adventure-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/pa-outdoor-adventure-pass.jpg"); }
.page-pick-maine-ticket-pack .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/pick-maine-ticket-pack.jpg"); }
.page-powder-alliance .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/powder-alliance.jpg"); }
.page-power-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/power-pass.jpg"); }
.page-rcr-rockies-card .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/rcr-rockies-card.jpg"); }
.page-rcr-rockies-season-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/rcr-rockies-season-pass.jpg"); }
.page-rocky-mountain-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/rocky-mountain-passport.jpg"); }
.page-ski-california-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-california-gold-pass.jpg"); }
.page-ski-idaho-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-idaho-passport.jpg"); }
.page-ski-maine-mountain-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-maine-mountain-pass.jpg"); }
.page-ski-nh-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-nh-gold-pass.jpg"); }
.page-ski-nh-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-nh-passport.jpg"); }
.page-ski-ny-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-ny-gold-pass.jpg"); }
.page-ski-ny-kids-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-ny-kids-passport.jpg"); }
.page-ski-passe-partout .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-passe-partout.jpg"); }
.page-ski-utah-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-utah-gold-pass.jpg"); }
.page-ski-utah-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-utah-passport.jpg"); }
.page-ski-vermont-4pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-vermont-4pass.jpg"); }
.page-ski-vermont-fifth-grade-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski-vermont-fifth-grade-passport.jpg"); }
.page-ski3-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/ski3-pass.jpg"); }
.page-skibig3-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/skibig3-pass.jpg"); }
.page-skiing-wisconsin-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/skiing-wisconsin-passport.jpg"); }
.page-sno-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/sno-pass.jpg"); }
.page-snow-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/snow-pass.jpg"); }
.page-snow-triple-play .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/snow-triple-play.jpg"); }
.page-sun-n-snow-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/sun-n-snow-pass.jpg"); }
.page-uphill-new-england .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/uphill-new-england.jpg"); }
.page-us-ski-snowboard-gold-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/us-ski-snowboard-gold-pass.jpg"); }
.page-white-mountain-superpass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/white-mountain-superpass.jpg"); }
.page-winterkids-passport .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/winterkids-passport.jpg"); }
.page-yeti-pass .review-header { background-image: linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%), linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%), url("review-heroes/yeti-pass.jpg"); }


/* Family programs hero: full-width image treatment */
.family-page-hero {
  background-image: linear-gradient(90deg, rgba(12,31,45,.96) 0%, rgba(12,31,45,.90) 38%, rgba(12,31,45,.55) 68%, rgba(12,31,45,.28) 100%), url("images/family-programs-lifestyle.jpg");
  background-size: cover;
  background-position: center 20%;
  background-repeat: no-repeat;
  min-height: 700px;
  display: flex;
  align-items: end;
}
.family-page-hero .container { padding-bottom: 28px; }
.family-page-hero h1 { max-width: 760px; }
.family-page-hero .lede { max-width: 760px; }
.family-page-hero .notice {
  color: var(--snow);
  background: rgba(12,31,45,.68);
  border: 1px solid rgba(255,248,238,.18);
  border-left: 4px solid var(--mustard);
  max-width: 900px;
  box-shadow: 0 10px 22px rgba(7,18,28,.14);
}
.family-hero-stats { max-width: 900px; }
.family-hero-stats div {
  border: 1px solid rgba(255,248,238,.24);
  background: rgba(12,31,45,.56);
  backdrop-filter: blur(2px);
}
@media (max-width: 980px) {
  .family-page-hero { min-height: 760px; background-position: center 20%; }
}
@media (max-width: 620px) {
  .family-page-hero { min-height: 680px; background-position: 58% center; }
  .family-page-hero .container { padding-bottom: 18px; }
}

.near-you-badge, .near-you-badge * { color: var(--snow) !important; }


/* Hero focal points adjusted in the source crops so subjects remain clear of left-side copy. */
.page-new-england-pass .review-header,
.page-indy-pass .review-header { background-position: center center; }
.family-page-hero { background-position: center 20%; }
@media (max-width: 980px) {
  .page-new-england-pass .review-header,
  .page-indy-pass .review-header { background-position: center center; }
  .family-page-hero { background-position: center 20%; }
}
@media (max-width: 620px) {
  .page-new-england-pass .review-header,
  .page-indy-pass .review-header { background-position: 56% center; }
  .family-page-hero { background-position: 55% center; }
}


/* Homepage hero focal-point and image-impact refinement */
.ranking-hero h1, .ranking-hero .lede, .ranking-hero .eyebrow, .ranking-hero .trust { text-shadow: 0 2px 14px rgba(4,16,26,.36); }
@media (max-width: 1100px) {
  .ranking-hero { background-size: 122% auto; background-position: 10% 68%; }
}
@media (max-width: 760px) {
  .ranking-hero { background-size: auto 108%; background-position: 64% 55%; }
  .ranking-hero::before {
    background: linear-gradient(90deg, rgba(10,28,42,.94) 0%, rgba(10,28,42,.78) 62%, rgba(10,28,42,.36) 100%), linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18));
  }
}


/* Licensed-photo refresh */
.review-header { background-position: 72% center; }
@media (max-width: 980px) { .review-header { background-position: 68% center; } }
@media (max-width: 620px) { .review-header { background-position: 62% center; } }


/* Review hero reliability and contrast fix */
.review-header {
  background-color: #0b2030;
  background-size: cover;
  background-repeat: no-repeat;
}
.review-header .container { position: relative; z-index: 1; }
.review-header h1 {
  max-width: 800px;
  text-shadow: 0 3px 18px rgba(0,0,0,.72);
}
.review-header .breadcrumbs,
.review-header .breadcrumbs a,
.review-header .lede,
.review-header .rating-hero p {
  color: #f1f3ef;
  text-shadow: 0 2px 12px rgba(0,0,0,.82);
}
.review-header .eyebrow,
.review-header .rating-hero h2 {
  text-shadow: 0 2px 12px rgba(0,0,0,.72);
}
.review-header .meta-pill {
  color: #fffaf0;
  background: rgba(8,22,34,.78);
  border-color: rgba(255,255,255,.58);
  box-shadow: 0 1px 7px rgba(0,0,0,.18);
}
.review-header .rating-hero {
  padding: 12px 14px 12px 0;
  border-radius: 2px;
}
@media (max-width: 760px) {
  .review-header h1 { max-width: 100%; }
  .review-header .lede { max-width: 100%; }
}


/* Focused hero treatment for images that should not be aggressively cropped. */
.page-colorado-kids-ski-passport .review-header,
.page-sun-n-snow-pass .review-header {
  background-color: #0a2233;
  background-size: 100% 100%, 100% 100%, auto 100%;
  background-position: center, center, right center;
  background-repeat: no-repeat;
}
.page-colorado-kids-ski-passport .review-header {
  background-image:
    linear-gradient(90deg, rgba(8,22,34,.99) 0%, rgba(8,22,34,.97) 39%, rgba(8,22,34,.82) 57%, rgba(8,22,34,.34) 78%, rgba(8,22,34,.10) 100%),
    linear-gradient(0deg, rgba(8,22,34,.62) 0%, rgba(8,22,34,.14) 58%, rgba(8,22,34,0) 82%),
    url("review-heroes/colorado-kids-ski-passport.jpg");
}
.page-sun-n-snow-pass .review-header {
  background-image:
    linear-gradient(90deg, rgba(8,22,34,.99) 0%, rgba(8,22,34,.97) 40%, rgba(8,22,34,.80) 58%, rgba(8,22,34,.30) 80%, rgba(8,22,34,.08) 100%),
    linear-gradient(0deg, rgba(8,22,34,.64) 0%, rgba(8,22,34,.16) 58%, rgba(8,22,34,0) 82%),
    url("review-heroes/sun-n-snow-pass.jpg");
}
@media (max-width: 980px) {
  .page-colorado-kids-ski-passport .review-header,
  .page-sun-n-snow-pass .review-header {
    background-size: 100% 100%, 100% 100%, auto 100%;
    background-position: center, center, 68% center;
  }
}
@media (max-width: 620px) {
  .page-colorado-kids-ski-passport .review-header,
  .page-sun-n-snow-pass .review-header {
    background-size: 100% 100%, 100% 100%, cover;
    background-position: center, center, 66% center;
  }
}


/* Finder flow and accessibility improvements */
.finder-v2-progress {
  position: sticky;
  top: 94px;
  z-index: 32;
  margin: -28px -28px 22px;
  padding: 17px 28px 15px;
  background: rgba(255,253,248,.97);
  border-bottom: 1px solid rgba(24,50,74,.16);
  box-shadow: 0 9px 22px rgba(24,50,74,.10);
  backdrop-filter: blur(10px);
}
.finder-v2-progress > div:first-child { gap: 18px; }
.finder-v2-progress > div:first-child > span { color: var(--teal); font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.finder-progress-head { align-items: center; }
.finder-progress-status { display: flex; justify-content: flex-end; gap: 12px; align-items: center; }
.finder-progress-status strong { white-space: nowrap; }
.finder-progress-submit { min-height: 38px; padding: 8px 14px; font-size: .74rem; white-space: nowrap; }
.finder-progress-submit[hidden] { display: none; }
.finder-v2-progress p { margin-bottom: 0; }
.finder-start-step {
  margin: 0 0 22px;
  padding: 18px;
  border: 2px solid var(--mustard);
  background: rgba(216,166,46,.09);
  box-shadow: 0 9px 22px rgba(24,50,74,.06);
}
.finder-start-heading {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 13px;
  align-items: start;
  margin-bottom: 14px;
}
.finder-start-heading > span,
.finder-flow-heading > span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 9px;
  color: #fff;
  background: var(--brick);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.finder-start-heading h2,
.finder-flow-heading h2 { margin: 0 0 4px; color: var(--navy); font-size: 1.28rem; }
.finder-start-heading p,
.finder-flow-heading p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.45; }
.finder-start-heading > strong {
  padding: 6px 8px;
  color: var(--brick);
  background: rgba(169,68,56,.09);
  border: 1px solid rgba(169,68,56,.22);
  font-size: .66rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.finder-start-step .finder-location-intro { margin-bottom: 10px; background: #fffdf8; }
.finder-start-step .finder-location-intro.is-missing { background: #fff8e8; }
.finder-start-step .finder-location-intro .button-orange { min-width: 132px; }
.finder-start-step .finder-region-row { margin-bottom: 0; }
.finder-flow-heading {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 12px;
  align-items: start;
  margin: 0 0 4px;
  padding: 2px 0 11px;
}
.finder-flow-heading > span { background: var(--teal); }
.finder-question-flow { position: relative; transition: opacity .2s ease; }
.finder-question-flow.is-locked { opacity: .46; }
.finder-question-flow.is-locked::before {
  content: "Set your home base above to unlock these questions";
  position: absolute;
  z-index: 4;
  top: 8px;
  left: 0;
  right: 0;
  display: block;
  padding: 10px 12px;
  color: var(--navy);
  background: rgba(255,248,232,.96);
  border: 1px solid rgba(216,166,46,.48);
  font-size: .76rem;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 8px 18px rgba(24,50,74,.08);
}
.finder-question-card legend > span:not(.sr-only),
.finder-question-title > span {
  color: #fff !important;
  background: #18324a !important;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px rgba(24,50,74,.35);
  font-size: .82rem !important;
  font-weight: 900 !important;
  line-height: 1;
}
.finder-question-label-row { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.finder-optional-badge {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 4px 7px;
  color: var(--teal);
  background: #e5ece8;
  border: 1px solid rgba(55,126,120,.32);
  font-family: var(--body);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.finder-refine-grid-single { grid-template-columns: 1fr; }
@media (max-width: 780px) {
  .finder-v2-progress {
    top: 76px;
    margin: -20px -18px 18px;
    padding: 13px 18px 12px;
  }
  .finder-v2-progress p { display: none; }
  .finder-start-heading { grid-template-columns: auto minmax(0,1fr); }
  .finder-start-heading > strong { grid-column: 2; justify-self: start; }
}


/* Finder drive-limit integrity */
.fit-no-match { background:#f0d8d3; color:#7b3028; }
.finder-no-fit-card { border-top-color:var(--brick)!important; }
.finder-no-fit-card .finder-best-head { grid-template-columns:1fr; }
.finder-no-fit-card .finder-best-head h2 { max-width:760px; font-size:clamp(1.65rem,2.7vw,2.35rem); line-height:1.08; }
.finder-no-fit-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.finder-no-fit-actions .button { flex:1 1 180px; text-align:center; }
.finder-outside-options { border-color:rgba(244,235,221,.32); }
.finder-outside-card span { color:var(--brick); }
.finder-outside-card p { max-width:620px; }
@media (max-width:600px) {
  .finder-no-fit-actions .button { width:100%; flex-basis:100%; }
}


/* What We Actually Use: value-first editorial test */
.home-use-teaser { background: var(--snow-soft); }
.home-use-panel { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr); gap:36px; align-items:center; padding:42px 44px; background:#e8ede8; border:1px solid rgba(24,50,74,.14); border-top:6px solid var(--mustard); box-shadow:0 16px 38px rgba(24,50,74,.08); }
.home-use-copy h2 { max-width:650px; margin-bottom:12px; font-size:clamp(2rem,4vw,3.25rem); }
.home-use-copy > p:not(.eyebrow) { max-width:720px; margin-bottom:22px; font-size:1.04rem; line-height:1.72; }
.home-use-proof { display:grid; gap:1px; background:rgba(24,50,74,.12); border:1px solid rgba(24,50,74,.12); }
.home-use-proof span { display:block; padding:16px 18px; background:rgba(255,255,255,.72); }
.home-use-proof strong,.home-use-proof small { display:block; }
.home-use-proof strong { color:var(--navy); font-family:var(--display); font-size:.95rem; }
.home-use-proof small { margin-top:3px; color:var(--muted); }

.use-page-hero { position:relative; overflow:hidden; padding:82px 0 68px; color:var(--snow); background:linear-gradient(125deg,#0d2639 0%,#18324a 55%,#285b67 100%); border-bottom:7px solid var(--mustard); }
.use-page-hero .container { position:relative; z-index:1; }
.use-page-hero .breadcrumbs,.use-page-hero .breadcrumbs a { color:rgba(255,255,255,.84); }
.use-page-hero .eyebrow { color:#f2c75a; }
.use-page-hero h1 { max-width:760px; margin-bottom:14px; color:#fffaf0; font-size:clamp(3.2rem,7vw,6.4rem); line-height:.88; letter-spacing:-.045em; }
.use-page-hero .lede { max-width:770px; color:#eef3ef; font-size:1.18rem; line-height:1.7; }
.use-hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); gap:54px; align-items:end; }
.use-hero-actions { display:flex; flex-wrap:wrap; gap:20px; align-items:center; margin-top:27px; }
.text-link-light { color:#fff; font-weight:800; text-decoration-color:rgba(255,255,255,.55); text-underline-offset:4px; }
.use-hero-proof { display:grid; padding:24px; background:rgba(6,20,31,.54); border:1px solid rgba(255,255,255,.22); box-shadow:0 18px 42px rgba(0,0,0,.18); backdrop-filter:blur(4px); }
.use-hero-proof p { margin:0 0 15px; color:#f2c75a; font-size:.72rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.use-hero-proof strong { margin-top:13px; color:#fff; font-family:var(--display); font-size:1rem; }
.use-hero-proof span { margin-top:3px; color:#dbe5e1; font-size:.86rem; line-height:1.45; }

.use-intro-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:42px; align-items:center; }
.use-intro-grid h2 { font-size:clamp(2.2rem,4vw,3.6rem); }
.use-intro-grid p { max-width:760px; line-height:1.75; }
.use-disclosure { padding:25px 28px; background:#f5ead2; border-left:5px solid var(--mustard); }
.use-disclosure strong { color:var(--navy); font-family:var(--display); font-size:1.05rem; }
.use-disclosure p { margin:7px 0 9px; font-size:.91rem; line-height:1.6; }
.use-disclosure a { color:var(--brick); font-weight:800; }
.use-section-head { margin-bottom:34px; }
.use-product-stack { display:grid; gap:28px; }
.use-product-card { display:grid; grid-template-columns:150px minmax(0,1fr); overflow:hidden; background:#fffdf8; border:1px solid rgba(24,50,74,.16); box-shadow:0 15px 35px rgba(24,50,74,.08); }
.use-product-card:nth-child(2) .use-product-mark { background:#356e6c; }
.use-product-card:nth-child(3) .use-product-mark { background:#9b4c3f; }
.use-product-mark { display:flex; flex-direction:column; justify-content:space-between; min-height:100%; padding:24px 20px; color:#fff; background:#18324a; }
.use-product-mark b { font-family:var(--display); font-size:2.8rem; line-height:1; }
.use-product-mark span { writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--display); font-size:1.1rem; letter-spacing:.22em; }
.use-product-body { padding:32px 34px 30px; }
.use-badges { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px; }
.use-badges span { padding:6px 8px; color:var(--navy); background:#e6ece8; border:1px solid rgba(24,50,74,.13); font-size:.67rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.use-category { margin:0 0 5px; color:var(--brick); font-size:.72rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.use-product-body h2 { margin:0; color:var(--navy); font-size:clamp(1.6rem,3vw,2.4rem); }
.use-product-body h3 { margin:4px 0 15px; color:var(--teal); font-size:clamp(1.35rem,2.5vw,2rem); }
.use-lead { max-width:930px; font-size:1.02rem; line-height:1.75; }
.use-detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin:24px 0 17px; }
.use-detail-grid div { padding:17px 18px; background:#f2efe7; border-top:4px solid rgba(24,50,74,.24); }
.use-detail-grid strong { display:block; margin-bottom:7px; color:var(--navy); font-family:var(--display); font-size:.88rem; }
.use-detail-grid p { margin:0; color:#4f5b60; font-size:.84rem; line-height:1.55; }
.use-proof-line { display:flex; flex-wrap:wrap; gap:8px 18px; padding:13px 0; border-top:1px solid rgba(24,50,74,.13); border-bottom:1px solid rgba(24,50,74,.13); }
.use-proof-line span { position:relative; padding-left:15px; color:var(--navy); font-size:.78rem; font-weight:800; }
.use-proof-line span::before { content:"✓"; position:absolute; left:0; color:var(--teal); }
.use-buy-row { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-top:20px; }
.use-buy-row small { max-width:260px; color:var(--muted); line-height:1.4; }
.use-standard-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.use-standard-grid article { padding:24px 22px; background:#eef1ec; border-top:5px solid var(--teal); }
.use-standard-grid b { color:var(--brick); font-family:var(--display); font-size:1.5rem; }
.use-standard-grid h3 { margin:15px 0 8px; font-size:1.15rem; }
.use-standard-grid p { margin:0; color:var(--muted); font-size:.88rem; line-height:1.6; }
.use-none-note { margin-top:22px; padding:25px 28px; color:#eef3ef; background:var(--navy); border-left:6px solid var(--mustard); }
.use-none-note strong { color:#fff; font-family:var(--display); font-size:1.2rem; }
.use-none-note p { max-width:900px; margin:6px 0 0; color:#dbe5e1; line-height:1.65; }

@media (max-width:960px) {
  .home-use-panel,.use-hero-grid,.use-intro-grid { grid-template-columns:1fr; }
  .use-hero-proof { max-width:680px; }
  .use-detail-grid { grid-template-columns:1fr; }
  .use-standard-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:650px) {
  .home-use-panel { padding:30px 24px; }
  .use-page-hero { padding:62px 0 52px; }
  .use-product-card { grid-template-columns:1fr; }
  .use-product-mark { min-height:auto; flex-direction:row; align-items:center; padding:14px 20px; }
  .use-product-mark b { font-size:1.8rem; }
  .use-product-mark span { writing-mode:horizontal-tb; transform:none; }
  .use-product-body { padding:24px 20px 25px; }
  .use-standard-grid { grid-template-columns:1fr; }
  .use-buy-row .button { width:100%; text-align:center; }
}


/* What We Actually Use — approved Option A visual treatment */
.home-use-panel-visual { grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); align-items:stretch; }
.home-use-standards { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.home-use-standards span { padding:7px 10px; color:var(--navy); background:rgba(255,255,255,.72); border:1px solid rgba(24,50,74,.16); font-size:.7rem; font-weight:850; letter-spacing:.055em; text-transform:uppercase; }
.home-use-photos { display:grid; grid-template-columns:1.12fr .88fr; gap:10px; min-height:300px; }
.home-use-photos figure { position:relative; min-height:300px; margin:0; overflow:hidden; background:#132d43; }
.home-use-photos img { width:100%; height:100%; object-fit:cover; }
.home-use-photos figure:first-child img { object-position:52% 48%; }
.home-use-photos figcaption { position:absolute; left:12px; bottom:12px; padding:7px 9px; color:#fff; background:rgba(9,29,44,.82); font-size:.67rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }

.use-picks-option-a { background:#f4ecdf; }
.use-visual-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.use-visual-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; background:#0f2a40; border:1px solid rgba(24,50,74,.2); border-radius:16px; box-shadow:0 20px 42px rgba(24,50,74,.14); }
.use-visual-card.use-top-pick { box-shadow:0 24px 52px rgba(24,50,74,.21); transform:translateY(-8px); }
.use-visual-card.use-top-pick::before { content:"TOP PICK"; position:absolute; z-index:3; margin:16px; padding:7px 10px; color:#132c42; background:#f2c75a; border-radius:999px; font-size:.65rem; font-weight:900; letter-spacing:.08em; }
.use-visual-media { position:relative; aspect-ratio:4/3; margin:0; overflow:hidden; background:#162b3b; }
.use-visual-media img { width:100%; height:100%; object-fit:cover; display:block; }
.use-visual-media.use-visual-illustration img { object-fit:cover; }
.use-visual-media figcaption { position:absolute; right:10px; bottom:10px; left:10px; padding:7px 9px; color:#fff; background:rgba(7,25,39,.8); font-size:.64rem; line-height:1.35; }
.use-visual-body { display:flex; flex-direction:column; flex:1; padding:24px 22px 22px; color:#eef2f1; background:linear-gradient(150deg,#0c2940,#173a55); }
.use-card-title { display:flex; gap:12px; align-items:flex-start; margin-bottom:13px; }
.use-card-number { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; color:#18324a; background:#f2c75a; border-radius:50%; font-family:var(--display); font-size:1rem; font-weight:900; }
.use-card-title h3 { margin:1px 0 0; color:#fff8ec; font-size:clamp(1.24rem,2.1vw,1.72rem); line-height:1.04; }
.use-card-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.use-card-chips span { padding:6px 9px; color:#f6d376; border:1px solid rgba(242,199,90,.65); border-radius:999px; font-size:.64rem; font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
.use-visual-body > p { margin:0 0 13px; color:#eef2f0; line-height:1.62; }
.use-card-caution { padding-top:12px; border-top:1px solid rgba(255,255,255,.16); font-size:.82rem; }
.use-card-caution strong { color:#f6d376; }
.use-card-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:auto; padding-top:8px; }
.use-card-actions .button { display:flex; min-height:48px; align-items:center; justify-content:center; padding:10px 12px; text-align:center; font-size:.72rem; }
.use-card-note { color:#f6d376; background:transparent; border:1px solid #f2c75a; }
.use-card-price { color:#152e44; background:#f2c75a; border:1px solid #f2c75a; }
.use-card-note:hover,.use-card-note:focus-visible { color:#142d43; background:#f2c75a; }
.use-card-price:hover,.use-card-price:focus-visible { color:#fff; background:#d95f3b; border-color:#d95f3b; }
.use-visual-body small { display:block; margin-top:12px; color:rgba(255,255,255,.67); font-size:.67rem; line-height:1.45; }

.use-budget-card { display:grid; grid-template-columns:220px minmax(0,1fr) 220px; gap:26px; align-items:center; margin-top:28px; padding:22px; background:#fffaf1; border:1px solid rgba(24,50,74,.16); border-left:7px solid #f2c75a; border-radius:14px; box-shadow:0 16px 34px rgba(24,50,74,.09); }
.use-budget-visual { overflow:hidden; aspect-ratio:4/3; border-radius:10px; background:#18324a; }
.use-budget-visual img { width:100%; height:100%; object-fit:cover; }
.use-budget-copy .eyebrow { margin-bottom:4px; }
.use-budget-copy h3 { margin:0 0 8px; color:var(--navy); font-size:1.55rem; }
.use-budget-copy p:not(.eyebrow) { margin:0; line-height:1.65; }
.use-budget-proof { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.use-budget-proof span { padding:5px 8px; color:#31525a; background:#e7ece6; border:1px solid rgba(24,50,74,.12); font-size:.64rem; font-weight:800; text-transform:uppercase; }
.use-budget-actions { display:grid; gap:9px; }
.use-budget-actions .button { text-align:center; }

.use-photo-proof { display:grid; grid-template-columns:minmax(0,.85fr) minmax(480px,1.15fr); gap:32px; align-items:center; margin-top:34px; padding:30px; color:#f4f3ee; background:#18324a; border-top:6px solid #356e6c; }
.use-photo-proof h3 { margin:0 0 8px; color:#fff8ec; font-size:1.55rem; }
.use-photo-proof p:not(.eyebrow) { margin:0; color:#dfe7e5; line-height:1.7; }
.use-photo-proof-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:10px; }
.use-photo-proof figure { position:relative; min-height:230px; margin:0; overflow:hidden; }
.use-photo-proof img { width:100%; height:100%; object-fit:cover; }
.use-photo-proof figcaption { position:absolute; right:8px; bottom:8px; left:8px; padding:7px 9px; color:#fff; background:rgba(8,27,42,.82); font-size:.65rem; font-weight:800; text-transform:uppercase; }

@media (max-width:1050px) {
  .use-visual-grid { grid-template-columns:1fr 1fr; }
  .use-visual-card:last-child { grid-column:1 / -1; max-width:650px; justify-self:center; }
  .use-visual-card.use-top-pick { transform:none; }
  .use-budget-card { grid-template-columns:180px minmax(0,1fr); }
  .use-budget-actions { grid-column:1 / -1; grid-template-columns:1fr 1fr; }
  .use-photo-proof { grid-template-columns:1fr; }
}
@media (max-width:820px) {
  .home-use-panel-visual { grid-template-columns:1fr; }
  .home-use-photos { min-height:250px; }
  .home-use-photos figure { min-height:250px; }
  .use-visual-grid { grid-template-columns:1fr; }
  .use-visual-card:last-child { grid-column:auto; max-width:none; }
  .use-budget-card { grid-template-columns:1fr; }
  .use-budget-visual { max-height:280px; }
  .use-budget-actions { grid-column:auto; grid-template-columns:1fr; }
  .use-photo-proof-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  .home-use-photos { grid-template-columns:1fr; }
  .home-use-photos figure { min-height:220px; }
  .use-card-actions { grid-template-columns:1fr; }
  .use-photo-proof { padding:22px 18px; }
  .use-photo-proof-grid { grid-template-columns:1fr; }
  .use-photo-proof figure { min-height:210px; }
}


/* Compact homepage exploration paths */
.home-explore-section {
  padding: 64px 0 68px;
  background: #e9e3d8;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.home-explore-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
  gap: 42px;
  align-items: end;
  margin-bottom: 28px;
}
.home-explore-head h2 { margin-bottom: 0; font-size: clamp(2.1rem, 4vw, 3.35rem); }
.home-explore-head > p { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.home-explore-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.home-explore-card {
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  min-height: 236px;
  padding: 25px 24px 23px;
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 5px solid var(--teal);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(31,40,47,.055);
  transition: transform 150ms ease, box-shadow 150ms ease, border-color 150ms ease;
}
.home-explore-card:hover,
.home-explore-card:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: rgba(24,50,74,.34); }
.home-explore-reviews { border-top-color: var(--mustard); }
.home-explore-trips { border-top-color: var(--brick); }
.home-explore-family { border-top-color: var(--orange); }
.home-explore-mark { color: rgba(24,50,74,.34); font-family: var(--display); font-size: 1.45rem; font-weight: 800; line-height: 1; }
.home-explore-card .card-tag { margin: 0 0 10px; color: var(--brick); font-size: .68rem; }
.home-explore-card h3 { margin: 0 0 12px; font-size: clamp(1.38rem, 2vw, 1.72rem); line-height: 1.03; }
.home-explore-card p:not(.card-tag) { margin: 0 0 20px; color: var(--muted); font-size: .92rem; line-height: 1.55; }
.home-explore-card strong { display: inline-block; margin-top: auto; color: var(--navy); font-family: var(--display); font-size: .88rem; letter-spacing: .02em; }
.home-explore-card > div { display: flex; min-width: 0; flex-direction: column; }
.home-explore-card::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -45px;
  width: 120px;
  height: 92px;
  background: currentColor;
  opacity: .04;
  clip-path: polygon(50% 0,100% 100%,0 100%);
}
@media (max-width: 1030px) {
  .home-explore-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 780px) {
  .home-explore-section { padding: 54px 0 58px; }
  .home-explore-head { grid-template-columns: 1fr; gap: 12px; margin-bottom: 24px; }
  .home-explore-grid { grid-template-columns: 1fr; }
  .home-explore-card { min-height: 0; padding: 22px 20px; }
}

/* Contextual destination car-rental utility */
.finder-travel-utility {
  margin-top: 12px;
  padding: 17px;
  border: 1px solid rgba(244,235,221,.28);
  border-top: 4px solid var(--teal);
  background: #f4ede1;
  color: var(--ink);
}
.finder-travel-utility [hidden] { display: none !important; }
.finder-travel-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}
.finder-travel-head .eyebrow { margin-bottom: 5px; color: var(--teal); }
.finder-travel-head h3 { margin: 0 0 7px; color: var(--navy); font-size: 1.24rem; line-height: 1.08; }
.finder-travel-head p:not(.eyebrow) { max-width: 590px; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.5; }
.finder-travel-head > span {
  flex: 0 0 auto;
  padding: 5px 7px;
  border: 1px solid rgba(62,119,116,.28);
  background: #e3ece8;
  color: #245f5b;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1.3;
  text-transform: uppercase;
}
.finder-travel-mode { min-width: 0; margin: 15px 0 0; padding: 0; border: 0; }
.finder-travel-mode legend { margin-bottom: 7px; color: var(--navy); font-size: .7rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.finder-travel-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.finder-travel-choice-grid label { position: relative; cursor: pointer; }
.finder-travel-choice-grid input { position: absolute; opacity: 0; pointer-events: none; }
.finder-travel-choice-grid label > span {
  display: grid;
  gap: 2px;
  min-height: 62px;
  padding: 10px 11px;
  border: 1px solid rgba(24,50,74,.20);
  background: #fffdf8;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.finder-travel-choice-grid strong { color: var(--navy); font-size: .8rem; }
.finder-travel-choice-grid small { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.finder-travel-choice-grid input:checked + span { border-color: var(--teal); background: #e8f0ec; box-shadow: inset 0 0 0 2px var(--teal); }
.finder-travel-choice-grid input:focus-visible + span { outline: 3px solid rgba(216,166,46,.72); outline-offset: 2px; }
.finder-rental-destination { display: grid; gap: 6px; margin-top: 12px; }
.finder-rental-destination label { color: var(--navy); font-size: .72rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.finder-rental-destination select { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid rgba(24,50,74,.25); background: #fffdf8; color: var(--ink); }
.finder-rental-offer {
  position: relative;
  display: grid;
  grid-template-columns: 104px minmax(0,1fr);
  gap: 20px;
  align-items: start;
  margin-top: 14px;
  padding: 20px;
  overflow: hidden;
  border: 1px solid rgba(24,50,74,.18);
  border-top: 5px solid var(--mustard);
  background: linear-gradient(135deg,#fffdf8 0%,#fffaf0 62%,#eef5f2 100%);
  box-shadow: 0 14px 32px rgba(24,50,74,.11);
}
.finder-rental-offer::after {
  content: '';
  position: absolute;
  right: -42px;
  bottom: -62px;
  width: 160px;
  height: 160px;
  border: 28px solid rgba(62,119,116,.08);
  border-radius: 50%;
  pointer-events: none;
}
.finder-rental-airport {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 104px;
  padding: 11px;
  background: var(--navy);
  color: var(--snow-soft);
  text-align: center;
  box-shadow: 6px 6px 0 var(--mustard);
}
.finder-rental-airport span { font-family: var(--display); font-size: 1.62rem; font-weight: 900; letter-spacing: .04em; line-height: 1; }
.finder-rental-airport small { margin-top: 7px; color: #d6e0df; font-size: .59rem; font-weight: 800; letter-spacing: .075em; line-height: 1.25; text-transform: uppercase; }
.finder-rental-copy { position: relative; z-index: 1; }
.finder-rental-copy > span { color: var(--brick); font-size: .7rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.finder-rental-copy h4 { max-width: 650px; margin: 5px 0 8px; color: var(--navy); font-size: clamp(1.18rem,2vw,1.48rem); line-height: 1.1; }
.finder-rental-copy > p { max-width: 680px; margin: 0 0 12px; color: #4f5d65; font-size: .81rem; line-height: 1.55; }
.finder-rental-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; max-width: 570px; margin: 14px 0 12px; }
.finder-rental-proof span { display: grid; gap: 1px; padding: 9px 10px; border: 1px solid rgba(62,119,116,.22); background: rgba(255,255,255,.72); color: var(--navy); font-size: .68rem; font-weight: 800; line-height: 1.25; text-transform: uppercase; }
.finder-rental-proof strong { color: var(--teal); font-family: var(--display); font-size: 1rem; letter-spacing: .015em; }
.finder-rental-copy .finder-rental-pitch { margin-bottom: 12px; color: var(--navy); font-weight: 800; }
.finder-rental-copy .button { min-height: 46px; padding: 11px 17px; font-size: .82rem; }
.finder-rental-cta { box-shadow: 0 7px 16px rgba(160,69,50,.18); }
.finder-rental-cta-note { display: block; margin-top: 7px; color: var(--navy); font-size: .68rem; font-weight: 750; line-height: 1.4; }
.finder-rental-caution { display: block; margin-top: 11px; color: var(--muted); font-size: .66rem; line-height: 1.48; }
.finder-rental-disclosure {
  display: block;
  max-width: 680px;
  margin: 10px 0 12px;
  padding: 9px 11px;
  border-left: 3px solid var(--mustard);
  background: rgba(216,166,46,.12);
  color: var(--navy);
  font-size: .7rem;
  font-weight: 650;
  line-height: 1.48;
}
.finder-rental-disclosure strong { font-weight: 900; }
.finder-rental-disclosure a { color: var(--teal); font-weight: 850; }
.finder-rental-disclosure.is-inactive {
  border-left-color: rgba(24,50,74,.38);
  background: rgba(24,50,74,.06);
  color: #4b565c;
}
.finder-travel-status { min-height: 1px; margin: 9px 0 0; color: var(--muted); font-size: .69rem; line-height: 1.45; }
.finder-travel-status:empty { display: none; }
.finder-travel-why { margin-top: 8px; border-top: 1px solid rgba(24,50,74,.13); }
.finder-travel-why summary { padding-top: 9px; color: var(--brick); font-size: .69rem; font-weight: 800; cursor: pointer; }
.finder-travel-why p { margin: 6px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.48; }
@media (max-width: 600px) {
  .finder-travel-head { flex-direction: column; }
  .finder-travel-choice-grid { grid-template-columns: 1fr; }
  .finder-rental-offer { grid-template-columns: 1fr; padding: 16px; }
  .finder-rental-airport { min-height: 72px; box-shadow: 5px 5px 0 var(--mustard); }
  .finder-rental-proof { grid-template-columns: 1fr; }
  .finder-rental-copy .button { width: 100%; }
}


/* Finder submitted-state summary */
.finder-match-summary {
  position: sticky;
  top: 96px;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -30px -30px 20px;
  padding: 14px 18px;
  color: var(--navy);
  background: rgba(255,253,248,.98);
  border-bottom: 1px solid rgba(24,50,74,.18);
  box-shadow: 0 8px 20px rgba(8,22,34,.18);
  backdrop-filter: blur(10px);
}
.finder-match-summary[hidden] { display: none; }
.finder-match-summary > div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}
.finder-match-summary span {
  color: var(--teal);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}
.finder-match-summary strong {
  overflow: hidden;
  color: var(--navy);
  font-family: var(--display);
  font-size: .88rem;
  line-height: 1.25;
  text-overflow: ellipsis;
}
.finder-match-summary .text-button {
  flex: 0 0 auto;
  padding: 7px 0;
  white-space: nowrap;
}
@media (max-width: 780px) {
  .finder-match-summary {
    top: 76px;
    margin: -20px -20px 18px;
    padding: 12px 14px;
  }
  .finder-match-summary > div { display: grid; gap: 2px; }
  .finder-match-summary strong {
    font-family: var(--body);
    font-size: .78rem;
    white-space: normal;
  }
}
@media (max-width: 440px) {
  .finder-match-summary { align-items: flex-start; gap: 12px; }
  .finder-match-summary .text-button { font-size: .72rem; }
}

/* PassTracks brand details */
.footer .brand-copy small { color: #9fb0b5; }
.footer .brand-mark { background: var(--snow); }
.footer .brand-mark::before, .footer .brand-mark::after { background: var(--navy-deep); }
.finder-progress-track { height: 7px; margin: 10px 0; overflow: hidden; background: #cdd8d3; }
.finder-progress-track span { display: block; height: 100%; background: var(--teal); transition: width .2s ease; }

@media (max-width: 560px) {
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: 1.18rem; }
}

@media (max-width: 720px) {
  .finder-alternatives-visible > .finder-alternatives-head { align-items:start; flex-direction:column; gap:8px; }
  .finder-alternatives-head p { max-width:none; text-align:left; }
}

@media (max-width: 720px) {
  .finder-progress-head { align-items: flex-start; }
  .finder-progress-status { display: grid; justify-items: end; gap: 7px; }
  .finder-progress-status strong { white-space: normal; }
  .finder-progress-submit { min-height: 36px; padding: 7px 11px; }
}
@media (max-width: 520px) {
  .finder-progress-head { display: grid !important; grid-template-columns: 1fr; }
  .finder-progress-status { justify-items: stretch; }
  .finder-progress-submit { width: 100%; }
}


/* Phase 2 editorial trust, score, finder, and correction components */
.review-responsibility{display:flex;flex-wrap:wrap;gap:.55rem 1.2rem;align-items:center;margin:1rem 0 1.6rem;padding:.85rem 1rem;border:1px solid rgba(24,50,74,.16);border-radius:14px;background:#f7f8f5;font-size:.88rem;color:#405466}.review-responsibility a{margin-left:auto;font-weight:750}.review-purchase-block{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.15rem 0 1.6rem;padding:1rem 1.1rem;border-radius:16px;background:#eef3f0;border:1px solid rgba(24,50,74,.14)}.review-purchase-block div{display:grid;gap:.2rem}.review-purchase-block span{font-size:.9rem;color:#536574}.score-method-note,.price-history-note{color:#5a6a76;font-size:.92rem}.tier-score-table td:nth-child(2){font-weight:800;white-space:nowrap}.price-history-table small{display:block;color:#687681;margin-top:.2rem}.review-update-history{margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(24,50,74,.15)}.score-scale-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1rem 0 1.6rem}.score-scale-grid div{display:flex;gap:.8rem;align-items:baseline;padding:.8rem;border-radius:12px;background:#f4f6f3}.score-scale-grid strong{min-width:5.4rem}.finder-score-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;min-width:0;width:100%}.finder-score-stack>div{padding:.75rem;border-radius:12px;background:#fff;border:1px solid rgba(24,50,74,.14);display:grid;gap:.1rem}.finder-score-stack small{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#667784}.finder-score-stack strong{font-size:1.05rem}.finder-match-score{background:#18324a!important;color:#fff}.finder-match-score small{color:#dce7ed}.finder-match-score strong{font-size:1.55rem}.finder-close-call,.finder-why-higher{display:flex;gap:.7rem;align-items:center;margin:1rem 0;padding:.8rem 1rem;border-radius:12px;background:#fff8ea;border:1px solid rgba(201,125,30,.24)}.finder-why-higher{background:#eef4f6}.finder-alt-score{display:grid;align-content:start;gap:.3rem;min-width:150px;text-align:right}.finder-alt-score>strong{font-size:1.15rem}.finder-alt-score small{color:#5b6c78}.finder-alt-score em{font-style:normal;font-weight:700}.finder-alt-tradeoff{font-size:.88rem;color:#586976}.form-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:2rem;align-items:start}.correction-form{display:grid;gap:.55rem;padding:1.4rem;border:1px solid rgba(24,50,74,.16);border-radius:18px;background:#fff}.correction-form input,.correction-form select,.correction-form textarea{width:100%;padding:.85rem;border:1px solid #bcc8cf;border-radius:10px;font:inherit}.correction-form label{font-weight:750;margin-top:.35rem}.correction-form label span{font-weight:500;color:#6a7882}.form-honeypot{position:absolute!important;left:-9999px!important}.form-note{font-size:.88rem;color:#61717c}.affiliate-inline-disclosure{font-size:.82rem;color:#5c6b75;margin:.5rem 0}.review-update-notice{padding:1rem;border-radius:12px;background:#fff2d8;border:1px solid #e5bd72}@media(max-width:760px){.review-responsibility a{margin-left:0}.review-purchase-block{align-items:flex-start;flex-direction:column}.finder-score-stack{grid-template-columns:1fr;min-width:0;width:100%}.finder-close-call,.finder-why-higher{align-items:flex-start;flex-direction:column}.form-page-grid{grid-template-columns:1fr}.score-scale-grid{grid-template-columns:1fr}.finder-alternative-card{grid-template-columns:1fr}.finder-alt-score{text-align:left}}

.review-update-notice{display:grid;gap:.25rem;margin:-.5rem 0 1.5rem;padding:1rem;border-radius:12px;background:#fff2d8;border:1px solid #e5bd72}.review-update-purchase-warning{flex-basis:100%;margin:.25rem 0 0;font-size:.84rem;color:#6b4b1d}[data-review-status="updating"] .rating-circle,[data-review-status="updating"] .score-row,[data-review-status="updating"] .score-method-note,[data-review-status="updating"] .side-card p>strong{display:none!important}[data-review-status="updating"] .rating-hero:before{content:"Score temporarily unavailable";display:grid;place-items:center;min-width:150px;min-height:90px;padding:1rem;border-radius:999px;background:#fff2d8;border:1px solid #e5bd72;font-weight:800;text-align:center}


/* Contextual winter-tire utility for frequent drive-to skiers */
.finder-winter-utility {
  margin-top: 12px;
  padding: 17px;
  border: 1px solid rgba(244,235,221,.28);
  border-top: 4px solid var(--mustard);
  background: #eef2f0;
  color: var(--ink);
}
.finder-winter-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}
.finder-winter-head .eyebrow { margin-bottom: 5px; color: var(--brick); }
.finder-winter-head h3 { margin: 0 0 7px; color: var(--navy); font-size: 1.3rem; line-height: 1.08; }
.finder-winter-head p:not(.eyebrow) { max-width: 650px; margin: 0; color: var(--muted); font-size: .79rem; line-height: 1.52; }
.finder-winter-head > span {
  flex: 0 0 auto;
  padding: 5px 7px;
  border: 1px solid rgba(160,69,50,.24);
  background: #f5e7e0;
  color: var(--brick);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: 1.3;
  text-transform: uppercase;
}
.finder-tire-offer {
  position: relative;
  display: grid;
  grid-template-columns: 116px minmax(0,1fr);
  gap: 22px;
  align-items: start;
  margin-top: 14px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid rgba(24,50,74,.18);
  border-top: 5px solid var(--navy);
  background: linear-gradient(135deg,#fffdf8 0%,#f7f3ea 60%,#e3ece8 100%);
  box-shadow: 0 14px 32px rgba(24,50,74,.11);
}
.finder-tire-offer::after {
  content: '';
  position: absolute;
  right: -70px;
  bottom: -76px;
  width: 210px;
  height: 210px;
  border: 34px solid rgba(24,50,74,.055);
  border-radius: 50%;
  pointer-events: none;
}
.finder-tire-wheel {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  margin: 7px auto 0;
  border: 19px solid #26343e;
  border-radius: 50%;
  background: repeating-conic-gradient(from 4deg,#26343e 0 7deg,#121d24 7deg 15deg);
  box-shadow: 7px 7px 0 var(--mustard), inset 0 0 0 2px rgba(255,255,255,.14);
}
.finder-tire-wheel::before {
  content: '';
  position: absolute;
  inset: 17px;
  border: 5px solid #aeb9bd;
  border-radius: 50%;
  background: radial-gradient(circle,#18324a 0 19%,#d4dadd 20% 34%,#7c8b91 35% 40%,#d4dadd 41% 100%);
}
.finder-tire-wheel span { position: absolute; inset: -11px; border: 2px dashed rgba(255,255,255,.22); border-radius: 50%; }
.finder-tire-copy { position: relative; z-index: 1; min-width: 0; }
.finder-tire-copy > span { color: var(--teal); font-size: .7rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.finder-tire-copy h4 { max-width: 700px; margin: 5px 0 8px; color: var(--navy); font-size: clamp(1.2rem,2vw,1.55rem); line-height: 1.1; }
.finder-tire-copy > p { max-width: 710px; margin: 0 0 12px; color: #4f5d65; font-size: .82rem; line-height: 1.57; }
.finder-tire-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; max-width: 610px; margin: 14px 0 12px; }
.finder-tire-proof span { display: grid; gap: 1px; padding: 9px 10px; border: 1px solid rgba(24,50,74,.17); background: rgba(255,255,255,.72); color: var(--navy); font-size: .68rem; font-weight: 800; line-height: 1.25; text-transform: uppercase; }
.finder-tire-proof strong { color: var(--brick); font-family: var(--display); font-size: 1rem; letter-spacing: .015em; }
.finder-tire-copy .finder-tire-pitch { margin-bottom: 12px; color: var(--navy); font-weight: 800; }
.finder-tire-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.finder-tire-actions .button { min-height: 46px; padding: 11px 17px; font-size: .82rem; }
.finder-tire-cta { box-shadow: 0 7px 16px rgba(160,69,50,.18); }
.finder-tire-cta-note { display: block; margin-top: 8px; color: var(--navy); font-size: .68rem; font-weight: 750; line-height: 1.4; }
.finder-tire-caution { display: block; margin-top: 11px; color: var(--muted); font-size: .66rem; line-height: 1.48; }
.finder-tire-disclosure {
  display: block;
  max-width: 710px;
  margin: 10px 0 12px !important;
  padding: 9px 11px;
  border-left: 3px solid var(--mustard);
  background: rgba(216,166,46,.12);
  color: var(--navy) !important;
  font-size: .7rem !important;
  font-weight: 650;
  line-height: 1.48 !important;
}
.finder-tire-disclosure strong { font-weight: 900; }
.finder-tire-disclosure a { color: var(--teal); font-weight: 850; }

/* Winter-tire guide */
.winter-guide-hero .lede { max-width: 790px; }
.winter-guide-kicker { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.winter-guide-kicker span { padding: 7px 10px; border: 1px solid rgba(244,235,221,.38); color: var(--snow-soft); font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.winter-guide-callout { margin: 24px 0; padding: 20px 22px; border-left: 5px solid var(--mustard); background: #f6efe2; }
.winter-guide-callout strong { display: block; margin-bottom: 5px; color: var(--navy); font-family: var(--display); font-size: 1.08rem; }
.winter-guide-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0 28px; }
.winter-guide-checklist div { padding: 15px; border: 1px solid var(--line); background: var(--paper); }
.winter-guide-checklist strong { display: block; margin-bottom: 5px; color: var(--navy); }
.winter-guide-checklist span { color: var(--muted); font-size: .85rem; line-height: 1.5; }
.winter-guide-cta { margin: 28px 0; padding: 24px; border-top: 5px solid var(--mustard); background: linear-gradient(135deg,#18324a,#244a61); color: var(--snow-soft); box-shadow: var(--shadow-md); }
.winter-guide-cta .eyebrow { color: #d9aa3d; }
.winter-guide-cta h2 { margin: 4px 0 10px; color: #fff; }
.winter-guide-cta p { max-width: 720px; color: #d7e1e4; }
.winter-guide-cta .button { margin-top: 8px; }
.winter-guide-cta .affiliate-inline-note { max-width: 720px; margin: 14px 0 0; padding: 9px 11px; border-left: 3px solid var(--mustard); background: rgba(255,255,255,.09); color: #f2eee5; font-size: .72rem; line-height: 1.5; }
.winter-guide-sources { margin-top: 30px; padding: 20px; border: 1px solid var(--line); background: #f4efe6; }
.winter-guide-sources h3 { margin-top: 0; }
.winter-guide-sources a { display: block; margin: 8px 0; color: var(--teal); font-weight: 800; }
@media (max-width: 700px) {
  .finder-winter-head { flex-direction: column; }
  .finder-tire-offer { grid-template-columns: 1fr; padding: 17px; }
  .finder-tire-wheel { width: 86px; height: 86px; border-width: 16px; margin: 4px 0 8px 7px; }
  .finder-tire-proof { grid-template-columns: 1fr; }
  .finder-tire-actions { align-items: stretch; }
  .finder-tire-actions .button { width: 100%; }
  .winter-guide-checklist { grid-template-columns: 1fr; }
}

.regional-score-pill{display:inline-flex;margin:.35rem 0 .75rem;padding:.3rem .65rem;border-radius:999px;background:rgba(24,50,74,.09);color:#18324a;font-size:.78rem;font-weight:800;letter-spacing:.02em}


/* SEO performance build: HTML review heroes and related links */
.review-header {
  position: relative;
  isolation: isolate;
  background: #0b2030 !important;
}
.review-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.review-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
}
.review-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(8,22,34,.98) 0%, rgba(8,22,34,.95) 44%, rgba(8,22,34,.68) 68%, rgba(8,22,34,.18) 100%),
    linear-gradient(0deg, rgba(8,22,34,.56) 0%, rgba(8,22,34,.12) 52%, rgba(8,22,34,0) 74%);
  pointer-events: none;
}
.review-header .container { position: relative; z-index: 2; }
.page-new-england-pass .review-hero-media img,
.page-indy-pass .review-hero-media img { object-position: center center; }
.page-colorado-kids-ski-passport .review-hero-media img,
.page-sun-n-snow-pass .review-hero-media img {
  object-fit: contain;
  object-position: right center;
  background: #0a2233;
}
.related-seo-links {
  margin: 2.25rem 0;
  padding: 1.35rem 1.5rem;
  border: 1px solid rgba(24,50,74,.16);
  background: rgba(62,119,116,.07);
}
.related-seo-links h2 { margin: 0 0 .8rem; font-size: 1.55rem; }
.related-seo-links div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem 1.2rem; }
.related-seo-links a { font-weight: 700; }
.gateway-guide-links{width:min(1120px,calc(100% - 2rem));margin:2.5rem auto;padding:1.6rem 1.75rem;background:#fff;border-top:4px solid #3f827d;box-shadow:0 10px 28px rgba(24,50,74,.06)}.gateway-guide-links .eyebrow{margin:0 0 .35rem;color:#3f827d}.gateway-guide-links h2{margin-bottom:.35rem}.gateway-guide-intro{max-width:760px;margin:.15rem 0 1.1rem;color:#52616a}.gateway-guide-links div{display:flex;align-items:stretch;gap:.8rem;flex-wrap:wrap}.gateway-guide-links div a{display:flex;align-items:center;flex:1 1 280px;min-height:3.5rem;padding:.85rem 1rem;border:1px solid #d8d0c1;background:#f7f3ea;text-decoration:none}.gateway-guide-links div a::after{content:' →';margin-left:auto;padding-left:.75rem;color:#b34b39}.gateway-guide-links div a:hover,.gateway-guide-links div a:focus{border-color:#3f827d;background:#eef4f1}
@media (max-width: 980px) {
  .review-hero-media img { object-position: 68% center; }
}
@media (max-width: 620px) {
  .review-hero-media img { object-position: 62% center; }
  .page-colorado-kids-ski-passport .review-hero-media img,
  .page-sun-n-snow-pass .review-hero-media img { object-fit: cover; object-position: 66% center; }
  .related-seo-links div { grid-template-columns: 1fr; }
  .gateway-guide-links{width:calc(100% - 1rem);padding:1.25rem}.gateway-guide-links div{display:grid}.gateway-guide-links div a{min-height:auto}
}


/* Homepage HTML hero image */
.ranking-hero { background-image: none !important; }
.site-hero-media { position:absolute; inset:0; z-index:0; display:block; width:100%; height:100%; overflow:hidden; }
.site-hero-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:16% 70%; }
.ranking-hero::before { z-index:1; }
.ranking-hero::after { z-index:3; }
.ranking-hero > .container { position:relative; z-index:2; }
@media (max-width:1100px) { .site-hero-media img { object-position:10% 68%; } }
@media (max-width:760px) { .site-hero-media img { object-position:64% 55%; } }


/* Editorial comparison guides and common-question accordions */
.table-scroll { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; margin:18px 0 24px; }
.table-scroll table { min-width:680px; margin:0; }
.source-note { margin-top:-10px; color:var(--muted); font-size:.8rem; }
.scenario-grid,
.comparison-type-grid,
.guide-steps,
.decision-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:18px 0 28px; }
.scenario-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.scenario-grid > div,
.comparison-type-grid > div,
.guide-steps > div,
.decision-panel > div { padding:20px; background:var(--paper); border:1px solid var(--line); }
.scenario-grid h3,
.comparison-type-grid h3,
.guide-steps h3,
.decision-panel h3 { margin-top:0; }
.guide-steps > div { position:relative; padding-top:52px; }
.guide-steps > div > span { position:absolute; top:17px; left:20px; display:grid; place-items:center; width:25px; height:25px; color:var(--snow); background:var(--brick); border-radius:50%; font-family:var(--display); font-weight:900; }
.formula-card { margin:18px 0 28px; padding:22px 24px; background:rgba(216,166,46,.15); border-left:5px solid var(--mustard); }
.formula-card strong { display:block; color:var(--navy); font-family:var(--display); font-size:1.15rem; }
.formula-card p { margin-bottom:0; }
.comparison-guide { max-width:1040px; }
.editorial-faq { margin-top:42px; padding-top:32px; border-top:1px solid var(--line); }
.editorial-faq > h2 { margin-top:4px; }
.faq-list { margin-top:18px; border-top:1px solid var(--line); }
.faq-list details { background:var(--paper); border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; padding:19px 54px 19px 18px; color:var(--navy); font-family:var(--display); font-size:1rem; font-weight:900; line-height:1.35; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; top:14px; right:6px; display:grid; place-items:center; width:30px; height:30px; color:var(--brick); border:1px solid var(--line); border-radius:50%; font-family:var(--body); font-size:1.35rem; font-weight:500; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details[open] summary { color:var(--brick); }
.faq-list details > div { padding:0 54px 20px 18px; }
.faq-list details > div p:last-child { margin-bottom:0; }
.faq-list summary:focus-visible { outline:3px solid rgba(216,166,46,.55); outline-offset:4px; }
@media (max-width:850px) {
  .scenario-grid,
  .comparison-type-grid,
  .guide-steps,
  .decision-panel { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .faq-list summary { padding-right:46px; }
  .faq-list details > div { padding-right:10px; }
}

.report-bars{display:grid;gap:14px;margin:24px 0}.report-bars div{display:grid;grid-template-columns:minmax(190px,1fr) 2fr auto;gap:12px;align-items:center}.report-bars i{display:block;height:18px;background:linear-gradient(90deg,#f28c28,#f6bd60);border-radius:9px;min-width:12px}.report-bars strong{white-space:nowrap}@media(max-width:700px){.report-bars div{grid-template-columns:1fr}.report-bars i{max-width:100%}}

/* Legal and compliance hero contrast: scoped to avoid changing editorial heroes. */
.page-legal .legal-hero h1 { color:#fff !important; }
.page-legal .legal-hero .breadcrumbs,
.page-legal .legal-hero .breadcrumbs a { color:#e8e1d6 !important; }
.page-legal .legal-hero .eyebrow { color:#f0784b !important; }

.gateway-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}.gateway-facts span{display:grid;gap:4px;padding:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18)}.gateway-facts small{text-transform:uppercase;letter-spacing:.08em}.gateway-base-grid,.gateway-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 30px}.gateway-base-grid>div,.gateway-card-grid article{padding:20px;background:#fff;border:1px solid rgba(24,50,74,.16)}.gateway-base-grid h3{margin-top:0}.research-caveat{padding:18px 20px;margin:20px 0 28px;background:#eef3f0;border-left:5px solid var(--teal)}.research-caveat p{margin-bottom:0}.gateway-booking{margin:30px 0;padding:24px;background:var(--navy);color:var(--cream)}.gateway-booking h2,.gateway-booking p{color:inherit}.gateway-mistakes li{margin-bottom:10px}.page-gateway .gateway-hero{background:linear-gradient(135deg,var(--navy),#214b5c);color:var(--cream)}.page-gateway .gateway-hero h1,.page-gateway .gateway-hero .lede,.page-gateway .gateway-hero .breadcrumbs,.page-gateway .gateway-hero .breadcrumbs a{color:inherit}@media(max-width:760px){.gateway-facts,.gateway-base-grid,.gateway-card-grid{grid-template-columns:1fr}}

/* Gateway dark-surface contrast. Scoped and important to beat later editorial rules. */
.page-gateway .gateway-hero,
.page-gateway .gateway-hero p,
.page-gateway .gateway-hero .lede,
.page-gateway .gateway-hero h1,
.page-gateway .gateway-hero strong,
.page-gateway .gateway-hero small,
.page-gateway .gateway-hero .breadcrumbs,
.page-gateway .gateway-hero .breadcrumbs a { color:#f7f2e9 !important; }
.page-gateway .gateway-hero .eyebrow { color:#ffb08f !important; }
.page-gateway .gateway-facts span { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.34); }
.page-gateway .gateway-booking,
.page-gateway .gateway-booking p,
.page-gateway .gateway-booking h2,
.page-gateway .gateway-booking strong { color:#f7f2e9 !important; }
.page-gateway .gateway-booking .eyebrow { color:#ffb08f !important; }
.gateway-booking .vehicle-checklist { margin:18px 0 22px; padding-left:22px; }

/* Gateway hero photography */
.page-gateway .gateway-hero { position:relative; isolation:isolate; overflow:hidden; background:#18324a; }
.gateway-hero-media { position:absolute; inset:0; z-index:-2; display:block; width:100%; height:100%; }
.gateway-hero-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.gateway-hero-overlay { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,27,42,.92) 0%,rgba(15,43,59,.84) 52%,rgba(15,43,59,.72) 100%); }
.page-gateway .gateway-hero > .container { position:relative; z-index:1; }
@media(max-width:760px){.gateway-hero-overlay{background:linear-gradient(180deg,rgba(8,27,42,.87),rgba(8,27,42,.78))}.gateway-hero-media img{object-position:center}}
.gateway-booking .vehicle-checklist li { margin-bottom:8px; color:#f7f2e9; }
.gateway-booking-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.gateway-booking .button-light { color:#18324a !important; background:#f7f2e9; border:2px solid #f7f2e9; }
.gateway-booking .button-light:hover { background:#fff; border-color:#fff; }
.gateway-booking .affiliate-status { margin:16px 0 0; color:#dce5e4 !important; font-size:.86rem; line-height:1.5; }
.law-warning { margin:30px 0; padding:24px; background:#fff2d5; border:2px solid #d8a62e; border-left-width:8px; }
.law-warning h2 { margin-top:6px; color:#18324a; }
.law-warning .eyebrow { color:#9a3f2f; }
.law-warning-actions { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:18px; }
.law-warning-actions a { font-weight:800; }
.winter-standard { background:#eef3f0; border-color:var(--teal); }
.winter-driving-principle { margin:0 0 28px; }
.winter-driving-principle a { display:inline-block; margin-top:12px; font-weight:800; }
.lodging-recommendations{margin:2.75rem 0;padding:2rem;background:#f3eee3;border-top:4px solid #df6b3b}.lodging-recommendations>h2{margin-top:.35rem}.lodging-shortlist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.lodging-shortlist-grid>div{background:#fff;border:1px solid #d8d0c1;padding:1.1rem}.lodging-shortlist-grid h3{margin-top:0}.lodging-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.lodging-actions [hidden]{display:none}.lodging-actions span a{font-weight:700}.lodging-check{font-size:.92rem;color:#4d5a61;margin-bottom:0}@media(max-width:760px){.lodging-shortlist-grid{grid-template-columns:1fr}.lodging-recommendations{padding:1.35rem}}
.gateway-card-benefit{margin-top:.8rem;padding-top:.8rem;border-top:1px solid #d8d0c1;font-size:.94rem}.finder-gateway-next{margin-top:1rem;padding:1rem;background:#f3eee3;border-left:4px solid #3f827d}.finder-gateway-next strong{display:block;margin-bottom:.45rem}.finder-gateway-next span{display:flex;gap:1rem;flex-wrap:wrap}.finder-gateway-next a{font-weight:700}
.gateway-local-spots{margin:2.75rem 0;padding:2rem;background:#eef3f0;border-top:4px solid var(--teal)}.gateway-local-spots>h2{margin:.35rem 0 .75rem}.gateway-local-spots-intro{max-width:760px}.gateway-local-spots-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.gateway-local-spots-grid article{padding:1.15rem;background:#fff;border:1px solid #cbd8d3}.gateway-local-spots-grid article:last-child:nth-child(odd){grid-column:1/-1}.gateway-local-spots-grid h3{margin:.2rem 0 .65rem;font-size:1.35rem}.gateway-local-spots-grid p{margin-bottom:.65rem}.gateway-local-spots-grid p:last-child{margin-bottom:0}.gateway-local-spots-grid .spot-meta{color:#9a3f2f;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.gateway-local-spots-grid .spot-details{display:inline-block;margin-top:.2rem;font-weight:800}.gateway-local-spots-note{margin:0;font-size:.9rem;color:#52616a}@media(max-width:760px){.gateway-local-spots{padding:1.35rem}.gateway-local-spots-grid{grid-template-columns:1fr}.gateway-local-spots-grid article:last-child:nth-child(odd){grid-column:auto}}
.alerts-hero{background:#17374a;color:#fff}.alerts-hero h1,.alerts-hero .lede{color:#fff}.alerts-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:2rem}.alerts-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 2.25rem}.alerts-principles>div{padding:1rem;border:1px solid #d8d0c1;background:#f7f3ea}.alerts-form{display:grid;gap:.8rem;padding:1.5rem;border-top:4px solid #df6b3b;background:#fff;box-shadow:0 8px 24px rgba(24,50,74,.08)}.alerts-form>label:not(.alerts-consent),.alerts-form legend{font-weight:700}.alerts-form input[type=email],.alerts-form select{width:100%;padding:.8rem;border:1px solid #9aa6aa;background:#fff}.alerts-form fieldset{display:grid;gap:.65rem;padding:1rem;border:1px solid #d8d0c1}.alerts-consent{display:flex;gap:.65rem;align-items:flex-start}.alerts-privacy{font-size:.9rem;color:#52616a}.form-honeypot{position:absolute!important;left:-10000px!important}.alert-referral{width:min(1120px,calc(100% - 2rem));margin:2rem auto;padding:1.4rem 1.6rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:#edf3f0;border-left:4px solid #3f827d}.alert-referral h2{margin:.2rem 0}.alert-referral p{margin:.25rem 0}.alert-referral>a{white-space:nowrap;font-weight:700}@media(max-width:760px){.alerts-layout{grid-template-columns:1fr}.alerts-principles{grid-template-columns:1fr}.alert-referral{align-items:flex-start;flex-direction:column}.alert-referral>a{white-space:normal}}

/* Design-forward email signup: engaged-reader prompt and explicit marketing consent. */
body.email-signup-open { overflow:hidden; }
.email-signup-layer[hidden] { display:none; }
.email-signup-layer {
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:clamp(.75rem,3vw,2rem);
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease;
}
.email-signup-layer.is-visible { opacity:1; visibility:visible; }
.email-signup-backdrop {
  position:absolute;
  inset:0;
  background:rgba(5,22,33,.76);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.email-signup-dialog {
  position:relative;
  display:grid;
  grid-template-columns:minmax(270px,.88fr) minmax(420px,1.12fr);
  width:min(1040px,100%);
  max-height:min(820px,calc(100vh - 2rem));
  overflow:auto;
  color:#18324a;
  background:#fbf7ee;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 34px 90px rgba(3,18,28,.42);
  transform:translateY(24px) scale(.985);
  transition:transform .28s cubic-bezier(.2,.7,.2,1);
  outline:none;
}
.email-signup-layer.is-visible .email-signup-dialog { transform:translateY(0) scale(1); }
.email-signup-close {
  position:absolute;
  top:.75rem;
  right:.75rem;
  z-index:4;
  display:grid;
  place-items:center;
  width:2.7rem;
  height:2.7rem;
  padding:0;
  color:#18324a;
  background:rgba(251,247,238,.94);
  border:1px solid rgba(24,50,74,.24);
  border-radius:50%;
  font:400 1.8rem/1 var(--body);
  cursor:pointer;
}
.email-signup-close:hover,.email-signup-close:focus-visible { color:#fff; background:#a54234; border-color:#a54234; }
.email-signup-visual { position:relative; min-height:100%; overflow:hidden; background:#17374a; }
.email-signup-visual picture,.email-signup-visual img { display:block; width:100%; height:100%; }
.email-signup-visual img { position:absolute; inset:0; object-fit:cover; object-position:52% center; }
.email-signup-visual-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,25,38,.05) 22%,rgba(7,25,38,.82) 100%);
}
.email-signup-visual-copy {
  position:absolute;
  right:clamp(1.25rem,3vw,2rem);
  bottom:clamp(1.5rem,4vw,2.5rem);
  left:clamp(1.25rem,3vw,2rem);
  color:#fff;
}
.email-signup-visual-copy span { display:block; margin-bottom:.65rem; color:#f4bd43; font-size:.75rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.email-signup-visual-copy strong { display:block; max-width:360px; color:#fff; font-family:var(--display); font-size:clamp(1.55rem,2.6vw,2.35rem); line-height:1.03; }
.email-signup-panel { position:relative; padding:clamp(2rem,4vw,3.25rem); }
.email-signup-panel::before { content:""; position:absolute; top:0; right:0; left:0; height:5px; background:linear-gradient(90deg,#df6b3b 0 35%,#dba928 35% 68%,#3f827d 68%); }
.email-signup-panel .eyebrow { margin:0 0 .55rem; color:#a54234; }
.email-signup-panel h2 { max-width:560px; margin:.2rem 0 .8rem; color:#18324a; font-size:clamp(2rem,3.5vw,3.2rem); line-height:.98; }
.email-signup-intro { max-width:620px; margin:0 0 1.35rem; color:#4f5f68; font-size:1rem; line-height:1.55; }
.email-signup-form { display:grid; gap:.9rem; }
.email-signup-field { display:grid; gap:.35rem; }
.email-signup-field>span { color:#18324a; font-size:.78rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.email-signup-field input,.email-signup-field select {
  width:100%;
  min-height:3.15rem;
  padding:.72rem .85rem;
  color:#18324a;
  background:#fff;
  border:1px solid #9ba7aa;
  border-radius:0;
  font:inherit;
}
.email-signup-field input:focus,.email-signup-field select:focus { outline:3px solid rgba(63,130,125,.28); border-color:#3f827d; }
.email-signup-consent input { width:1.05rem; height:1.05rem; margin:.08rem 0 0; accent-color:#3f827d; flex:0 0 auto; }
.email-signup-consent { display:flex; gap:.65rem; align-items:flex-start; color:#3e5059; font-size:.82rem; line-height:1.42; }
.email-signup-submit { width:100%; min-height:3.25rem; margin-top:.1rem; }
.email-signup-submit:disabled { opacity:.7; cursor:wait; }
.email-signup-privacy { margin:0; color:#68767d; font-size:.73rem; line-height:1.45; }
.email-signup-privacy a { font-weight:750; }
.email-signup-status { min-height:0; margin:0; color:#9a3f2f; font-size:.82rem; font-weight:700; }
.email-signup-fallback { white-space:nowrap; }
.email-signup-success { display:grid; align-content:center; min-height:470px; }
.email-signup-success[hidden] { display:none; }
.email-signup-success p { color:#4f5f68; }
.email-signup-success .button { justify-self:start; margin-top:.75rem; }
.footer a[data-email-signup-open] { cursor:pointer; }

@media(max-width:820px) {
  .email-signup-dialog { grid-template-columns:1fr; max-width:640px; }
  .email-signup-visual { min-height:210px; }
  .email-signup-visual img { position:absolute; object-position:center 54%; }
  .email-signup-visual-copy strong { max-width:500px; font-size:1.8rem; }
  .email-signup-panel { padding:2rem 1.5rem 1.6rem; }
  .email-signup-panel h2 { font-size:2.35rem; }
}
@media(max-width:560px) {
  .email-signup-layer { padding:.35rem; align-items:end; }
  .email-signup-dialog { width:100%; max-height:calc(100vh - .7rem); }
  .email-signup-visual { min-height:150px; }
  .email-signup-visual-copy { right:1rem; bottom:1rem; left:1rem; }
  .email-signup-visual-copy span { margin-bottom:.35rem; }
  .email-signup-visual-copy strong { font-size:1.35rem; }
  .email-signup-panel { padding:1.6rem 1rem 1.15rem; }
  .email-signup-panel h2 { padding-right:1.5rem; font-size:2rem; }
  .email-signup-intro { font-size:.91rem; }
  .email-signup-close { top:.55rem; right:.55rem; width:2.4rem; height:2.4rem; }
}
@media(prefers-reduced-motion:reduce) {
  .email-signup-layer,.email-signup-dialog { transition:none; }
}

/* Complete pass-access directories */
.complete-mountain-access {
  margin:2.5rem 0;
  padding:clamp(1.25rem,3vw,2rem);
  background:#eef3f0;
  border-top:5px solid var(--teal);
}
.complete-mountain-access>.eyebrow { margin:0 0 .45rem; color:#2f7773; }
.complete-mountain-access>h2 { margin:.2rem 0 .75rem; }
.complete-mountain-access>p:not(.eyebrow) { max-width:850px; }
.featured-mountains { margin:1.15rem 0; padding:1rem; background:#18324a; color:#fff; }
.featured-mountains>strong { display:block; margin-bottom:.7rem; color:#f2c34f; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.featured-mountains ul { display:flex; flex-wrap:wrap; gap:.45rem; margin:0; padding:0; list-style:none; }
.featured-mountains li { display:flex; align-items:baseline; gap:.45rem; margin:0; padding:.35rem .55rem; border:1px solid rgba(255,255,255,.35); color:#fff; font-size:.88rem; }
.mountain-access-groups { display:grid; gap:.75rem; margin:1.35rem 0; }
.mountain-access-group { background:#fff; border:1px solid #cbd8d3; }
.mountain-access-group summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  min-height:3.5rem;
  padding:.85rem 1rem;
  color:#18324a;
  cursor:pointer;
  font-weight:800;
  list-style:none;
}
.mountain-access-group summary::-webkit-details-marker { display:none; }
.mountain-access-group summary::after { content:"+"; color:#a54234; font-size:1.45rem; line-height:1; }
.mountain-access-group[open] summary::after { content:"−"; }
.mountain-access-group summary strong {
  order:2;
  margin-left:auto;
  padding:.2rem .55rem;
  background:#e8eee9;
  color:#255e5b;
  font-size:.78rem;
  white-space:nowrap;
}
.mountain-group-note { margin:0; padding:0 1rem 1rem; color:#53636c; font-size:.9rem; }
.mountain-name-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.35rem 1.25rem;
  margin:0;
  padding:0 1rem 1.15rem 2.25rem;
}
.mountain-name-grid li { display:flex; align-items:baseline; justify-content:space-between; gap:.65rem; break-inside:avoid; margin:0; padding:.15rem 0; }
.mountain-name { min-width:0; }
.mountain-location { flex:0 0 auto; color:#a54234; font-size:.68rem; font-weight:800; letter-spacing:.055em; line-height:1.2; text-transform:uppercase; }
.featured-mountains .mountain-location { color:#f2c34f; }
.mountain-access-source { margin:.9rem 0 0; color:#52616a; font-size:.86rem; line-height:1.5; }
@media(max-width:760px) {
  .mountain-name-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:520px) {
  .complete-mountain-access { padding:1rem; }
  .mountain-name-grid { grid-template-columns:1fr; }
}
.decision-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 2rem}.decision-choice-grid>div{padding:1.15rem;border:1px solid #d8d0c1;background:#fff}.decision-choice-grid h3{margin-top:0}.decision-choice-grid .choice-verdict{display:block;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e0d8ca;font-weight:700;color:#3f827d}.decision-scenarios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 2rem}.decision-scenarios>div{padding:1rem;background:#f3eee3;border-left:4px solid #dba928}.decision-actions{margin:2rem 0;padding:1.5rem;background:#17374a;color:#fff}.decision-actions h2,.decision-actions p{color:#fff}.decision-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem}.decision-action-grid a{display:flex;align-items:center;justify-content:center;min-height:3.6rem;padding:.8rem;text-align:center;background:#fff;color:#17374a;font-weight:700;text-decoration:none}.decision-action-grid a:hover,.decision-action-grid a:focus{background:#f4e8d4}.decision-checklist{columns:2;column-gap:2rem}.decision-checklist li{break-inside:avoid;margin-bottom:.65rem}@media(max-width:760px){.decision-choice-grid,.decision-scenarios,.decision-action-grid{grid-template-columns:1fr}.decision-checklist{columns:1}}


/* PRICE HISTORY TRACKER */
.history-hero{background:#18324a;color:#f7efe2}.history-hero h1{max-width:980px}.history-hero .lede{color:#e9e1d3}.history-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}.history-hero-stats div{border:1px solid rgba(255,255,255,.28);padding:18px}.history-hero-stats strong{display:block;color:#e0ad26;font-family:var(--display);font-size:2.4rem}.history-hero-stats span{display:block;color:#d4dbe0}.history-intro-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:40px;align-items:start}.history-intro-grid article{max-width:850px}.history-chart{display:block;width:100%;height:auto;background:#fff;border:1px solid #d8d1c5;margin:24px 0 16px;padding:12px}.history-chart text{font-family:var(--body);font-size:13px;fill:#445563}.history-chart .chart-grid{stroke:#e4ded4;stroke-width:1}.history-findings{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.history-findings div{background:#fff;border-top:4px solid #2f7f7a;padding:18px}.history-findings strong{display:block;font-family:var(--display);font-size:2rem;color:#18324a}.history-findings span{display:block;color:#445563}.history-controls{display:grid;grid-template-columns:auto minmax(220px,1fr) auto minmax(220px,320px);gap:12px;align-items:center;margin:24px 0 10px;padding:18px;background:#ede7da;border-top:4px solid #dba91f}.history-controls label{font-weight:700}.history-controls input,.history-controls select{min-height:48px;width:100%;background:#fff;border:1px solid #a79f91;padding:10px 12px;font:inherit}.history-result-count{color:#5a6871}.history-products{display:grid;gap:12px}.history-product{background:#fff;border:1px solid #d8d1c5;border-left:5px solid #2f7f7a}.history-product[hidden]{display:none}.history-product summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;list-style:none}.history-product summary::-webkit-details-marker{display:none}.history-product summary>span:first-child{display:grid;gap:5px}.history-product summary strong{font-family:var(--display);font-size:1.35rem;color:#18324a}.history-product summary small{color:#5a6871;max-width:760px}.history-status{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:7px 9px;background:#e8eee9;color:#255e5b;white-space:nowrap}.history-status-current-price-incomplete,.history-status-baseline-only{background:#f5e9c9;color:#6e5510}.history-status-not-sold-separately{background:#ece8e0;color:#4f5960}.history-product-body{padding:0 20px 20px}.history-product-link{margin:12px 0 0}.price-history-table small{display:block;color:#5a6871;margin-top:4px;max-width:460px}.profile-price-history{margin:34px 0}.review-history-route{margin:28px 0;padding:16px 18px;border-left:5px solid #2f7f7a;background:#eef2ed;font-weight:700}.history-method{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,2fr);gap:44px}.history-method a{color:#f2c34f}.history-report-link{margin-top:0}.table-scroll{overflow-x:auto}.chart-note{max-width:850px}.page-price-history .section-soft{background:#ede7da}@media(max-width:850px){.history-hero-stats,.history-findings{grid-template-columns:repeat(2,1fr)}.history-intro-grid,.history-method{grid-template-columns:1fr}.history-controls{grid-template-columns:1fr}.history-controls label{margin-top:4px}.history-product summary{align-items:flex-start;flex-direction:column}.history-status{white-space:normal}}@media(max-width:520px){.history-hero-stats,.history-findings{grid-template-columns:1fr}.history-chart{min-width:720px}.page-price-history .section-soft .container{overflow-x:auto}}

/* V3.4: preserve the editorial score shield; show route status as prose. */
.pt-v34-score-presentation{display:grid;gap:.55rem;align-content:start}
.pt-v34-score-status{margin:0;color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.35;max-width:18rem}
.pt-v34-map-actions{display:inline-flex;align-items:baseline;gap:.35rem;white-space:nowrap}
.pt-v34-map-actions a{white-space:nowrap}

/* V4.11.1: compact four-column routed directory. */
.proximity-table.pt-v4111-road-table th:nth-child(1),.proximity-table.pt-v4111-road-table td:nth-child(1){width:38%}
.proximity-table.pt-v4111-road-table th:nth-child(2),.proximity-table.pt-v4111-road-table td:nth-child(2){width:19%}
.proximity-table.pt-v4111-road-table th:nth-child(3),.proximity-table.pt-v4111-road-table td:nth-child(3){width:27%}
.proximity-table.pt-v4111-road-table th:nth-child(4),.proximity-table.pt-v4111-road-table td:nth-child(4){width:16%}
.pt-v4111-road-table [data-used-in-score]{display:block;margin-top:.25rem;color:#55736f;font-weight:700}
[data-road-explanation]{margin:.7rem 0 1rem;color:#566875;font-size:.82rem;line-height:1.45}
@media(max-width:767px){.proximity-table.pt-v4111-road-table td:nth-child(n){width:auto}.proximity-table.pt-v4111-road-table td[data-road-cell]::before{content:'Road drive'}.proximity-table.pt-v4111-road-table td:nth-child(4)::before{content:'Maps'}}
