:root {
  --ink: #15211d;
  --muted: #5f6b65;
  --forest: #18352c;
  --forest-2: #284b3f;
  --cream: #f5f1e7;
  --paper: #fffefa;
  --gold: #c79845;
  --gold-soft: #ead7ae;
  --mist: #e7ece8;
  --line: #d8ddd8;
  --rust: #8d4a32;
  --max: 1200px;
  --shadow: 0 18px 50px rgba(20, 33, 29, .10);
}

/* D1-backed events preview */
.event-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:.8rem;align-items:end;margin:0 0 1.25rem;padding:1rem;background:#f4f0e7;border:1px solid #d8cfbd;border-radius:12px}
.event-filters label{display:grid;gap:.35rem;font-size:.82rem;font-weight:700;color:#39483e}
.event-filters input,.event-filters select{width:100%;min-height:44px;padding:.6rem;border:1px solid #a9afa7;border-radius:7px;background:#fff;color:#1f2f25;font:inherit}
.event-filters button{min-height:44px;padding:.65rem 1rem;border:0;border-radius:7px;background:#235f43;color:#fff;font-weight:800;cursor:pointer}
.current-events .event-count{font-weight:800;color:#405345}
.current-events .event-group{margin:1.6rem 0}.current-events .event-group>h3{margin:0 0 .7rem;font-size:1.25rem}
.current-events .event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.current-events .event-card{display:flex;min-height:0;grid-template-columns:none;flex-direction:column;gap:.55rem;padding:1.1rem;background:#fff;color:#15211d;border:1px solid #d8ddda;border-radius:12px;box-shadow:0 4px 16px rgba(31,47,37,.06)}
.current-events .event-card.featured{border-color:#bd8f32;box-shadow:inset 0 4px #bd8f32,0 4px 16px rgba(31,47,37,.08)}
.current-events .event-card h3,.current-events .event-card p{margin:0}.current-events .event-card h3{font-size:1.2rem;line-height:1.25}.current-events .event-card-top,.current-events .event-links{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.current-events .date-pill{padding:.35rem .55rem;border-radius:999px;background:#18352c;color:#fff;font:800 .72rem Arial,Helvetica,sans-serif}.current-events .event-drive{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#76500d}.current-events .event-category,.current-events .event-source,.current-events .event-recurrence{font-size:.78rem;color:#607066}.current-events .event-place{font-weight:700;color:#3f5146}.current-events .event-links{margin-top:auto;padding-top:.3rem}.current-events .event-links a{margin-top:0;color:#76500d;font-weight:800}.current-events .event-ticket{padding-left:.65rem;border-left:1px solid #c8cec9}
@media (max-width:900px){.event-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.event-filters button{grid-column:1/-1}.current-events .event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.event-filters,.current-events .event-grid{grid-template-columns:1fr}.event-filters button{grid-column:auto}.current-events .event-card{padding:1rem}}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Georgia, 'Times New Roman', serif; text-rendering: optimizeLegibility; }
img { max-width: 100%; }
a { color: inherit; }
.wrap { width: min(var(--max), calc(100% - 40px)); margin-inline: auto; }
.section-space { margin-top: 56px; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 16px; background: var(--forest); color: #fff; }
.skip-link:focus { top: 12px; }

.utility-bar { background: var(--forest); color: rgba(255,255,255,.88); font-family: Arial, Helvetica, sans-serif; font-size: 12px; letter-spacing: .035em; }
.utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.utility-links { display: flex; gap: 22px; }
.utility-links a { text-decoration: none; }
.utility-links a:hover { color: #fff; text-decoration: underline; }

.site-header { background: var(--paper); }
.masthead { min-height: 136px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; }
.brand { display: block; width: min(500px, 46vw); }
.brand img { display: block; width: 100%; height: auto; }
.newsletter-link { justify-self: end; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; text-decoration: none; border-bottom: 2px solid var(--gold); padding-bottom: 5px; }
.menu-button { visibility: hidden; justify-self: start; display: inline-flex; gap: 7px; align-items: center; border: 0; background: transparent; color: var(--ink); font: 700 13px Arial, Helvetica, sans-serif; text-transform: uppercase; letter-spacing: .07em; }
.primary-nav { border-block: 1px solid var(--line); }
.nav-inner { display: flex; justify-content: center; align-items: center; gap: clamp(20px, 3.6vw, 48px); min-height: 50px; font-family: Arial, Helvetica, sans-serif; }
.nav-inner a { position: relative; padding: 17px 0 15px; text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.nav-inner a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -1px; height: 3px; background: var(--gold); transition: right .2s ease; }
.nav-inner a:hover::after, .nav-inner a.active::after { right: 0; }

.lead-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(290px, .75fr); gap: 38px; }
.lead-story { min-width: 0; }
.lead-image { display: block; height: 440px; overflow: hidden; background: var(--mist); }
.lead-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.lead-copy { position: relative; width: calc(100% - 52px); margin: -72px auto 0; padding: 28px 34px 8px; background: var(--paper); text-align: center; }
.kicker, .eyebrow, .story-meta, .source-line, .ad-label { font-family: Arial, Helvetica, sans-serif; }
.kicker { margin: 0 0 9px; color: var(--rust); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lead-copy h1 { margin: 0; font-size: clamp(38px, 5vw, 66px); line-height: .99; letter-spacing: -.045em; }
.dek { max-width: 760px; margin: 20px auto 0; color: #3f4a45; font-size: 19px; line-height: 1.55; }
.story-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin: 20px 0 17px; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .07em; }
.text-link { display: inline-block; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: 700; line-height: 1.45; text-underline-offset: 4px; }
.right-rail { display: flex; flex-direction: column; gap: 28px; }
.weather-card { padding: 25px; background: var(--forest); color: #fff; box-shadow: var(--shadow); }
.weather-top { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 22px; }
.weather-card .eyebrow { color: var(--gold-soft); }
.temperature { margin: 4px 0 0; font-size: 58px; line-height: 1; }
.weather-summary { margin: 0 0 5px; font-size: 18px; font-weight: 700; }
.weather-detail { margin: 0; color: rgba(255,255,255,.72); font: 12px/1.45 Arial, Helvetica, sans-serif; }
.weather-card > a { display: inline-block; margin-top: 18px; color: var(--gold-soft); font: 700 12px Arial, Helvetica, sans-serif; text-underline-offset: 4px; }
.weather-alert { margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.22); font: 700 12px/1.45 Arial, Helvetica, sans-serif; color: #ffe2a8; }
.weather-places { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.weather-places button { padding: 8px 10px; border: 1px solid rgba(255,255,255,.28); background: transparent; color: #fff; cursor: pointer; font: 700 10px Arial, Helvetica, sans-serif; letter-spacing: .025em; }
.weather-places button:hover, .weather-places button.selected { border-color: var(--gold-soft); background: rgba(255,255,255,.1); }
.weather-places .location-button { flex-basis: 100%; color: var(--gold-soft); }
.privacy-note { margin: 10px 0 0; color: rgba(255,255,255,.58); font: 10px/1.45 Arial, Helvetica, sans-serif; }
.section-rule { display: flex; align-items: center; gap: 12px; font: 800 12px Arial, Helvetica, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.section-rule::after { content: ''; height: 1px; flex: 1; background: var(--ink); }
.brief-list article { padding: 20px 0; border-bottom: 1px solid var(--line); }
.brief-list h2 { margin: 0; font-size: 21px; line-height: 1.23; }
.brief-list h2 a { text-decoration: none; }
.brief-list h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

.ad-slot { min-height: 180px; padding: 24px 30px; border: 1px solid #c9cfc9; background: #f0f2ef; display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 24px; font-family: Arial, Helvetica, sans-serif; }
.ad-slot > span { color: var(--muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.ad-slot strong { display: block; font-size: 18px; }
.ad-slot p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.ad-slot > a { padding: 11px 16px; border: 1px solid var(--forest); text-decoration: none; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.ad-slot > a:hover { background: var(--forest); color: #fff; }

.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; padding-bottom: 18px; border-bottom: 3px solid var(--ink); margin-bottom: 25px; }
.section-heading.compact { margin-bottom: 18px; }
.section-heading.centered { flex-direction: column; align-items: center; text-align: center; border: 0; }
.eyebrow { margin: 0 0 8px; color: var(--rust); font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.section-heading h2 { margin: 0; font-size: clamp(34px, 4vw, 48px); line-height: 1; letter-spacing: -.035em; }
.section-heading > p, .section-heading.centered > p { max-width: 520px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.55; }
.story-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 24px; }
.story-card { border: 1px solid var(--line); background: #fff; }
.story-art { min-height: 185px; padding: 16px; display: flex; align-items: end; position: relative; overflow: hidden; isolation: isolate; color: #fff; background-color: var(--forest-2); font: 800 11px Arial, Helvetica, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.story-art-photo picture { position: absolute; inset: 0; z-index: -2; }
.story-art-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.story-art-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(16,35,29,0) 42%, rgba(16,35,29,.66) 100%); }
.story-art-photo span { text-shadow: 0 1px 3px rgba(0,0,0,.58); }
.art-river img { object-position: center 58%; }
.art-housing img { object-position: center 30%; }
.art-data img { object-position: center 54%; }

.profile-breadcrumb { padding-block: 24px; font: 700 12px Arial,Helvetica,sans-serif; }
.profile-breadcrumb a { text-underline-offset: 4px; }
.profile-hero { padding: clamp(42px,7vw,82px) 0; background: var(--cream); border-block: 1px solid var(--line); }
.profile-hero-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(260px,.65fr); gap: clamp(36px,7vw,90px); align-items: center; }
.profile-hero h1 { max-width: 820px; margin: 0; font-size: clamp(44px,7vw,78px); line-height: .95; letter-spacing: -.045em; }
.profile-dek { max-width: 760px; margin: 24px 0 0; color: #3f4a45; font-size: clamp(18px,2.2vw,23px); line-height: 1.55; }
.profile-primary-actions { margin-top: 26px; }
.profile-primary-actions a { display: inline-block; padding: 14px 18px; background: var(--forest); color: #fff; text-decoration: none; font: 800 12px Arial,Helvetica,sans-serif; letter-spacing: .05em; text-transform: uppercase; }
.profile-logo { min-height: 220px; padding: 28px; display: grid; place-items: center; background: #fff; border: 1px solid var(--line); }
.profile-logo-owner { background: var(--forest); }
.profile-logo img { width: 100%; height: auto; max-height: 180px; object-fit: contain; }
.profile-logo-type { color: var(--forest); text-align: center; font-size: clamp(26px,4vw,42px); font-weight: 700; line-height: 1.05; }
.profile-layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,.65fr); gap: clamp(40px,8vw,100px); padding-block: clamp(54px,8vw,96px); }
.profile-main h2 { margin: 0 0 16px; font-size: clamp(30px,4vw,44px); line-height: 1.05; }
.profile-main h2:not(:first-of-type) { margin-top: 44px; }
.profile-main > p,.profile-main li { color: #45524c; font-size: 18px; line-height: 1.7; }
.profile-main ul { padding-left: 23px; }
.profile-main li + li { margin-top: 10px; }
.profile-source-note { margin-top: 44px; padding: 20px 22px; background: var(--mist); color: #46534d; font: 13px/1.6 Arial,Helvetica,sans-serif; }
.profile-sidebar { align-self: start; padding: 28px; border-top: 4px solid var(--gold); background: #fff; box-shadow: var(--shadow); }
.profile-sidebar p { color: #48534e; line-height: 1.55; }
.profile-link-stack { display: grid; gap: 12px; margin-top: 24px; }
.profile-link-stack a { padding-top: 12px; border-top: 1px solid var(--line); font: 800 12px/1.45 Arial,Helvetica,sans-serif; text-underline-offset: 4px; }
.profile-reviewed { margin-top: 28px; color: var(--muted)!important; font: 11px/1.5 Arial,Helvetica,sans-serif; }
@media (max-width:760px){.profile-hero-grid,.profile-layout{grid-template-columns:1fr}.profile-logo{min-height:150px}.profile-logo img{max-height:120px}.profile-layout{padding-block:48px}.profile-hero{padding-block:44px}.profile-breadcrumb{padding-block:18px}}
.story-body { padding: 22px; }
.story-body h3 { margin: 0; font-size: 24px; line-height: 1.12; letter-spacing: -.02em; }
.story-body h3 a { text-decoration: none; }
.story-body h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.story-body > p:not(.kicker) { color: #48534e; font-size: 15px; line-height: 1.6; }
.source-line { color: var(--muted); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }

.events-band { padding: 56px 0 64px; background: var(--forest); color: #fff; }
.section-heading-light { border-color: rgba(255,255,255,.85); }
.section-heading-light .eyebrow { color: var(--gold-soft); }
.light-link { color: var(--gold-soft); }
.event-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.event-card { min-height: 245px; padding: 22px; border: 1px solid rgba(255,255,255,.22); display: grid; grid-template-columns: 58px 1fr; gap: 17px; }
.event-card time { text-align: center; font-family: Arial, Helvetica, sans-serif; }
.event-card time span { display: block; color: var(--gold-soft); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.event-card time strong { display: block; margin-top: 2px; font: 42px/1 Georgia, 'Times New Roman', serif; }
.event-card .kicker { color: var(--gold-soft); }
.event-card h3 { margin: 0 0 9px; font-size: 23px; line-height: 1.08; }
.event-card p:not(.kicker) { margin: 0; color: rgba(255,255,255,.73); font-size: 14px; line-height: 1.5; }
.current-events .event-card p:not(.kicker) { color: #526157; }
.current-events .event-card .event-place { color: #3f5146; }
.event-card a { display: inline-block; margin-top: 14px; color: var(--gold-soft); font: 700 12px Arial, Helvetica, sans-serif; text-underline-offset: 4px; }

.outdoors-grid { display: grid; grid-template-columns: 1.6fr .7fr; gap: 48px; align-items: stretch; }
.outdoors-feature { padding: 42px; background: var(--cream); border-top: 5px solid var(--gold); }
.outdoors-feature h2 { margin: 0; font-size: clamp(38px, 5vw, 60px); line-height: 1; letter-spacing: -.045em; }
.large-copy { max-width: 760px; color: #46504b; font-size: 19px; line-height: 1.6; }
.action-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 25px; }
.button { display: inline-block; padding: 14px 18px; text-decoration: none; font: 800 12px Arial, Helvetica, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.button-dark { background: var(--forest); color: #fff; }
.button-outline { border: 1px solid var(--forest); color: var(--forest); }
.outdoors-note { padding: 35px; border: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
.note-number { color: var(--rust); font-size: 90px; line-height: .85; }
.outdoors-note p { font-size: 18px; line-height: 1.5; }
.outdoors-note a { font: 700 12px Arial, Helvetica, sans-serif; text-underline-offset: 4px; }
.photo-feature { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); background: var(--mist); }
.photo-feature-media { display: block; min-height: 420px; overflow: hidden; }
.photo-feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.photo-feature-copy { padding: clamp(32px, 5vw, 68px); align-self: center; }
.photo-feature-copy h2 { margin: 0; font-size: clamp(38px, 5vw, 62px); line-height: .98; letter-spacing: -.045em; }
.photo-feature-copy > p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.62; }
.outdoors-scenic { margin: 0 0 30px; }
.outdoors-scenic picture, .outdoors-scenic img { display: block; width: 100%; }
.outdoors-scenic img { max-height: 560px; object-fit: cover; object-position: center 44%; }
.outdoors-scenic figcaption, .wildlife-card figcaption, .wildlife-story-card figcaption { color: var(--muted); font: 12px/1.5 Arial, Helvetica, sans-serif; }
.outdoors-scenic figcaption { padding: 10px 0; border-bottom: 1px solid var(--line); }
.wildlife-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 22px; }
.wildlife-card { margin: 0; border: 1px solid var(--line); background: #fff; }
.wildlife-card picture { display: block; height: 250px; overflow: hidden; background: var(--mist); }
.wildlife-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wildlife-card-bobcat img { object-position: center 18%; }
.wildlife-card figcaption, .wildlife-story-card figcaption { padding: 14px 16px 16px; }
.wildlife-card figcaption strong, .wildlife-card figcaption span, .wildlife-story-card figcaption strong, .wildlife-story-card figcaption span { display: block; }
.wildlife-card figcaption strong, .wildlife-story-card figcaption strong { margin-bottom: 4px; color: var(--ink); font-size: 14px; }

.business-grid { display: grid; grid-template-columns: 1.65fr .75fr; gap: 34px; }
.business-lead { padding: 34px; background: var(--mist); }
.business-lead h3 { max-width: 800px; margin: 0; font-size: 34px; line-height: 1.08; letter-spacing: -.03em; }
.business-lead h3 a { text-decoration: none; }
.business-lead > p:not(.kicker) { color: #44504a; font-size: 17px; line-height: 1.6; }
.sponsor-card { min-height: 280px; padding: 34px; background: var(--ink); color: #fff; }
.ad-label { color: var(--gold-soft); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sponsor-card h3 { margin: 60px 0 14px; font-size: 35px; line-height: 1.03; }
.sponsor-card p { color: rgba(255,255,255,.72); line-height: 1.55; }
.promotion-slot img { width: min(240px, 24vw); max-height: 132px; object-fit: cover; border-radius: 2px; }
.promotion-card img { width: 100%; max-height: 180px; margin: 18px 0 0; object-fit: cover; border-radius: 2px; }
.promotion-card h3 { margin-top: 26px; }
.button-gold { margin-top: 18px; background: var(--gold); color: #111; }

.network-section { padding: 60px 0; background: var(--cream); }
.network-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.network-grid a, .network-grid > div { min-height: 128px; padding: 20px; background: #fff; border: 1px solid #dfd8c8; display: grid; place-items: center; transition: transform .18s ease, box-shadow .18s ease; }
.network-grid a:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.network-grid img { max-height: 86px; width: auto; }

.newsletter { padding: 46px 54px; background: var(--rust); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.newsletter .eyebrow { color: #f2d8c7; }
.newsletter h2 { margin: 0; font-size: clamp(34px, 4vw, 50px); line-height: 1; }
.newsletter p:not(.eyebrow) { margin-bottom: 0; color: rgba(255,255,255,.8); font-size: 17px; }
.button-light { flex: none; background: #fff; color: var(--rust); }

.site-footer { margin-top: 60px; padding: 54px 0 22px; background: #101915; color: rgba(255,255,255,.78); }
.footer-grid { display: grid; grid-template-columns: 1.8fr repeat(3, 1fr); gap: 50px; }
.footer-brand img { max-width: 320px; filter: invert(1) grayscale(1) brightness(4); mix-blend-mode: screen; }
.footer-brand p { max-width: 350px; line-height: 1.55; }
.footer-grid h2 { margin: 0 0 15px; color: var(--gold-soft); font: 800 11px Arial, Helvetica, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.footer-grid > div:not(.footer-brand) a { display: block; margin: 0 0 11px; font: 13px Arial, Helvetica, sans-serif; text-decoration: none; }
.footer-grid > div:not(.footer-brand) a:hover { color: #fff; text-decoration: underline; }
.footer-grid > div:not(.footer-brand) p { margin: 0; font: 13px/1.6 Arial, Helvetica, sans-serif; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); font: 11px Arial, Helvetica, sans-serif; text-transform: uppercase; letter-spacing: .08em; }

.page-hero { padding: 70px 0 60px; background: var(--cream); text-align: center; }
.page-hero h1 { max-width: 900px; margin: 0 auto; font-size: clamp(48px, 7vw, 82px); line-height: .96; letter-spacing: -.05em; }
.page-hero p:not(.eyebrow) { max-width: 720px; margin: 24px auto 0; color: var(--muted); font-size: 19px; line-height: 1.55; }
.sales-grid { display: grid; grid-template-columns: 1.4fr .8fr; gap: 34px; }
.sales-grid h2 { margin-top: 0; font-size: 40px; }
.sales-grid p, .sales-grid li { font-size: 17px; line-height: 1.65; }
.sales-panel { padding: 34px; background: var(--mist); }
.sales-panel.dark { background: var(--forest); color: #fff; }
.sales-panel.dark p { color: rgba(255,255,255,.75); }
.package-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.package { padding: 28px; border: 1px solid var(--line); background: #fff; }
.package h3 { margin: 0 0 12px; font-size: 28px; }
.package p, .package li { color: var(--muted); line-height: 1.55; }
.package ul { padding-left: 19px; }
.proof-strip { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); }
.proof-strip div { padding: 26px; border-right: 1px solid var(--line); }
.proof-strip div:last-child { border: 0; }
.proof-strip strong { display: block; font-size: 24px; }
.proof-strip span { color: var(--muted); font: 12px/1.4 Arial, Helvetica, sans-serif; }
.disclosure { padding: 18px 22px; background: #f3f0e8; color: var(--muted); font: 12px/1.55 Arial, Helvetica, sans-serif; }

.article-shell { width: min(820px, calc(100% - 40px)); margin: 62px auto; }
.article-header { padding-bottom: 30px; border-bottom: 1px solid var(--line); text-align: center; }
.article-header h1 { margin: 0; font-size: clamp(45px, 7vw, 76px); line-height: .97; letter-spacing: -.05em; }
.article-header .dek { font-size: 21px; }
.article-body { margin-top: 36px; }
.article-body > p { font-size: 19px; line-height: 1.75; }
.article-body h2 { margin: 44px 0 12px; font-size: 34px; line-height: 1.08; letter-spacing: -.025em; }
.article-body ul { padding-left: 22px; }
.article-body li { margin-bottom: 9px; font-size: 18px; line-height: 1.55; }
.article-source { margin-top: 42px; padding: 24px; border-left: 4px solid var(--gold); background: var(--cream); font: 14px/1.65 Arial, Helvetica, sans-serif; }
.article-source strong { display: block; margin-bottom: 4px; }
.article-source a { text-underline-offset: 3px; }
.article-back { display: inline-block; margin-bottom: 24px; color: var(--rust); font: 800 11px Arial, Helvetica, sans-serif; letter-spacing: .1em; text-transform: uppercase; text-underline-offset: 4px; }

.desk-hero { padding: 64px 0 54px; background: linear-gradient(140deg, var(--cream), #e8eee9); border-bottom: 1px solid var(--line); }
.desk-hero .wrap { display: grid; grid-template-columns: 1.4fr .7fr; gap: 60px; align-items: end; }
.desk-hero h1 { margin: 0; max-width: 800px; font-size: clamp(50px, 7vw, 86px); line-height: .92; letter-spacing: -.055em; }
.desk-hero .intro { margin: 0; color: #45524c; font-size: 19px; line-height: 1.65; }
.desk-nav { background: var(--forest); color: #fff; }
.desk-nav .wrap { min-height: 48px; display: flex; align-items: center; gap: 10px 28px; overflow-x: auto; font: 700 11px Arial, Helvetica, sans-serif; letter-spacing: .055em; text-transform: uppercase; }
.desk-nav a { flex: none; color: rgba(255,255,255,.78); text-decoration: none; }
.desk-nav a:hover { color: var(--gold-soft); }
.coverage-note { padding: 18px 22px; border-left: 4px solid var(--gold); background: var(--cream); color: #45514b; font: 13px/1.6 Arial, Helvetica, sans-serif; }
.coverage-note strong { color: var(--ink); }
.region-block { margin-top: 48px; }
.region-title { display: flex; justify-content: space-between; gap: 30px; align-items: end; padding-bottom: 14px; border-bottom: 3px solid var(--ink); }
.region-title h2 { margin: 0; font-size: clamp(34px, 4.2vw, 52px); line-height: 1; letter-spacing: -.035em; }
.region-title p { max-width: 520px; margin: 0; color: var(--muted); line-height: 1.5; }
.calendar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 22px; }
.calendar-card { position: relative; min-height: 250px; padding: 26px; border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; }
.calendar-card.featured { border-top: 5px solid var(--gold); }
.calendar-card .date-pill { align-self: flex-start; padding: 6px 9px; background: var(--forest); color: #fff; font: 800 10px Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.calendar-card h3 { margin: 18px 0 8px; font-size: 26px; line-height: 1.08; }
.calendar-card p { margin: 0 0 18px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.calendar-card a, .source-card a, .link-card a { margin-top: auto; font: 700 12px Arial, Helvetica, sans-serif; text-underline-offset: 4px; }
.source-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 22px; }
.source-card { min-height: 190px; padding: 23px; background: var(--mist); display: flex; flex-direction: column; }
.source-card h3 { margin: 0 0 10px; font-size: 23px; line-height: 1.1; }
.source-card p { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.info-panel { padding: 30px; border: 1px solid var(--line); background: #fff; }
.info-panel.tint { background: var(--cream); }
.info-panel.dark { background: var(--forest); color: #fff; }
.info-panel h2, .info-panel h3 { margin-top: 0; font-size: 30px; line-height: 1.08; }
.info-panel p, .info-panel li { color: var(--muted); font-size: 16px; line-height: 1.62; }
.info-panel.dark p, .info-panel.dark li { color: rgba(255,255,255,.76); }
.link-list { margin: 20px 0 0; padding: 0; list-style: none; }
.link-list li { padding: 13px 0; border-top: 1px solid var(--line); }
.info-panel.dark .link-list li { border-color: rgba(255,255,255,.18); }
.link-list a { font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: 700; text-underline-offset: 4px; }
.jobs-search { padding: 34px; background: var(--forest); color: #fff; }
.jobs-search h2 { margin: 0; font-size: 40px; }
.jobs-search > p { color: rgba(255,255,255,.72); line-height: 1.55; }
.job-buttons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 24px; }
.job-buttons a { padding: 16px; border: 1px solid rgba(255,255,255,.25); color: #fff; text-decoration: none; font: 700 12px/1.35 Arial, Helvetica, sans-serif; }
.job-buttons a:hover { border-color: var(--gold-soft); color: var(--gold-soft); }
.company-strip { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.company-strip span { padding: 8px 10px; background: var(--mist); color: var(--forest); font: 700 11px Arial, Helvetica, sans-serif; }
.safety-banner { padding: 28px; background: #f4e2d9; border-left: 5px solid var(--rust); }
.safety-banner h2 { margin: 0 0 8px; font-size: 30px; }
.safety-banner p { margin: 0; font-size: 16px; line-height: 1.6; }

.local-guide-hero { background: linear-gradient(135deg, #f5eedf 0%, #e5eee8 58%, #dce7df 100%); }
.feature-route-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; margin-top: 30px; }
.feature-route { min-height: 250px; padding: 28px; background: var(--forest); color: #fff; display: flex; flex-direction: column; }
.feature-route:nth-child(2) { background: var(--rust); }
.feature-route:nth-child(3) { background: var(--ink); }
.feature-route .kicker { color: var(--gold-soft); }
.feature-route h2 { margin: 10px 0; font-size: 28px; line-height: 1.06; }
.feature-route h2 a { text-decoration: none; }
.feature-route p:not(.kicker) { color: rgba(255,255,255,.76); font-size: 15px; line-height: 1.55; }
.feature-route .text-link { margin-top: auto; color: #fff; }
.local-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 22px; }
.local-grid-three { grid-template-columns: repeat(3, 1fr); }
.local-card { min-height: 285px; padding: 26px; border: 1px solid var(--line); border-top: 4px solid var(--gold); background: #fff; display: flex; flex-direction: column; }
.local-card:nth-child(even) { background: #fbfaf6; }
.place-tag { color: var(--rust); font: 800 10px Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.local-card h3 { margin: 18px 0 10px; font-size: 27px; line-height: 1.06; }
.local-card p { margin: 0 0 20px; color: var(--muted); font-size: 15px; line-height: 1.58; }
.local-card a { margin-top: auto; font: 700 12px Arial, Helvetica, sans-serif; text-underline-offset: 4px; }
.card-link-stack { margin-top: auto; display: grid; gap: 9px; }
.local-card .card-link-stack a { margin-top: 0; }
.guide-actions { margin-top: 28px; }
.hart-note { margin-top: 22px; }
.hart-note a { font-weight: 700; text-underline-offset: 3px; }
.related-resources { margin-top: 44px; padding: 28px; background: var(--cream); border-top: 4px solid var(--gold); }
.resource-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 16px; }
.resource-list a { padding: 18px; background: #fff; border: 1px solid var(--line); text-decoration: none; }
.resource-list strong, .resource-list span { display: block; }
.resource-list strong { font-size: 17px; }
.resource-list span { margin-top: 6px; color: var(--muted); font: 13px/1.45 Arial, Helvetica, sans-serif; }
.resource-note { margin: 18px 0 0; color: var(--muted); font: 12px/1.55 Arial, Helvetica, sans-serif; }
.article-figure { margin: 34px 0; }
.article-figure img { display: block; width: 100%; height: auto; }
.article-figure figcaption { padding: 10px 0; color: var(--muted); border-bottom: 1px solid var(--line); font: 12px/1.5 Arial, Helvetica, sans-serif; }
.article-figure-narrow { max-width: 620px; margin-inline: auto; }
.fact-callout { margin: 34px 0; padding: 26px; background: var(--ink); color: #fff; }
.fact-callout strong { display: block; margin-bottom: 8px; color: var(--gold); font: 700 12px Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.fact-callout p { margin: 0; color: rgba(255,255,255,.78); }
.wildlife-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 34px 0; }
.wildlife-story-card { margin: 0; border: 1px solid var(--line); background: #fff; overflow: hidden; }
.wildlife-story-card picture { display: block; height: 360px; overflow: hidden; background: var(--mist); }
.wildlife-story-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
.wildlife-story-card.landscape { grid-column: 1 / -1; }
.wildlife-story-card.landscape picture { height: auto; }
.wildlife-story-card.landscape img { height: auto; }
.wildlife-story-card.bobcat img { object-position: center 12%; }

@media (max-width: 980px) {
  .lead-grid, .outdoors-grid, .business-grid, .sales-grid, .photo-feature { grid-template-columns: 1fr; }
  .right-rail { display: grid; grid-template-columns: .8fr 1.2fr; }
  .story-grid { grid-template-columns: 1fr 1fr; }
  .story-card-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
  .event-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .desk-hero .wrap { grid-template-columns: 1fr; gap: 24px; }
  .calendar-grid { grid-template-columns: 1fr 1fr; }
  .source-grid { grid-template-columns: 1fr 1fr; }
  .feature-route-grid { grid-template-columns: 1fr; }
  .local-grid, .local-grid-three { grid-template-columns: 1fr 1fr; }
  .wildlife-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .wrap { width: min(var(--max), calc(100% - 24px)); }
  .utility-links a:not(:last-child) { display: none; }
  .masthead { min-height: 90px; grid-template-columns: auto 1fr auto; gap: 14px; }
  .menu-button { visibility: visible; padding: 10px 0; }
  .brand { width: min(330px, 52vw); justify-self: center; }
  .newsletter-link { font-size: 0; }
  .newsletter-link::after { content: 'Weekly'; font-size: 11px; }
  .primary-nav { display: none; }
  .primary-nav.open { display: block; }
  .nav-inner { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 12px; }
  .nav-inner a { padding: 12px; border-bottom: 1px solid var(--line); }
  .lead-image { height: 350px; }
  .lead-copy { width: calc(100% - 20px); padding: 24px 18px 0; }
  .right-rail { grid-template-columns: 1fr; }
  .ad-slot { grid-template-columns: 1fr; gap: 12px; }
  .promotion-slot img { width: 100%; max-height: 180px; }
  .section-heading { align-items: start; flex-direction: column; gap: 10px; }
  .story-grid, .network-grid, .package-grid { grid-template-columns: 1fr; }
  .story-card-featured { grid-column: auto; display: block; }
  .event-grid { grid-template-columns: 1fr; }
  .outdoors-feature, .outdoors-note, .business-lead, .sponsor-card { padding: 26px; }
  .network-grid a { min-height: 105px; }
  .newsletter { padding: 34px 26px; align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 35px; }
  .footer-brand { grid-column: 1 / -1; }
  .proof-strip { grid-template-columns: 1fr 1fr; }
  .proof-strip div:nth-child(2) { border-right: 0; }
  .proof-strip div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .article-shell { width: min(820px, calc(100% - 24px)); margin-top: 42px; }
  .article-body > p { font-size: 18px; }
  .region-title { align-items: start; flex-direction: column; gap: 10px; }
  .calendar-grid, .source-grid, .info-grid, .job-buttons { grid-template-columns: 1fr; }
  .local-grid, .local-grid-three, .resource-list { grid-template-columns: 1fr; }
  .photo-feature-media { min-height: 360px; max-height: 540px; }
  .wildlife-story-grid { grid-template-columns: 1fr; }
  .wildlife-story-card.landscape { grid-column: auto; }
  .wildlife-grid { grid-template-columns: 1fr; }
  .desk-hero { padding: 48px 0 40px; }
}
@media (max-width: 480px) {
  .menu-button span:last-child { display: inline; }
  .lead-image { height: 280px; }
  .lead-copy { margin-top: -42px; }
  .lead-copy h1 { font-size: 38px; }
  .story-meta { flex-direction: column; }
  .weather-top { grid-template-columns: 1fr; gap: 10px; }
  .event-card { grid-template-columns: 50px 1fr; }
  .proof-strip { grid-template-columns: 1fr; }
  .proof-strip div { border-right: 0; border-bottom: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand, .footer-grid > div:last-child { grid-column: auto; }
}
