:root {
    --tap-olive: #748238;
    --tap-olive-dark: #4f5c21;
    --tap-asphalt: #14161d;
    --tap-cream: #f6dfbd;
    --tap-paper: #fffaf0;
    --tap-muted: #60636a;
    --tap-line: rgba(20, 22, 29, 0.12);
    --tap-radius: 22px;
    --tap-card-radius: 22px;
    --tap-card-min-height: 290px;
    --tap-card-gap: 26px;
    --tap-card-padding: 34px;
    --tap-card-icon-size: 86px;
    --tap-footer-bg: #14161d;
    --tap-footer-logo-width: 92px;
    --tap-footer-banner-max-width: 360px;
    --tap-footer-overlay-opacity: .22;
    --tap-shadow: 0 16px 36px rgba(20, 22, 29, 0.12);
    --tap-logo-max-height: 92px;
    --tap-brand-text-gap: 13px;
    --tap-hero-height: 640px;
    --tap-hero-overlay: rgba(20, 22, 29, 0.24);
    --tap-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-heading: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-menu: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-hero: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-card: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-footer: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tap-font-body-size: 17px;
    --tap-font-header-menu-size: 16px;
    --tap-font-header-submenu-size: 15px;
    --tap-font-hero-label-size: 15px;
    --tap-font-hero-title-size: 82px;
    --tap-font-hero-text-size: 23px;
    --tap-font-cards-intro-size: 16px;
    --tap-font-cards-heading-size: 68px;
    --tap-font-card-title-size: 21px;
    --tap-font-card-text-size: 16px;
    --tap-font-footer-text-size: 16px;
    --tap-font-body-color: #14161d;
    --tap-font-header-menu-color: #ffffff;
    --tap-font-header-submenu-color: #ffffff;
    --tap-font-hero-label-color: #748238;
    --tap-font-hero-title-color: #14161d;
    --tap-font-hero-firstline-color: #748238;
    --tap-font-hero-text-color: #22252b;
    --tap-font-cards-intro-color: #4f5c21;
    --tap-font-cards-heading-color: #14161d;
    --tap-font-card-title-color: #748238;
    --tap-font-card-text-color: #53565c;
    --tap-font-footer-text-color: #ffffff;
    --tap-hero-bg-image: url('../images/hero-rv-photo.jpg');
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--tap-font-body-color);
    background: #fff;
    font-family: var(--tap-font-body);
    font-size: var(--tap-font-body-size);
    line-height: 1.65;
}
a { color: var(--tap-olive-dark); text-decoration-thickness: 2px; text-underline-offset: 4px; }
img { max-width: 100%; height: auto; }
.tap-container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.screen-reader-text { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left: 20px; top: 20px; width: auto; height: auto; z-index: 9999; background: #fff; padding: 10px 14px; border-radius: 8px; }

.tap-site-header {
    background: var(--tap-olive);
    color: #fff;
    z-index: 60;
    box-shadow: 0 2px 0 rgba(0,0,0,.08);
}
.tap-site-header.is-sticky { position: sticky; top: 0; }
.tap-header-ragged::after {
    content: "";
    display: block;
    height: 14px;
    background-image: url('../images/header-olive-ragged.svg');
    background-size: 1180px 18px;
    background-repeat: repeat-x;
    background-position: center bottom;
}
.tap-header-clean::after { content: none; }
.tap-secondary-nav { background: var(--tap-olive-dark); border-top: 1px solid rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.06); }
.tap-secondary-nav ul { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 3vw, 44px); list-style: none; margin: 0; padding: 9px 0; flex-wrap: wrap; }
.tap-secondary-nav a { color: var(--tap-font-header-submenu-color); text-decoration: none; font-size: var(--tap-font-header-submenu-size); font-family: var(--tap-font-menu); font-weight: 850; letter-spacing: .01em; }
.tap-secondary-nav a:hover, .tap-secondary-nav a:focus { color: var(--tap-cream); }
.tap-header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 86px; gap: 24px; }
.tap-branding { display: flex; align-items: center; gap: var(--tap-brand-text-gap); min-width: 230px; flex: 0 0 auto; }
.tap-brand-logo { flex: 0 0 auto; display: flex; align-items: center; }
.tap-branding img, .custom-logo { max-height: var(--tap-logo-max-height); width: auto; display: block; }
.tap-rv-mark { width: 116px; }
.tap-brand-text { display: flex; flex-direction: column; justify-content: center; min-width: 0; line-height: 1.16; }
.tap-brand-text:empty { display: none; }
.tap-site-name { color: #fff; font-size: 1.05rem; font-weight: 850; text-decoration: none; letter-spacing: .01em; }
.tap-site-tagline { color: rgba(255,255,255,.86); font-size: .78rem; font-weight: 700; margin: 3px 0 0; max-width: 260px; line-height: 1.25; }
.tap-primary-nav ul { display: flex; align-items: center; gap: 30px; list-style: none; margin: 0; padding: 0; }
.tap-primary-nav a { color: var(--tap-font-header-menu-color); text-decoration: none; font-weight: 800; font-size: var(--tap-font-header-menu-size); font-family: var(--tap-font-menu); }
.tap-primary-nav a:hover, .tap-primary-nav a:focus { color: var(--tap-cream); }
.tap-header-actions { display: flex; align-items: center; gap: 10px; }
.tap-header-icon { width: 42px; height: 42px; border: 2px solid rgba(255,255,255,.88); border-radius: 999px; color: #fff; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-size: 1.28rem; font-weight: 900; line-height: 1; }
.tap-header-icon:hover, .tap-header-icon:focus { background: rgba(255,255,255,.14); color:#fff; }
.tap-menu-toggle { display: none; background: transparent; border: 2px solid rgba(255,255,255,.88); border-radius: 999px; width: 44px; height: 44px; padding: 10px; }
.tap-menu-toggle span:not(.screen-reader-text) { display: block; height: 2px; margin: 5px 0; background: #fff; }

.tap-hero { position: relative; background: var(--tap-cream); overflow: hidden; }
.tap-hero-olive-band {
    min-height: 36px;
    background: var(--tap-olive);
    background-image: linear-gradient(180deg, rgba(0,0,0,.08), rgba(255,255,255,0)), url('../images/hero-mountain-lines.svg');
    background-size: auto, min(900px, 90vw) auto;
    background-repeat: no-repeat;
    background-position: center bottom 10px;
}
.tap-hero-image {
    position: relative;
    min-height: var(--tap-hero-height);
    margin-top: -1px;
    background-image: var(--tap-hero-bg-image);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center bottom;
    display: flex;
    align-items: flex-start;
}
.tap-hero-image::before {
    content:"";
    position:absolute;
    inset: 0 0 auto 0;
    height: 140px;
    background: url('../images/header-olive-ragged.svg') center top / 1180px 18px repeat-x;
    opacity: .9;
    transform: translateY(-2px);
    z-index: 2;
}
.tap-hero-overlay { position:absolute; inset:0; background: linear-gradient(90deg, rgba(255,250,240,.72), rgba(255,250,240,.28) 50%, rgba(255,250,240,.08)), var(--tap-hero-overlay); z-index:1; }
.tap-hero-content { position: relative; z-index: 3; padding: clamp(76px, 10vw, 128px) 0 90px; text-align: left; }
.tap-hero-label { margin: 0 0 12px; color: var(--tap-font-hero-label-color); text-transform: uppercase; font-weight: 950; letter-spacing: .08em; font-size: var(--tap-font-hero-label-size); font-family: var(--tap-font-hero); }
.tap-hero h1 { max-width: 790px; margin: 0 0 18px; color: var(--tap-font-hero-title-color); font-size: clamp(2.7rem, 5vw, var(--tap-font-hero-title-size)); font-family: var(--tap-font-hero); line-height: .96; letter-spacing: -.045em; text-transform: uppercase; font-weight: 950; text-shadow: 0 1px 0 rgba(255,255,255,.6); }
.tap-hero h1::first-line { color: var(--tap-font-hero-firstline-color); }
.tap-hero-text { max-width: 690px; margin: 0 0 28px; font-size: clamp(1.1rem, 1.8vw, var(--tap-font-hero-text-size)); color: var(--tap-font-hero-text-color); font-family: var(--tap-font-body); }
.tap-button, .wp-block-button__link, input[type="submit"], button[type="submit"] { display: inline-flex; align-items:center; justify-content:center; min-height: 48px; padding: 12px 30px; border-radius: 999px; background: var(--tap-olive); color: #fff; border: 0; font-weight: 900; text-decoration: none; box-shadow: inset 0 -4px 0 rgba(0,0,0,.16); cursor: pointer; text-transform: uppercase; letter-spacing: .02em; }
.tap-button:hover, .tap-button:focus { background: var(--tap-olive-dark); color: #fff; }
.tap-hero-ragged-bottom { position:absolute; left:0; right:0; bottom:-1px; height: 58px; background: url('../images/cream-ragged-bottom.svg') center bottom / 1200px 58px repeat-x; z-index: 4; }

.tap-home-cards { padding: 74px 0 96px; text-align: center; background: linear-gradient(180deg, #fffaf0 0, #fff 32%, #fffaf0 100%); position: relative; overflow: hidden; }
.tap-home-cards::after { content:""; position:absolute; left:0; right:0; bottom:0; height:80px; background: url('../images/footer-trees.svg') center bottom / 1000px 64px repeat-x; opacity:.32; pointer-events:none; }
.tap-section-kicker { margin: 0 0 8px; color: var(--tap-font-cards-intro-color); text-transform: uppercase; font-weight: 950; letter-spacing: .06em; font-size: var(--tap-font-cards-intro-size); font-family: var(--tap-font-heading); }
.tap-home-cards h2 { margin: 0 0 10px; font-size: clamp(2.1rem, 4.6vw, var(--tap-font-cards-heading-size)); color: var(--tap-font-cards-heading-color); font-family: var(--tap-font-heading); line-height: 1.02; letter-spacing: -.045em; text-transform: uppercase; }
.tap-mini-mountain { width: 150px; height: 28px; margin: 0 auto 34px; background: url('../images/hero-mountain-lines.svg') center / contain no-repeat; opacity: .45; }
.tap-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--tap-card-gap); text-align: center; position:relative; z-index:2; }
.tap-card-columns-2 .tap-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; margin-inline: auto; }
.tap-card-columns-3 .tap-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tap-card-columns-4 .tap-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tap-feature-card { min-height: var(--tap-card-min-height); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: var(--tap-paper); border: 1px solid var(--tap-line); border-radius: var(--tap-card-radius); box-shadow: var(--tap-shadow); padding: var(--tap-card-padding) calc(var(--tap-card-padding) * .82); color: var(--tap-font-body-color); text-decoration: none; font-family: var(--tap-font-card); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.tap-feature-card:hover, .tap-feature-card:focus { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(20,22,29,.16); border-color: rgba(116,130,56,.32); }
.tap-feature-card strong { color: var(--tap-font-card-title-color); font-size: var(--tap-font-card-title-size); line-height: 1.2; }
.tap-feature-card span:not(.tap-card-icon) { color: var(--tap-font-card-text-color); font-size: var(--tap-font-card-text-size); max-width: 270px; }
.tap-feature-card em { color: var(--tap-olive-dark); font-style: normal; font-weight: 900; margin-top: 6px; }
.tap-card-icon { width: var(--tap-card-icon-size); height: var(--tap-card-icon-size); border-radius: 999px; background-color: var(--tap-olive); background-position: center; background-repeat: no-repeat; background-size: calc(var(--tap-card-icon-size) * .56); box-shadow: inset 0 -8px 0 rgba(0,0,0,.12); }
.tap-icon-mountain { background-image: url('../images/icon-mountain.svg'); }
.tap-icon-map { background-image: url('../images/icon-map.svg'); }
.tap-icon-shield { background-image: url('../images/icon-shield.svg'); }
.tap-icon-chair { background-image: url('../images/icon-chair.svg'); }
.tap-icon-wrench { background-image: url('../images/icon-wrench.svg'); }
.tap-icon-forum { background-image: url('../images/icon-forum.svg'); }
.tap-card-icon-custom { background-size: cover; background-color: transparent; background-position: center; }

.tap-content-area { padding: 70px 0; }
.tap-page-card, .tap-post-card, .tap-full-page .tap-entry-content { background: #fff; border: 1px solid var(--tap-line); border-radius: var(--tap-radius); box-shadow: var(--tap-shadow); padding: clamp(24px, 4vw, 46px); }
.tap-page-header h1, .tap-post-card h2 { margin-top: 0; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; letter-spacing: -.04em; }
.tap-full-width { padding: 54px 0 80px; background: linear-gradient(180deg, #fff 0, #f8f8f5 100%); }
.tap-full-page .tap-container { width: min(1280px, calc(100% - 40px)); }
.tap-full-page .tap-page-header { margin-bottom: 24px; }
.tap-full-page .tap-entry-content { padding: clamp(18px, 3vw, 34px); }
.tap-post-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.tap-post-card img { border-radius: 18px; display:block; margin-bottom: 18px; }

.tap-site-footer { position: relative; background: var(--tap-footer-bg); color: var(--tap-font-footer-text-color); font-family: var(--tap-font-footer); padding: 72px 0 24px; margin-top: 0; overflow:hidden; }
.tap-footer-mountains { position:absolute; left:0; right:0; top:0; height: 50px; background: url('../images/footer-trees.svg') center top / 900px 50px repeat-x; opacity: var(--tap-footer-overlay-opacity); }
.tap-footer-overlay-custom .tap-footer-mountains { background-image: var(--tap-footer-overlay-image); background-size: auto 50px; }
.tap-footer-upper { position:relative; display:grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items:center; gap: clamp(18px, 4vw, 44px); min-height: 76px; margin-bottom: 32px; }
.tap-footer-banner-slot-left { justify-self:start; }
.tap-footer-banner-slot-right { justify-self:end; }
.tap-footer-banner img { display:block; width:min(100%, var(--tap-footer-banner-max-width)); height:auto; border-radius: 14px; }
.tap-footer-banner a { display:inline-block; }
.tap-footer-nav { justify-self:center; }
.tap-footer-nav ul { display:flex; gap:18px; list-style:none; padding:0; margin:0; flex-wrap:wrap; justify-content:center; }
.tap-footer-nav a { color:var(--tap-font-footer-text-color); text-decoration:none; font-weight:800; font-size: var(--tap-font-footer-text-size); }
.tap-footer-bottom-row { position:relative; display:grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items:end; gap: 24px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; }
.tap-footer-bottom-left { justify-self:start; text-align:left; }
.tap-footer-bottom-center { justify-self:center; text-align:center; }
.tap-footer-bottom-right { justify-self:end; text-align:right; }
.tap-footer-logo-link { display:inline-flex; align-items:center; }
.tap-footer-logo { display:block; width: var(--tap-footer-logo-width); height:auto; }
.tap-site-footer p { color: var(--tap-font-footer-text-color); margin: 0; opacity: .82; }
.tap-footer-copyright { font-size: var(--tap-font-footer-text-size); white-space: nowrap; }
.tap-footer-text { font-size: var(--tap-font-footer-text-size); max-width: 360px; }

/* Trip Planner/plugin-friendly cleanup */
.tap-entry-content .tap-trip-planner, .tap-entry-content [class*="trip-planner"], .tap-entry-content form { max-width: 100%; }
.tap-entry-content input, .tap-entry-content select, .tap-entry-content textarea { max-width: 100%; border: 1px solid rgba(20,22,29,.2); border-radius: 10px; padding: 11px 12px; }


@media (min-width: 1101px) {
    .tap-card-columns-4 .tap-feature-card { min-height: max(230px, calc(var(--tap-card-min-height) - 34px)); }
    .tap-card-columns-4 .tap-feature-card strong { font-size: 1.12rem; }
    .tap-card-columns-4 .tap-feature-card span:not(.tap-card-icon) { font-size: .92rem; }
}

@media (max-width: 920px) {
    .tap-menu-toggle { display:block; }
    .tap-primary-nav { display:none; position:absolute; top:92px; left:20px; right:20px; background: var(--tap-asphalt); border-radius: 18px; box-shadow: var(--tap-shadow); padding: 18px; }
    .tap-primary-nav.is-open { display:block; }
    .tap-primary-nav ul { display:block; }
    .tap-primary-nav li + li { margin-top: 12px; }
    .tap-secondary-nav { display:none; background: var(--tap-asphalt); }
    .tap-secondary-nav.is-open { display:block; }
    .tap-secondary-nav ul { display:block; text-align:center; padding: 14px 0; }
    .tap-secondary-nav li + li { margin-top: 10px; }
    .tap-card-grid, .tap-card-columns-2 .tap-card-grid, .tap-card-columns-3 .tap-card-grid, .tap-card-columns-4 .tap-card-grid { grid-template-columns: 1fr; max-width: none; }
    .tap-header-inner { min-height: 76px; }
    .tap-branding { min-width: 0; }
    .tap-site-name { font-size: 1rem; }
    .tap-site-tagline { display: none; }
    .tap-hero-olive-band { min-height: 72px; }
    .tap-hero-image { min-height: 560px; background-position: center bottom; }
    .tap-hero-content { padding-top: 88px; }
    .tap-footer-upper { grid-template-columns: 1fr; text-align:center; margin-bottom: 28px; }
    .tap-footer-banner-slot-left, .tap-footer-banner-slot-right, .tap-footer-nav { justify-self:center; }
    .tap-footer-banner img { margin-inline:auto; }
    .tap-footer-nav ul { justify-content:center; }
    .tap-footer-bottom-row { grid-template-columns: 1fr; align-items:center; text-align:center; }
    .tap-footer-bottom-left, .tap-footer-bottom-center, .tap-footer-bottom-right { justify-self:center; text-align:center; }
    .tap-footer-copyright { white-space: normal; }
}
@media (min-width: 921px) and (max-width: 1100px) {
    .tap-card-grid, .tap-card-columns-3 .tap-card-grid, .tap-card-columns-4 .tap-card-grid { grid-template-columns: repeat(2, 1fr); }
}
