/* Shared outdoor-editorial typography, based on the approved homepage. */
:root { --font-body: "Roboto", Arial, sans-serif; --font-display: "Bebas Neue", "Arial Narrow", sans-serif; --font-label: "Barlow Condensed", "Arial Narrow", sans-serif; }
body { font-family: var(--font-body); }
body:not(.homepage) h1, body:not(.homepage) h2 { font-family: var(--font-display) !important; font-weight: 400 !important; letter-spacing: .015em !important; line-height: 1.06; }
body:not(.homepage) h3 { font-family: var(--font-label) !important; font-weight: 600 !important; letter-spacing: .01em; }
.main-nav, .footer-nav { font-family: var(--font-label); }
.main-nav { font-size: 18px; font-weight: 600; }
.footer-nav { font-size: 17px; font-weight: 500; }
.footer-bottom { flex-wrap:wrap; }
.footer-map-credit { margin:0; font-size:13px; }
.footer-map-credit a { text-decoration:underline; }
.brand { font-family: var(--font-label); font-size: 25px; letter-spacing: .01em; }
.reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
.forecast-at-a-glance, .section-heading { scroll-margin-top: 24px; }
.weather-value, .forecast-at-a-glance-meta, .metric-value, .website-activity-score em { text-transform: none; }

/* Homepage uses the same navigation and footer without inheriting interior layouts. */
.homepage { --ink:#061929; --white:#fff; --line-dark:rgba(255,255,255,.2); }
.homepage .site-header { position:relative; z-index:30; color:#fff; background:#061929; }
.homepage .site-header .shell, .homepage .site-footer .shell { width:min(calc(100% - 48px),1410px); margin-inline:auto; }
.homepage .nav-wrap { display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:24px; }
.homepage .brand { display:inline-flex; align-items:center; gap:12px; color:#fff; white-space:nowrap; font-weight:600; }
.homepage .brand-mark { width:43px; height:28px; color:#00a967; }
.homepage .main-nav { display:flex; align-items:center; gap:24px; }
.homepage .main-nav a { padding:12px 0; }
.homepage .main-nav a:hover, .homepage .footer-nav a:hover { color:#42d59b; }
.homepage .menu-button { display:none; width:44px; height:44px; padding:10px; border:1px solid #7c969f; background:transparent; color:#fff; }
.homepage .menu-button svg { width:24px; height:24px; }
.homepage .site-footer { background:#061929; color:#cfdbdf; }
.homepage .footer-top { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:42px 0; }
.homepage .footer-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:14px 24px; }
.homepage .footer-bottom { padding:22px 0 30px; border-top:1px solid #3c505d; display:flex; gap:14px 32px; flex-wrap:wrap; font-size:13px; }
.homepage .footer-legal { width:100%; margin:0; }
.homepage .footer-legal a { text-decoration:underline; }
.homepage .forecast-chooser { padding-top:32px; }
.homepage .skip-link { z-index:100; }

/* A clearly separate, optional planning section, not another forecast hero. */
.stay-section.is-forecast-stay { padding:40px 0; border-top:1px solid #c6d3d8; border-bottom:1px solid #c6d3d8; background:#f2f5f4; }
.is-forecast-stay .stay-section-head { display:block; margin-bottom:22px; }
.is-forecast-stay .stay-section-head h2 { font-size:36px; margin:0 0 8px; }
.is-forecast-stay .stay-section-head p { max-width:800px; font-size:16px; margin:0; }
.is-forecast-stay .stay-curated-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.is-forecast-stay .stay-curated { margin:0; padding:0; }
.is-forecast-stay .stay-curated-card { display:grid; grid-template-columns:160px minmax(0,1fr); grid-template-rows:auto auto 1fr auto; align-content:start; gap:0 20px; padding:16px; box-shadow:none; border:1px solid #d1dcda; border-radius:2px; background:#fff; }
.is-forecast-stay .stay-card-image { grid-row:1 / 6; width:160px; height:160px; min-height:0; margin:0; border-radius:0; }
.is-forecast-stay .stay-card-image img { width:100%; height:100%; object-fit:cover; }
.is-forecast-stay .stay-card-provider { margin:0; }
.is-forecast-stay .stay-card h4 { margin:6px 0; font-size:20px; }
.is-forecast-stay .stay-card-meta { display:flex; flex-wrap:wrap; gap:5px 12px; margin-top:8px; font-size:14px; }
.is-forecast-stay .stay-card-meta span + span::before { content:none; }
.is-forecast-stay .stay-card-meta strong { flex-basis:100%; }
.is-forecast-stay .stay-card-hill-access { display:none; }
.is-forecast-stay .stay-card-link { margin-top:12px; }
.is-forecast-stay .stay-disclosure { font-size:13px; line-height:1.6; margin-bottom:16px; }
.forecast-stay-search { margin-top:18px; border-top:1px solid #c6d3d8; }
.forecast-stay-search summary { padding:18px 0; font-size:17px; font-weight:600; cursor:pointer; color:#126b4c; }
.forecast-stay-search .stay-search-form { margin-top:8px; }
.forecast-stay-search-link { display:inline-block; margin:4px 0 12px; color:#126b4c; text-decoration:underline; }
.crag-setting-filter { display:flex; gap:12px; flex-wrap:wrap; margin:20px 0; align-items:center; }
.crag-setting-filter a { border:1px solid #b8c8ca; padding:10px 16px; background:#fff; color:#061929; }
.crag-setting-filter a[aria-current] { background:#061929; color:#fff; }
.window-next-steps { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.window-next-steps a { padding:12px 18px; border:1px solid #97b6a8; color:#075a3b; background:#fff; }
.about-page { background:#fff; }
.about-intro { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; padding:60px 0; }
.about-intro h1 { font-size:clamp(44px,5vw,72px); margin:0 0 22px; }
.about-intro p, .about-principles p { font-size:18px; line-height:1.7; }
.about-intro figure { margin:0; }
.about-intro img { width:100%; height:auto; }
.about-intro figcaption { margin-top:10px; color:#52636c; font-size:14px; }
.about-principles { padding:0 0 64px; display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.about-principles h2 { font-size:34px; }
.not-found-page .page-section { min-height:55vh; }
.not-found-page h1 { font-size:clamp(48px,6vw,80px); }
@media(max-width:1100px) {
 .homepage .menu-button { display:block; z-index:60; cursor:pointer; }
 .homepage .main-nav { display:none; position:absolute; top:76px; left:0; right:0; background:#061929; padding:20px 24px; flex-direction:column; align-items:stretch; gap:0; max-height:calc(100dvh - 76px); overflow:auto; }
 .homepage .main-nav.is-open { display:flex; }
 .homepage .main-nav a { border-bottom:1px solid #3c505d; }
 .homepage.menu-open { overflow:hidden; }
 .is-forecast-stay .stay-curated-card { grid-template-columns:110px minmax(0,1fr); gap:0 12px; }
 .is-forecast-stay .stay-card-image { width:110px; height:145px; }
}
@media(max-width:760px) {
 .homepage .footer-top, .about-intro, .about-principles { grid-template-columns:1fr; gap:26px; }
 .homepage .footer-nav { justify-content:flex-start; }
 .homepage .site-header .shell, .homepage .site-footer .shell { width:calc(100% - 32px); }
 .is-forecast-stay .stay-curated-grid { grid-template-columns:1fr; }
 .is-forecast-stay .stay-section-head h2 { font-size:32px; }
 .about-intro { padding:36px 0; }
 .about-principles { padding-bottom:40px; }
}
