:root {
  --ink: #061929;
  --ink-2: #0a2438;
  --slate: #315f7e;
  --blue: #177cb3;
  --green: #1ed17c;
  --green-dark: #0fae62;
  --frost: #f4f8fa;
  --mist: #dce6eb;
  --muted: #697b88;
  --white: #fff;
  --amber: #e8a85f;
  --line: rgba(6, 25, 41, 0.16);
  --line-dark: rgba(255, 255, 255, 0.2);
  --shadow: 0 26px 70px rgba(3, 18, 30, 0.22);
  --radius: 22px;
  --max: 1240px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--frost);
  color: var(--ink);
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

img {
  display: block;
  height: auto;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--green);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  background: var(--white);
  color: var(--ink);
  transform: translateY(-180%);
}

.skip-link:focus {
  transform: translateY(0);
}

.shell {
  width: min(calc(100% - 48px), var(--max));
  margin-inline: auto;
}

.site-header .shell,
.hero .shell {
  width: min(calc(100% - 64px), 1410px);
}

.site-header {
  position: absolute;
  z-index: 30;
  inset: 0 0 auto;
  color: var(--white);
}

.site-header.is-solid {
  position: relative;
  background: var(--ink);
}

.nav-wrap {
  display: flex;
  min-height: 92px;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  color: var(--white);
  font-size: 21px;
  font-weight: 800;
  letter-spacing: -0.04em;
  white-space: nowrap;
}

.brand-mark {
  width: 50px;
  height: 32px;
  color: var(--green);
}

.brand-mark.small {
  width: 43px;
  height: 27px;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.75vw, 29px);
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
  font-weight: 700;
}

.main-nav a {
  position: relative;
  padding-block: 12px;
}

.main-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 2px;
  background: var(--green);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
}

.main-nav a:hover::after,
.main-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-app {
  padding: 12px 18px !important;
  border: 1px solid rgba(255, 255, 255, 0.42);
}

.nav-app::after {
  display: none;
}

.menu-button {
  display: none;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid var(--line-dark);
  background: transparent;
  color: var(--white);
}

.menu-button svg {
  width: 22px;
}

.hero {
  position: relative;
  z-index: 1;
  height: 690px;
  min-height: 690px;
  overflow: visible;
  background: var(--ink) url("../images/hero-mountain.webp?v=20260807c") center / cover no-repeat;
  color: var(--white);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 17, 28, 0.96) 0%, rgba(3, 17, 28, 0.73) 31%, rgba(3, 17, 28, 0.05) 64%, rgba(3, 17, 28, 0.18) 100%);
}

.hero::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 130px;
  background: linear-gradient(0deg, rgba(3, 17, 28, 0.54), transparent);
  pointer-events: none;
}

.hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  height: 690px;
  min-height: 0;
  grid-template-columns: minmax(0, 1.04fr) minmax(350px, 0.72fr);
  align-items: center;
  gap: 48px;
  padding-top: 96px;
}

.hero-copy {
  align-self: start;
  max-width: 720px;
  margin-top: 42px;
  padding-bottom: 20px;
}

.hero h1 {
  max-width: 700px;
  margin: 0;
  font-family: "Archivo", "Arial Narrow", sans-serif;
  font-size: clamp(64px, 7.7vw, 118px);
  font-weight: 850;
  letter-spacing: -0.075em;
  line-height: 0.88;
}

.hero h1 em {
  font-family: "DM Serif Display", Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.04em;
}

.hero-lede {
  max-width: 590px;
  margin: 36px 0 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: clamp(18px, 1.7vw, 24px);
  line-height: 1.55;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.button {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 14px 23px;
  border: 1px solid transparent;
  background: var(--green);
  color: #021c12;
  font-size: 15px;
  font-weight: 850;
  transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.button:hover {
  background: #4de297;
  transform: translateY(-2px);
}

.button.ghost {
  border-color: rgba(255, 255, 255, 0.52);
  background: rgba(4, 20, 32, 0.3);
  color: var(--white);
  backdrop-filter: blur(8px);
}

.button.ghost:hover {
  background: var(--white);
  color: var(--ink);
}

.button svg,
.text-link svg {
  width: 19px;
  height: 19px;
  flex: 0 0 auto;
}

.hero-device {
  align-self: start;
  width: min(100%, 305px);
  margin: 10px auto 0;
  transform: rotate(4.5deg);
  transform-origin: 50% 80%;
  filter: drop-shadow(0 35px 60px rgba(0, 0, 0, 0.44));
}

.device-frame {
  position: relative;
  overflow: hidden;
  border: 10px solid #10161a;
  border-radius: 52px;
  background: #10161a;
  box-shadow: inset 0 0 0 2px #5f6468;
}

.device-frame img {
  width: 100%;
  border-radius: 40px;
}

.home-tool-rail {
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.home-tool-rail .shell {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.home-tool-rail a {
  display: flex;
  min-height: 84px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 18px;
  border-left: 1px solid var(--line);
  font-size: 12px;
  font-weight: 850;
  transition: background 180ms ease, color 180ms ease;
}

.home-tool-rail a:last-child {
  border-right: 1px solid var(--line);
}

.home-tool-rail a:hover {
  background: var(--frost);
  color: var(--green-dark);
}

.home-tool-rail svg,
.window-row-link svg,
.window-back-link svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.section {
  padding: 112px 0;
}

.section.white {
  background: var(--white);
}

.section.dark {
  background: var(--ink);
  color: var(--white);
}

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.68fr);
  align-items: end;
  gap: 70px;
  margin-bottom: 62px;
}

.section-heading h2,
.feature-copy h2,
.app-copy h2,
.page-hero h1 {
  margin: 0;
  font-family: "Archivo", "Arial Narrow", sans-serif;
  font-weight: 850;
  letter-spacing: -0.06em;
  line-height: 0.98;
}

.section-heading h2,
.feature-copy h2,
.app-copy h2 {
  font-size: clamp(50px, 6.1vw, 82px);
}

.section-heading p,
.feature-copy p,
.app-copy > p {
  margin: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.8;
}

.forecast-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(400px, 1.25fr);
  gap: 72px;
  align-items: start;
}

.region-list {
  border-top: 1px solid var(--line);
}

.region-link {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 20px;
  padding: 23px 0;
  border-bottom: 1px solid var(--line);
  transition: color 180ms ease, padding 180ms ease;
}

.region-link:hover {
  padding-left: 10px;
  color: var(--green-dark);
}

.region-number {
  color: #8a9aa5;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.12em;
}

.region-name {
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.region-link svg {
  width: 22px;
}

.forecast-visual {
  position: sticky;
  top: 28px;
  overflow: hidden;
  min-height: 620px;
  padding: 44px;
  background: var(--ink-2);
  color: var(--white);
}

.forecast-visual::after,
.topo::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.17;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='240' viewBox='0 0 360 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.5'%3E%3Cpath d='M-20 170C50 95 107 221 180 134S294 49 390 108'/%3E%3Cpath d='M-10 195C60 120 119 242 195 159S302 72 381 132'/%3E%3Cpath d='M-32 144C38 70 94 193 165 109S282 22 383 84'/%3E%3Cpath d='M17 71C92 7 142 117 217 54S320-2 376 26'/%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

.forecast-visual > * {
  position: relative;
  z-index: 1;
}

.forecast-visual .meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.forecast-visual h3 {
  max-width: 500px;
  margin: 160px 0 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(36px, 4.3vw, 60px);
  letter-spacing: -0.055em;
  line-height: 1.02;
}

.forecast-visual p {
  max-width: 420px;
  margin: 20px 0 0;
  color: rgba(255, 255, 255, 0.67);
  line-height: 1.7;
}

.source-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin-top: 112px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 700;
}

.source-row span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
}

.source-row i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}

.planning-intro {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  background: var(--ink) url("../images/inversion-wide.webp?v=20260807c") center / cover no-repeat;
  color: var(--white);
}

.planning-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 18, 31, 0.94), rgba(3, 18, 31, 0.58) 38%, transparent 72%);
}

.planning-intro .shell {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 610px;
  align-items: center;
}

.planning-copy {
  max-width: 580px;
}

.planning-copy h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(54px, 6.4vw, 88px);
  font-weight: 850;
  letter-spacing: -0.07em;
  line-height: 0.95;
}

.planning-copy p {
  max-width: 460px;
  margin: 27px 0 0;
  color: rgba(255, 255, 255, 0.73);
  font-size: 18px;
  line-height: 1.72;
}

.editorial-rail {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(260px, 0.7fr) minmax(260px, 0.7fr);
  gap: 0;
  padding: 70px 0 100px;
}

.story {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 0 32px;
  border-left: 1px solid var(--line);
}

.story:first-child {
  padding-left: 0;
  border-left: 0;
}

.story:last-child {
  padding-right: 0;
}

.story-image {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  margin-bottom: 28px;
  background: var(--mist);
}

.story:first-child .story-image {
  aspect-ratio: 4 / 3.3;
}

.story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0, 1);
}

.story:hover .story-image img {
  transform: scale(1.035);
}

.story-index {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.13em;
}

.story h3 {
  margin: 16px 0 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(27px, 2.7vw, 40px);
  letter-spacing: -0.05em;
  line-height: 1;
}

.story p {
  margin: 18px 0 26px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.text-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 13px;
  margin-top: auto;
  padding-bottom: 7px;
  border-bottom: 2px solid currentColor;
  font-size: 14px;
  font-weight: 850;
}

.app-promo {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 78% 42%, #174e70 0%, #0c2b43 29%, var(--ink) 64%);
  color: var(--white);
}

.app-promo::after {
  content: "";
  position: absolute;
  right: -5%;
  bottom: -16%;
  width: 67%;
  height: 58%;
  opacity: 0.28;
  background: linear-gradient(148deg, transparent 0 47%, #03111c 48% 59%, transparent 60%), linear-gradient(32deg, transparent 0 43%, #061725 44% 58%, transparent 59%);
}

.app-grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 820px;
  grid-template-columns: minmax(340px, 0.82fr) minmax(470px, 1.18fr);
  align-items: center;
  gap: 54px;
}

.app-copy {
  padding: 100px 0;
}

.app-copy > p {
  max-width: 525px;
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.66);
}

.store-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
}

.store-button {
  display: inline-flex;
  min-height: 62px;
  align-items: center;
  gap: 12px;
  padding: 9px 16px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  background: #050708;
  color: var(--white);
  border-radius: 9px;
}

.store-button svg {
  width: 29px;
  height: 29px;
}

.store-button span {
  display: block;
  font-size: 10px;
  line-height: 1.05;
}

.store-button strong {
  display: block;
  margin-top: 4px;
  font-size: 17px;
  font-weight: 650;
  line-height: 1;
}

.benefit-list {
  display: grid;
  gap: 16px;
  margin: 36px 0 0;
  padding: 0;
  list-style: none;
  color: rgba(255, 255, 255, 0.75);
}

.benefit-list li {
  display: flex;
  align-items: center;
  gap: 13px;
}

.benefit-list svg {
  width: 24px;
  height: 24px;
  color: var(--green);
}

.phones {
  position: relative;
  min-height: 760px;
}

.phones .device-frame {
  position: absolute;
  width: min(55%, 360px);
  box-shadow: 0 38px 70px rgba(0, 0, 0, 0.45);
}

.phones .device-frame:first-child {
  z-index: 2;
  top: 46px;
  left: 7%;
}

.phones .device-frame:last-child {
  top: 140px;
  right: 0;
  width: min(48%, 315px);
}

.site-footer {
  background: var(--ink);
  color: rgba(255, 255, 255, 0.66);
}

.footer-top {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 60px;
  padding: 54px 0;
  border-top: 1px solid var(--line-dark);
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 20px 34px;
  font-size: 13px;
  font-weight: 700;
}

.footer-nav a:hover {
  color: var(--white);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 0 34px;
  border-top: 1px solid var(--line-dark);
  font-size: 12px;
}

/* Inner pages */
.page-hero {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
}

.page-hero.has-image {
  background-position: center;
  background-size: cover;
}

.page-hero.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 17, 28, 0.95), rgba(3, 17, 28, 0.61) 48%, rgba(3, 17, 28, 0.1));
}

.page-hero.forecasts {
  background-image: url("../images/weather-window.webp?v=20260807c");
}

.page-hero.peaks {
  background-image: url("../images/peak-ridge.webp?v=20260807c");
  background-position: center 38%;
}

.page-hero.inversions {
  background-image: url("../images/inversion-wide.webp?v=20260807c");
}

.page-hero.windows {
  background-image: url("../images/weather-window.webp?v=20260807c");
}

.page-hero.windows,
.page-hero.windows .page-hero-content {
  min-height: 340px;
}

.page-hero.windows .page-hero-content {
  max-width: 1080px;
  padding: 116px 0 34px;
}

.page-hero.windows h1 {
  font-size: clamp(52px, 5.4vw, 72px);
}

.page-hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: 410px;
  max-width: 850px;
  flex-direction: column;
  justify-content: flex-end;
  padding: 132px 0 52px;
}

.page-hero h1 {
  font-size: clamp(52px, 6.5vw, 84px);
}

.page-hero p {
  max-width: 660px;
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: clamp(17px, 1.6vw, 21px);
  line-height: 1.55;
}

.page-section {
  padding: 68px 0 88px;
}

.page-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1.2fr);
  gap: 90px;
}

.side-title {
  position: sticky;
  top: 30px;
  height: fit-content;
}

.side-title h2,
.content-block h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(40px, 4.3vw, 62px);
  letter-spacing: -0.055em;
  line-height: 1;
}

.side-title p,
.content-block p {
  color: var(--muted);
  line-height: 1.8;
}

.status-line {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 24px;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.status-line::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

.accordion-list {
  border-top: 1px solid var(--line);
}

.accordion-list details {
  border-bottom: 1px solid var(--line);
}

.accordion-list summary {
  display: grid;
  cursor: pointer;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 24px 0;
  list-style: none;
}

.accordion-list summary::-webkit-details-marker {
  display: none;
}

.accordion-list summary span:nth-child(2) {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.035em;
}

.accordion-list summary svg {
  width: 21px;
  transition: transform 180ms ease;
}

.accordion-list details[open] summary svg {
  transform: rotate(45deg);
}

.accordion-content {
  padding: 0 0 28px 58px;
  color: var(--muted);
  line-height: 1.7;
}

.search-panel {
  padding: 34px;
  background: var(--white);
  box-shadow: 0 22px 55px rgba(5, 25, 41, 0.08);
}

.search-label {
  display: block;
  margin-bottom: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.search-box {
  position: relative;
}

.search-box input {
  width: 100%;
  min-height: 60px;
  padding: 0 55px 0 18px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--frost);
  color: var(--ink);
  font-size: 17px;
}

.search-box svg {
  position: absolute;
  top: 19px;
  right: 18px;
  width: 22px;
  color: var(--muted);
  pointer-events: none;
}

.peak-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 24px;
  border-top: 1px solid var(--line);
}

.peak-item {
  padding: 21px 10px 21px 0;
  border-bottom: 1px solid var(--line);
}

.peak-item:nth-child(even) {
  padding-right: 0;
  padding-left: 20px;
  border-left: 1px solid var(--line);
}

.peak-item[hidden] {
  display: none;
}

.peak-item strong,
.peak-item span {
  display: block;
}

.peak-item strong {
  font-size: 17px;
  letter-spacing: -0.025em;
}

.peak-item span {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1fr);
  gap: 90px;
}

.article-aside {
  position: sticky;
  top: 28px;
  height: fit-content;
  padding-top: 6px;
  border-top: 3px solid var(--green);
}

.article-aside p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.article {
  max-width: 760px;
}

.article h2 {
  margin: 54px 0 18px;
  font-family: "Archivo", sans-serif;
  font-size: clamp(34px, 4vw, 50px);
  letter-spacing: -0.05em;
  line-height: 1.05;
}

.article h2:first-child {
  margin-top: 0;
}

.article p,
.article li {
  color: #526773;
  font-size: 17px;
  line-height: 1.82;
}

.article figure {
  margin: 52px 0;
}

.article figcaption {
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
}

.window-board {
  padding: 38px;
  background: var(--ink-2);
  color: var(--white);
  box-shadow: var(--shadow);
}

.window-controls {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line-dark);
}

.window-controls select {
  min-height: 55px;
  padding: 0 42px 0 16px;
  border: 1px solid var(--line-dark);
  border-radius: 0;
  background: var(--ink);
  color: var(--white);
}

.window-status {
  align-self: center;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.day-track {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  margin-top: 34px;
  background: var(--line-dark);
}

.day {
  min-height: 220px;
  padding: 20px 16px;
  background: var(--ink-2);
}

.day strong,
.day span {
  display: block;
}

.day strong {
  font-size: 13px;
}

.day span {
  margin-top: 8px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
}

.day-bar {
  height: 5px;
  margin-top: 88px;
  background: rgba(255, 255, 255, 0.12);
}

.day-bar::after {
  content: "";
  display: block;
  width: 34%;
  height: 100%;
  background: var(--green);
  opacity: 0.35;
}

.day p {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 11px;
  line-height: 1.5;
}

.app-page-hero {
  padding: 160px 0 90px;
  background: radial-gradient(circle at 72% 46%, #1d5879, var(--ink) 55%);
  color: var(--white);
}

.app-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(440px, 1.16fr);
  align-items: center;
  gap: 60px;
}

.app-page-copy h1 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(62px, 8vw, 108px);
  letter-spacing: -0.07em;
  line-height: 0.92;
}

.app-page-copy p {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 19px;
  line-height: 1.7;
}

.app-page-grid .phones {
  min-height: 720px;
}

.legal {
  max-width: 820px;
}

.legal h2 {
  margin: 48px 0 12px;
  font-family: "Archivo", sans-serif;
  font-size: 34px;
  letter-spacing: -0.045em;
}

.legal p,
.legal li {
  color: #526773;
  line-height: 1.8;
}

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 700;
}

.breadcrumbs a:hover {
  color: var(--green);
}

.forecast-kicker {
  display: block;
  margin-bottom: 14px;
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.confidence-tag,
.signal-tag {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  padding: 7px 10px;
  border: 1px solid var(--line);
  color: var(--slate);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.confidence-tag.high,
.signal-tag.strong {
  border-color: rgba(15, 174, 98, 0.42);
  background: rgba(30, 209, 124, 0.1);
  color: #087747;
}

.confidence-tag.low,
.signal-tag.none {
  color: var(--muted);
}

.signal-tag.possible {
  border-color: rgba(232, 168, 95, 0.5);
  background: rgba(232, 168, 95, 0.12);
  color: #9a5b16;
}

.peak-search-layout {
  align-items: start;
}

.search-help {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.peak-results-live {
  max-height: 520px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.peak-results-live:not(.is-filtering) .peak-item:nth-of-type(n + 25) {
  display: none;
}

.peak-results-live .peak-item {
  transition: color 160ms ease, background 160ms ease;
}

.peak-results-live .peak-item:hover {
  color: var(--green-dark);
}

.popular-peaks {
  border-top: 1px solid var(--line);
}

.popular-peak-list,
.area-link-list,
.candidate-window-list {
  border-top: 1px solid var(--line);
}

.popular-peak-link,
.area-link-list a,
.candidate-window {
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  transition: color 160ms ease, padding 160ms ease;
}

.popular-peak-link:hover,
.area-link-list a:hover,
.candidate-window:hover {
  padding-inline: 10px;
  color: var(--green-dark);
}

.popular-peak-link strong,
.popular-peak-link small,
.candidate-window strong,
.candidate-window small {
  display: block;
}

.popular-peak-link strong,
.candidate-window strong {
  font-size: 21px;
  letter-spacing: -0.035em;
}

.popular-peak-link small,
.candidate-window small {
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.area-forecast-controls h2,
.area-report h2,
.window-sidebar h2,
.window-outlook h2,
.live-section-head h2 {
  margin: 0 0 18px;
  font-family: "Archivo", sans-serif;
  font-size: clamp(34px, 4.3vw, 54px);
  letter-spacing: -0.055em;
  line-height: 1;
}

.forecast-day-stats small,
.area-stat-strip small,
.inversion-levels small,
.window-metrics small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.area-headline {
  margin: 0;
  color: #385263;
  font-family: "DM Serif Display", Georgia, serif;
  font-size: clamp(26px, 3vw, 37px);
  line-height: 1.36;
}

.forecast-freshness {
  margin: 25px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.forecast-days-section {
  background: var(--white);
  color: var(--ink);
}

.forecast-days-section .section-heading p {
  color: var(--muted);
}

.forecast-day-list {
  border-top: 1px solid var(--line);
}

.forecast-day {
  display: grid;
  grid-template-columns: minmax(190px, 0.45fr) minmax(390px, 0.9fr) minmax(0, 1.45fr);
  gap: 34px;
  padding: 34px 0;
  border-bottom: 1px solid var(--line);
}

.forecast-day header time {
  display: block;
  margin-bottom: 12px;
  font-size: 17px;
  font-weight: 800;
}

.forecast-day .confidence-tag {
  border-color: var(--line);
  color: var(--muted);
}

.forecast-inversion-tag {
  display: flex;
  width: fit-content;
  min-width: 162px;
  flex-direction: column;
  gap: 3px;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(49, 95, 126, 0.2);
  background: #eef3f8;
  color: var(--ink-2);
  transition: border-color 180ms ease, background 180ms ease;
}

.forecast-inversion-tag:hover {
  border-color: var(--green-dark);
  background: #e8f4ef;
}

.forecast-inversion-tag span {
  font-size: 12px;
  font-weight: 850;
}

.forecast-inversion-tag small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 750;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.forecast-day-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px 20px;
}

.forecast-day-stats strong {
  display: block;
  margin-top: 4px;
  font-size: 13px;
}

.forecast-day-stats .forecast-daylight-stat {
  grid-column: span 2;
}

.forecast-day-copy > p {
  margin: 0;
  color: #526773;
  font-size: 14px;
  line-height: 1.72;
}

.forecast-day-copy {
  display: grid;
  align-content: start;
  gap: 10px;
}

.forecast-hazard {
  padding: 12px 14px;
  border: 1px solid rgba(170, 82, 28, 0.22);
  background: #fff5e8;
}

.forecast-hazard.spate {
  border-color: rgba(49, 95, 126, 0.22);
  background: #eef6fa;
}

.forecast-hazard strong {
  display: block;
  color: var(--ink-2);
  font-size: 12px;
  text-transform: capitalize;
}

.forecast-hazard p,
.forecast-day-copy .forecast-cloud-trend {
  margin: 4px 0 0;
  color: #526773;
  font-size: 12px;
  line-height: 1.55;
}

.forecast-days-section .forecast-freshness {
  margin-top: 22px;
}

.forecast-caution {
  border-top: 1px solid var(--line-dark);
}

.area-forecast-layout,
.window-live-layout {
  display: grid;
  grid-template-columns: minmax(290px, 0.65fr) minmax(0, 1.35fr);
  gap: 80px;
}

.area-forecast-controls,
.window-sidebar {
  position: sticky;
  top: 30px;
  height: fit-content;
}

.area-forecast-controls > p,
.window-sidebar > p {
  color: var(--muted);
  line-height: 1.75;
}

.forecast-form {
  display: grid;
  gap: 18px;
  margin-top: 28px;
}

.forecast-form select {
  width: 100%;
  min-height: 56px;
  padding: 0 40px 0 15px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
}

.forecast-form .button {
  border: 0;
  cursor: pointer;
}

.area-report,
.window-outlook {
  padding: 42px;
  background: var(--white);
  box-shadow: 0 22px 55px rgba(5, 25, 41, 0.08);
}

.area-report {
  border-top: 5px solid var(--green);
}

.area-report-head,
.window-outlook-head,
.inversion-candidate header,
.window-day header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.area-report-head p {
  margin: -6px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.area-confidence-note {
  margin: 15px 0 -16px;
  color: var(--slate);
  font-size: 13px;
  line-height: 1.5;
}

.forecast-confidence-note {
  margin: 0 0 14px;
  padding: 11px 13px;
  border-left: 3px solid var(--amber);
  background: var(--cream);
  color: var(--slate);
  font-size: 13px;
  line-height: 1.5;
}

.area-decision {
  margin-top: 34px;
  padding: 24px 26px;
  border-left: 5px solid var(--green);
  background: var(--ink);
  color: var(--white);
}

.area-decision small {
  display: block;
  margin-bottom: 8px;
  color: var(--green);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.area-decision p {
  max-width: 760px;
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.25;
}

.area-stat-strip,
.inversion-levels,
.window-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 34px;
  background: var(--line);
}

.area-stat-strip span,
.inversion-levels span,
.window-metrics span {
  min-height: 84px;
  padding: 15px;
  background: var(--frost);
}

.area-stat-strip strong,
.inversion-levels strong,
.window-metrics strong {
  display: block;
  margin-top: 7px;
  font-size: 15px;
}

.area-fields {
  margin: 34px 0 0;
  border-top: 1px solid var(--line);
}

.area-fields div {
  display: grid;
  grid-template-columns: minmax(170px, 0.5fr) minmax(0, 1.5fr);
  gap: 28px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.area-fields dt {
  font-size: 12px;
  font-weight: 800;
}

.area-fields dd {
  margin: 0;
  color: #526773;
  font-size: 14px;
  line-height: 1.65;
}

.area-guidance {
  margin-top: 40px;
  border-top: 1px solid var(--line);
}

.area-guidance section {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 20px;
  padding: 24px 0 25px;
  border-bottom: 1px solid var(--line);
}

.area-guidance-number {
  padding-top: 3px;
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.area-guidance h3 {
  margin: 0 0 7px;
  font-family: "Archivo", sans-serif;
  font-size: 18px;
  letter-spacing: -0.025em;
}

.area-guidance p {
  margin: 0;
  color: #526773;
  font-size: 14px;
  line-height: 1.7;
}

.area-links-section {
  background: var(--frost);
}

.area-region-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
}

.area-region-group h3 {
  margin: 0 0 20px;
  font-family: "Archivo", sans-serif;
  font-size: 25px;
  letter-spacing: -0.04em;
}

.area-region-group .area-link-list a {
  min-height: 96px;
}

.area-region-group .area-link-list a > span:first-child {
  min-width: 0;
}

.area-region-group .area-link-list strong,
.area-region-group .area-link-list small {
  display: block;
}

.area-region-group .area-link-list strong {
  font-size: 15px;
  line-height: 1.35;
}

.area-region-group .area-link-list small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.area-peak-cta {
  margin-top: 34px;
}

.live-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 50px;
}

.live-section-head p {
  max-width: 650px;
  color: var(--muted);
  line-height: 1.7;
}

.inversion-candidates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.inversion-candidate {
  min-height: 330px;
  padding: 32px;
  background: var(--white);
}

.inversion-candidate time {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.inversion-candidate h3 {
  margin: 8px 0 0;
  font-family: "Archivo", sans-serif;
  font-size: 27px;
  letter-spacing: -0.045em;
}

.inversion-candidate h3 a:hover {
  color: var(--green-dark);
}

.inversion-levels {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 24px;
}

.inversion-candidate > p {
  margin: 25px 0 0;
  color: #526773;
  font-size: 14px;
  line-height: 1.7;
}

.feed-empty {
  grid-column: 1 / -1;
  padding: 45px;
  background: var(--white);
}

.feed-empty h3 {
  margin: 0 0 10px;
  font-family: "Archivo", sans-serif;
  font-size: 28px;
  letter-spacing: -0.045em;
}

.feed-empty p {
  max-width: 680px;
  color: var(--muted);
  line-height: 1.7;
}

.window-live-section {
  background: var(--ink);
  color: var(--white);
}

.window-sidebar .forecast-kicker {
  color: var(--green);
}

.window-sidebar > p,
.window-sidebar .forecast-freshness {
  color: rgba(255, 255, 255, 0.62);
}

.window-sidebar .forecast-form select {
  border-color: var(--line-dark);
  background: var(--ink-2);
  color: var(--white);
}

.window-outlook {
  color: var(--ink);
  box-shadow: var(--shadow);
}

.window-outlook h2 {
  font-size: clamp(34px, 4vw, 48px);
}

.window-day-list {
  margin-top: 30px;
  border-top: 1px solid var(--line);
}

.window-day {
  padding: 25px 0;
  border-bottom: 1px solid var(--line);
}

.window-day time {
  font-size: 15px;
  font-weight: 800;
}

.window-score {
  height: 5px;
  margin-top: 18px;
  background: var(--mist);
}

.window-score span {
  display: block;
  width: var(--score);
  height: 100%;
  background: var(--green-dark);
}

.window-metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 18px;
}

.window-metrics span {
  min-height: 76px;
  padding: 11px;
}

.window-day > p {
  margin: 18px 0 0;
  color: #526773;
  font-size: 13px;
  line-height: 1.65;
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.window-overview-section {
  padding: 38px 0 64px;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.window-overview-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 48px;
  margin-bottom: 22px;
}

.window-overview-head h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(36px, 4vw, 54px);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.window-overview-head p {
  max-width: 690px;
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.window-run-meta {
  display: grid;
  justify-items: end;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
}

.window-run-meta strong {
  color: var(--green-dark);
  font-size: 12px;
}

.window-table-wrap {
  overflow-x: auto;
  border-top: 2px solid var(--ink);
}

.window-overview-table {
  width: 100%;
  min-width: 1080px;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 11px;
}

.window-overview-table th,
.window-overview-table td {
  padding: 14px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.window-overview-table thead th {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.window-overview-table thead th:first-child,
.window-overview-table tbody th {
  width: 18%;
}

.window-overview-table thead th:last-child {
  width: 8.5%;
}

.window-overview-table tbody tr {
  transition: background 160ms ease;
}

.window-overview-table tbody tr:hover,
.window-overview-table tbody tr.is-selected {
  background: #eef8f3;
}

.window-overview-table tbody tr.is-selected th {
  box-shadow: inset 3px 0 var(--green-dark);
}

.window-overview-table tbody th a {
  display: block;
  color: var(--ink);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: -0.025em;
}

.window-overview-table time {
  white-space: nowrap;
  font-weight: 750;
}

.window-percent {
  display: grid;
  grid-template-columns: minmax(36px, 1fr) auto;
  align-items: center;
  gap: 7px;
}

.window-percent i {
  position: relative;
  display: block;
  height: 5px;
  overflow: hidden;
  background: var(--mist);
}

.window-percent i::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--value);
  background: var(--green-dark);
}

.window-percent strong {
  min-width: 34px;
  font-size: 10px;
  text-align: right;
  white-space: nowrap;
}

.window-table-signal {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
  white-space: nowrap;
}

.window-table-signal.strong { color: #087747; }
.window-table-signal.possible { color: #9a5b16; }

.window-duration {
  display: grid;
  gap: 5px;
}

.window-duration strong {
  width: fit-content;
  padding: 5px 7px;
  background: var(--green-dark);
  color: var(--white);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.window-duration time {
  color: var(--slate);
  font-size: 10px;
  line-height: 1.4;
  white-space: normal;
}

.window-confidence-copy {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
  white-space: nowrap;
}

.window-empty-state {
  padding: 32px;
  border: 1px solid var(--line);
  background: var(--frost);
}

.window-empty-state h3 {
  max-width: 760px;
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(25px, 3vw, 38px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.window-empty-state p {
  max-width: 720px;
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}

.window-secondary-section {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}

.window-secondary-section.early {
  margin-top: 38px;
}

.window-secondary-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 430px);
  align-items: end;
  gap: 48px;
  margin-bottom: 20px;
}

.window-secondary-head .forecast-kicker {
  margin-bottom: 8px;
}

.window-secondary-head h3 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(27px, 3vw, 40px);
  letter-spacing: -0.05em;
  line-height: 1;
}

.window-secondary-head > p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.65;
}

.window-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
  border-left: 1px solid var(--line);
}

.window-signal-card {
  display: grid;
  min-height: 230px;
  align-content: start;
  padding: 22px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  transition: background 160ms ease, transform 160ms ease;
}

.window-signal-card:hover {
  background: #eef8f3;
  transform: translateY(-2px);
}

.window-signal-card.early {
  background: var(--frost);
}

.window-signal-card.early:hover {
  background: #edf1f0;
}

.window-signal-type {
  color: var(--green-dark);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.window-signal-card.early .window-signal-type {
  color: #9a5b16;
}

.window-signal-card h4 {
  margin: 10px 0 4px;
  font-family: "Archivo", sans-serif;
  font-size: 20px;
  letter-spacing: -0.04em;
}

.window-signal-card > time {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.window-signal-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 20px;
  background: var(--line);
}

.window-signal-stats span {
  display: grid;
  gap: 4px;
  padding: 10px;
  background: var(--white);
}

.window-signal-card.early .window-signal-stats span {
  background: var(--frost);
}

.window-signal-stats small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.window-signal-stats strong {
  font-size: 14px;
}

.window-card-link {
  align-self: end;
  margin-top: 18px;
  color: var(--green-dark);
  font-size: 10px;
  font-weight: 850;
}

.window-row-link,
.window-back-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--green-dark);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}

.window-detail-section {
  scroll-margin-top: 24px;
  background: var(--ink);
  color: var(--white);
}

.window-detail-section .window-sidebar .forecast-kicker { color: var(--green); }
.window-detail-section .window-sidebar > p { color: rgba(255, 255, 255, 0.62); }
.window-detail-section .window-back-link { margin-top: 24px; }
.window-detail-section .window-outlook { color: var(--ink); }

.window-explainer {
  border-top: 1px solid var(--line-dark);
}

.page-hero.winter {
  min-height: 465px;
  background-image: url("../images/winter-ridge.webp?v=20260807c");
  background-position: center 46%;
}

.page-hero.winter::before {
  display: none;
}

.winter .page-hero-content {
  min-height: 465px;
  justify-content: center;
  padding-top: 116px;
  padding-bottom: 34px;
}

.winter .page-hero-content h1,
.winter .page-hero-content p,
.winter .page-hero-content .winter-status,
.winter .page-hero-content .winter-hero-cta {
  max-width: 620px;
}

.winter-status {
  margin-top: 19px;
  color: var(--green);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.winter-hero-cta {
  width: fit-content;
  margin-top: 15px;
}

.winter-capability-section {
  background: var(--frost);
}

.winter-capability-rail {
  display: grid;
  grid-template-columns: minmax(210px, 1.15fr) repeat(5, minmax(130px, 1fr));
  border-right: 1px solid var(--line);
}

.winter-capability-title,
.winter-capability {
  min-width: 0;
  padding: 34px 24px 36px;
  border-left: 1px solid var(--line);
}

.winter-capability-title h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(30px, 3.3vw, 45px);
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.winter-capability-title p,
.winter-capability p {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.58;
}

.winter-capability-title p { margin: 14px 0 0; }
.winter-capability p { margin: 10px 0 0; }

.winter-icon {
  display: block;
  width: 46px;
  height: 46px;
  color: var(--ink-2);
}

.winter-icon svg {
  width: 100%;
  height: 100%;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.winter-capability h3 {
  margin: 18px 0 0;
  font-family: "Archivo", sans-serif;
  font-size: 18px;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.winter-coming-section {
  padding: 82px 0;
  background: var(--ink);
  color: var(--white);
}

.winter-coming-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
  gap: clamp(60px, 10vw, 150px);
}

.winter-coming-layout h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(48px, 6vw, 78px);
  letter-spacing: -0.065em;
  line-height: 0.96;
}

.winter-coming-layout p {
  max-width: 620px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 16px;
  line-height: 1.75;
}

.winter-coming-layout p + p { margin-top: 18px; }

.winter-safety {
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}

.winter-safety .shell {
  display: flex;
  align-items: center;
  gap: 18px;
}

.winter-safety svg {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  color: var(--green-dark);
}

.winter-safety p {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.candidate-window .signal-tag {
  flex: 0 0 auto;
}

.page-hero.stays {
  background-image: url("../images/mountain-stay.webp?v=20260807c");
  background-position: center 42%;
}

.stay-section {
  overflow: hidden;
  padding: clamp(76px, 9vw, 126px) 0;
  border-top: 1px solid rgba(6, 25, 41, 0.08);
  background: var(--frost);
}

.stay-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.5fr);
  align-items: end;
  gap: clamp(36px, 7vw, 100px);
}

.stay-section-head h2 {
  max-width: 940px;
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(52px, 6.6vw, 88px);
  letter-spacing: -0.067em;
  line-height: 0.94;
}

.stay-section-head p {
  max-width: 460px;
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
}

.stay-search-form {
  display: grid;
  grid-template-columns: minmax(185px, 1.35fr) minmax(112px, 0.68fr) minmax(112px, 0.68fr) auto;
  align-items: end;
  gap: 12px;
  margin-top: 54px;
  padding: 25px;
  border-top: 3px solid var(--green);
  background: var(--white);
  box-shadow: 0 22px 60px rgba(5, 25, 41, 0.09);
}

.stay-search-form:has(.stay-peak-field) {
  grid-template-columns: minmax(220px, 1.5fr) minmax(175px, 1fr) minmax(104px, 0.58fr) minmax(104px, 0.58fr) auto;
}

.stay-search-form label,
.stay-search-form label > span {
  display: block;
}

.stay-search-form label > span {
  margin-bottom: 9px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.stay-search-form input,
.stay-search-form select {
  width: 100%;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--frost);
  color: var(--ink);
}

.stay-search-form .button {
  min-height: 52px;
  padding-inline: 24px;
  white-space: nowrap;
}

.stay-results-intro {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 28px;
  margin-top: 58px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}

.stay-results-intro p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.stay-results-intro a,
.window-stay-link {
  color: var(--green-dark);
  font-size: 13px;
  font-weight: 850;
}

.stay-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 40px);
  margin-top: 30px;
}

.stay-card {
  min-width: 0;
}

.stay-card-image {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--mist);
}

.stay-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 420ms cubic-bezier(0.2, 0.7, 0, 1);
}

.stay-card-image:hover img {
  transform: scale(1.025);
}

.stay-card-placeholder {
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #dbe8ed, #edf3f5);
}

.stay-card-placeholder svg {
  width: 30%;
  fill: rgba(49, 95, 126, 0.32);
}

.stay-card-provider {
  display: block;
  margin-top: 20px;
  color: var(--accent);
  font-family: "Archivo", sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.stay-card h3 {
  margin: 7px 0 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(22px, 2.2vw, 31px);
  letter-spacing: -0.045em;
  line-height: 1.04;
}

.stay-card-meta {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 7px 16px;
  margin-top: 17px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.stay-card-meta span + span::before {
  content: "·";
  margin-right: 16px;
  color: rgba(6, 25, 41, 0.35);
}

.stay-card-meta strong {
  grid-column: 1 / -1;
  margin-top: 4px;
  color: var(--ink);
  font-size: 17px;
}

.stay-card-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  margin-top: 20px;
  padding: 0 16px;
  border: 1px solid var(--ink);
  font-size: 12px;
  font-weight: 850;
  transition: background 180ms ease, color 180ms ease;
}

.stay-card-link:hover {
  background: var(--ink);
  color: var(--white);
}

.stay-message {
  margin-top: 36px;
  padding: 27px 30px;
  border-left: 3px solid var(--green);
  background: var(--white);
}

.stay-message.is-loading h3::before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  margin: 0 12px 2px 0;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 0 rgba(75, 164, 115, 0.42);
  animation: stay-search-pulse 1.4s ease-out infinite;
}

@keyframes stay-search-pulse {
  70% { box-shadow: 0 0 0 10px rgba(75, 164, 115, 0); }
  100% { box-shadow: 0 0 0 0 rgba(75, 164, 115, 0); }
}

.stay-message h3 {
  margin: 0 0 6px;
  font-family: "Archivo", sans-serif;
  font-size: 23px;
  letter-spacing: -0.035em;
}

.stay-message p,
.stay-disclosure {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.stay-message p {
  margin: 0;
}

.stay-disclosure {
  margin: 24px 0 0;
}

.stay-method {
  padding: clamp(78px, 9vw, 122px) 0;
}

.stay-method-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 52px;
  border-top: 1px solid var(--line);
}

.stay-method-grid article {
  padding: 30px 32px 0 0;
}

.stay-method-grid article + article {
  padding-left: 32px;
  border-left: 1px solid var(--line);
}

.stay-method-grid span {
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.stay-method-grid h3 {
  margin: 30px 0 10px;
  font-family: "Archivo", sans-serif;
  font-size: 25px;
  letter-spacing: -0.04em;
}

.stay-method-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}

.stay-home-promo {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(430px, 0.96fr);
  min-height: 680px;
}

.stay-home-media {
  min-height: 540px;
  background: url("../images/mountain-stay.webp?v=20260807c") center / cover no-repeat;
}

.stay-home-copy {
  display: grid;
  place-items: center;
  padding: clamp(60px, 8vw, 110px);
  background: var(--ink-2);
  color: var(--white);
}

.stay-home-copy-inner {
  max-width: 580px;
}

.stay-home-copy h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(54px, 6vw, 84px);
  letter-spacing: -0.065em;
  line-height: 0.94;
}

.stay-home-copy p {
  max-width: 490px;
  margin: 26px 0 0;
  color: rgba(255, 255, 255, 0.68);
  line-height: 1.75;
}

.stay-home-copy .button {
  margin-top: 32px;
}

.stay-home-copy .stay-disclosure,
.stay-home-copy small {
  display: block;
  margin-top: 20px;
  color: rgba(255, 255, 255, 0.44);
  font-size: 11px;
  line-height: 1.6;
}

.window-stay-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 17px;
}

.eyebrow {
  display: block;
  margin-bottom: 15px;
  color: var(--green-dark);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.section.dark .eyebrow {
  color: var(--green);
}

.forecast-at-a-glance {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(210px, 0.45fr);
  gap: 50px;
  margin-bottom: 78px;
  padding: 34px 38px;
  border-left: 5px solid var(--green-dark);
  background: var(--frost);
}

.forecast-at-a-glance h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(30px, 3.7vw, 48px);
  letter-spacing: -0.05em;
  line-height: 1;
}

.forecast-at-a-glance p {
  max-width: 850px;
  margin: 18px 0 0;
  color: #385263;
  font-size: 16px;
  line-height: 1.7;
}

.forecast-at-a-glance-meta {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  justify-content: space-between;
  gap: 22px;
}

.forecast-at-a-glance-meta a,
.forecast-method-note a,
.forecast-caution a {
  border-bottom: 1px solid currentColor;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 800;
}

.forecast-method-note {
  margin: 28px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.forecast-caution a {
  color: var(--green);
}

.related-forecast-section {
  border-top: 1px solid var(--line);
}

.related-forecast-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}

.related-forecast-links a,
.related-area-link a {
  display: flex;
  min-height: 96px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 21px 24px 21px 0;
  border-bottom: 1px solid var(--line);
  transition: color 180ms ease, padding 180ms ease;
}

.related-forecast-links a:nth-child(even) {
  padding-right: 0;
  padding-left: 24px;
  border-left: 1px solid var(--line);
}

.related-forecast-links a:hover,
.related-area-link a:hover {
  padding-inline-start: 10px;
  color: var(--green-dark);
}

.related-forecast-links strong,
.related-forecast-links small,
.related-area-link strong,
.related-area-link small {
  display: block;
}

.related-forecast-links strong,
.related-area-link strong {
  font-family: "Archivo", sans-serif;
  font-size: 18px;
  letter-spacing: -0.025em;
}

.related-forecast-links small,
.related-area-link small {
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
}

.related-area-link {
  margin-bottom: 24px;
  border-top: 3px solid var(--green-dark);
}

.related-area-link a {
  padding-inline: 24px;
  background: var(--frost);
}

.methodology-hero {
  background-position: center 52%;
}

.methodology-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.72fr);
  gap: 90px;
  align-items: end;
}

.methodology-title h2 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-size: clamp(50px, 6.1vw, 82px);
  letter-spacing: -0.06em;
  line-height: 0.98;
}

.methodology-lede p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}

.methodology-lede p + p {
  margin-top: 18px;
}

.methodology-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 70px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.methodology-facts div {
  min-height: 125px;
  padding: 28px 26px;
  border-left: 1px solid var(--line);
}

.methodology-facts div:last-child {
  border-right: 1px solid var(--line);
}

.methodology-facts small,
.methodology-facts strong {
  display: block;
}

.methodology-facts small {
  color: var(--muted);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.methodology-facts strong {
  margin-top: 14px;
  font-family: "Archivo", sans-serif;
  font-size: 19px;
  letter-spacing: -0.035em;
  line-height: 1.25;
}

.methodology-content {
  background: var(--frost);
}

.methodology-grid {
  display: grid;
  grid-template-columns: minmax(210px, 0.42fr) minmax(0, 1.4fr);
  gap: clamp(55px, 8vw, 120px);
}

.methodology-nav {
  position: sticky;
  top: 28px;
  height: fit-content;
  padding-top: 20px;
  border-top: 3px solid var(--green-dark);
}

.methodology-nav a {
  display: block;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.methodology-nav a:hover {
  color: var(--green-dark);
}

.methodology-article > section {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 26px;
  padding: 0 0 66px;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 25px;
}

.methodology-article > section + section {
  padding-top: 66px;
}

.methodology-number {
  padding-top: 8px;
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.1em;
}

.methodology-article h2 {
  margin: 0 0 24px;
  font-family: "Archivo", sans-serif;
  font-size: clamp(36px, 4.5vw, 58px);
  letter-spacing: -0.055em;
  line-height: 1;
}

.methodology-article p {
  max-width: 780px;
  margin: 0;
  color: #455d6c;
  font-size: 15px;
  line-height: 1.82;
}

.methodology-article p + p {
  margin-top: 18px;
}

.methodology-article p a {
  border-bottom: 1px solid currentColor;
  color: var(--green-dark);
  font-weight: 750;
}

.methodology-definitions {
  margin: 32px 0 0;
  border-top: 1px solid var(--line);
}

.methodology-definitions > div {
  display: grid;
  grid-template-columns: minmax(150px, 0.42fr) minmax(0, 1fr);
  gap: 28px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.methodology-definitions dt {
  font-size: 13px;
  font-weight: 850;
}

.methodology-definitions dd {
  margin: 0;
  color: #526773;
  font-size: 13px;
  line-height: 1.7;
}

.button-row {
  display: flex;
  align-items: center;
  gap: 28px;
}

.text-link.light {
  color: var(--white);
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 700ms ease, transform 700ms cubic-bezier(0.2, 0.7, 0, 1);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}

@media (max-width: 980px) {
  .methodology-lead {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .methodology-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .methodology-facts div:nth-child(3),
  .methodology-facts div:nth-child(4) {
    border-top: 1px solid var(--line);
  }

  .methodology-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .methodology-nav {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 30px;
  }

  .methodology-nav .eyebrow {
    grid-column: 1 / -1;
  }

  .menu-button {
    display: grid;
  }

  .main-nav {
    position: fixed;
    z-index: 50;
    inset: 0;
    display: flex;
    visibility: hidden;
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    padding: 118px 25px 40px;
    background: var(--ink);
    opacity: 0;
    transform: translateY(-14px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
  }

  .main-nav a {
    width: 100%;
    padding: 15px 0;
    border-bottom: 1px solid var(--line-dark);
    font-size: 24px;
  }

  .main-nav a::after {
    display: none;
  }

  .main-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
  }

  .home-tool-rail .shell {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-tool-rail a {
    min-height: 72px;
    border-bottom: 1px solid var(--line);
  }

  .winter-capability-rail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .winter-capability-title {
    grid-column: 1 / -1;
  }

  .winter-coming-layout {
    gap: 60px;
  }

  .stay-section-head {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .stay-section-head p {
    max-width: 620px;
  }

  .stay-search-form,
  .stay-search-form:has(.stay-peak-field) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stay-peak-field {
    grid-column: 1 / -1;
  }

  .stay-search-form .button {
    grid-column: 1 / -1;
  }

  .stay-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stay-home-promo {
    grid-template-columns: 1fr;
  }

  .stay-home-media {
    min-height: 520px;
  }

  .stay-home-copy {
    place-items: start;
  }

  .menu-button {
    position: relative;
    z-index: 60;
  }

  .hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.62fr);
  }

  .hero-device {
    width: 330px;
    transform: rotate(3deg) translateX(38px);
  }

  .forecast-layout,
  .page-intro-grid,
  .article-layout {
    grid-template-columns: 1fr;
  }

  .forecast-visual,
  .side-title,
  .article-aside {
    position: relative;
    top: auto;
  }

  .editorial-rail {
    grid-template-columns: 1.15fr 0.85fr;
  }

  .story:last-child {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 0.7fr 1fr;
    gap: 28px;
    margin-top: 48px;
    padding: 48px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .story:last-child .story-image {
    grid-row: 1 / 6;
    margin: 0;
  }

  .app-grid,
  .app-page-grid {
    grid-template-columns: 1fr 1fr;
  }

  .phones .device-frame:first-child {
    left: 0;
  }

  .forecast-day {
    grid-template-columns: minmax(170px, 0.5fr) minmax(0, 1.5fr);
  }

  .forecast-day-copy {
    grid-column: 1 / -1;
  }

  .area-forecast-layout,
  .window-live-layout {
    gap: 45px;
  }

  .area-stat-strip,
  .window-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .forecast-at-a-glance {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-bottom: 58px;
    padding: 28px 22px;
  }

  .forecast-at-a-glance-meta {
    align-items: flex-start;
  }

  .related-forecast-links {
    grid-template-columns: 1fr;
  }

  .related-forecast-links a,
  .related-forecast-links a:nth-child(even) {
    padding-inline: 0;
    border-left: 0;
  }

  .related-area-link a {
    padding-inline: 18px;
  }

  .methodology-facts {
    margin-top: 48px;
  }

  .methodology-facts div {
    min-height: 105px;
    padding: 23px 18px;
  }

  .methodology-nav {
    grid-template-columns: 1fr;
  }

  .methodology-article > section {
    grid-template-columns: 1fr;
    gap: 12px;
    padding-bottom: 50px;
  }

  .methodology-article > section + section {
    padding-top: 50px;
  }

  .methodology-definitions > div {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .button-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .shell {
    width: min(calc(100% - 32px), var(--max));
  }

  .site-header .shell,
  .hero .shell {
    width: min(calc(100% - 32px), var(--max));
  }

  .nav-wrap {
    min-height: 78px;
  }

  .brand {
    font-size: 18px;
  }

  .brand-mark {
    width: 43px;
  }

  .hero,
  .hero-inner {
    height: auto;
    min-height: 960px;
  }

  .hero {
    overflow: hidden;
    background-position: 61% center;
  }

  .hero::before {
    background: linear-gradient(180deg, rgba(3, 17, 28, 0.85), rgba(3, 17, 28, 0.74) 50%, rgba(3, 17, 28, 0.92));
  }

  .hero-inner {
    display: block;
    padding-top: 142px;
  }

  .hero h1 {
    font-size: clamp(58px, 18vw, 78px);
  }

  .hero-copy {
    margin-top: 0;
  }

  .hero-lede {
    max-width: 480px;
    margin-top: 24px;
    font-size: 17px;
  }

  .hero-device {
    width: 250px;
    margin: 55px 14px 0 auto;
    transform: rotate(4deg);
  }

  .home-tool-rail .shell {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-tool-rail a {
    min-height: 68px;
    padding-inline: 16px;
  }

  .home-tool-rail a:last-child {
    grid-column: 1 / -1;
  }

  .device-frame {
    border-width: 7px;
    border-radius: 38px;
  }

  .device-frame img {
    border-radius: 30px;
  }

  .section {
    padding: 76px 0;
  }

  .section-heading {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 44px;
  }

  .section-heading h2,
  .feature-copy h2,
  .app-copy h2 {
    font-size: clamp(46px, 14vw, 65px);
  }

  .stay-section {
    padding: 68px 0 76px;
  }

  .stay-section-head h2 {
    font-size: clamp(46px, 14vw, 65px);
  }

  .stay-search-form,
  .stay-search-form:has(.stay-peak-field) {
    grid-template-columns: 1fr;
    margin-top: 38px;
    padding: 20px 18px;
  }

  .stay-peak-field,
  .stay-search-form .button {
    grid-column: auto;
  }

  .stay-results-intro {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    margin-top: 44px;
  }

  .stay-results {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .stay-card h3 {
    font-size: 28px;
  }

  .stay-method-grid {
    grid-template-columns: 1fr;
  }

  .stay-method-grid article,
  .stay-method-grid article + article {
    padding: 26px 0;
    border-bottom: 1px solid var(--line);
    border-left: 0;
  }

  .stay-method-grid h3 {
    margin-top: 18px;
  }

  .stay-home-media {
    min-height: 420px;
  }

  .stay-home-copy {
    padding: 72px 24px 78px;
  }

  .stay-home-copy h2 {
    font-size: clamp(50px, 16vw, 70px);
  }

  .forecast-layout {
    gap: 42px;
  }

  .forecast-visual {
    min-height: 520px;
    padding: 30px 24px;
  }

  .forecast-visual h3 {
    margin-top: 100px;
  }

  .source-row {
    margin-top: 70px;
  }

  .planning-intro,
  .planning-intro .shell {
    min-height: 590px;
  }

  .planning-intro {
    background-position: 63% center;
  }

  .planning-intro::before {
    background: linear-gradient(90deg, rgba(3, 18, 31, 0.92), rgba(3, 18, 31, 0.43));
  }

  .planning-copy h2 {
    font-size: clamp(52px, 16vw, 72px);
  }

  .editorial-rail {
    display: block;
    padding: 50px 0 76px;
  }

  .story,
  .story:first-child,
  .story:last-child {
    display: flex;
    margin: 0;
    padding: 34px 0;
    border: 0;
    border-top: 1px solid var(--line);
  }

  .story:first-child {
    padding-top: 0;
    border-top: 0;
  }

  .story:last-child .story-image {
    grid-row: auto;
    margin: 0 0 28px;
  }

  .app-grid,
  .app-page-grid {
    display: block;
  }

  .app-grid {
    min-height: auto;
  }

  .app-copy {
    padding: 80px 0 30px;
  }

  .phones,
  .app-page-grid .phones {
    min-height: 590px;
  }

  .phones .device-frame:first-child {
    width: 57%;
    left: 5%;
  }

  .phones .device-frame:last-child {
    width: 49%;
    right: 1%;
  }

  .footer-top,
  .footer-bottom {
    grid-template-columns: 1fr;
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-nav {
    justify-content: flex-start;
  }

  .page-hero,
  .page-hero-content {
    min-height: 430px;
  }

  .page-hero-content {
    padding: 118px 0 46px;
  }

  .page-hero h1 {
    font-size: clamp(48px, 14vw, 68px);
  }

  .page-section {
    padding: 54px 0 72px;
  }

  .peak-search-layout {
    gap: 26px;
  }

  .peak-search-layout .side-title p {
    margin-bottom: 0;
    line-height: 1.6;
  }

  .peak-search-layout .status-line {
    margin-top: 16px;
  }

  .window-overview-section {
    padding: 44px 0 58px;
  }

  .page-hero.windows,
  .page-hero.windows .page-hero-content {
    min-height: 420px;
  }

  .page-hero.windows .page-hero-content {
    padding: 118px 0 42px;
  }

  .page-hero.windows h1 {
    font-size: clamp(48px, 14vw, 64px);
  }

  .window-overview-head {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .window-run-meta {
    justify-items: start;
  }

  .window-table-wrap {
    overflow: visible;
  }

  .window-overview-table,
  .window-overview-table tbody,
  .window-overview-table tr,
  .window-overview-table th,
  .window-overview-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .window-overview-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .window-overview-table tbody tr {
    padding: 23px 0;
    border-bottom: 1px solid var(--line);
  }

  .window-overview-table tbody tr.is-selected {
    padding-inline: 14px;
  }

  .window-overview-table th,
  .window-overview-table td {
    padding: 7px 0;
    border: 0;
  }

  .window-overview-table tbody tr.is-selected th {
    box-shadow: none;
  }

  .window-overview-table tbody th a {
    margin-bottom: 6px;
    font-size: 21px;
  }

  .window-overview-table td[data-label] {
    display: grid;
    grid-template-columns: 126px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
  }

  .window-overview-table td[data-label]::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: 0.055em;
    text-transform: uppercase;
  }

  .window-percent {
    grid-template-columns: minmax(50px, 1fr) 45px;
  }

  .window-row-link {
    margin-top: 8px;
    font-size: 12px;
  }

  .window-duration {
    grid-template-columns: max-content minmax(0, 1fr);
    align-items: center;
    gap: 10px;
  }

  .window-duration time {
    font-size: 11px;
  }

  .window-confidence-copy {
    font-size: 9px;
  }

  .window-empty-state {
    padding: 25px 22px;
  }

  .window-secondary-section {
    margin-top: 38px;
    padding-top: 26px;
  }

  .window-secondary-head {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .window-signal-grid {
    grid-template-columns: 1fr;
  }

  .window-signal-card {
    min-height: 0;
  }

  .page-hero.winter,
  .winter .page-hero-content {
    min-height: 500px;
  }

  .page-hero.winter {
    background-position: 62% center;
  }

  .winter .page-hero-content {
    justify-content: flex-end;
    padding: 120px 0 38px;
  }

  .winter-capability-rail {
    grid-template-columns: 1fr;
    border-right: 0;
  }

  .winter-capability-title,
  .winter-capability {
    grid-column: auto;
    padding: 28px 0;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .winter-capability {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    column-gap: 18px;
  }

  .winter-capability h3,
  .winter-capability p {
    grid-column: 2;
  }

  .winter-capability h3 {
    margin-top: 2px;
  }

  .winter-coming-section {
    padding: 68px 0;
  }

  .winter-coming-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .winter-safety .shell {
    align-items: flex-start;
  }

  .area-forecast-layout,
  .window-live-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .area-forecast-controls,
  .window-sidebar {
    position: static;
  }

  .area-report,
  .window-outlook {
    padding: 28px 20px;
  }

  .area-report-head,
  .window-outlook-head,
  .live-section-head,
  .inversion-candidate header {
    align-items: flex-start;
    flex-direction: column;
  }

  .area-fields div {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .area-region-groups {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .forecast-day {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .forecast-day-copy {
    grid-column: auto;
  }

  .inversion-candidates {
    grid-template-columns: 1fr;
  }

  .inversion-candidate {
    min-height: auto;
    padding: 26px 20px;
  }

  .popular-peak-link,
  .area-link-list a,
  .candidate-window {
    min-height: 74px;
  }

  .candidate-window {
    align-items: flex-start;
    flex-direction: column;
    padding-block: 18px;
  }

  .window-outlook-head .window-status {
    align-self: flex-start;
  }

  .page-intro-grid,
  .article-layout {
    gap: 48px;
  }

  .peak-results {
    grid-template-columns: 1fr;
  }

  .peak-item,
  .peak-item:nth-child(even) {
    padding: 18px 0;
    border-left: 0;
  }

  .search-panel,
  .window-board {
    padding: 24px 18px;
  }

  .window-controls {
    grid-template-columns: 1fr;
  }

  .day-track {
    grid-template-columns: 1fr;
  }

  .day {
    min-height: auto;
  }

  .day-bar {
    margin-top: 30px;
  }

  .app-page-hero {
    padding: 126px 0 30px;
  }
}

@media (max-width: 430px) {
  .methodology-facts {
    grid-template-columns: 1fr;
  }

  .methodology-facts div,
  .methodology-facts div:nth-child(3),
  .methodology-facts div:nth-child(4) {
    border-top: 1px solid var(--line);
    border-right: 1px solid var(--line);
  }

  .actions,
  .store-buttons {
    display: grid;
  }

  .button,
  .store-button {
    width: 100%;
  }

  .hero h1 {
    font-size: 56px;
  }

  .hero-device {
    width: 225px;
  }

  .region-link {
    grid-template-columns: 34px 1fr auto;
    gap: 10px;
  }

  .accordion-content {
    padding-left: 0;
  }
}
