*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { color-scheme: light; }
html, body { width:100%; min-height:100%; background:#F5EDD6; font-family:Georgia,serif; color:#1A2410; }

/* ── NAVBAR ─────────────────────────────────────────────── */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000; height:56px;
  background:#2C3E1F; display:flex; align-items:center; padding:0 20px;
  box-shadow:0 2px 8px rgba(0,0,0,.35); border-bottom:2px solid #C8A050;
  transition:height .2s;
}
.navbar.has-title { height:84px; }
.hamburger { display:flex; flex-direction:column; justify-content:space-between; width:28px; height:20px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0; transition:transform .3s ease; }
.hamburger.open { transform:rotate(90deg); }
.hamburger span { display:block; width:100%; height:3px; background:#C8A050; border-radius:2px; }
.navbar-brand { display:flex; align-items:center; font-family:'Impact','Arial Black','Franklin Gothic Heavy',sans-serif; font-size:20px; letter-spacing:3px; color:#F5EDD6; margin-left:16px; cursor:pointer; user-select:none; text-decoration:none; }
.navbar-brand em { color:#C8A050; font-style:normal; }
.navbar-brand-mark { display:none; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; border:1.5px solid #C8A050; font-size:12px; letter-spacing:.5px; flex-shrink:0; }
.navbar-brand-mark .k { color:#F5EDD6; }
.navbar-brand-mark .d { color:#C8A050; }
.navbar-page-id { position:absolute; left:50%; transform:translateX(-50%); text-align:center; pointer-events:none; white-space:nowrap; }
.navbar-page-title { margin:0; font-family:'Impact','Arial Black',sans-serif; font-size:clamp(16px,2.5vw,24px); letter-spacing:5px; text-transform:uppercase; line-height:1.1; }
.navbar-page-title .main { color:#F5EDD6; }
.navbar-page-title .accent { color:#C8A050; }
.navbar-page-subtitle { font-family:Georgia,serif; font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(200,160,80,.65); margin-top:4px; }
.nav-drawer { position:fixed; top:56px; left:0; width:260px; z-index:999; background:#2C3E1F; border-right:2px solid #C8A050; border-bottom:2px solid #C8A050; border-radius:0 0 16px 0; padding:12px 0; transform:translateX(-100%); transition:transform .3s cubic-bezier(.4,0,.2,1); }
.navbar.has-title ~ .nav-drawer { top:84px; }
.nav-drawer.open { transform:translateX(0); }
.nav-drawer a { display:block; padding:14px 24px; font-family:Georgia,serif; font-size:15px; letter-spacing:1.5px; color:#F5EDD6; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(200,160,80,.2); transition:background .2s,color .2s,padding-left .2s; }
.nav-drawer a:last-child { border-bottom:none; }
.nav-drawer a:hover, .nav-drawer a.active { color:#C8A050; background:rgba(200,160,80,.08); }
.nav-overlay { display:none; position:fixed; inset:0; z-index:998; background:rgba(0,0,0,.3); }
.nav-overlay.open { display:block; }
.navbar-social { display:flex; align-items:center; gap:14px; margin-left:auto; flex-shrink:0; }
.social-icon { display:flex; color:#C8A050; transition:color .2s,transform .2s; }
.social-icon:hover { color:#F5EDD6; transform:scale(1.1); }
.social-icon svg { width:20px; height:20px; }

/* The page title is centred over the navbar, so it has to clear the brand on
   its left and the social icons on its right. The caps below are derived from
   that: half the title can be no wider than the gap from centre to whichever
   neighbour is closer, and the icons are the wider neighbour once the compact
   brand mark is in play. Adding a third icon moved those numbers, hence the
   three steps. */
@media (max-width:800px) {
  /* Below this a long title can't clear the full wordmark, so the KD mark
     takes over — it was already doing this job, just from 520px. */
  .navbar.has-title .navbar-brand-full { display:none; }
  .navbar.has-title .navbar-brand-mark { display:flex; }
  .navbar.has-title .navbar-page-id { white-space:normal; max-width:calc(100vw - 232px); }
}

@media (max-width:520px) {
  .navbar.has-title .navbar-page-id { max-width:calc(100vw - 204px); }
  .navbar.has-title .navbar-social { gap:10px; }
  .navbar.has-title .social-icon svg { width:18px; height:18px; }
}

@media (max-width:380px) {
  /* At this width the wide tracking costs more room than the type size, so
     tighten it rather than wrapping the title into another line. */
  .navbar.has-title .navbar-page-id { max-width:calc(100vw - 184px); }
  .navbar.has-title .navbar-page-title { font-size:14px; letter-spacing:1.5px; }
  .navbar.has-title .navbar-page-subtitle { font-size:9px; letter-spacing:1px; }
  .navbar.has-title .navbar-social { gap:8px; }
  .navbar.has-title .social-icon svg { width:16px; height:16px; }
}

/* ── NAV FLYOUT (Trip Planning submenu) ──────────────────── */
.nav-item-flyout { position:relative; }
.nav-item-flyout > a { padding-right:52px; }
.nav-flyout-toggle { position:absolute; top:0; right:0; width:48px; height:48px; background:none; border:none; color:#C8A050; font-size:20px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.nav-flyout-toggle span { display:inline-block; transition:transform .2s ease; }
.nav-item-flyout.open .nav-flyout-toggle span,
.nav-item-flyout:hover .nav-flyout-toggle span { transform:rotate(90deg); }
.nav-flyout { display:none; position:absolute; top:0; left:100%; width:230px; background:#24331a; border:2px solid #C8A050; border-radius:0 12px 12px 0; padding:8px 0; z-index:999; box-shadow:4px 4px 14px rgba(0,0,0,.3); }
.nav-item-flyout.open .nav-flyout { display:block; }
@media (hover:hover) and (pointer:fine) {
  .nav-item-flyout:hover .nav-flyout,
  .nav-item-flyout:focus-within .nav-flyout { display:block; }
}
.nav-flyout-col { padding:6px 0; }
.nav-flyout-col + .nav-flyout-col { border-top:1px solid rgba(200,160,80,.15); }
.nav-flyout-heading { display:block; padding:8px 20px 2px; font-family:Georgia,serif; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(200,160,80,.65); }
.nav-drawer .nav-flyout a { display:block; padding:8px 20px; font-size:13.5px; letter-spacing:.5px; border-bottom:none; }

@media (max-width:520px) {
  .nav-flyout { position:static; left:auto; top:auto; width:auto; border:none; border-radius:0; box-shadow:none; border-top:1px solid rgba(200,160,80,.2); background:rgba(0,0,0,.15); }
}

/* ── FOOTER ─────────────────────────────────────────────── */
.site-footer { position:fixed; bottom:0; left:0; right:0; z-index:1000; background:#2C3E1F; border-top:2px solid #C8A050; text-align:center; padding:12px 24px; font-family:Georgia,serif; font-size:13px; letter-spacing:1px; color:#C8A050; }

/* ── PAGE WRAPPER ────────────────────────────────────────── */
.page-content { padding-top:148px; padding-bottom:64px; }
.page-inner { max-width:860px; margin:0 auto; padding:0 24px; }

/* ── HOME ────────────────────────────────────────────────── */
.home-page { padding-top:56px; padding-bottom:60px; }
.hero { display:flex; align-items:center; justify-content:center; gap:48px; padding:64px 48px; max-width:1100px; margin:0 auto; flex-wrap:wrap; }
.hero-logo { width:280px; height:280px; flex-shrink:0; }
.hero-text h1 { font-family:'Impact','Arial Black','Franklin Gothic Heavy',sans-serif; font-size:clamp(32px,5vw,52px); letter-spacing:2px; color:#2C3E1F; line-height:1.1; margin-bottom:16px; text-transform:uppercase; }
.hero-text h1 em { color:#C8A050; font-style:normal; }
.hero-text p { font-family:Georgia,serif; font-size:17px; line-height:1.7; color:#3A3020; margin-bottom:32px; }

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn { display:inline-block; font-family:'Impact','Arial Black',sans-serif; font-size:14px; letter-spacing:2px; text-transform:uppercase; text-decoration:none; padding:14px 32px; border:2px solid #C8A050; border-radius:2px; cursor:pointer; transition:background .2s,color .2s; background:#2C3E1F; color:#F5EDD6; }
.btn:hover { background:#C8A050; color:#2C3E1F; }
.btn-submit { width:100%; padding:13px; background:#2C3E1F; color:#C8A050; font-family:'Impact','Arial Black',sans-serif; font-size:16px; letter-spacing:3px; text-transform:uppercase; border:2px solid #C8A050; border-radius:6px; cursor:pointer; transition:background .2s,color .2s; }
.btn-submit:hover { background:#C8A050; color:#2C3E1F; }

/* ── SECTION HEADERS ─────────────────────────────────────── */
.section-h { font-family:'Impact','Arial Black',sans-serif; font-size:22px; letter-spacing:3px; text-transform:uppercase; color:#2C3E1F; margin-bottom:14px; padding-bottom:8px; border-bottom:2px solid rgba(44,62,31,.15); }

/* ── GOLD DIVIDER ────────────────────────────────────────── */
.gold-divider { display:flex; align-items:center; gap:12px; margin:40px 0 32px; }
.gold-divider::before,.gold-divider::after { content:''; flex:1; height:1px; background:#C8A050; }
.gold-divider span { font-size:18px; color:#C8A050; line-height:1; }

/* ── BADGE ───────────────────────────────────────────────── */
.badge { display:inline-block; background:#2C3E1F; color:#C8A050; font-family:Georgia,serif; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; padding:6px 14px; border-radius:20px; border:1px solid #C8A050; }
.badge-gold { display:inline-block; background:#C8A050; color:#2C3E1F; font-family:Georgia,serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; padding:3px 10px; border-radius:20px; }

/* ── ABOUT ───────────────────────────────────────────────── */
.about-section { margin-bottom:40px; }
.about-section p { font-size:16px; line-height:1.8; color:#2A3A1A; margin-top:12px; }
.badge-strip { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.values-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:16px; }
.value-card { background:#F5EDD6; border:1px solid #C8A050; border-radius:8px; padding:20px 16px; text-align:center; min-height:140px; display:flex; flex-direction:column; justify-content:center; gap:8px; }
.value-card h3 { font-family:'Impact','Arial Black',sans-serif; font-size:19px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; }
.value-card p { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#4A5A3A; }

/* ── BUILDS ──────────────────────────────────────────────── */
.builds-intro h1 { font-family:'Impact','Arial Black',sans-serif; font-size:clamp(28px,5vw,44px); letter-spacing:4px; text-transform:uppercase; color:#2C3E1F; margin-bottom:16px; }
.builds-intro h1 em { color:#C8A050; font-style:normal; }
.builds-intro p { font-size:16px; line-height:1.8; color:#2A3A1A; }
.build-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:24px; }
.build-card { border:2px solid #C8A050; border-radius:10px; overflow:hidden; }
.build-card-header { background:#2C3E1F; padding:20px 24px 18px; text-align:center; }
.build-card-header h3 { font-family:'Impact','Arial Black',sans-serif; font-size:20px; letter-spacing:3px; text-transform:uppercase; color:#F5EDD6; margin-bottom:8px; }
.build-card-header h3 em { color:#C8A050; font-style:normal; }
.build-card-body { padding:20px 24px 24px; background:#F5EDD6; }
.build-list { list-style:none; margin-top:14px; }
.build-list li { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#2A3A1A; padding:5px 0 5px 18px; border-bottom:1px solid rgba(44,62,31,.1); position:relative; }
.build-list li::before { content:'✦'; position:absolute; left:0; color:#C8A050; font-size:10px; top:7px; }
.build-list li:last-child { border-bottom:none; }
.process-steps { border:1px solid rgba(44,62,31,.15); border-radius:10px; overflow:hidden; }
.step { display:flex; align-items:flex-start; gap:20px; padding:20px 24px; background:#fff; border-bottom:1px solid rgba(44,62,31,.1); }
.step:last-child { border-bottom:none; }
.step:nth-child(even) { background:#faf8f3; }
.step-num { flex-shrink:0; width:36px; height:36px; border-radius:50%; background:#2C3E1F; color:#C8A050; font-family:'Impact','Arial Black',sans-serif; font-size:16px; display:flex; align-items:center; justify-content:center; }
.step-content h3 { font-family:'Impact','Arial Black',sans-serif; font-size:15px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:4px; }
.step-content p { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#4A5A3A; }
.builds-cta { background:#2C3E1F; border:2px solid #C8A050; border-radius:10px; padding:40px 32px; text-align:center; margin-top:48px; }
.builds-cta h2 { font-family:'Impact','Arial Black',sans-serif; font-size:clamp(24px,4vw,36px); letter-spacing:4px; text-transform:uppercase; color:#F5EDD6; margin-bottom:12px; }
.builds-cta h2 em { color:#C8A050; font-style:normal; }
.builds-cta p { font-family:Georgia,serif; font-size:15px; line-height:1.7; color:#C8A050; margin-bottom:24px; }

/* ── BUILDERS NETWORK ────────────────────────────────────── */
.bn-hero-img { width:100%; height:auto; display:block; margin-top:24px; border:2px solid #C8A050; border-radius:10px; }
.bn-plans-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:16px; }
.bn-plan-card { border:2px solid #C8A050; border-radius:10px; overflow:hidden; background:#F5EDD6; }
.bn-plan-card img { width:100%; height:auto; display:block; }
.bn-plan-card span { display:block; text-align:center; font-family:'Impact','Arial Black',sans-serif; font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; padding:10px 8px; }
@media (max-width:640px) { .bn-plans-grid { grid-template-columns:1fr; } }

/* ── AFFILIATE DISCLOSURE ────────────────────────────────── */
.affiliate-disclosure { font-family:Georgia,serif; font-size:12.5px; line-height:1.6; color:#4A5A3A; text-align:center; margin-top:24px; padding-top:16px; border-top:1px solid rgba(44,62,31,.15); }

/* ── GALLERY ─────────────────────────────────────────────── */
.gallery-page { padding-top:108px; padding-bottom:64px; }
.carousel-outer { display:flex; align-items:center; gap:12px; padding:0 16px; max-width:1232px; margin:0 auto; }
.carousel-wrap { flex:1; background:#000; aspect-ratio:4/3; overflow:hidden; }
.carousel-wrap img { width:100%; height:100%; object-fit:contain; background:#1a2e10; display:block; }
.nav-arrow-btn { flex-shrink:0; background:rgba(44,62,31,.78); border:2px solid #C8A050; color:#C8A050; width:48px; height:48px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s,transform .2s; padding:0; }
.nav-arrow-btn svg { display:block; }
.nav-arrow-btn:hover { background:rgba(44,62,31,.96); transform:scale(1.1); }
.gallery-divider { display:flex; align-items:center; gap:12px; max-width:1232px; margin:12px auto 0; padding:0 16px; }
.gallery-divider::before,.gallery-divider::after { content:''; flex:1; height:1px; background:#C8A050; }
.gallery-divider span { font-size:18px; color:#C8A050; line-height:1; }
.slide-caption-bar { background:#F5EDD6; text-align:center; padding:10px 24px 14px; max-width:1232px; margin:0 auto; }
.caption-step { display:block; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:#C8A050; margin-bottom:4px; }
.caption-text { font-family:Georgia,serif; font-size:15px; letter-spacing:.5px; color:#2C3E1F; }
.carousel-controls { display:flex; align-items:center; justify-content:center; gap:16px; padding:16px 24px 10px; }
.play-pause-btn { background:rgba(44,62,31,.9); border:2px solid #C8A050; color:#C8A050; font-size:18px; width:44px; height:44px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s,transform .2s; flex-shrink:0; }
.play-pause-btn:hover { background:#2C3E1F; transform:scale(1.1); }
.carousel-dots { display:flex; gap:7px; flex-wrap:wrap; justify-content:center; }
.dot { width:9px; height:9px; border-radius:50%; background:rgba(200,160,80,.3); border:1px solid #C8A050; cursor:pointer; transition:background .2s,transform .2s; }
.dot.active { background:#C8A050; transform:scale(1.3); }
.slide-counter { color:#C8A050; font-size:13px; letter-spacing:2px; white-space:nowrap; }

/* ── TRIP PLANNING (hub) ─────────────────────────────────── */
.trip-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:24px; margin-top:20px; }
.trip-card { display:flex; flex-direction:column; border:2px solid #C8A050; border-radius:10px; overflow:hidden; text-decoration:none; background:#F5EDD6; transition:transform .2s,box-shadow .2s; }
.trip-card:hover { transform:translateY(-3px); box-shadow:0 6px 16px rgba(0,0,0,.18); }
.trip-card-header { background:#2C3E1F; padding:16px 20px 14px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.trip-card-header .trip-style { font-family:Georgia,serif; font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(200,160,80,.85); line-height:1.4; max-width:60%; }
.trip-card-body { padding:16px 20px 20px; flex:1; display:flex; flex-direction:column; }
.trip-card-body h3 { font-family:'Impact','Arial Black',sans-serif; font-size:17px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; margin-bottom:8px; }
.trip-card-body p { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#4A5A3A; flex:1; }
.trip-card-body .trip-cta { display:inline-block; margin-top:14px; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#C8A050; }
.trip-card:hover .trip-card-body .trip-cta { color:#2C3E1F; }
.trip-planning-intro h1 { font-family:'Impact','Arial Black',sans-serif; font-size:clamp(28px,5vw,44px); letter-spacing:4px; text-transform:uppercase; color:#2C3E1F; margin-bottom:16px; }
.trip-planning-intro h1 em { color:#C8A050; font-style:normal; }
.trip-planning-intro p { font-size:16px; line-height:1.8; color:#2A3A1A; }
.style-key { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-top:16px; }
.style-key-item { border:1px solid rgba(44,62,31,.15); border-radius:8px; padding:14px 16px; background:#fff; }
.style-key-item strong { display:block; font-family:'Impact','Arial Black',sans-serif; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; margin-bottom:4px; }
.style-key-item span { font-family:Georgia,serif; font-size:13.5px; line-height:1.6; color:#4A5A3A; }

/* ── TRIP GUIDE (detail) ─────────────────────────────────── */
.trip-guide-intro h1 { font-family:'Impact','Arial Black',sans-serif; font-size:clamp(26px,4.5vw,40px); letter-spacing:3px; text-transform:uppercase; color:#2C3E1F; margin-bottom:14px; }
.trip-guide-intro h1 em { color:#C8A050; font-style:normal; }
.trip-guide-intro p { font-size:16px; line-height:1.8; color:#2A3A1A; }
.trip-facts { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.trip-fact { display:inline-flex; flex-direction:column; gap:2px; background:#2C3E1F; color:#F5EDD6; border-radius:8px; padding:8px 14px; min-width:110px; }
.trip-fact .fact-label { font-family:Georgia,serif; font-size:9.5px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(200,160,80,.8); }
.trip-fact .fact-value { font-family:'Impact','Arial Black',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:#F5EDD6; }
.more-trips { margin-top:48px; }
.more-trips-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:14px; }
.more-trips-links a { font-family:Georgia,serif; font-size:14px; color:#2C3E1F; background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:4px; padding:10px 18px; text-decoration:none; transition:border-color .2s,background .2s; }
.more-trips-links a:hover { border-color:#C8A050; background:#faf8f3; }
.trip-back-link, .blog-back-link { position:fixed; bottom:56px; left:20px; z-index:500; display:inline-flex; align-items:center; gap:6px; background:#2C3E1F; color:#F5EDD6; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; text-decoration:none; padding:10px 16px; border:2px solid #C8A050; border-radius:20px; box-shadow:0 2px 8px rgba(0,0,0,.3); transition:background .2s,color .2s; }
.trip-back-link:hover, .blog-back-link:hover { background:#C8A050; color:#2C3E1F; }
.page-content:has(.trip-back-link), .page-content:has(.blog-back-link) { padding-bottom:150px; }

@media (max-width:520px) {
  .trip-back-link, .blog-back-link { bottom:70px; left:12px; padding:9px 14px; font-size:10px; }
}

/* ── BLOG (hub + post) ───────────────────────────────────── */
/* The hub runs wider than a standard page so the sidebar + timeline fit. */
.blog-inner { max-width:1040px; }
.blog-layout { display:grid; grid-template-columns:210px 1fr; gap:40px; margin-top:32px; align-items:start; }

/* Sidebar: category filters + sort toggle */
.blog-sidebar { position:sticky; top:104px; }
.blog-sidebar-h { font-family:'Impact','Arial Black',sans-serif; font-size:14px; letter-spacing:2.5px; text-transform:uppercase; color:#2C3E1F; padding-bottom:10px; border-bottom:2px solid #C8A050; margin-bottom:12px; }
.blog-filters { list-style:none; margin:0 0 26px; padding:0; }
.blog-filters li { margin:0; }
.blog-filter { display:flex; justify-content:space-between; align-items:center; gap:10px; width:100%; background:none; border:none; border-bottom:1px solid rgba(200,160,80,.25); padding:9px 8px; cursor:pointer; text-align:left; font-family:Georgia,serif; font-size:13.5px; letter-spacing:.4px; color:#2A3A1A; transition:background .2s,color .2s,padding-left .2s; }
.blog-filter:hover:not(:disabled) { background:rgba(200,160,80,.15); color:#2C3E1F; padding-left:14px; }
.blog-filter.is-active { background:#2C3E1F; color:#F5EDD6; padding-left:14px; }
.blog-filter.is-active .blog-filter-count { background:#C8A050; color:#2C3E1F; }
.blog-filter:disabled { opacity:.45; cursor:default; }
.blog-filter-count { flex-shrink:0; min-width:22px; text-align:center; font-size:11px; letter-spacing:.5px; background:rgba(44,62,31,.1); color:#4A5A3A; border-radius:20px; padding:2px 7px; }
.blog-sort-label { display:block; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#4A5A3A; margin-bottom:8px; }
.blog-sort-btn { width:100%; background:#F5EDD6; border:2px solid #C8A050; border-radius:2px; padding:10px 12px; cursor:pointer; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; transition:background .2s,color .2s; }
.blog-sort-btn::before { content:'↓  '; }
.blog-sort-btn[aria-pressed="true"]::before { content:'↑  '; }
.blog-sort-btn:hover { background:#2C3E1F; color:#C8A050; }

/* Result bar */
.blog-resultbar { min-height:20px; margin-bottom:14px; }
.blog-count { font-family:Georgia,serif; font-size:12.5px; letter-spacing:.5px; color:#4A5A3A; }

/* Timeline */
.blog-timeline { position:relative; padding-left:26px; }
.blog-timeline::before { content:''; position:absolute; left:5px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg,#C8A050,rgba(200,160,80,.25)); }
.tl-item { position:relative; margin-bottom:22px; }
.tl-item[hidden] { display:none; }
.tl-marker { position:absolute; left:-26px; top:16px; width:12px; height:12px; border-radius:50%; background:#F5EDD6; border:2px solid #C8A050; transition:background .2s,transform .2s; }
.tl-item:hover .tl-marker { background:#C8A050; transform:scale(1.25); }
.tl-card { border:2px solid #C8A050; border-radius:10px; background:#F5EDD6; overflow:hidden; transition:transform .2s,box-shadow .2s; }
.tl-item:hover .tl-card { transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.15); }
.tl-body { padding:16px 20px 18px; }
.tl-hero { display:block; line-height:0; border-bottom:2px solid #C8A050; background:#2C3E1F; }
.tl-hero img { display:block; width:100%; height:170px; object-fit:cover; transition:transform .35s ease; }
.tl-item:hover .tl-hero img { transform:scale(1.03); }
@media (prefers-reduced-motion:reduce) {
  .tl-item:hover .tl-hero img { transform:none; }
  .tl-item:hover .tl-card { transform:none; }
}
.tl-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:8px; }
.tl-meta time { font-family:Georgia,serif; font-size:12px; letter-spacing:.8px; color:#4A5A3A; }
.tl-cat { font-family:Georgia,serif; font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; background:#2C3E1F; color:rgba(200,160,80,.9); border-radius:20px; padding:4px 12px; }
.tl-card h3 { font-family:'Impact','Arial Black',sans-serif; font-size:17px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:8px; }
.tl-card h3 a { color:#2C3E1F; text-decoration:none; }
.tl-card h3 a:hover { color:#C8A050; }
.tl-card p { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#4A5A3A; }
.tl-card .blog-cta { display:inline-block; margin-top:12px; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#C8A050; text-decoration:none; }
.tl-item:hover .blog-cta { color:#2C3E1F; }

/* Pagination */
.blog-pager { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; margin-top:32px; }
.blog-page-btn { min-width:36px; height:36px; padding:0 10px; background:#F5EDD6; border:2px solid #C8A050; border-radius:2px; cursor:pointer; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:1px; color:#2C3E1F; transition:background .2s,color .2s; }
.blog-page-btn:hover:not(:disabled) { background:#C8A050; }
.blog-page-btn.is-current { background:#2C3E1F; color:#C8A050; border-color:#2C3E1F; }
.blog-page-btn:disabled { opacity:.35; cursor:default; }
.blog-page-gap { font-family:Georgia,serif; color:#4A5A3A; padding:0 2px; }

.blog-noresults, .blog-empty { border:1.5px dashed rgba(44,62,31,.3); border-radius:10px; padding:32px 20px; text-align:center; font-family:Georgia,serif; font-size:14px; color:#4A5A3A; }

@media (max-width:800px) {
  .blog-layout { grid-template-columns:1fr; gap:28px; }
  .blog-sidebar { position:static; }
  .blog-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
  .blog-filters li { flex:0 0 auto; }
  .blog-filter { width:auto; border:1.5px solid #C8A050; border-radius:20px; padding:7px 14px; font-size:12.5px; }
  .blog-filter:hover:not(:disabled), .blog-filter.is-active { padding-left:14px; }
}
.blog-post-intro h1 { font-family:'Impact','Arial Black',sans-serif; font-size:clamp(26px,4.5vw,40px); letter-spacing:3px; text-transform:uppercase; color:#2C3E1F; margin-bottom:14px; }
.blog-post-intro h1 em { color:#C8A050; font-style:normal; }
.blog-post-intro p { font-size:16px; line-height:1.8; color:#2A3A1A; }
.blog-post-meta { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; align-items:center; }
.blog-post-meta .blog-category { font-family:Georgia,serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; background:#2C3E1F; color:rgba(200,160,80,.9); border-radius:20px; padding:6px 14px; }
.blog-post-meta .blog-date { font-family:Georgia,serif; font-size:13px; letter-spacing:.5px; color:#4A5A3A; }
.blog-photo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px; margin-top:16px; }
.blog-photo { border:2px solid #C8A050; border-radius:10px; overflow:hidden; background:#F5EDD6; }
.blog-photo a { display:block; }
.blog-photo img { width:100%; height:260px; object-fit:cover; display:block; }
.blog-photo figcaption { font-family:Georgia,serif; font-size:12.5px; letter-spacing:.3px; line-height:1.5; color:#4A5A3A; padding:10px 14px; }

.hike-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; margin-top:16px; }
.hike-card { background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:8px; padding:18px 20px; }
.hike-card h3 { font-family:'Impact','Arial Black',sans-serif; font-size:15.5px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; margin-bottom:6px; }
.hike-card .hike-tag { display:inline-block; background:#C8A050; color:#2C3E1F; font-family:Georgia,serif; font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; border-radius:20px; margin-bottom:8px; }
.hike-card p { font-family:Georgia,serif; font-size:13.5px; line-height:1.6; color:#4A5A3A; }

.event-list { border:1px solid rgba(44,62,31,.15); border-radius:10px; overflow:hidden; margin-top:16px; }
.event-row { display:flex; gap:18px; align-items:flex-start; padding:16px 22px; background:#fff; border-bottom:1px solid rgba(44,62,31,.1); }
.event-row:nth-child(even) { background:#faf8f3; }
.event-row:last-child { border-bottom:none; }
.event-month { flex-shrink:0; width:92px; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; padding-top:2px; }
.event-detail h3 { font-family:'Impact','Arial Black',sans-serif; font-size:14px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; margin-bottom:3px; }
.event-detail p { font-family:Georgia,serif; font-size:13.5px; line-height:1.6; color:#4A5A3A; }

.info-box { background:#fff; border:1.5px solid #C8A050; border-radius:10px; padding:20px 24px; margin-top:16px; }
.info-box h3 { font-family:'Impact','Arial Black',sans-serif; font-size:14px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:10px; }
.info-box p { font-family:Georgia,serif; font-size:14px; line-height:1.7; color:#2A3A1A; margin-bottom:8px; }
.info-box p:last-child { margin-bottom:0; }
.info-box ul { list-style:none; margin-top:4px; }
.info-box li { font-family:Georgia,serif; font-size:14px; line-height:1.6; color:#2A3A1A; padding:4px 0 4px 18px; position:relative; }
.info-box li::before { content:'✦'; position:absolute; left:0; color:#C8A050; font-size:10px; top:9px; }

.restaurant-card { border:1px solid rgba(44,62,31,.15); border-radius:8px; padding:16px 20px; background:#fff; margin-top:14px; }
.restaurant-card h3 { font-family:'Impact','Arial Black',sans-serif; font-size:15px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; margin-bottom:4px; }
.restaurant-card .restaurant-loc { font-family:Georgia,serif; font-size:11.5px; letter-spacing:1px; text-transform:uppercase; color:#C8A050; margin-bottom:6px; display:block; }
.restaurant-card p { font-family:Georgia,serif; font-size:14px; line-height:1.65; color:#4A5A3A; }
.restaurant-card p em { color:#2A3A1A; font-style:italic; }

/* ── EXTERNAL LINKS ───────────────────────────────────────── */
.ext-link { color:#2C3E1F; font-family:Georgia,serif; font-size:12.5px; letter-spacing:.3px; text-decoration:none; border-bottom:1px solid #C8A050; padding-bottom:1px; }
.ext-link:hover { background:rgba(200,160,80,.15); }
.card-link-row { margin-top:8px; }

/* ── SHOPPING LIST ────────────────────────────────────────── */
.shopping-list-section { }
.shopping-list-note { font-family:Georgia,serif; font-size:14px; line-height:1.7; color:#2A3A1A; margin-top:8px; margin-bottom:4px; }
.shop-categories { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin-top:16px; }
.shop-category { background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:8px; padding:16px 20px; }
.shop-category h3 { font-family:'Impact','Arial Black',sans-serif; font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid rgba(44,62,31,.15); }
.shop-list { list-style:none; }
.shop-list li { font-family:Georgia,serif; font-size:13.5px; line-height:1.7; color:#2A3A1A; padding:2px 0 2px 22px; position:relative; }
.shop-list li::before { content:'☐'; position:absolute; left:0; color:#C8A050; font-size:12px; top:5px; }
.print-link { display:inline-block; margin-left:12px; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:#C8A050; text-decoration:none; vertical-align:middle; cursor:pointer; }
.print-link:hover { text-decoration:underline; }

/* ── PRINT ────────────────────────────────────────────────── */
@media print {
  .navbar, .nav-drawer, .nav-overlay, .site-footer, .no-print, .print-link, .affiliate-disclosure { display:none !important; }
  html, body { background:#fff !important; }
  .page-content { padding-top:24px !important; padding-bottom:0 !important; }
  .shop-category { border-color:#999; break-inside:avoid; }
  .shop-list li::before { color:#333; }
}

/* ── CONTACT ─────────────────────────────────────────────── */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.contact-info h2, .contact-form-wrap h2 { font-family:'Impact','Arial Black',sans-serif; font-size:20px; letter-spacing:3px; text-transform:uppercase; color:#2C3E1F; margin-bottom:20px; padding-bottom:8px; border-bottom:2px solid rgba(44,62,31,.15); }
.contact-item { display:flex; gap:14px; margin-bottom:22px; align-items:flex-start; }
.ci-icon { width:38px; height:38px; background:#2C3E1F; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; margin-top:2px; }
.ci-text strong { display:block; font-family:'Impact','Arial Black',sans-serif; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:3px; }
.ci-text span { font-family:Georgia,serif; font-size:15px; color:#4A5A3A; line-height:1.5; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea { width:100%; padding:10px 14px; font-family:Georgia,serif; font-size:15px; color:#1A2410; background:#F5EDD6; border:1.5px solid #C8A050; border-radius:6px; outline:none; transition:border-color .2s,box-shadow .2s; appearance:none; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:#2C3E1F; box-shadow:0 0 0 3px rgba(44,62,31,.12); }
.form-group textarea { resize:vertical; min-height:110px; }
.form-success { display:none; background:#2C3E1F; border:2px solid #C8A050; border-radius:8px; padding:24px; text-align:center; color:#F5EDD6; font-size:16px; line-height:1.6; }
.form-success .check { font-size:32px; margin-bottom:10px; }

/* ── WIRING DIAGRAM BUILDER ──────────────────────────────── */
.wb-print-header { display:none; }
.wb-intro { font-family:Georgia,serif; font-size:16px; line-height:1.8; color:#2A3A1A; margin-bottom:10px; }
.wb-disclaimer { font-family:Georgia,serif; font-size:13px; line-height:1.6; color:#4A5A3A; padding:10px 14px; background:#faf8f3; border:1px solid rgba(44,62,31,.15); border-radius:8px; margin-bottom:8px; }
.wb-shell { max-width:1400px; margin:24px auto 0; padding:0 24px; }

.wb-toolbar { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:10px; padding:14px 18px; margin-bottom:16px; }
.wb-toolbar-group { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.wb-tool-btn { font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; background:#2C3E1F; color:#F5EDD6; border:2px solid #C8A050; border-radius:6px; padding:9px 14px; cursor:pointer; transition:background .2s,color .2s; }
.wb-tool-btn:hover, .wb-tool-btn.active { background:#C8A050; color:#2C3E1F; }
.wb-tool-btn-danger { border-color:#7a3b28; }
.wb-tool-btn-danger:hover { background:#7a3b28; color:#F5EDD6; }
.wb-settings label { display:flex; flex-direction:column; gap:3px; font-family:Georgia,serif; font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:#2A3A1A; }
.wb-settings input, .wb-settings select { padding:6px 9px; font-family:Georgia,serif; font-size:13px; color:#1A2410; background:#F5EDD6; border:1.5px solid #C8A050; border-radius:6px; outline:none; }
.wb-print-btn { padding:9px 20px; font-size:11px; }

.wb-layout { display:grid; grid-template-columns:220px 1fr; grid-template-areas:"palette canvas" ".       panel"; gap:16px; align-items:start; }
.wb-palette { grid-area:palette; background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:10px; padding:14px; height:781px; overflow-y:auto; position:sticky; top:100px; }
.wb-palette-group h4 { font-family:'Impact','Arial Black',sans-serif; font-size:10.5px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin:16px 0 8px; padding-bottom:4px; border-bottom:1px solid rgba(44,62,31,.12); }
.wb-palette-group:first-child h4 { margin-top:0; }
.wb-palette-group-toggle { display:flex; align-items:center; justify-content:space-between; gap:6px; cursor:pointer; user-select:none; }
.wb-palette-group-toggle:hover { color:#C8A050; }
.wb-palette-chevron { font-size:9px; color:#8a6d3f; transition:transform .2s ease; }
.wb-palette-group.collapsed .wb-palette-chevron { transform:rotate(-90deg); }
.wb-palette-group.collapsed .wb-palette-group-items { display:none; }
.wb-chip { display:flex; align-items:center; gap:8px; padding:8px 10px; margin-bottom:6px; border:1px solid rgba(44,62,31,.15); border-radius:8px; background:#faf8f3; cursor:grab; font-family:Georgia,serif; font-size:12.5px; color:#2A3A1A; user-select:none; touch-action:none; }
.wb-chip:hover { border-color:#C8A050; background:#fff; }
.wb-chip svg { flex-shrink:0; }
.wb-chip-ghost { border-radius:8px; box-shadow:0 6px 16px rgba(0,0,0,.25); }

.wb-canvas-wrap { grid-area:canvas; background:#fff; border:2px solid #C8A050; border-radius:10px; overflow:hidden; position:relative; }
.wb-canvas { width:100%; height:781px; display:block; touch-action:none; background-color:#fff; cursor:grab; }
.wb-canvas.connecting { cursor:crosshair; }
.wb-canvas.panning { cursor:grabbing; }
.wb-canvas-hint { font-family:Georgia,serif; font-size:12px; color:#4A5A3A; text-align:center; padding:9px 14px; background:#faf8f3; border-top:1px solid rgba(44,62,31,.1); }
.wb-zoom-controls { position:absolute; right:12px; top:12px; display:flex; align-items:center; gap:6px; background:rgba(255,255,255,.94); border:1px solid rgba(44,62,31,.2); border-radius:8px; padding:5px 6px; box-shadow:0 2px 6px rgba(0,0,0,.15); z-index:2; }
.wb-zoom-controls button { width:26px; height:26px; border-radius:5px; border:1.5px solid #C8A050; background:#2C3E1F; color:#F5EDD6; font-family:'Impact','Arial Black',sans-serif; font-size:15px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; transition:background .2s,color .2s; }
.wb-zoom-controls button:hover { background:#C8A050; color:#2C3E1F; }
.wb-zoom-controls button.wb-zoom-reset { width:auto; padding:0 9px; font-family:Georgia,serif; font-size:10.5px; letter-spacing:1px; text-transform:uppercase; }
.wb-zoom-controls #wbZoomLabel { font-family:Georgia,serif; font-size:11.5px; color:#2A3A1A; min-width:36px; text-align:center; }
.wb-resize-handle { position:absolute; left:0; right:0; bottom:0; height:12px; cursor:ns-resize; display:flex; align-items:center; justify-content:center; background:linear-gradient(to bottom, transparent, rgba(200,160,80,.14)); z-index:2; }
.wb-resize-handle span { width:36px; height:4px; border-radius:2px; background:#C8A050; opacity:.55; transition:opacity .2s; }
.wb-resize-handle:hover span { opacity:1; }
.wb-node-body { cursor:grab; }
.wb-node-selring { fill:none; stroke:#C8A050; stroke-width:2.5; stroke-dasharray:5 3; }
.wb-terminal-hit { fill:transparent; cursor:grab; }
.wb-canvas.connecting .wb-terminal-hit { cursor:crosshair; }
.wb-terminal-dot.pending { animation:wbTerminalPulse 1s ease-in-out infinite; }
@keyframes wbTerminalPulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
.wb-label-leader { stroke:rgba(44,62,31,.35); stroke-width:1; stroke-dasharray:3 3; }
.wb-node-label-group { cursor:grab; }
.wb-label-bg { fill:#ffffff; stroke:rgba(44,62,31,.25); stroke-width:1px; }
.wb-node-title { font-family:'Impact','Arial Black',sans-serif; font-size:10.5px; letter-spacing:.3px; text-transform:uppercase; fill:#1A2410; }
.wb-node-label { font-family:Georgia,serif; font-size:10.5px; fill:#4A5A3A; }
.wb-label-full { opacity:0; pointer-events:none; transition:opacity .12s ease; }
.wb-label-compact { opacity:1; transition:opacity .12s ease; }
.wb-node-label-group:hover .wb-label-compact { opacity:0; pointer-events:none; }
.wb-node-label-group:hover .wb-label-full { opacity:1; pointer-events:auto; }
.wb-wire-line { fill:none; stroke-width:2.5px; }
.wb-wire-line.wb-wire-pos { stroke:#c0392b; }
.wb-wire-line.wb-wire-neg { stroke:#181818; }
.wb-wire-line.selected { stroke:#C8A050 !important; stroke-width:3.5px; }
.wb-wire-hit { fill:none; stroke:transparent; stroke-width:14px; cursor:grab; }
.wb-wire-hit:active { cursor:grabbing; }
.wb-wire-label-group { cursor:grab; }
.wb-wire-label-bg { fill:#F5EDD6; stroke:rgba(44,62,31,.25); stroke-width:1px; }
.wb-wire-label-bg.selected { stroke:#C8A050; stroke-width:2px; }
.wb-wire-label-text { font-family:Georgia,serif; font-size:9.5px; fill:#2A3A1A; }

.wb-side-panel { grid-area:panel; display:flex; flex-direction:row; gap:16px; align-items:start; }
.wb-side-panel > .wb-panel-section { flex:1 1 0; min-width:0; }
.wb-panel-section { background:#fff; border:1px solid rgba(44,62,31,.15); border-radius:10px; padding:16px 18px; }
.wb-panel-section h3 { font-family:'Impact','Arial Black',sans-serif; font-size:13px; letter-spacing:2px; text-transform:uppercase; color:#2C3E1F; margin-bottom:10px; padding-bottom:6px; border-bottom:1px solid rgba(44,62,31,.12); }
.wb-rec-row { display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px dashed rgba(44,62,31,.12); font-family:Georgia,serif; font-size:13px; }
.wb-rec-row:last-child { border-bottom:none; }
.wb-rec-label { color:#4A5A3A; }
.wb-rec-value { color:#1A2410; font-weight:bold; text-align:right; }
.wb-rec-value.wb-ok { color:#2C3E1F; }
.wb-rec-value.wb-warn { color:#8a3b1f; }
.wb-fuse-badge-bg { fill:#fdf6e3; stroke:#b07a1f; stroke-width:1.5; }
.wb-fuse-badge-glyph { stroke:#7a2318; stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; }
.wb-fuse-badge-text { font-family:Georgia,serif; font-size:9.5px; font-weight:bold; fill:#6b3d17; }
.wb-fuse-badge-todo .wb-fuse-badge-bg { stroke-dasharray:3.5 2.5; }
.wb-fuse-where { display:block; font-size:11.5px; color:#4A5A3A; font-style:italic; line-height:1.45; margin-top:1px; }
.wb-checks-banner { font-family:Georgia,serif; font-size:12.5px; line-height:1.5; border-radius:6px; padding:8px 10px; margin-bottom:8px; border:1px solid; }
.wb-banner-ok { color:#2C3E1F; background:#eef3e6; border-color:rgba(44,62,31,.3); }
.wb-banner-warn { color:#6b3d17; background:#f7ecdd; border-color:rgba(176,122,31,.4); }
.wb-banner-fail { color:#6b1f14; background:#f6e3df; border-color:rgba(122,43,31,.4); }
.wb-check-row { display:flex; gap:8px; align-items:flex-start; padding:5px 0; border-bottom:1px dashed rgba(44,62,31,.12); font-family:Georgia,serif; font-size:12.5px; line-height:1.5; color:#2A3A1A; }
.wb-check-row:last-child { border-bottom:none; }
.wb-check-icon { flex-shrink:0; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:bold; margin-top:2px; color:#fff; }
.wb-check-ok .wb-check-icon { background:#2C3E1F; }
.wb-check-warn .wb-check-icon { background:#b07a1f; }
.wb-check-fail .wb-check-icon { background:#7a2b1f; }
.wb-empty-state { font-family:Georgia,serif; font-size:12.5px; line-height:1.6; color:#4A5A3A; text-align:center; padding:14px 6px; }
.wb-field { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.wb-field label { font-family:'Impact','Arial Black',sans-serif; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:#2C3E1F; }
.wb-field input, .wb-field select { padding:7px 10px; border:1.5px solid #C8A050; border-radius:6px; background:#F5EDD6; font-family:Georgia,serif; font-size:13.5px; color:#1A2410; }
.wb-remove-btn { margin-top:4px; width:100%; padding:9px; background:transparent; border:1.5px solid #8a3b1f; color:#8a3b1f; border-radius:6px; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s; }
.wb-remove-btn:hover { background:#8a3b1f; color:#fff; }
.wb-reset-btn { margin-top:4px; width:100%; padding:9px; background:transparent; border:1.5px solid #C8A050; color:#7a5f22; border-radius:6px; font-family:'Impact','Arial Black',sans-serif; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; cursor:pointer; transition:background .2s,color .2s; }
.wb-reset-btn:hover { background:#C8A050; color:#2C3E1F; }

.wb-modal-backdrop { display:none; position:fixed; inset:0; background:rgba(26,36,16,.55); z-index:1000; padding:24px; align-items:center; justify-content:center; }
.wb-modal-backdrop:not([hidden]) { display:flex; }
.wb-modal { position:relative; width:100%; max-width:420px; max-height:85vh; overflow-y:auto; box-shadow:0 16px 48px rgba(0,0,0,.4); }
.wb-modal-close { position:absolute; top:8px; right:8px; width:30px; height:30px; border:none; background:transparent; color:#4A5A3A; font-size:24px; line-height:1; cursor:pointer; border-radius:6px; display:flex; align-items:center; justify-content:center; transition:background .2s,color .2s; }
.wb-modal-close:hover { background:rgba(44,62,31,.1); color:#1A2410; }

#wbPartsList .shop-categories { grid-template-columns:1fr 1fr; }

@media (max-width:1000px) {
  .wb-layout { grid-template-columns:1fr; grid-template-areas:"palette" "canvas" "panel"; }
  .wb-palette { position:static; height:auto; max-height:none; }
}

@media (max-width:640px) {
  .wb-side-panel { flex-direction:column; }
}

@media (max-width:520px) {
  #wbPartsList .shop-categories { grid-template-columns:1fr; }
}

@media print {
  .wb-print-header { display:block; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid #2C3E1F; }
  .wb-print-header-brand { font-family:'Impact','Arial Black',sans-serif; font-size:20px; letter-spacing:3px; color:#2C3E1F; }
  .wb-print-header-brand span { color:#8a6d1f; }
  .wb-print-header-title { font-family:Georgia,serif; font-size:14px; letter-spacing:.5px; color:#4A5A3A; margin-top:2px; }
  .wb-toolbar, .wb-palette, .wb-canvas-hint { display:none !important; }
  .wb-shell { max-width:100%; padding:0; margin-top:0; }
  .wb-layout { display:block; }
  .wb-canvas-wrap { border-color:#333; margin-bottom:16px; break-inside:avoid; }
  .wb-canvas { height:auto !important; max-height:520px; background-image:none !important; }
  .wb-side-panel { width:100%; }
  .wb-disclaimer { border-color:#999; }
  .wb-shop-link { display:none; }
  .wb-label-compact { display:none; }
  .wb-label-full { display:block; opacity:1; pointer-events:auto; }
  .wb-side-panel { break-inside:avoid; page-break-inside:avoid; }
  .wb-parts-section { break-before:page; page-break-before:always; }
  .wb-parts-section .shopping-list-note { break-before:avoid; page-break-before:avoid; }
  #wbPartsList .shop-category:first-child { break-before:avoid; page-break-before:avoid; }
  .wb-components-wide { grid-column:1 / -1; break-inside:auto; page-break-inside:auto; }
  .wb-components-wide .shop-list { column-count:2; column-gap:28px; }
  .wb-components-wide .shop-list li { break-inside:avoid; page-break-inside:avoid; }
  .wb-page .gold-divider { display:none; }
}
