/* Haven Trails root card + hero contrast lock | 2026-09-29 */
:root{--ht-contrast-brown:#593a03;--ht-contrast-khaki:#c9bfa1;--ht-contrast-white:#fff;--ht-contrast-black:#111}

/* Currency flag inside GBP dropdown option only */
.hvnhdr-currency-flag{width:22px;height:15px;object-fit:cover;border-radius:3px;flex:0 0 auto;box-shadow:0 0 0 1px rgba(89,58,3,.14)}
#mobileCurrencyChoices .hvnhdr-currency-flag{width:24px;height:16px}

/* Heroes: all readable copy is white with khaki accents */
:where(.hero,.page-hero,.tour-hero,.safari-hero,.zanzibar-hero,.kili-hero,.article-hero,.blog-hero,.activity-hero,.destination-hero,.journal-hero,.ct-hero,.faq-hero,.gb-hero,.header-video,.te-hero,.sng-hero,.dest-hero,.pp-hero,.sc-hero,.ht-hero,.tc-hero,.ty-hero) :where(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
:where(.hero,.page-hero,.tour-hero,.safari-hero,.zanzibar-hero,.kili-hero,.article-hero,.blog-hero,.activity-hero,.destination-hero,.journal-hero,.ct-hero,.faq-hero,.gb-hero,.header-video,.te-hero,.sng-hero,.dest-hero,.pp-hero,.sc-hero,.ht-hero,.tc-hero,.ty-hero) :where(em,.eyebrow,[class*="eyebrow"],[class*="kicker"],[class*="label"]){color:var(--ht-contrast-khaki)!important}

/* Image led tour and destination cards */
:where(.ht-tour-card,.package-card,.tour-card,.trip-card,.route-card,.gd-card,.dest-card,.destination-card,.park-card,.ht-dest-card) :where(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
:where(.ht-tour-card,.package-card,.tour-card,.trip-card,.route-card,.gd-card,.dest-card,.destination-card,.park-card,.ht-dest-card) :where([class*="price"],[class*="eyebrow"],[class*="cat"],[class*="label"]){color:var(--ht-contrast-khaki)!important}

/* Legacy safari cards use a dark body so their required white/khaki text remains readable */
.safari-card__body{background:var(--ht-contrast-brown)!important;color:var(--ht-contrast-white)!important}
.safari-card__body :where(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
.safari-card__body :where(.safari-card__eyebrow,.safari-card__title em,.safari-card__num){color:var(--ht-contrast-khaki)!important}

/* Khaki surfaces always use dark text and icons */
:where(.ht-tour-card-cat,.package-card__badge,.tour-card__badge,.trip-card__badge,.route-card__badge,.safari-card__badge,.dest-card__tag,.dest-card__img-label,.gd-card-type,.pill,.tag,.category-tag,.filter-btn.active,.btn--gold,.btn--primary,.ht-btn--primary,.gd-book-btn,.ht-tour-btn:hover,.dest-card__arrow,.overview-badge,.highlight-tag){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-black)!important}
:where(.ht-tour-card-cat,.package-card__badge,.tour-card__badge,.trip-card__badge,.route-card__badge,.safari-card__badge,.dest-card__tag,.dest-card__img-label,.gd-card-type,.pill,.tag,.category-tag,.filter-btn.active,.btn--gold,.btn--primary,.ht-btn--primary,.gd-book-btn,.ht-tour-btn:hover,.dest-card__arrow,.overview-badge,.highlight-tag) :where(span,a,strong,small,i){color:var(--ht-contrast-black)!important}

/* Inline khaki backgrounds must never inherit white text */
[style*="background:#c9bfa1" i],[style*="background: #c9bfa1" i],[style*="background-color:#c9bfa1" i],[style*="background-color: #c9bfa1" i],[style*="background:#9c762c" i],[style*="background: #9c762c" i],[style*="background-color:#9c762c" i],[style*="background-color: #9c762c" i]{color:var(--ht-contrast-black)!important}
[style*="background:#c9bfa1" i] :where(span,a,strong,small,i),[style*="background: #c9bfa1" i] :where(span,a,strong,small,i),[style*="background:#9c762c" i] :where(span,a,strong,small,i),[style*="background: #9c762c" i] :where(span,a,strong,small,i){color:var(--ht-contrast-black)!important}

/* Tour cards that use separate body panels */
:where(.tour-card,.trip-card,.route-card,.gd-card){background:var(--ht-contrast-brown)!important;color:var(--ht-contrast-white)!important}
:where(.tour-card__body,.trip-card__body,.route-card__body){background:var(--ht-contrast-brown)!important;color:var(--ht-contrast-white)!important}
:where(.tour-card__body,.trip-card__body,.route-card__body) :where(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}

/* Group tour cards follow the same contrast language */
.ht-homepage .gd-card,.ht-homepage .gd-card:hover{background:var(--ht-contrast-brown)!important;color:var(--ht-contrast-white)!important}
.ht-homepage .gd-card :where(.gd-card-title,.gd-card-route,.gd-detail,.gd-detail i,.gd-spots,.gd-spots i){color:var(--ht-contrast-white)!important}
.ht-homepage .gd-card :where(.gd-spots,.gd-spots i){color:var(--ht-contrast-khaki)!important}
.ht-homepage .gd-card-bottom{background:var(--ht-contrast-khaki)!important}
.ht-homepage .gd-card-bottom :where(.gd-price,.gd-price span,.gd-deposit){color:var(--ht-contrast-brown)!important}

/* Hero CTAs use khaki when they need a light surface */
:where(.hero,.page-hero,.tour-hero,.safari-hero,.zanzibar-hero,.kili-hero,.article-hero,.blog-hero,.activity-hero,.destination-hero,.journal-hero,.ct-hero,.faq-hero,.gb-hero,.header-video,.te-hero,.sng-hero,.dest-hero,.pp-hero,.sc-hero,.ht-hero,.tc-hero,.ty-hero) :where(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important;border-color:var(--ht-contrast-khaki)!important}
:where(.hero,.page-hero,.tour-hero,.safari-hero,.zanzibar-hero,.kili-hero,.article-hero,.blog-hero,.activity-hero,.destination-hero,.journal-hero,.ct-hero,.faq-hero,.gb-hero,.header-video,.te-hero,.sng-hero,.dest-hero,.pp-hero,.sc-hero,.ht-hero,.tc-hero,.ty-hero) :where(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary) :where(span,strong,small,i){color:var(--ht-contrast-brown)!important}

/* Final high-specificity lock against older page-level !important rules */
html body [class*="hero"] :is(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
html body [class*="hero"] :is(em,[class*="eyebrow"],[class*="kicker"],[class*="label"]){color:var(--ht-contrast-khaki)!important}
html body [class*="hero"] :is(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important;border-color:var(--ht-contrast-khaki)!important}
html body [class*="hero"] :is(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary) :is(span,strong,small,i){color:var(--ht-contrast-brown)!important}

html body .ht-tour-card .ht-tour-card-title,html body .ht-tour-card .ht-tour-card-title a,html body .ht-tour-card .ht-tour-card-footer,html body .ht-tour-card .ht-tour-card-footer div{color:var(--ht-contrast-white)!important}
html body .ht-tour-card .ht-tour-card-cat{background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}
html body .package-card .package-card__title,html body .package-card .package-card__title a,html body .package-card .package-card__price,html body .package-card .package-card__price span{color:var(--ht-contrast-white)!important}
html body :is(.tour-card,.trip-card,.route-card) :is(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
html body :is(.tour-card,.trip-card,.route-card) :is(.tour-card__badge,.trip-card__badge,.route-card__badge,.pill,.tag){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}

html body .dest-card .dest-card__name,html body .dest-card .dest-card__name a,html body .dest-card .dest-card__link,html body .destination-card :is(h1,h2,h3,h4,p,span,a,strong),html body .park-card .park-card__name{color:var(--ht-contrast-white)!important}
html body .dest-card :is(.dest-card__tag,.dest-card__img-label,.dest-card__arrow){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}

html body .ht-homepage .gd-card,html body .ht-homepage .gd-card:hover{background:var(--ht-contrast-brown)!important;color:var(--ht-contrast-white)!important}
html body .ht-homepage .gd-card :is(.gd-card-title,.gd-card-route,.gd-detail,.gd-detail i){color:var(--ht-contrast-white)!important}
html body .ht-homepage .gd-card :is(.gd-spots,.gd-spots i){color:var(--ht-contrast-khaki)!important}
html body .ht-homepage .gd-card .gd-card-type{background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}
html body .ht-homepage .gd-card .gd-card-bottom{background:var(--ht-contrast-khaki)!important}
html body .ht-homepage .gd-card .gd-card-bottom :is(.gd-price,.gd-price span,.gd-deposit){color:var(--ht-contrast-brown)!important}

/* Absolute final card specificity lock */
html body .ht-tour-card.ht-tour-card .ht-tour-card-title.ht-tour-card-title,
html body .ht-tour-card.ht-tour-card .ht-tour-card-title.ht-tour-card-title a{color:var(--ht-contrast-khaki)!important}
html body .ht-tour-card.ht-tour-card .ht-tour-card-cat.ht-tour-card-cat{background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}
html body .ht-tour-card.ht-tour-card .ht-tour-from-price.ht-tour-from-price,
html body .ht-tour-card.ht-tour-card .ht-tour-from-price.ht-tour-from-price :is(span,strong,small),
html body .ht-tour-card.ht-tour-card .ht-tour-card-footer.ht-tour-card-footer{color:var(--ht-contrast-white)!important}

html body .dest-card.dest-card .dest-card__name.dest-card__name,
html body .dest-card.dest-card .dest-card__name.dest-card__name a,
html body .dest-card.dest-card .dest-card__link.dest-card__link{color:var(--ht-contrast-white)!important}
html body .dest-card.dest-card .dest-card__tag.dest-card__tag,
html body .dest-card.dest-card .dest-card__img-label.dest-card__img-label,
html body .dest-card.dest-card .dest-card__arrow.dest-card__arrow{background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important}
html body .dest-card.dest-card .dest-card__tag.dest-card__tag :is(span,strong,i),
html body .dest-card.dest-card .dest-card__arrow.dest-card__arrow :is(span,strong,i){color:var(--ht-contrast-brown)!important}

/* Hero copy lock: white body copy, khaki accents, dark text on khaki CTA surfaces */
html body [class*="hero"][class*="hero"][class*="hero"] :is(h1,h2,h3,h4,h5,h6,p,li,span,a,strong,small,i){color:var(--ht-contrast-white)!important}
html body [class*="hero"][class*="hero"][class*="hero"] :is(em,[class*="eyebrow"],[class*="kicker"],[class*="label"]){color:var(--ht-contrast-khaki)!important}
html body [class*="hero"][class*="hero"][class*="hero"] :is(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary){background:var(--ht-contrast-khaki)!important;color:var(--ht-contrast-brown)!important;border-color:var(--ht-contrast-khaki)!important}
html body [class*="hero"][class*="hero"][class*="hero"] :is(.btn-hero,.hero-btns a,.hero-ctas a,.btn--gold,.btn--primary,.ht-btn--primary) :is(span,strong,small,i){color:var(--ht-contrast-brown)!important}
