/* Shared reference palette and layout for all public pages.
   Typography inherits the existing tokens and jungle-typography.css. */
body:is(.front-page, .product-page) {
  --rb-bg: #f5f3eb;
  --rb-text: #284b36;
  --rb-muted: #667166;
  --rb-green: #355f43;
  --rb-green-strong: #284b36;
  --rb-line: rgba(53, 95, 67, .16);
  --rb-line-strong: rgba(53, 95, 67, .28);
  --rb-surface: #fff;
  --rb-surface-strong: #eef2eb;
  --rb-surface-soft: rgba(53, 95, 67, .06);
  --rb-action-start: #355f43;
  --rb-action-end: #355f43;
  --rb-shadow: 0 12px 32px rgba(40, 75, 54, .08);
  background: #f5f3eb;
}

/* Interior banners keep their own titles, descriptions, and media. */
.product-page .hero-section { min-height: clamp(480px, 41vw, 780px); }
.product-page .hero-copy-column { text-align: left; max-width: 720px; }
.product-page .hero-title { text-transform: uppercase; overflow-wrap: anywhere; }
.product-page .hero-copy { margin-top: 18px; max-width: 620px; color: #fff; }
.product-page .hero-actions { justify-content: flex-start; }
.product-page .hero-section > .seo-breadcrumbs { top: 24px; }
.product-page .hero-section > .seo-breadcrumbs ol {
  background: rgba(23, 46, 31, .65);
  border-color: rgba(255, 255, 255, .25);
  box-shadow: none;
}
.product-page .hero-section .seo-breadcrumbs li,
.product-page .hero-section .seo-breadcrumbs li::after,
.product-page .hero-section .seo-breadcrumbs a:hover { color: #fff; }
.information-page > .seo-breadcrumbs { margin-top: 24px; }
.information-page .page-hero {
  background: #355f43;
  border: 0;
  border-radius: 4px;
  box-shadow: none;
}
.information-page .page-hero::before { content: "JungleBug information center"; color: rgba(255, 255, 255, .8); }
.information-page .page-hero h1 {
  text-transform: uppercase;
  overflow-wrap: anywhere;
  color: #fff;
}
.information-page .page-content-panel,
.information-page .static-item,
.product-page .modern-section > .container,
.product-page .modern-pricing > .container {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 28px rgba(40, 75, 54, .06);
}
.information-page .page-mini-menu { background: #eef2eb; border-radius: 6px; }
.product-page .nav-cta-link:not(.nav-cta-whatsapp):not(.card-view-link) {
  background: #355f43;
  border-color: #355f43;
  color: #fff;
  box-shadow: none;
}
.product-page .site-navbar .nav-cta-link:not(.nav-cta-whatsapp):not(.card-view-link) {
  background: transparent;
  border-color: rgba(255, 255, 255, .8);
}
.product-page .nav-cta-link:hover { background: #284b36; color: #fff; }
.product-page .step-list li::before { color: #fff; }
:is(.front-page, .product-page) .mobile-site-nav-menu .site-nav-link {
  color: #355f43;
}
:is(.front-page, .product-page) .mobile-site-nav-menu .site-nav-link.active,
:is(.front-page, .product-page) .mobile-site-nav-menu .site-nav-link:hover { background: #eef2eb; color: #284b36; }
@media (max-width: 820px) {
  .product-page .hero-section { min-height: 540px; }
}
:is(.front-page, .product-page)::before, :is(.front-page, .product-page)::after { display: none; }
:is(.front-page, .product-page) .site-navbar {
  position: relative;
  top: 0;
  background: #355f43;
}
:is(.front-page, .product-page) .site-navbar > .container {
  min-height: 96px;
  padding: 14px 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
:is(.front-page, .product-page) .site-logo img { height: 52px; }
:is(.front-page, .product-page) .desktop-site-nav-menu { flex: 1; }
:is(.front-page, .product-page) .desktop-site-nav-menu .site-nav-list { justify-content: center; gap: 12px; }
:is(.front-page, .product-page) .desktop-site-nav-menu .nav-cta-item { margin-left: auto; }
:is(.front-page, .product-page) .site-navbar .site-nav-link {
  color: #fff;
  border-radius: 4px;
}
:is(.front-page, .product-page) .site-navbar .site-nav-link > i:not(.nav-dropdown-caret) { display: none; }
:is(.front-page, .product-page) .site-navbar .site-nav-link.active { background: transparent; }
:is(.front-page, .product-page) .site-navbar .nav-cta-link {
  min-width: 104px;
  min-height: 36px;
  border: 1px solid rgba(255, 255, 255, .8);
  background: transparent;
  box-shadow: none;
  text-transform: uppercase;
}
:is(.front-page, .product-page) .site-navbar .nav-cta-link:hover { background: rgba(255, 255, 255, .12); }
:is(.front-page, .product-page) .nav-dropdown-panel a { color: #355f43; }
:is(.front-page, .product-page) .front-hero { min-height: clamp(480px, 41vw, 780px); }
:is(.front-page, .product-page) .hero-shade {
  background: linear-gradient(90deg, rgba(0, 0, 0, .25), transparent 65%), linear-gradient(0deg, rgba(0, 0, 0, .22), transparent 60%);
}
:is(.front-page, .product-page) .hero-shade::after, :is(.front-page, .product-page) .hero-section::after,
:is(.front-page, .product-page) .hero-copy-column::before { display: none; }
:is(.front-page, .product-page) .hero-content { padding-top: 100px; padding-bottom: 92px; }
:is(.front-page, .product-page) .hero-copy-column {
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  overflow: visible;
}
:is(.front-page, .product-page) .hero-title {
  margin: 0;
  color: #fff;
  text-wrap: initial;
  text-shadow: 0 2px 15px rgba(0, 0, 0, .24);
}
:is(.front-page, .product-page) .hero-actions { margin-top: 18px; }
:is(.front-page, .product-page) .video-link {
  width: auto;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  backdrop-filter: none;
}
:is(.front-page, .product-page) .video-link span { background: transparent; color: #fff; }
:is(.front-page, .product-page) .product-card, :is(.front-page, .product-page) .front-recognition-card,
:is(.front-page, .product-page) .front-story-card > .front-story-content {
  background: #fff;
  border-color: #dce2d8;
  box-shadow: 0 8px 28px rgba(40, 75, 54, .06);
}
:is(.front-page, .product-page) .product-meta span, :is(.front-page, .product-page) .product-price,
:is(.front-page, .product-page) .product-actions .card-view-link {
  background: #eef2eb;
  color: #355f43;
  border-color: #dce2d8;
}
:is(.front-page, .product-page) .product-actions .nav-cta-book,
:is(.front-page, .product-page) .front-story-card .front-stat-read-more,
:is(.front-page, .product-page) .book-diamond {
  background: #355f43;
  color: #fff;
  border-color: #355f43;
  box-shadow: none;
}
:is(.front-page, .product-page) .product-actions .nav-cta-book:hover,
:is(.front-page, .product-page) .front-story-card .front-stat-read-more:hover { background: #284b36; color: #fff; }
:is(.front-page, .product-page) .site-footer { background: #355f43; border-top: 0; }
@media (max-width: 820px) {
  :is(.front-page, .product-page) .site-navbar > .container { min-height: 76px; }
  :is(.front-page, .product-page) .site-logo img { height: 44px; }
  :is(.front-page, .product-page) .front-hero { min-height: 540px; }
  :is(.front-page, .product-page) .hero-content { padding-bottom: 100px; }
  :is(.front-page, .product-page) .hero-actions { align-items: flex-start; }
}

/* Finishing details use the established palette and typography tokens. */
body:is(.front-page, .product-page) {
  --rb-radius-xl: 20px;
  --rb-radius-lg: 16px;
  --rb-radius-md: 10px;
}
:is(.front-page, .product-page) .site-navbar {
  box-shadow: 0 1px 0 rgba(255, 255, 255, .12);
}
:is(.front-page, .product-page) .site-navbar .site-nav-link {
  border-radius: 8px;
  transition: background 180ms ease, color 180ms ease;
}
:is(.front-page, .product-page) .site-navbar .site-nav-link.active {
  background: rgba(255, 255, 255, .09);
}
:is(.front-page, .product-page) .site-navbar .nav-cta-link { min-height: 44px; padding-inline: 22px; }
:is(.front-page, .product-page) .nav-dropdown-panel {
  padding: 10px;
  border-radius: 12px;
  background: #fffdf8;
  box-shadow: 0 16px 40px rgba(24, 51, 33, .16);
}
:is(.front-page, .product-page) .hero-shade {
  background: linear-gradient(90deg, rgba(13, 31, 20, .42), transparent 75%),
    linear-gradient(0deg, rgba(13, 31, 20, .4), transparent 65%);
}
:is(.front-page, .product-page) .hero-title { text-shadow: 0 3px 24px rgba(0, 0, 0, .3); }
:is(.front-page, .product-page) .video-link { gap: 12px; }
:is(.front-page, .product-page) .video-link span {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .65);
  background: rgba(255, 255, 255, .08);
}
.front-page .camp-recognition { padding-block: 28px; background: #f5f3eb; }
.front-page .camp-recognition-panel {
  padding: 24px 28px;
  border-color: #e0e4d9;
  border-radius: 16px;
  background: #fffdf8;
  box-shadow: 0 8px 28px rgba(40, 75, 54, .04);
}
.front-page .camp-recognition .front-recognition-card {
  border-radius: 10px;
  background: #f1f4ec;
  box-shadow: none;
}
.front-page .product-showcase { padding-top: 40px; }
.front-page .product-showcase::before,
.front-page .product-showcase::after { opacity: .1; }
.front-page .product-card {
  border-radius: 18px;
  box-shadow: 0 6px 24px rgba(40, 75, 54, .05);
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.front-page .product-card-body { padding: 26px; }
.front-page .product-actions { gap: 10px; }
:is(.front-page, .product-page) .product-actions .site-nav-link,
.front-page .front-story-card .front-stat-read-more { min-height: 44px; border-radius: 8px; }
.front-page .product-actions .card-view-link:hover { background: #e2eadd; color: #284b36; }
.front-page .front-story-card { border-radius: 18px; overflow: hidden; }
.information-page .page-hero { border-radius: 16px; }
.information-page .page-content-panel,
.product-page .modern-section > .container,
.product-page .modern-pricing > .container { border-radius: 16px; }
.information-page .static-item { border-radius: 12px; box-shadow: none; }
.information-page .static-item-content { max-width: 72ch; }
.information-page .page-mini-menu { border-radius: 12px; }
.information-page .page-mini-link { min-height: 44px; }
.information-page .page-mini-link.is-active { background: #355f43; color: #fff; }
.information-page .page-mini-link.is-active::before { background: #dce8cf; }
:is(.front-page, .product-page) .seo-breadcrumbs ol { box-shadow: none; }
:is(.front-page, .product-page) .site-footer { padding-top: 64px; }
:is(.front-page, .product-page) .footer-bottom { border-top-color: rgba(255, 255, 255, .18); }
:is(.front-page, .product-page) :is(a, button):focus-visible {
  outline: 2px solid #355f43;
  outline-offset: 4px;
}
:is(.front-page, .product-page) :is(.site-navbar, .hero-section, .site-footer) :is(a, button):focus-visible {
  outline-color: #fff;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .front-page .product-card:hover {
    transform: translateY(-4px);
    border-color: #b5c8ac;
    box-shadow: 0 16px 36px rgba(40, 75, 54, .12);
  }
}
@media (max-width: 820px) {
  :is(.front-page, .product-page) .mobile-site-nav-menu {
    border-radius: 16px;
    border-color: #dce2d8;
    background: rgba(255, 253, 248, .97);
    box-shadow: 0 6px 28px rgba(24, 51, 33, .14);
  }
}
@media (max-width: 640px) {
  .front-page .camp-recognition { padding-block: 18px; }
  .front-page .camp-recognition-panel { padding: 18px 14px; }
  .front-page .product-showcase { padding-top: 24px; }
  .front-page .product-card-body { padding: 20px; }
  :is(.front-page, .product-page) .site-footer { padding-top: 44px; }
}

/* Shared button contrast overrides legacy gradients and interaction colors. */
body:is(.front-page, .product-page) .site-nav-link.nav-cta-link:not(.card-view-link):not(.nav-cta-whatsapp) {
  background: #355f43;
  border-color: #355f43;
  color: #fff;
}
body:is(.front-page, .product-page) .site-nav-link.nav-cta-link:not(.card-view-link):not(.nav-cta-whatsapp):is(:hover, :focus-visible, :active) {
  background: #284b36;
  border-color: #284b36;
  color: #fff;
}
body:is(.front-page, .product-page) .site-nav-link.nav-cta-link.card-view-link {
  background: #eef2eb;
  border-color: #dce2d8;
  color: #284b36;
}
body:is(.front-page, .product-page) .site-nav-link.nav-cta-link.card-view-link:is(:hover, :focus-visible, :active) {
  background: #e2eadd;
  color: #284b36;
}
body:is(.front-page, .product-page) .site-navbar .site-nav-link.nav-cta-link:not(.card-view-link) {
  background: transparent;
  border-color: rgba(255, 255, 255, .8);
  color: #fff;
}
body:is(.front-page, .product-page) .site-navbar .site-nav-link.nav-cta-link:not(.card-view-link):is(:hover, :focus-visible, :active) {
  background: rgba(255, 255, 255, .12);
  border-color: #fff;
  color: #fff;
}
body:is(.front-page, .product-page) .site-nav-link.nav-cta-link :is(span, i) { color: inherit; }
