/* Shared design tokens + base styles for all RVFitFinder SEO/content pages
   (state, campground, site, rig-length, and guide pages). Mirrors the
   palette and type system defined inline in index.html so every page in
   the site looks like one product. */
:root{
  --paper:#F1EDE2;
  --paper-raised:#FAF7EF;
  --paper-deep:#E7E0CE;
  --ink:#23281F;
  --ink-soft:#52584A;
  --ink-faint:#82876F;
  --line:#DCD5C2;
  --line-strong:#C4BC9F;
  --accent:#B5502A;
  --accent-deep:#8A3B1C;
  --accent-tint:#F2DDCC;
  --pine:#2F4A34;
  --pine-tint:#DCE8DA;
  --good:#3D6B3F;
  --good-tint:#DCE8DA;
  --warn:#A97B1E;
  --warn-tint:#F1E4C4;
  --bad:#A23B34;
  --bad-tint:#F0DAD6;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#181B14; --paper-raised:#20241B; --paper-deep:#141610;
    --ink:#EDE9DC; --ink-soft:#B9B6A2; --ink-faint:#82806C;
    --line:#34382A; --line-strong:#454A36;
    --accent:#E08248; --accent-deep:#F2A374; --accent-tint:#332114;
    --pine:#6FA57C; --pine-tint:#1E2B20;
    --good:#7FBE82; --good-tint:#1E2B1F;
    --warn:#D9AE55; --warn-tint:#332A14;
    --bad:#DA8A82; --bad-tint:#301E1C;
  }
}
:root[data-theme="dark"]{
  --paper:#181B14; --paper-raised:#20241B; --paper-deep:#141610;
  --ink:#EDE9DC; --ink-soft:#B9B6A2; --ink-faint:#82806C;
  --line:#34382A; --line-strong:#454A36;
  --accent:#E08248; --accent-deep:#F2A374; --accent-tint:#332114;
  --pine:#6FA57C; --pine-tint:#1E2B20;
  --good:#7FBE82; --good-tint:#1E2B1F;
  --warn:#D9AE55; --warn-tint:#332A14;
  --bad:#DA8A82; --bad-tint:#301E1C;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,"Segoe UI","Helvetica Neue",Arial,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
.shell{max-width:1160px;margin:0 auto;padding:0 24px;}
.shell-narrow{max-width:760px;margin:0 auto;padding:0 24px;}
h1,h2,h3{font-family:"Arial Black","Helvetica Neue",Arial,sans-serif;letter-spacing:-0.01em;text-wrap:balance;margin:0;}
p{margin:0 0 14px;color:var(--ink-soft);}
p:last-child{margin-bottom:0;}
a{color:inherit;}
.mono{font-family:"SF Mono","Cascadia Code",Consolas,monospace;font-variant-numeric:tabular-nums;}
::selection{background:var(--accent-tint);color:var(--accent-deep);}

/* ---- nav (shared across every page) ---- */
nav.top{
  position:sticky;top:0;z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
nav.top .shell{display:flex;align-items:center;justify-content:space-between;height:64px;}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;text-decoration:none;color:var(--ink);}
.brand .word{font-family:"Arial Black","Helvetica Neue",Arial,sans-serif;letter-spacing:-0.02em;}
.brand .word b{color:var(--accent);}
nav.top .links{display:flex;gap:22px;font-size:14px;font-weight:600;}
nav.top .links a{text-decoration:none;color:var(--ink-soft);}
nav.top .links a:hover{color:var(--accent-deep);}
@media (max-width:760px){
  nav.top .links{display:none;}
  nav.top .shell{gap:12px;}
  .brand .word{font-size:15px;}
}
.cta-btn{
  background:var(--accent);color:#fff;border:none;border-radius:7px;padding:9px 16px;
  font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:none;display:inline-block;
}
.cta-btn:hover{background:var(--accent-deep);}

/* ---- breadcrumbs ---- */
.crumbs{padding:16px 0;font-size:12.5px;color:var(--ink-faint);}
.crumbs a{text-decoration:none;color:var(--ink-faint);}
.crumbs a:hover{color:var(--accent-deep);}
.crumbs span.sep{margin:0 6px;}
.crumbs span.here{color:var(--ink-soft);font-weight:600;}

/* ---- content header ---- */
.page-head{padding:8px 0 40px;border-bottom:1px solid var(--line);}
.page-head .eyebrow{
  text-transform:uppercase;letter-spacing:0.14em;font-size:11.5px;font-weight:800;color:var(--accent);margin-bottom:10px;display:block;
}
.page-head h1{font-size:clamp(28px,3.6vw,42px);line-height:1.1;max-width:22ch;}
.page-head p.lead{font-size:17px;max-width:60ch;margin-top:14px;color:var(--ink-soft);}

/* ---- stat strip ---- */
.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;margin:32px 0;}
.stat-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:10px;padding:16px 18px;}
.stat-card .k{font-size:24px;font-weight:800;font-family:"SF Mono",monospace;color:var(--accent);}
.stat-card .d{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}

/* ---- generic sections ---- */
main{padding-bottom:60px;}
section.block{padding:44px 0;}
section.block.alt{background:var(--paper-raised);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
section.block h2{font-size:23px;margin-bottom:16px;}
section.block h3{font-size:17px;margin-bottom:8px;}
.prose{max-width:72ch;}
.prose h2{margin-top:32px;margin-bottom:12px;font-size:19px;}
.prose .lead-p{font-size:17px;color:var(--ink-soft);}
.prose ul,.prose ol{color:var(--ink-soft);padding-left:22px;margin:0 0 14px;}
.prose li{margin-bottom:6px;}

/* ---- link grid (states / campgrounds / rig lengths) ---- */
.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.link-card{
  display:block;background:var(--paper-raised);border:1px solid var(--line);border-radius:10px;
  padding:16px 18px;text-decoration:none;color:var(--ink);
}
.link-card:hover{border-color:var(--accent);}
.link-card .name{font-weight:800;font-size:15px;}
.link-card .meta{font-size:12.5px;color:var(--ink-faint);margin-top:4px;}

/* ---- site table ---- */
.site-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;}
.site-table th{
  text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-faint);
  border-bottom:1px solid var(--line-strong);padding:8px 10px;
}
.site-table td{border-bottom:1px solid var(--line);padding:10px;color:var(--ink-soft);}
.site-table td a{color:var(--ink);text-decoration:none;font-weight:600;}
.site-table td a:hover{color:var(--accent-deep);}
.site-table .num{font-family:"SF Mono",monospace;font-variant-numeric:tabular-nums;}
.table-wrap{overflow-x:auto;}

/* ---- compatibility grid (site pages) ---- */
.compat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:20px 0;}
.compat-row{
  display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;
  border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:var(--paper-raised);
}
.compat-row .len{font-family:"SF Mono",monospace;font-weight:700;font-size:14px;white-space:nowrap;}
.fit-badge{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;padding:4px 10px;border-radius:20px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.fit-badge.good{background:var(--good-tint);color:var(--good);}
.fit-badge.bad{background:var(--bad-tint);color:var(--bad);}

/* ---- fact card ---- */
.fact-list{list-style:none;margin:20px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.fact-list li{background:var(--paper-raised);padding:14px 16px;}
.fact-list .lbl{font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-faint);margin-bottom:4px;}
.fact-list .val{font-size:16px;font-weight:800;}

/* ---- FAQ ---- */
.faq-item{border-bottom:1px solid var(--line);padding:18px 0;}
.faq-item:first-child{padding-top:0;}
.faq-item h3{font-size:15.5px;margin-bottom:8px;}
.faq-item p{font-size:14.5px;}

/* ---- callout ---- */
.callout{background:var(--accent-tint);border:1px solid var(--accent);border-radius:10px;padding:16px 20px;color:var(--accent-deep);font-size:14.5px;margin:20px 0;}
.callout a{text-decoration:underline;font-weight:700;}

/* ---- guide index cards ---- */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;}
.guide-card{display:block;text-decoration:none;color:var(--ink);background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;padding:20px;}
.guide-card:hover{border-color:var(--accent);}
.guide-card .cat{font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent);font-weight:800;margin-bottom:8px;}
.guide-card h3{font-size:16.5px;margin-bottom:8px;}
.guide-card p{font-size:13.5px;margin:0;}

/* ---- footer (shared) ---- */
footer{border-top:1px solid var(--line);padding:40px 0 30px;}
.footer-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.footer-brand .brand{margin-bottom:8px;}
.footer-brand p{font-size:13px;max-width:36ch;}
.footer-links{display:flex;gap:48px;flex-wrap:wrap;}
.footer-links h5{font-size:11.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-faint);margin:0 0 10px;font-family:inherit;}
.footer-links a{display:block;font-size:13.5px;color:var(--ink-soft);text-decoration:none;margin-bottom:7px;}
.footer-links a:hover{color:var(--accent-deep);}
.footer-bottom{margin-top:32px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

@media (max-width:640px){
  .footer-grid{flex-direction:column;}
  .footer-links{gap:28px;}
}
