/* Bootstrap supplies the layout and components; this file is the Camping Coder skin. */
:root {
  color-scheme: light;
  --bs-body-bg: #edf2e8;
  --bs-body-color: #203d30;
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-link-color: #126458;
  --bs-link-hover-color: #08493e;
  --bs-border-color: #b9cbbb;
  --bs-primary: #23654c;
  --forest-surface: #f7f8ef;
}
body { line-height: 1.7; }
a { text-underline-offset: .2em; }
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible { outline: 3px solid #147969; outline-offset: 3px; }
.skip-link { position: fixed; top: 0; left: 1rem; z-index: 2000; padding: .75rem; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.site-header { background: #d4e3d1; border-bottom: 1px solid #adc5ae; }
.navbar-brand, .navbar .nav-link { color: #203d30; }
.navbar .nav-link { font-weight: 600; }
.navbar .nav-link.active { color: #075947; text-decoration: underline; }
.navbar .nav-link:hover, .dropdown-item:hover { background: #c6dbca; color: #163e2c; }
.dropdown-menu { --bs-dropdown-bg: #f7f8ef; --bs-dropdown-link-color: #203d30; }
.main-header { background: linear-gradient(120deg, #d9e8d2, #e6eee0); border-bottom: 1px solid var(--bs-border-color); text-align: center; }
.main-header-content { padding: 3rem 1rem; max-width: 70rem; margin: auto; }
.brand-wordmark { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; font-size: clamp(2rem,5vw,3.8rem); line-height: 1.2; font-weight: 750; letter-spacing: -.04em; }
.brand-wordmark img { width: 72px; height: 72px; }
.page-description { margin-bottom: 0; color: #49634e; font-size: 1.15rem; }
#content { padding-block: 2rem; max-width: 1140px; }
.post { background: var(--forest-surface); border: 1px solid var(--bs-border-color); border-radius: .75rem; padding: clamp(1rem,3vw,2.5rem); margin-bottom: 1.5rem; }
.post-title { line-height: 1.2; overflow-wrap: break-word; }
h1.post-title { font-size: clamp(1.9rem,4vw,2.75rem); margin-bottom: 1.5rem; }
h2.post-title { font-size: clamp(1.5rem,3vw,2rem); }
.post-title a { color: #244b37; text-decoration: none; }
.post-title a:hover { color: #126458; text-decoration: underline; }
.post-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; color: #526957; font-size: .85rem; margin-bottom: 1rem; }
.author-thumb { width: 28px; height: 28px; object-fit: cover; border-radius: 50%; }
.post-meta a { border: 1px solid #adc6b2; border-radius: 2rem; padding: .1rem .5rem; background: #e2ecdd; text-decoration: none; }
.post-excerpt > a { text-decoration: none; color: inherit; }
.read-more { color: var(--bs-link-color); text-decoration: underline; }
.post-content { max-width: 80ch; margin-inline: auto; overflow-wrap: break-word; }
.post-content h2, .post-content h3 { margin-top: 1.75rem; }
.post-content img, .thumbnail { max-width: 100%; height: auto; border-radius: .35rem; }
.post-content iframe { max-width: 100%; }
.post-content blockquote { border-left: 3px solid #659c76; background: #e5eddf; padding: 1rem; }
.post-content pre { padding: 1rem; background: #dfebde; border: 1px solid var(--bs-border-color); border-radius: .35rem; }
.post-content code { color: #714421; }
.post-content table { width: 100%; margin-bottom: 1.5rem; border-collapse: collapse; font-size: .95rem; }
.post-content table th, .post-content table td { padding: .6rem; border-bottom: 1px solid var(--bs-border-color); vertical-align: top; background: #f7f8ef; color: #203d30; }
.post-content table tr:nth-child(odd) > * { background: #e4ecdf; }
.post-content .review-ratings { --bs-table-striped-bg: #e4ecdf; --bs-table-color: #203d30; --bs-table-bg: #f7f8ef; }
.review-ratings .rating-label { white-space: nowrap; overflow-wrap: normal; hyphens: none; font-weight: 600; width: 32%; }
.post-content td { overflow-wrap: anywhere; }
.post-content td.rating { overflow-wrap: normal; }
.staticmap { font-weight: 700; }
.post-footer { border-top: 1px solid var(--bs-border-color); padding-top: 1.5rem; margin-top: 2rem; }
.author-image img { width: 64px; height: 64px; border-radius: 50%; }
.pagination { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; padding: 1rem; }
.pagination a { padding: .4rem .8rem; border: 1px solid var(--bs-border-color); border-radius: .3rem; }
.read-next { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); gap: 1rem; max-width: 1140px; margin: 1rem auto; padding: .75rem; }
.read-next-story { background-size: cover; background-position: center; border-radius: .75rem; text-decoration: none; }
.read-next-story .post { margin: 0; background: #edf2e8ed; height: 100%; }
.read-next-story h2 { font-size: 1.5rem; }
.site-footer { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; padding: 2rem max(1rem,calc((100% - 1100px)/2)); background: #d4e3d1; border-top: 1px solid var(--bs-border-color); font-size: .9rem; }
.site-footer p { margin: 0; }
input, textarea { max-width: 100%; }
#site-search-query { min-height: 44px; padding: .5rem; }
#results article { margin-block: 1.5rem; }
@media (max-width: 575px) {
  .brand-wordmark img { width: 52px; height: 52px; }
  .main-header-content { padding-block: 2rem; }
  .post-content table th, .post-content table td { padding: .4rem; font-size: .85rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
.page-link { --bs-pagination-bg: #f7f8ef; --bs-pagination-color: #126458; --bs-pagination-hover-bg: #d4e3d1; --bs-pagination-hover-color: #08493e; }

/* Static maps are local SVG assets; every pin is present before scripts load. */
.local-map-widget { min-width: 0; margin-block: 1rem; }
.local-map-widget figure { margin: 0; }
.campground-map, .local-location-map img { display: block; width: 100%; height: auto; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #dcecf0; }
.local-overview-map > .campground-map { max-width: 600px; margin-inline: auto; }
.map-pin-leader { stroke: #244b37; stroke-width: 2; }
.map-pin-position { fill: #23654c; stroke: #fff; stroke-width: 1; }
.map-pin { fill: #23654c; stroke: #fff; stroke-width: 2; }
.map-pin-number { fill: #fff; font: 700 18px system-ui, sans-serif; pointer-events: none; }
.campground-map a:hover .map-pin, .campground-map a:focus .map-pin { fill: #a34f1e; stroke-width: 4; }
.campground-map a:focus { outline: none; }
.local-location-map figcaption { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; font-size: .85rem; margin-top: .5rem; }
.map-context { font-size: .95rem; line-height: 1.5; margin-top: .75rem; }
.map-context p { margin-bottom: .35rem; }
.map-coordinates { color: #526957; }
.map-credit { color: #526957; font-size: .75rem; margin-block: .5rem 0; }
.map-credit a { color: inherit; }
.campground-directory { list-style: none; padding-left: 0; margin-top: 1rem; }
.campground-directory a { display: inline-block; padding-block: .5rem; }
.homepage-map { width: 100%; max-width: 300px; margin-top: 0; }
.homepage-map .campground-map { aspect-ratio: 3 / 4; }
.homepage-map figcaption { font-size: .9rem; margin-top: .5rem; }
