/* HBD v407 — high-contrast lock. Loaded LAST on every HTML page. */
:root{
  --hbd407-orange:#b83d00;
  --hbd407-orange-hover:#8f2f00;
  --hbd407-black:#080808;
  --hbd407-charcoal:#151515;
  --hbd407-cream:#f5efe4;
  --hbd407-paper:#fffaf2;
  --hbd407-ink:#17130f;
  --hbd407-muted:#51483f;
  --hbd407-line:#cdbca7;
}

/* Strong, consistent orange. */
a:not(.hbd-logo):not(.hbd-nav a):not(.hbd-follow):not(.hbd-lang a),
.eyebrow,.section-label,.section-kicker,.cat-kicker,.ey,.kicker,
[class*="orange"], [style*="var(--orange)"] { text-shadow:none!important; }

/* Buttons: never pale. */
.btn,.cta-btn,.product-btn,.see-all,.hbd-follow,.route-card .btn,
button,.switch.active,.filter.active,.map-cta,.partner-box a,
.hbd-side-card a,.hbd-exact-roadtrip .cta-btn {
  background:var(--hbd407-orange)!important;
  border-color:var(--hbd407-orange)!important;
  color:#fff!important;
  opacity:1!important;
  text-shadow:none!important;
}
.btn:hover,.cta-btn:hover,.product-btn:hover,.see-all:hover,button:hover,
.hbd-side-card a:hover,.hbd-exact-roadtrip .cta-btn:hover {
  background:var(--hbd407-orange-hover)!important;
  border-color:var(--hbd407-orange-hover)!important;
  color:#fff!important;
}

/* HOME: every cream section uses dark text; decorative ghost headings are readable. */
body.hbd-home .about,
body.hbd-home .amazon-section,
body.hbd-home .platforms-section,
body.hbd-home .universe-section {
  background:var(--hbd407-cream)!important;
  color:var(--hbd407-ink)!important;
}
body.hbd-home .about h1,body.hbd-home .about h2,body.hbd-home .about h3,
body.hbd-home .about p,body.hbd-home .about li,
body.hbd-home .amazon-section h1,body.hbd-home .amazon-section h2,
body.hbd-home .amazon-section h3,body.hbd-home .amazon-section p,
body.hbd-home .amazon-section li,
body.hbd-home .platforms-section h1,body.hbd-home .platforms-section h2,
body.hbd-home .platforms-section h3,body.hbd-home .platforms-section p,
body.hbd-home .universe-section h1,body.hbd-home .universe-section h2,
body.hbd-home .universe-section h3,body.hbd-home .universe-section p {
  color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important;
}
body.hbd-home .section-title,
body.hbd-home .about .section-title,
body.hbd-home .amazon-section .section-title {
  color:#241a12!important;opacity:1!important;text-shadow:none!important;
}
body.hbd-home .section-label,
body.hbd-home .about-kicker,
body.hbd-home .amazon-section .section-label,
body.hbd-home .amazon-section .section-kicker {
  color:var(--hbd407-orange)!important;opacity:1!important;
}
body.hbd-home .about-quote {background:#2a241f!important;color:#fff!important}
body.hbd-home .about-quote *{color:#fff!important;opacity:1!important}
body.hbd-home .hbd-shop-card{background:#fff!important;color:var(--hbd407-ink)!important;border-color:var(--hbd407-line)!important}
body.hbd-home .hbd-shop-card *{color:var(--hbd407-ink)!important;opacity:1!important}
body.hbd-home .hbd-shop-card .product-link{background:var(--hbd407-orange)!important;color:#fff!important}

/* BOUTIQUE: dark readable titles, labels and product copy. */
body.shop-page{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.shop-page main,body.shop-page .shop-main,body.shop-page .shop-wrapper,
body.shop-page .shop-category{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.shop-page .cat-head h2,body.shop-page .category-head h2,
body.shop-page .shop-category h2,body.shop-page .section-title,
body.shop-page .product-card h3,body.shop-page .product-card p,
body.shop-page .product-info,body.shop-page .product-tag,
body.shop-page .cat-head p,body.shop-page .category-head p {
  color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important;
}
body.shop-page .cat-kicker,body.shop-page .section-label,
body.shop-page .product-card .rating,body.shop-page .stars {
  color:var(--hbd407-orange)!important;opacity:1!important;
}
body.shop-page .product-card{background:#fff!important;border-color:var(--hbd407-line)!important}

/* LISTING PAGES: no pale cream headings. */
body.hbd-clean-listing,body.hbd-listing{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.hbd-clean-listing main,body.hbd-listing main{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.hbd-clean-listing h1,body.hbd-clean-listing h2,body.hbd-clean-listing h3,
body.hbd-clean-listing p,body.hbd-clean-listing .lead,
body.hbd-listing h1,body.hbd-listing h2,body.hbd-listing h3,body.hbd-listing p {
  color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important;
}
body.hbd-clean-listing .ey,body.hbd-clean-listing .back,
body.hbd-listing .ey,body.hbd-listing .back{color:var(--hbd407-orange)!important;opacity:1!important}
body.hbd-clean-listing .trip,body.hbd-clean-listing .route-card,
body.hbd-listing .trip,body.hbd-listing .route-card{
  background:var(--hbd407-paper)!important;color:var(--hbd407-ink)!important;border-color:var(--hbd407-line)!important;
}
body.hbd-clean-listing .trip h2,body.hbd-clean-listing .route-card h2,
body.hbd-listing .trip h2,body.hbd-listing .route-card h2{color:var(--hbd407-ink)!important}

/* ROAD-TRIP ARTICLES: content area cream, text dark. */
body.hbd-exact-roadtrip{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.hbd-exact-roadtrip main,body.hbd-exact-roadtrip .hbd-exact-layout,
body.hbd-exact-roadtrip .hbd-exact-main,body.hbd-exact-roadtrip article.wrap{
  background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important;
}
body.hbd-exact-roadtrip article h1,body.hbd-exact-roadtrip article h2,
body.hbd-exact-roadtrip article h3,body.hbd-exact-roadtrip article h4{
  color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important;
}
body.hbd-exact-roadtrip article p,body.hbd-exact-roadtrip article li,
body.hbd-exact-roadtrip article em{color:var(--hbd407-muted)!important;opacity:1!important}
body.hbd-exact-roadtrip article strong{color:var(--hbd407-ink)!important;opacity:1!important}
body.hbd-exact-roadtrip article h2{border-bottom-color:var(--hbd407-orange)!important}
body.hbd-exact-roadtrip .callout{background:#fff7ed!important;border-color:#d38a55!important;border-left-color:var(--hbd407-orange)!important}
body.hbd-exact-roadtrip .callout *{color:var(--hbd407-ink)!important;opacity:1!important}
body.hbd-exact-roadtrip .hbd-side-card:not(.dark):not(.orange),
body.hbd-exact-roadtrip .stop-card{background:var(--hbd407-paper)!important;color:var(--hbd407-ink)!important;border-color:var(--hbd407-line)!important}
body.hbd-exact-roadtrip .hbd-side-card:not(.dark):not(.orange) *,
body.hbd-exact-roadtrip .stop-card *{color:var(--hbd407-ink)!important;opacity:1!important}
body.hbd-exact-roadtrip .hbd-side-card.dark,body.hbd-exact-roadtrip .hbd-side-card.dark *,
body.hbd-exact-roadtrip .hbd-side-card.orange,body.hbd-exact-roadtrip .hbd-side-card.orange *,
body.hbd-exact-roadtrip .partner-box,body.hbd-exact-roadtrip .partner-box *{color:#fff!important;opacity:1!important}
body.hbd-exact-roadtrip .hbd-side-card.orange{background:var(--hbd407-orange)!important}
body.hbd-exact-roadtrip .article-photo figcaption{color:#51483f!important;opacity:1!important}

/* GPS: preserve JS/map, lock contrast by surface. */
body.gps-page{background:var(--hbd407-black)!important;color:#fff!important}
body.gps-page .hero,body.gps-page .route-overview{background:var(--hbd407-black)!important;color:#fff!important}
body.gps-page .hero h1,body.gps-page .hero h2,body.gps-page .hero h3,
body.gps-page .hero p,body.gps-page .hero .eyebrow,
body.gps-page .route-overview h1,body.gps-page .route-overview h2,
body.gps-page .route-overview h3,body.gps-page .route-overview p{color:#fff!important;opacity:1!important}
body.gps-page .route-card{background:var(--hbd407-paper)!important;color:var(--hbd407-ink)!important}
body.gps-page .route-card *{color:var(--hbd407-ink)!important;opacity:1!important}
body.gps-page .route-card .eyebrow{color:var(--hbd407-orange)!important}
body.gps-page .stats-card{background:#151515!important;color:#fff!important}
body.gps-page .stats-card *{color:#fff!important;opacity:1!important}
body.gps-page main,body.gps-page #carte-v4,
body.gps-page main>section:not(.hbd-community){background:var(--hbd407-cream)!important;color:var(--hbd407-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 main>section:not(.hbd-community) h1,
body.gps-page main>section:not(.hbd-community) h2,body.gps-page main>section:not(.hbd-community) h3,
body.gps-page main>section:not(.hbd-community) p{color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important}
body.gps-page #carte-v4 .section-kicker{color:var(--hbd407-orange)!important}
body.gps-page .traveller-switch .switch,body.gps-page .filter{background:#111!important;color:#fff!important;border-color:#5a5147!important;opacity:1!important}
body.gps-page .traveller-switch .switch.active,body.gps-page .filter.active{background:var(--hbd407-orange)!important;color:#fff!important}
body.gps-page .map-shell,body.gps-page .side-panel,body.gps-page .map-toolbar,body.gps-page .side-head{background:#111!important;color:#fff!important}
body.gps-page .map-toolbar *,body.gps-page .side-head *{color:#fff!important;opacity:1!important}
body.gps-page .place-card{background:var(--hbd407-paper)!important;color:var(--hbd407-ink)!important}
body.gps-page .place-card *{color:var(--hbd407-ink)!important;opacity:1!important}
body.gps-page .leaflet-popup-content-wrapper,body.gps-page .leaflet-popup-tip{background:#111!important;color:#fff!important}
body.gps-page .leaflet-popup-content-wrapper *{color:#fff!important;opacity:1!important}
body.gps-page .leaflet-popup-content-wrapper a{color:#ff8a3d!important}

/* General/story pages on cream backgrounds. */
body.hbd-general main,body.hbd-story main{background:var(--hbd407-cream)!important;color:var(--hbd407-ink)!important}
body.hbd-general main h1,body.hbd-general main h2,body.hbd-general main h3,body.hbd-general main h4,
body.hbd-general main p,body.hbd-general main li,
body.hbd-story main h1,body.hbd-story main h2,body.hbd-story main h3,body.hbd-story main h4,
body.hbd-story main p,body.hbd-story main li{color:var(--hbd407-ink)!important;opacity:1!important;text-shadow:none!important}

/* Visible orange text uses a darker tone on light surfaces. */
body:not(.gps-page):not(.hbd-exact-roadtrip) main .eyebrow,
body:not(.gps-page):not(.hbd-exact-roadtrip) main .section-label,
body:not(.gps-page):not(.hbd-exact-roadtrip) main .section-kicker,
body:not(.gps-page):not(.hbd-exact-roadtrip) main .cat-kicker,
body:not(.gps-page):not(.hbd-exact-roadtrip) main .ey,
body:not(.gps-page):not(.hbd-exact-roadtrip) main a:not(.btn):not(.cta-btn):not(.product-btn):not(.see-all){
  color:var(--hbd407-orange)!important;opacity:1!important;
}

/* Critical fix: older theme forced a pale WebKit text fill that overrode color. */
body.shop-page .cat-head h2,
body.shop-page .category-head h2,
body.shop-page .shop-category h2,
body.shop-page .section-title,
body.shop-page .product-card h3,
body.shop-page .product-card p,
body.shop-page .product-info,
body.shop-page .product-tag,
body.shop-page .cat-head p,
body.shop-page .category-head p,
body.hbd-clean-listing h1,body.hbd-clean-listing h2,body.hbd-clean-listing h3,
body.hbd-clean-listing p,body.hbd-listing h1,body.hbd-listing h2,
body.hbd-listing h3,body.hbd-listing p,
body.hbd-exact-roadtrip article h1,body.hbd-exact-roadtrip article h2,
body.hbd-exact-roadtrip article h3,body.hbd-exact-roadtrip article h4,
body.hbd-exact-roadtrip article p,body.hbd-exact-roadtrip article li,
body.hbd-exact-roadtrip article em,body.hbd-exact-roadtrip article strong,
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 .route-card h1,body.gps-page .route-card h2,
body.gps-page .route-card h3,body.gps-page .route-card p,
body.hbd-home .about h1,body.hbd-home .about h2,body.hbd-home .about h3,
body.hbd-home .about p,body.hbd-home .amazon-section h1,
body.hbd-home .amazon-section h2,body.hbd-home .amazon-section h3,
body.hbd-home .amazon-section p,
body.hbd-general main h1,body.hbd-general main h2,body.hbd-general main h3,
body.hbd-general main p,body.hbd-story main h1,body.hbd-story main h2,
body.hbd-story main h3,body.hbd-story main p {
  -webkit-text-fill-color:currentColor!important;
}
body.shop-page .cat-kicker,body.shop-page .section-label,
body.hbd-clean-listing .ey,body.hbd-listing .ey,
body.gps-page #carte-v4 .section-kicker,
body.hbd-home .section-label,body.hbd-home .about-kicker {
  color:var(--hbd407-orange)!important;
  -webkit-text-fill-color:var(--hbd407-orange)!important;
}
.btn,.cta-btn,.product-btn,.see-all,.hbd-follow,button,
.switch.active,.filter.active,.map-cta,.hbd-side-card a {
  -webkit-text-fill-color:#fff!important;
}

/* Legacy dark surfaces: keep their text white, including WebKit fill. */
nav,nav a,nav span,
.site-header,.site-header a,.site-header span,
.hbd-site-header,.hbd-site-header a,.hbd-site-header span,
header.nav,header.nav a,header.nav span,
.nav-logo,.nav-logo span,.nav-links a,.lang-switch a,
.hero,.hero h1,.hero h2,.hero h3,.hero h4,.hero p,.hero span,.hero a,
body.hbd-story .hero,body.hbd-story .hero *,
body.hbd-story .back-blog,
body.hbd-general .box,body.hbd-general .box *,
body.seo-page .seo-hero,body.seo-page .seo-hero *,
.dark,.dark *,[class*="dark-panel"],[class*="dark-panel"] * {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
nav .hbd-logo strong,.nav-logo span,.brand span,
.hero .eyebrow,body.hbd-story .hero .eyebrow,
body.hbd-story .back-blog {
  color:#ff7a1a!important;
  -webkit-text-fill-color:#ff7a1a!important;
}

/* Transparent outline buttons on light backgrounds need dark-orange text. */
body.hbd-exact-roadtrip .cta-btn.outline,
.cta-btn.outline,.btn.outline {
  background:transparent!important;
  color:#8f2f00!important;
  -webkit-text-fill-color:#8f2f00!important;
  border-color:#8f2f00!important;
}

/* Dark card links use a bright accessible orange. */
body.hbd-exact-roadtrip .hbd-side-card.dark a,
body.hbd-exact-roadtrip .partner-box a,
body.hbd-story .teaser-link {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#8f2f00!important;
}
