/*
 * Wildlens sitewide brochure palette and contrast system.
 * Loaded last to unify pages without changing content or structure.
 * Version 5.0.2
 */
:root {
  --wl-primary: #0E6B50;
  --wl-primary-dark: #0B3028;
  --wl-gold: #D38B17;
  --wl-gold-light: #E6B45A;
  --wl-earth: #916C48;
  --wl-ivory: #FEF7E8;
  --wl-soft-white: #FEF7E8;
  --wl-charcoal: #262626;
  --wl-body: #555555;
  --wl-muted: #726B62;
  --wl-sand: #D5BD98;
  --wl-stone: #B49A80;
  --wl-deep: #11252A;
  --wl-border: #E8D9C6;
  --wl-card-shadow: 0 18px 50px rgba(67, 48, 31, .09);
}

html { background: var(--wl-ivory); }
body {
  background: var(--wl-soft-white);
  color: var(--wl-body);
}

/* Shared readable links and focus states. */
a { text-underline-offset: .18em; }
main a:not([class]), .entry-content a:not([class]) { color: var(--wl-primary); }
main a:not([class]):hover, .entry-content a:not([class]):hover { color: var(--wl-gold); }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(211,139,23,.45);
  outline-offset: 3px;
}

/* Site header and menus. */
.wl-site-header,
.site-header {
  background: rgba(252,251,248,.96);
  border-color: var(--wl-border);
}
.wl-desktop-nav > a,
.wl-desktop-nav summary,
.wl-mobile-menu a,
.wl-mobile-menu summary { color: var(--wl-charcoal); }
.wl-desktop-nav > a:hover,
.wl-desktop-nav summary:hover,
.wl-mobile-menu a:hover,
.wl-mobile-menu summary:hover,
.wl-desktop-nav [aria-current="page"] { color: var(--wl-primary); }
.wl-mega-menu,
.wl-mobile-menu,
.wl-search-dialog__panel {
  background: var(--wl-soft-white);
  border-color: var(--wl-border);
  box-shadow: var(--wl-card-shadow);
}

/* Common page canvases. */
:where(
  .wl-about-page,
  .wl-contact-page,
  .wl-support-page,
  .wl-sitemap-page,
  .wl-cookie-policy-page,
  .wl-destinations-page,
  .wl-tour-archive,
  .wl-single-tour,
  .wl-journal-index,
  .wl-article,
  .wl-trust-page,
  .wildlens-standard-page,
  .wildlens-404
) {
  background: var(--wl-soft-white);
  color: var(--wl-body);
}

/* Editorial light sections. */
:where(
  .wl-about-intro,
  .wl-about-principles,
  .wl-contact-main,
  .wl-support-main,
  .wl-sitemap-content,
  .wl-cookie-policy-content,
  .wl-section--light,
  .wl-featured-journal,
  .wl-journal-library,
  .wl-single-tour .wl-section
) {
  background-color: var(--wl-soft-white);
}

/* All light cards: strong contrast and brochure surfaces. */
:where(
  .wl-about-card,
  .wl-contact-form-card,
  .wl-contact-next,
  .wl-support-card,
  .wl-sitemap-card,
  .wl-cookie-policy-table,
  .wl-tour-card,
  .wl-story-card,
  .wl-person-card,
  .wl-featured-journal__card,
  .wl-journal-card,
  .wl-tour-detail,
  .wl-tour-fact,
  .wildlens-404-card,
  .wl-empty-state
) {
  background: linear-gradient(145deg, #fff 0%, var(--wl-soft-white) 100%);
  border-color: var(--wl-border);
  box-shadow: var(--wl-card-shadow);
}
:where(
  .wl-about-card,
  .wl-contact-form-card,
  .wl-contact-next,
  .wl-support-card,
  .wl-sitemap-card,
  .wl-tour-card,
  .wl-story-card,
  .wl-person-card,
  .wl-featured-journal__card,
  .wl-journal-card,
  .wl-tour-detail,
  .wl-tour-fact,
  .wildlens-404-card,
  .wl-empty-state
) :where(h1,h2,h3,h4,h5,h6,strong) { color: var(--wl-charcoal); }
:where(
  .wl-about-card,
  .wl-contact-form-card,
  .wl-contact-next,
  .wl-support-card,
  .wl-sitemap-card,
  .wl-tour-card,
  .wl-story-card,
  .wl-person-card,
  .wl-featured-journal__card,
  .wl-journal-card,
  .wl-tour-detail,
  .wl-tour-fact,
  .wildlens-404-card,
  .wl-empty-state
) :where(p,li,span:not([class*="badge"]):not([class*="kicker"])) { color: var(--wl-body); }

/* Kicker, eyebrow and divider language from the brochure. */
:where(
  .wl-about-kicker,
  .wl-contact-kicker,
  .wl-sitemap-kicker,
  .wl-cookie-kicker,
  .wl-journal-eyebrow,
  .wl-section-heading__eyebrow,
  .wl-brand-eyebrow,
  .wl-single-tour__eyebrow,
  .wl-kicker
) {
  color: var(--wl-gold);
  letter-spacing: .14em;
}
:where(.wl-about-kicker,.wl-contact-kicker,.wl-sitemap-kicker,.wl-cookie-kicker,.wl-journal-eyebrow,.wl-brand-eyebrow)::after {
  content: "";
  display: block;
  width: 42px;
  height: 2px;
  margin-top: .65rem;
  background: var(--wl-gold);
  border-radius: 999px;
}

/* Image and dark heroes remain high contrast.
   Background-color only — never override a hero's gradient background, so
   per-page gradient designs (sitemap, about, contact, etc.) stay intact. */
:where(
  .wl-about-hero,
  .wl-contact-hero,
  .wl-support-hero,
  .wl-sitemap-hero,
  .wl-cookie-policy-hero,
  .wl-destinations-hero,
  .wl-tour-archive__hero,
  .wl-single-tour__hero,
  .wl-journal-hero,
  .wl-article-hero,
  .wl-trust-page__hero,
  .wl-hero
) {
  color: #fff;
}
:where(
  .wl-about-hero,
  .wl-contact-hero,
  .wl-support-hero,
  .wl-sitemap-hero,
  .wl-cookie-policy-hero,
  .wl-destinations-hero,
  .wl-tour-archive__hero,
  .wl-single-tour__hero,
  .wl-journal-hero,
  .wl-article-hero,
  .wl-trust-page__hero,
  .wl-hero
) :where(h1,h2,h3,p,a,span,li) { color: #fff; }
/* Shared buttons and controls. */
:where(
  .wl-button--primary,
  .wl-btn-primary,
  .wl-contact-submit,
  .wl-form-submit,
  .wl-destinations-button--primary,
  .wildlens-404-button--primary
) {
  background: var(--wl-primary);
  border-color: var(--wl-primary);
  color: #fff;
}
:where(
  .wl-button--primary,
  .wl-btn-primary,
  .wl-contact-submit,
  .wl-form-submit,
  .wl-destinations-button--primary,
  .wildlens-404-button--primary
):hover { background: var(--wl-primary-dark); border-color: var(--wl-primary-dark); color:#fff; }
:where(.wl-button--accent,.wl-btn-gold,.wl-destinations-button--gold,.wl-sitemap-button) {
  background: var(--wl-gold);
  border-color: var(--wl-gold);
  color: #21170c;
}
:where(.wl-button--accent,.wl-btn-gold,.wl-destinations-button--gold,.wl-sitemap-button):hover {
  background: var(--wl-gold-light);
  border-color: var(--wl-gold-light);
  color: #21170c;
}

/* Forms sitewide. */
:where(.wl-contact-page,.wl-support-page,.wl-cookie-policy-page,.wildlens-standard-page) :where(input,select,textarea) {
  background: #fff;
  color: var(--wl-charcoal);
  border-color: var(--wl-border);
}
:where(.wl-contact-page,.wl-support-page,.wl-cookie-policy-page,.wildlens-standard-page) :where(input,select,textarea):focus {
  border-color: var(--wl-gold);
  box-shadow: 0 0 0 4px rgba(211,139,23,.14);
}

/* Tour archive and single-tour decision details. */
.wl-tour-card__price,
.wl-single-tour__price { color: var(--wl-primary-dark); }
.wl-tour-anchor-nav { background: rgba(247,242,232,.94); border-color: var(--wl-border); }
.wl-tour-anchor-nav a { color: var(--wl-charcoal); }
.wl-tour-anchor-nav a:hover { color: var(--wl-primary); }

/* Journal typography. */
.wl-article-content :where(h2,h3,h4),
.wl-featured-journal__card h2,
.wl-journal-card h2 { color: var(--wl-charcoal); }
.wl-article-content :where(p,li) { color: var(--wl-body); }
.wl-article-content blockquote {
  border-left-color: var(--wl-gold);
  background: var(--wl-ivory);
  color: var(--wl-charcoal);
}

/* Footer: light cards and dark legal areas both stay readable. */
.wl-site-footer { background: var(--wl-ivory); }
.wl-footer-card { background: var(--wl-soft-white); border-color: var(--wl-border); }
.wl-footer-card :where(h2,h3,h4,strong) { color: var(--wl-charcoal); }
.wl-footer-card :where(p,a,li,span) { color: var(--wl-body); }
.wl-footer-card a:hover { color: var(--wl-primary); }
.wl-footer-legal,
.wl-footer-bottom { background: var(--wl-deep); }
.wl-footer-legal :where(p,a,span),
.wl-footer-bottom :where(p,a,span) { color: rgba(255,255,255,.82); }
.wl-footer-legal a:hover,
.wl-footer-bottom a:hover { color: var(--wl-gold-light); }

/* Cookie UI. */
/* The banner keeps the dark navy surface from footer.css (see the guard below);
   the light surface applies only to the white preferences modal panel. */
.wl-cookie-banner,
.wl-cookie-modal__panel { border-color: var(--wl-border); }
.wl-cookie-modal__panel { background: var(--wl-soft-white); }
.wl-cookie-modal__panel :where(h2,h3,strong) { color: var(--wl-charcoal); }
.wl-cookie-modal__panel :where(p,label,span) { color: var(--wl-body); }

/* Guard: never overwrite the banner's dark surface and white copy, even if a
   palette sheet is reordered. footer.css remains the banner's authority. */
.wl-cookie-banner { background: rgba(7,20,38,.97) !important; color: #fff !important; }
.wl-cookie-banner__inner { background: rgba(7,20,38,.97) !important; }
.wl-cookie-banner :where(h2,h3,strong) { color: #fff !important; }
.wl-cookie-banner p, .wl-cookie-banner label, .wl-cookie-banner span { color: rgba(255,255,255,.7) !important; }
.wl-cookie-banner p a { color: #e6b45a !important; }

/* Pagination and utility states. */
.page-numbers { color: var(--wl-charcoal); border-color: var(--wl-border); background: var(--wl-soft-white); }
.page-numbers.current,
.page-numbers:hover { background: var(--wl-primary); border-color: var(--wl-primary); color:#fff; }

/* Final contrast guard: preserve all content and layout while restoring visibility on affected surfaces. */
.wl-contact-hero h1,
.wl-contact-aside > article h2 {
  color: #fff !important;
}
.wl-contact-aside > article p {
  color: #dfeae6 !important;
}
.wl-about-hero h1,
.wl-about-hero h2,
.wl-about-hero h3 {
  color: #fff !important;
}
.wl-homepage .wl-home-tours-showcase :where(h1,h2,h3,h4,p,li) {
  color: var(--wl-charcoal) !important;
}
.wl-homepage .wl-home-tours-showcase :where(.wl-home-tours-showcase__eyebrow,.wl-brand-eyebrow) {
  color: var(--wl-gold) !important;
}

/* About principles contrast guard: retain all four principles and improve readability only. */
.wl-about-principles h2,
.wl-about-principles .wl-about-card-grid h3 {
  color: #fff !important;
}
.wl-about-principles .wl-about-card-grid p {
  color: #dfe9e5 !important;
}

@media (max-width: 767px) {
  :where(.wl-about-card,.wl-contact-form-card,.wl-support-card,.wl-sitemap-card,.wl-tour-card,.wl-story-card,.wl-person-card) {
    box-shadow: 0 12px 32px rgba(67,48,31,.08);
  }
}
