/* HBD v408 — final readable palette and surface-specific contrast.
   Loaded LAST on every page. */
:root{
  --hbd-orange:#f36c0a;
  --hbd-orange-dark:#b94400;
  --hbd-black:#080808;
  --hbd-charcoal:#15120f;
  --hbd-cream:#f5efe4;
  --hbd-paper:#fffaf2;
  --hbd-ink:#17130f;
  --hbd-muted:#51483f;
  --hbd-line:#cfbea8;
}

/* One official HBD orange everywhere. */
.eyebrow,.section-label,.section-kicker,.cat-kicker,.ey,.kicker,
.badge.hot,.route-label,.card-kicker,.orange-text,
[class*="accent-orange"]{
  color:var(--hbd-orange)!important;
  -webkit-text-fill-color:var(--hbd-orange)!important;
  opacity:1!important;
}

/* Buttons: official orange + highly readable black text. */
.btn,.cta-btn,.product-btn,.see-all,.map-cta,button,
.switch.active,.filter.active,.hbd-follow,
.route-card .btn.primary,.partner-box a,.hbd-side-card a,
.trip .btn,.route-card>a.btn {
  background:var(--hbd-orange)!important;
  border-color:var(--hbd-orange)!important;
  color:var(--hbd-black)!important;
  -webkit-text-fill-color:var(--hbd-black)!important;
  opacity:1!important;
  text-shadow:none!important;
  font-weight:800!important;
}
.btn:hover,.cta-btn:hover,.product-btn:hover,.see-all:hover,.map-cta:hover,button:hover,
.switch.active:hover,.filter.active:hover,.partner-box a:hover,.hbd-side-card a:hover{
  background:#ff7b20!important;
  border-color:#ff7b20!important;
  color:var(--hbd-black)!important;
  -webkit-text-fill-color:var(--hbd-black)!important;
}
.btn.outline,.cta-btn.outline,.route-card .btn:not(.primary){
  background:transparent!important;
  color:var(--hbd-orange-dark)!important;
  -webkit-text-fill-color:var(--hbd-orange-dark)!important;
  border-color:var(--hbd-orange-dark)!important;
}

/* GPS — hero stays dark, but the itinerary card is a LIGHT surface. */
body.gps-page .hero,
body.gps-page .hero-inner,
body.gps-page .route-overview{
  background:var(--hbd-black)!important;
  color:#fff!important;
}
body.gps-page .hero>*,body.gps-page .hero-inner>*,
body.gps-page .hero h1,body.gps-page .hero>p,
body.gps-page .hero-inner>p{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body.gps-page .hero .route-card{
  background:var(--hbd-paper)!important;
  color:var(--hbd-ink)!important;
  border:1px solid var(--hbd-line)!important;
}
body.gps-page .hero .route-card h1,
body.gps-page .hero .route-card h2,
body.gps-page .hero .route-card h3,
body.gps-page .hero .route-card p,
body.gps-page .hero .route-card .route-line,
body.gps-page .hero .route-card .badge:not(.hot){
  color:var(--hbd-ink)!important;
  -webkit-text-fill-color:var(--hbd-ink)!important;
  opacity:1!important;
}
body.gps-page .hero .route-card .eyebrow,
body.gps-page .hero .route-card .badge.hot{
  color:var(--hbd-orange)!important;
  -webkit-text-fill-color:var(--hbd-orange)!important;
}
body.gps-page .hero .route-card .badge{
  background:#fff!important;
  border-color:#6f6255!important;
}
body.gps-page .stats-card,
body.gps-page .stats-card *{
  background-color:var(--hbd-charcoal)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body.gps-page #carte-v4,
body.gps-page main>section:not(.hbd-community){
  background:var(--hbd-cream)!important;
  color:var(--hbd-ink)!important;
}
body.gps-page #carte-v4 h1,body.gps-page #carte-v4 h2,body.gps-page #carte-v4 h3,
body.gps-page #carte-v4 p,body.gps-page #carte-v4 li{
  color:var(--hbd-ink)!important;
  -webkit-text-fill-color:var(--hbd-ink)!important;
  opacity:1!important;
}

/* Listing pages — all dark destination/community cards use white copy. */
body.hbd-clean-listing .destination-card,
body.hbd-clean-listing .region-card,
body.hbd-clean-listing .dark-card,
body.hbd-clean-listing .tool-card,
body.hbd-clean-listing .community-card,
body.hbd-listing .destination-card,
body.hbd-listing .region-card,
body.hbd-listing .dark-card,
body.hbd-listing .tool-card,
body.hbd-listing .community-card,
body.hbd-clean-listing section[class*="community"],
body.hbd-listing section[class*="community"]{
  background:var(--hbd-charcoal)!important;
  color:#fff!important;
}
body.hbd-clean-listing .destination-card *,
body.hbd-clean-listing .region-card *,
body.hbd-clean-listing .dark-card *,
body.hbd-clean-listing .tool-card *,
body.hbd-clean-listing .community-card *,
body.hbd-listing .destination-card *,
body.hbd-listing .region-card *,
body.hbd-listing .dark-card *,
body.hbd-listing .tool-card *,
body.hbd-listing .community-card *,
body.hbd-clean-listing section[class*="community"] *,
body.hbd-listing section[class*="community"] *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body.hbd-clean-listing .destination-card .ey,
body.hbd-clean-listing .region-card .ey,
body.hbd-clean-listing .dark-card .ey,
body.hbd-clean-listing .tool-card .ey,
body.hbd-clean-listing .community-card .ey,
body.hbd-listing .destination-card .ey,
body.hbd-listing .region-card .ey,
body.hbd-listing .dark-card .ey,
body.hbd-listing .tool-card .ey,
body.hbd-listing .community-card .ey{
  color:var(--hbd-orange)!important;
  -webkit-text-fill-color:var(--hbd-orange)!important;
}

/* Blog and SEO dark heroes: headings + intro copy must be white. */
body .seo-hero,body .blog-hero,body .listing-hero,
body.hbd-clean-listing .hero,body.hbd-listing .hero{
  background:var(--hbd-black)!important;
  color:#fff!important;
}
body .seo-hero *,body .blog-hero *,body .listing-hero *,
body.hbd-clean-listing .hero *,body.hbd-listing .hero *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body .seo-hero .eyebrow,body .blog-hero .eyebrow,
body.hbd-clean-listing .hero .ey,body.hbd-listing .hero .ey{
  color:var(--hbd-orange)!important;
  -webkit-text-fill-color:var(--hbd-orange)!important;
}

/* Story pages — linked highlighted words and chapter teaser. */
body.hbd-story main a:not(.btn):not(.chapter-link){
  color:var(--hbd-orange-dark)!important;
  -webkit-text-fill-color:var(--hbd-orange-dark)!important;
}
body.hbd-story .next-chapter,
body.hbd-story .chapter-teaser,
body.hbd-story [class*="teaser"]{
  background:#7c2c00!important;
  color:#fff!important;
}
body.hbd-story .next-chapter *,
body.hbd-story .chapter-teaser *,
body.hbd-story [class*="teaser"] *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body.hbd-story .next-chapter .eyebrow,
body.hbd-story .chapter-teaser .eyebrow{
  color:#ffd1b3!important;
  -webkit-text-fill-color:#ffd1b3!important;
}

/* Road-trip article dark areas. */
body.hbd-exact-roadtrip .dark,
body.hbd-exact-roadtrip .dark *,
body.hbd-exact-roadtrip .hbd-side-card.dark,
body.hbd-exact-roadtrip .hbd-side-card.dark *,
body.hbd-exact-roadtrip .partner-box,
body.hbd-exact-roadtrip .partner-box *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
body.hbd-exact-roadtrip .hbd-side-card.orange,
body.hbd-exact-roadtrip .partner-box{
  background:var(--hbd-orange)!important;
}
body.hbd-exact-roadtrip .hbd-side-card.orange *,
body.hbd-exact-roadtrip .partner-box *{
  color:var(--hbd-black)!important;
  -webkit-text-fill-color:var(--hbd-black)!important;
}

/* Light cards: never white or pale text. */
.route-card:not(.dark),.trip,.product-card,.stop-card,.place-card,
.card:not(.dark):not(.orange),.chapter-card,.story-card{
  color:var(--hbd-ink)!important;
}
.route-card:not(.dark) h1,.route-card:not(.dark) h2,.route-card:not(.dark) h3,
.route-card:not(.dark) p,.trip h1,.trip h2,.trip h3,.trip p,
.product-card h1,.product-card h2,.product-card h3,.product-card p,
.stop-card h1,.stop-card h2,.stop-card h3,.stop-card p,
.place-card h1,.place-card h2,.place-card h3,.place-card p,
.chapter-card h1,.chapter-card h2,.chapter-card h3,.chapter-card p{
  color:var(--hbd-ink)!important;
  -webkit-text-fill-color:var(--hbd-ink)!important;
  opacity:1!important;
}

/* Remove accidental global pale fills from older layers. */
main h1,main h2,main h3,main h4,main p,main li,main span,
article h1,article h2,article h3,article h4,article p,article li{
  text-shadow:none!important;
}
