:root{
  --hbd-orange:#F36C0A;
  --hbd-black:#090909;
  --hbd-charcoal:#15120f;
  --hbd-cream:#F5EFE4;
  --hbd-paper:#FFFAF2;
  --hbd-ink:#17130F;
  --hbd-muted:#574C42;
  --hbd-line:#D7C6B2;
}

/* V410: final surface-based contrast lock. */
html body{color:var(--hbd-ink)}

/* Official orange everywhere. */
html body :is(.eyebrow,.ey,.kicker,.section-kicker,.section-label,.cat-kicker,.hbd-kicker,.route-label,.card-kicker,.orange-text){
  color:var(--hbd-orange)!important;
  -webkit-text-fill-color:var(--hbd-orange)!important;
  opacity:1!important;
}

/* Every CTA: Harley orange + black, including nested text. */
html body :is(a.btn,a.cta-btn,a.product-btn,a.see-all,a.seo-cta,a.nav-cta,a.hbd-btn,a.hbd-button,a.join-btn,a.submit-btn,a.teaser-link,a.back-blog,a.map-cta,button,input[type="submit"],input[type="button"],.sib-form-block__button){
  background:var(--hbd-orange)!important;
  background-image:none!important;
  color:var(--hbd-black)!important;
  -webkit-text-fill-color:var(--hbd-black)!important;
  border-color:var(--hbd-orange)!important;
  opacity:1!important;
  text-shadow:none!important;
}
html body :is(a.btn,a.cta-btn,a.product-btn,a.see-all,a.seo-cta,a.nav-cta,a.hbd-btn,a.hbd-button,a.join-btn,a.submit-btn,a.teaser-link,a.back-blog,a.map-cta,button,input[type="submit"],input[type="button"],.sib-form-block__button) *{
  color:inherit!important;-webkit-text-fill-color:inherit!important;opacity:1!important;
}

/* Header and all true dark surfaces. */
html body :is(.topbar,.site-header,.hbd-site-header,header.nav,nav,.hero,.seo-hero,.blog-hero,.listing-hero,.dark,.dark-card,.tool-card,.community-card,.hbd-community,.hbd-route-card,.partner-box,.map-toolbar,.side-panel,.side-head){
  color:#fff!important;
}
html body :is(.topbar,.site-header,.hbd-site-header,header.nav,nav,.seo-hero,.blog-hero,.listing-hero,.dark,.dark-card,.tool-card,.community-card,.hbd-community,.hbd-route-card,.partner-box,.map-toolbar,.side-panel,.side-head) :is(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,a:not(.btn):not(.cta-btn):not(.hbd-button):not(.product-btn),small){
  color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;
}

/* GPS hero: dark shell, but itinerary card is deliberately light. */
html body.gps-page .hero,
html body.gps-page .hero-inner{background:var(--hbd-black)!important;color:#fff!important}
html body.gps-page .hero-inner>h1,
html body.gps-page .hero-inner>p{color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
html body.gps-page .hero .route-card{
  background:var(--hbd-paper)!important;color:var(--hbd-ink)!important;border-color:var(--hbd-line)!important;
}
html body.gps-page .hero .route-card :is(h1,h2,h3,h4,p,.route-line,span:not(.eyebrow),strong,small){
  color:var(--hbd-ink)!important;-webkit-text-fill-color:var(--hbd-ink)!important;opacity:1!important;
}
html body.gps-page .hero .route-card .eyebrow{color:var(--hbd-orange)!important;-webkit-text-fill-color:var(--hbd-orange)!important}
html body.gps-page .hero .route-card .badge{
  background:#fff!important;color:var(--hbd-ink)!important;-webkit-text-fill-color:var(--hbd-ink)!important;border-color:#6A5D50!important;
}
html body.gps-page .hero .route-card .badge.hot{
  background:var(--hbd-orange)!important;color:var(--hbd-black)!important;-webkit-text-fill-color:var(--hbd-black)!important;border-color:var(--hbd-orange)!important;
}
html body.gps-page .stats-card,
html body.gps-page .stats-card .stat{background:var(--hbd-charcoal)!important;color:#fff!important}
html body.gps-page .stats-card :is(strong,span){color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}

/* GPS interactive area. */
html body.gps-page main,
html body.gps-page #carte-v4{background:var(--hbd-cream)!important;color:var(--hbd-ink)!important}
html body.gps-page #carte-v4 :is(h1,h2,h3,h4,p,li){color:var(--hbd-ink)!important;-webkit-text-fill-color:var(--hbd-ink)!important;opacity:1!important}
html body.gps-page .traveller-switch .switch,
html body.gps-page .map-toolbar .filter{
  background:#111!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#6C6055!important;opacity:1!important;
}
html body.gps-page .traveller-switch .switch.active,
html body.gps-page .map-toolbar .filter.active{
  background:var(--hbd-orange)!important;color:var(--hbd-black)!important;-webkit-text-fill-color:var(--hbd-black)!important;border-color:var(--hbd-orange)!important;
}
html body.gps-page .map-toolbar .filter:not(.active),
html body.gps-page .traveller-switch .switch:not(.active){color:#fff!important;-webkit-text-fill-color:#fff!important}
html body.gps-page .side-panel,
html body.gps-page .side-head{background:#111!important;color:#fff!important}
html body.gps-page .side-head :is(h3,p,span){color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
html body.gps-page .place,
html body.gps-page .place-card{background:var(--hbd-paper)!important;color:var(--hbd-ink)!important}
html body.gps-page .place :is(h4,p,span,small),
html body.gps-page .place-card :is(h4,p,span,small){color:var(--hbd-ink)!important;-webkit-text-fill-color:var(--hbd-ink)!important;opacity:1!important}
html body.gps-page .place small,
html body.gps-page .place-card small{color:var(--hbd-orange)!important;-webkit-text-fill-color:var(--hbd-orange)!important}

/* Road-trip listing dark cards and sections: restore all missing copy. */
html body:is(.hbd-clean-listing,.hbd-listing) :is(.destination-card,.region-card,.dark-card,.tool-card,.community-card,.hbd-community,.hbd-route-card){
  background:var(--hbd-charcoal)!important;color:#fff!important;
}
html body:is(.hbd-clean-listing,.hbd-listing) :is(.destination-card,.region-card,.dark-card,.tool-card,.community-card,.hbd-community,.hbd-route-card) :is(h1,h2,h3,h4,p,li,span,strong,small){
  color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;
}
html body:is(.hbd-clean-listing,.hbd-listing) :is(.destination-card,.region-card,.dark-card,.tool-card,.community-card,.hbd-community,.hbd-route-card) :is(.ey,.eyebrow,.hbd-kicker){
  color:var(--hbd-orange)!important;-webkit-text-fill-color:var(--hbd-orange)!important;
}

/* Road-trip article dark blocks: titles and paragraphs must never disappear. */
html body.hbd-exact-roadtrip :is(.dark,.hbd-side-card.dark,.partner-box){background:var(--hbd-charcoal)!important;color:#fff!important}
html body.hbd-exact-roadtrip :is(.dark,.hbd-side-card.dark,.partner-box) :is(h1,h2,h3,h4,p,li,span,strong,em,small){
  color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;
}
html body.hbd-exact-roadtrip :is(.hbd-side-card.orange,.partner-box){background:var(--hbd-orange)!important;color:var(--hbd-black)!important}
html body.hbd-exact-roadtrip :is(.hbd-side-card.orange,.partner-box) :is(h1,h2,h3,h4,p,li,span,strong,em,small){
  color:var(--hbd-black)!important;-webkit-text-fill-color:var(--hbd-black)!important;opacity:1!important;
}
html body.hbd-exact-roadtrip .hero .eyebrow,
html body.hbd-exact-roadtrip .hero .route-label{
  background:var(--hbd-orange)!important;color:var(--hbd-black)!important;-webkit-text-fill-color:var(--hbd-black)!important;opacity:1!important;
}

/* Light surfaces everywhere. */
html body :is(.trip,.route-card:not(.dark),.product-card,.stop-card,.place-card,.chapter-card,.story-card,.card:not(.dark):not(.orange)) :is(h1,h2,h3,h4,p,li,span,strong,em,small){
  color:var(--hbd-ink)!important;-webkit-text-fill-color:var(--hbd-ink)!important;opacity:1!important;
}

/* Story next-chapter teaser. */
html body.hbd-story :is(.next-chapter,.chapter-teaser,[class*="teaser"]){background:#8E3000!important;color:#fff!important}
html body.hbd-story :is(.next-chapter,.chapter-teaser,[class*="teaser"]) :is(h1,h2,h3,h4,p,li,span,strong,em,small){
  color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;
}

/* Prevent legacy low opacity or accidental transparent text. */
html body main :is(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,small),
html body article :is(h1,h2,h3,h4,h5,h6,p,li,span,strong,em,small){
  opacity:1!important;text-shadow:none!important;
}
