:root{
  --bg:#faf6eb;
  --bg-soft:#f3eedf;
  --ink:#243126;
  --ink-deep:#1b261d;
  --muted:#607063;
  --accent:#eea320;
  --accent-dark:#c88412;
  --green:#2c5428;
  --green-soft:#9ec75c;
  --blue:#a6d3f1;
  --gray:#8f9090;
  --card:#fffdf8;
  --line:#ddd5c3;
  --max:1180px;
  --shadow:0 20px 40px rgba(27,38,29,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6}
a{color:inherit}
img{max-width:100%;height:auto}
.container{width:min(var(--max),calc(100% - 32px));margin:auto}
.container.narrow{max-width:860px}
.topbar{background:var(--ink-deep);color:white;text-align:center;padding:8px 16px;font-size:.88rem}
.site-header{position:sticky;top:0;z-index:20;background:rgba(250,246,235,.97);border-bottom:1px solid var(--line);backdrop-filter:saturate(180%) blur(8px)}
.nav-wrap{width:min(var(--max),calc(100% - 32px));margin:auto;min-height:82px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;white-space:nowrap}
.brand-logo{width:46px;height:46px;object-fit:contain;display:block}
.brand-text{font-size:1.55rem;letter-spacing:-.02em}
.main-nav{display:flex;gap:16px;align-items:center;margin-left:auto;font-size:.96rem}
.main-nav a{text-decoration:none;padding:6px 0}
.main-nav a:hover{color:var(--green)}
.menu-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-weight:700;color:var(--ink)}
.hero{min-height:690px;display:grid;align-items:center;background:linear-gradient(90deg,rgba(28,39,30,.90) 0%,rgba(28,39,30,.73) 36%,rgba(28,39,30,.40) 70%,rgba(28,39,30,.18) 100%),url('/images/home-hero.jpg') center/cover;color:white}
.hero-inner{max-width:760px;padding:70px 0}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:.78rem;color:var(--accent);margin:0 0 10px}
h1,h2,h3{letter-spacing:-.03em}
h1{font-size:clamp(2.8rem,6vw,5.5rem);line-height:1.01;margin:.15em 0 .2em}
.lead{font-size:clamp(1.08rem,2vw,1.36rem);max-width:760px}
.section{padding:78px 0}
.section h2{font-size:clamp(2rem,4vw,3.25rem);line-height:1.08;margin:0 0 14px}
.section-intro{font-size:1.08rem;color:var(--muted);max-width:760px}
.intro-strip{padding-bottom:34px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.btn{display:inline-block;padding:13px 20px;border-radius:999px;text-decoration:none;font-weight:700;background:var(--accent);color:var(--ink-deep);border:1px solid var(--accent);box-shadow:none;transition:all .2s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(44,84,40,.12)}
.btn.secondary{background:var(--green);border-color:var(--green);color:white}
.btn.secondary.cream{background:var(--green);border-color:var(--green);color:white}
.btn.secondary.green{background:var(--green);border-color:var(--green);color:white}
.btn.gold{background:var(--accent);color:var(--ink-deep)}
.grid{display:grid;gap:22px}
.feature-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:22px}
.feature-card,.topic-card,.video-card,.content-card{background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.feature-card{text-decoration:none;display:flex;flex-direction:column}
.feature-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.feature-card.large{grid-row:span 2}
.feature-card.large img{aspect-ratio:4/5;height:100%}
.feature-content{padding:20px 22px 24px}
.feature-content h3{font-size:1.5rem;line-height:1.14;margin:0 0 8px}
.feature-content p:last-child{margin-bottom:0;color:var(--muted)}
.soft-band{background:var(--bg-soft)}
.topic-grid{grid-template-columns:repeat(3,1fr)}
.topic-card{padding:24px;text-decoration:none;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,253,248,1))}
.topic-card h3{margin:0 0 8px;font-size:1.25rem}
.topic-card p{margin:0;color:var(--muted)}
.band{background:var(--green);color:white}
.band .eyebrow{color:#f6c04c}
.video-grid{grid-template-columns:repeat(3,1fr)}
.video-card{background:white;color:var(--ink)}
.video-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.video-card .pad{padding:18px}
.video-card h3{font-size:1.05rem;line-height:1.3;margin:0 0 8px}
.video-card time{font-size:.86rem;color:var(--muted)}
.video-card a{text-decoration:none}
.about-home-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}
.about-home-copy{padding-right:12px}
.about-home-photo img{display:block;width:100%;border-radius:24px;box-shadow:var(--shadow)}
.cream-band{background:#f4efe2}
.dual-callouts{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.card-callout img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.pad-lg{padding:24px}
.card-callout h3{font-size:1.5rem;line-height:1.16;margin:0 0 8px}
.page-hero{padding:82px 0 54px;background:#efe8d7}
.page-hero.compact h1{font-size:clamp(2.4rem,5vw,4.4rem)}
.breadcrumbs{display:flex;gap:8px;font-size:.86rem;margin-bottom:22px;color:var(--muted)}
.breadcrumbs a{text-decoration:none}
.content-section{padding:56px 0}
.prose{max-width:850px}
.prose h2{margin-top:36px}
.site-footer{background:#172118;color:#e8ece9;padding:56px 16px 24px}
.footer-grid{width:min(var(--max),100%);margin:auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px}
.footer-logo{width:160px;height:auto;display:block;margin-bottom:16px}
.site-footer a{display:block;color:#d7ddd8;text-decoration:none;margin:6px 0}
.site-footer p{color:#d7ddd8}
.copyright{width:min(var(--max),100%);margin:34px auto 0;padding-top:22px;border-top:1px solid #394139;color:#9fa8a1;font-size:.88rem}
.notice{padding:18px;border:1px dashed rgba(255,255,255,.35);border-radius:14px;background:rgba(255,255,255,.08)}
.disabled{opacity:.6}
.kicker{font-size:.9rem;color:var(--muted)}

@media(max-width:1100px){
  .feature-grid{grid-template-columns:1fr 1fr}
  .feature-card.large{grid-column:1 / -1;grid-row:auto}
  .feature-card.large img{aspect-ratio:16/9}
}
@media(max-width:980px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);padding:20px 24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}
  .main-nav.open{display:flex}
  .menu-toggle{display:block}
  .topic-grid{grid-template-columns:repeat(2,1fr)}
  .video-grid,.dual-callouts,.about-home-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .brand-text{font-size:1.35rem}
}
@media(max-width:640px){
  .hero{min-height:560px;background-position:62% center}
  .topic-grid,.video-grid,.footer-grid,.feature-grid,.dual-callouts{grid-template-columns:1fr}
  .section{padding:56px 0}
  .nav-wrap{min-height:74px}
  .brand-logo{width:40px;height:40px}
  .brand-text{font-size:1.18rem}
  .footer-grid{grid-template-columns:1fr}
}

/* Content-rich interior page additions */
.page-image{width:100%;border-radius:22px;display:block;box-shadow:var(--shadow);margin:0 0 26px}
.split-content{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;margin:36px 0}
.split-content.reverse{grid-template-columns:.95fr 1.05fr}
.split-content img{width:100%;border-radius:22px;display:block;box-shadow:var(--shadow)}
.callout-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}
.mini-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.mini-card h3{margin-top:0}
.image-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}
.image-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;display:block;box-shadow:var(--shadow)}
.partner-list{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}
.partner-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}
.partner-card h3{margin-top:0}
.partner-card .btn{margin-top:8px}
.inline-note{background:#f1ead8;border-left:5px solid var(--accent);padding:18px 20px;border-radius:12px;margin:24px 0}
@media(max-width:800px){.split-content,.split-content.reverse,.callout-grid,.image-grid,.partner-list{grid-template-columns:1fr}}

/* v7 layout refinements */
.footer-logo{
  width:220px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  display:block;
  margin:0 0 18px 0;
}

/* Keep card rows visually even across the site */
.topic-grid,
.video-grid,
.dual-callouts{
  grid-auto-rows:1fr;
}
.topic-card,
.video-card,
.content-card{
  height:100%;
}
.video-card a{
  display:flex;
  flex-direction:column;
  height:100%;
}
.video-card .pad{
  flex:1;
}

/* Homepage feature cards should all be the same size */
.feature-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
.feature-card,
.feature-card.large{
  grid-column:auto;
  grid-row:auto;
  height:100%;
  display:flex;
  flex-direction:column;
}
.feature-card img,
.feature-card.large img{
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
}
.feature-content{
  flex:1;
  display:flex;
  flex-direction:column;
}
.feature-content p:last-child{
  margin-top:auto;
}

@media(max-width:1100px){
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-card.large{grid-column:auto}
}
@media(max-width:700px){
  .feature-grid{grid-template-columns:1fr}
  .footer-logo{width:190px}
}

/* v8 footer logo: cream outline is baked into the PNG so the black badge border remains visible on the dark footer. */
.footer-logo{
  width:220px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  display:block;
  margin:0 0 18px 0;
}

/* v9 RV Travel + Destinations SEO hub pages */
.page-photo-hero{position:relative;min-height:600px;display:grid;align-items:center;background-size:cover;background-position:center;color:#fff;overflow:hidden}
.rv-travel-hero{background-image:url('/images/home-hero.jpg')}
.destinations-hero{background-image:url('/images/tetons-mountains.jpg');background-position:center 55%}
.page-photo-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,33,24,.92) 0%,rgba(23,33,24,.76) 42%,rgba(23,33,24,.35) 75%,rgba(23,33,24,.18) 100%)}
.page-photo-content{position:relative;z-index:1;padding:70px 0;max-width:1180px}
.page-photo-content h1{max-width:850px;font-size:clamp(2.8rem,5.8vw,5.25rem)}
.page-photo-content .lead{max-width:800px}
.page-photo-content .breadcrumbs{color:rgba(255,255,255,.84)}
.page-photo-content .breadcrumbs a{color:inherit}
.page-wide-intro{max-width:960px}
.page-wide-intro h2{max-width:880px}
.page-wide-intro>p:not(.eyebrow){font-size:1.08rem;color:var(--muted)}
.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}
.travel-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.travel-image-card{display:grid;grid-template-columns:44% 56%;min-height:285px;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none}
.travel-image-card img{width:100%;height:100%;object-fit:cover}
.travel-card-body{padding:26px;display:flex;flex-direction:column}
.travel-card-body h3{font-size:1.55rem;line-height:1.12;margin:0 0 10px}
.travel-card-body p{color:var(--muted);margin:0 0 20px}
.travel-card-body span{margin-top:auto;color:var(--green);font-weight:700}
.split-feature-row{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split-feature-image img{width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:24px;display:block;box-shadow:var(--shadow)}
.split-feature-copy h2{margin-top:0}
.split-feature-copy p{font-size:1.04rem;color:var(--muted)}
.green-panel-section{background:var(--green);color:white}
.green-panel-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center}
.green-panel-grid h2{color:white}
.green-panel-grid>div>p:not(.eyebrow){font-size:1.08rem;color:#e4ebe1}
.green-panel-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:22px;display:block;border:1px solid rgba(255,255,255,.2)}
.destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:26px}
.destination-tile{display:grid;grid-template-columns:45% 55%;min-height:270px;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none}
.destination-tile img{width:100%;height:100%;object-fit:cover}
.destination-tile>div{padding:26px}
.destination-tile h3{margin:0 0 8px;font-size:1.5rem}
.destination-tile p{margin:0;color:var(--muted)}
.blue-band-section{background:var(--blue)}
.map-promo-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}
.map-promo-grid h2{margin-top:0}
.map-promo-grid p{font-size:1.06rem;color:#31483a}
.map-promo-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:22px;box-shadow:var(--shadow)}
.trip-path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:26px}
.trip-path-card{height:100%;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;text-decoration:none;box-shadow:var(--shadow)}
.trip-path-card span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent);font-weight:800;margin-bottom:18px}
.trip-path-card h3{margin:0 0 8px;font-size:1.25rem}
.trip-path-card p{margin:0;color:var(--muted)}
@media(max-width:980px){
  .travel-card-grid,.destination-grid,.split-feature-row,.green-panel-grid,.map-promo-grid{grid-template-columns:1fr}
  .travel-image-card,.destination-tile{grid-template-columns:42% 58%}
  .trip-path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .page-photo-hero{min-height:560px}
  .travel-card-grid,.destination-grid,.trip-path-grid{grid-template-columns:1fr}
  .travel-image-card,.destination-tile{display:flex;flex-direction:column}
  .travel-image-card img,.destination-tile img{height:230px}
}

/* v10 National Parks + Campgrounds */
.national-parks-hero{background-image:url('/images/grand-teton-family.jpg');background-position:center 48%}
.campgrounds-hero{background-image:url('/images/campground-grass.jpg');background-position:center 52%}
.park-focus-grid,.camp-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:28px}
.park-focus-card,.camp-detail-card{height:100%;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}
.park-focus-card h3,.camp-detail-card h3{margin:0 0 9px;font-size:1.24rem}
.park-focus-card p,.camp-detail-card p{margin:0;color:var(--muted)}
.park-photo-grid .destination-tile{height:100%}
.camp-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.camp-type-card{display:grid;grid-template-columns:44% 56%;min-height:285px;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.camp-type-card img{width:100%;height:100%;object-fit:cover}
.camp-type-card>div{padding:26px}
.camp-type-card h3{margin:0 0 9px;font-size:1.45rem}
.camp-type-card p{margin:0;color:var(--muted)}
@media(max-width:980px){
  .park-focus-grid,.camp-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .camp-type-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .park-focus-grid,.camp-detail-grid{grid-template-columns:1fr}
  .camp-type-card{display:flex;flex-direction:column}
  .camp-type-card img{height:235px}
}

/* v12 content-card consistency */
.callout-grid{align-items:stretch}
.mini-card{height:100%;display:flex;flex-direction:column}
.partner-list{align-items:stretch}
.partner-card{height:100%;display:flex;flex-direction:column;align-items:flex-start}
.partner-card .btn{margin-top:auto}


.band .section-intro{color:#e8efe8}
.social-heading{display:flex;align-items:center;gap:10px}
.social-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px}
.social-icon svg{width:100%;height:100%;display:block}

.follow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.follow-grid{grid-template-columns:1fr}}


.btn.tertiary{background:#a6d3f1;border-color:#a6d3f1;color:var(--green)}
.btn.tertiary:hover{background:#b8dcf3;border-color:#b8dcf3;color:var(--green)}


.map-embed-wrap{width:100%;margin:28px 0 18px;border-radius:18px;overflow:hidden;border:1px solid rgba(44,84,40,.18);background:#f3f1e9}
.camping-map-embed{display:block;width:100%;height:560px;border:0}
.map-note{margin-top:14px;color:var(--muted)}
.blog-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.blog-card-grid .topic-card{height:100%}
.resource-callout{margin-top:34px;padding:28px;border-radius:18px}
@media(max-width:900px){.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.camping-map-embed{height:480px}}
@media(max-width:700px){.blog-card-grid{grid-template-columns:1fr}.camping-map-embed{height:420px}}

.article-content{max-width:880px}
.article-content h1,.article-content h2,.article-content h3,.article-content h4{margin-top:1.8em}
.article-content p,.article-content li{line-height:1.75}
.article-content img{display:block;max-width:100%;height:auto;margin:24px auto;border-radius:14px}
.article-content ul,.article-content ol{padding-left:1.5rem}
.article-content a{text-decoration:underline;text-underline-offset:3px}
.article-meta{color:var(--muted);margin-top:12px}

/* Production Mailchimp newsletter form */
.newsletter-signup{margin-top:38px;padding:32px;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--shadow)}
.newsletter-signup-copy{max-width:760px;margin-bottom:24px}
.newsletter-signup-copy h2{margin-top:0}
.newsletter-signup-copy p:last-child{color:var(--muted)}
.newsletter-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px;max-width:820px}
.newsletter-field{display:flex;flex-direction:column;gap:7px}
.newsletter-field:first-child{grid-column:1/-1}
.newsletter-field label{font-weight:700;color:var(--green)}
.newsletter-field input{width:100%;padding:13px 14px;border:1px solid rgba(44,84,40,.28);border-radius:10px;background:#fff;color:inherit;font:inherit}
.newsletter-field input:focus{outline:3px solid rgba(166,211,241,.55);border-color:var(--green)}
.newsletter-form .btn{justify-self:start;margin-top:4px}
.newsletter-privacy{grid-column:1/-1;margin:0;color:var(--muted);font-size:.9rem}
.newsletter-honeypot{position:absolute;left:-5000px}
@media(max-width:680px){.newsletter-signup{padding:24px}.newsletter-form{grid-template-columns:1fr}.newsletter-field:first-child,.newsletter-privacy{grid-column:auto}}


/* Contact form */
.contact-form{max-width:760px;margin:1.5rem 0 1rem;}
.contact-form .form-group{margin-bottom:1rem;}
.contact-form label{display:block;font-weight:700;margin-bottom:.35rem;}
.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box;padding:.8rem .9rem;border:1px solid #b9b9b9;border-radius:6px;font:inherit;background:#fff;}
.contact-form textarea{resize:vertical;}
.contact-form .button{border:0;cursor:pointer;}
.contact-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.contact-success{border-left:4px solid #2c5428;}
.contact-error{border-left:4px solid #b64a3a;}
.contact-note{font-size:.92rem;opacity:.85;max-width:760px;}


/* RVTV broadcast feature */
.rvtv-section{background:#faf6eb}
.rvtv-grid{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:52px;align-items:center}
.rvtv-logo-wrap{display:flex;align-items:center;justify-content:center}
.rvtv-logo{display:block;width:min(260px,100%);height:auto}
.rvtv-copy h2{margin-top:0}
.rvtv-copy .section-intro{max-width:760px}
@media(max-width:780px){
  .rvtv-grid{grid-template-columns:1fr;gap:26px;text-align:center}
  .rvtv-logo{width:min(210px,58vw)}
  .rvtv-copy .section-intro{margin-left:auto;margin-right:auto}
  .rvtv-copy .btns{justify-content:center}
}
