/* Breathtaking Lagoon v5.6.2 — Site-wide Day/Night Contrast Hardening
   Final theme safety rail. Loaded after every other stylesheet so older
   component !important rules cannot make labels disappear in Night mode. */
:root{
  --bl562-night-ink:#f5fbf9;
  --bl562-night-copy:#d6e4e0;
  --bl562-night-muted:#b6c9c3;
  --bl562-night-link:#8ef7db;
  --bl562-night-control:#123b33;
  --bl562-night-control-hover:#184a40;
  --bl562-night-control-border:#5fa995;
  --bl562-day-ink:#073f36;
  --bl562-day-copy:#526963;
  --bl562-day-link:#087f6d;
}

/* ---------- DAY safety rail ---------- */
html[data-theme="day"] :where(.bl-share-btn,.bl-copy-snippet){
  color:var(--bl562-day-ink)!important;
  -webkit-text-fill-color:var(--bl562-day-ink)!important;
}
html[data-theme="day"] :where(.bl-share-cite,.bl-media-card,.bl-link-snippet){
  color:var(--bl562-day-ink)!important;
}
html[data-theme="day"] :where(.bl-share-cite,.bl-media-card,.bl-link-snippet) :where(h1,h2,h3,h4,strong){
  color:var(--bl562-day-ink)!important;
}
html[data-theme="day"] :where(.bl-share-cite,.bl-media-card,.bl-link-snippet) :where(p,small){
  color:var(--bl562-day-copy)!important;
}

/* ---------- NIGHT foundation: readable type on dark surfaces ---------- */
html[data-theme="night"] body{color:var(--bl562-night-ink)!important}
html[data-theme="night"] :where(
  .search-card,.why-card,.info-card,.widget-card,.hotel-search-card,.home-hotel-search,
  .partner-brand-lockup,.partner-brand-lockup--inside,.cruise-yacht-card,
  .affiliate-hub-card:not(.affiliate-hub-card--all),.services-directory-disclosure,
  .services-directory-note,.service-directory-card,.te-card,.te-tool,.te-related a,
  .te-guide-card,.bl-journey,.bl-journey-step,.bl-source-box,.te-stat,.te-check-item,
  .m-card,.m-accordion details,.legal-side,.legal-card,.bl-search-form,.bl-search-card,
  .bl-search-empty,.bl-guide-quicksearch,.bl-personal-card,.bl-social-plan,.quick-strip a,
  .news-card,.trust-panel div,.filter-btn,.refresh-btn,.bl-alert-card,.bl-app-install-card,
  .bl-share-cite,.bl-media-card,.bl-link-snippet
){color:var(--bl562-night-ink)!important}

html[data-theme="night"] :where(
  .bl-share-cite,.bl-media-card,.bl-link-snippet,.bl-personal-card,.bl-social-plan,
  .search-card,.widget-card,.te-card,.te-tool,.te-guide-card,.m-card,.legal-card,
  .bl-search-card,.bl-alert-card
) :where(h1,h2,h3,h4,h5,h6,strong,label,summary){
  color:var(--bl562-night-ink)!important;
  -webkit-text-fill-color:var(--bl562-night-ink)!important;
}
html[data-theme="night"] :where(
  .bl-share-cite,.bl-media-card,.bl-link-snippet,.bl-personal-card,.bl-social-plan,
  .search-card,.widget-card,.te-card,.te-tool,.te-guide-card,.m-card,.legal-card,
  .bl-search-card,.bl-alert-card
) :where(p,li,small,.helper-text,.field-help,.form-note){
  color:var(--bl562-night-copy)!important;
  -webkit-text-fill-color:var(--bl562-night-copy)!important;
}

/* ---------- Interactive controls: neutralize legacy dark !important text ---------- */
html[data-theme="night"] :where(
  .bl-share-btn,.bl-copy-snippet,
  .te-btn:not(.dark),
  .bl-assistant-action,.bl-assistant-email,.bl-assistant-support-action,
  .bl-push-btn.secondary,
  .filter-btn,.refresh-btn
){
  background:var(--bl562-night-control)!important;
  color:var(--bl562-night-ink)!important;
  -webkit-text-fill-color:var(--bl562-night-ink)!important;
  border-color:var(--bl562-night-control-border)!important;
  text-shadow:none!important;
  opacity:1!important;
}
html[data-theme="night"] :where(
  .bl-share-btn,.bl-copy-snippet,
  .te-btn:not(.dark),
  .bl-assistant-action,.bl-assistant-email,.bl-assistant-support-action,
  .bl-push-btn.secondary,
  .filter-btn,.refresh-btn
):where(:hover,:focus-visible){
  background:var(--bl562-night-control-hover)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:var(--bl562-night-link)!important;
}
html[data-theme="night"] .te-btn.dark,
html[data-theme="night"] :where(.bl-push-btn:not(.secondary),.blfs-submit,.home-hotel-submit,.bl-search-form button,.bl-guide-quicksearch button){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Links on dark surfaces must stay visibly distinct. */
html[data-theme="night"] :where(
  .bl-share-resource,.bl-media-card a,.te-card a,.te-related a,.te-guide-card a,
  .te-mini-link,.te-breadcrumbs a,.bl-source-links a,.bl-search-card a,.bl-clear-activity
){
  color:var(--bl562-night-link)!important;
  -webkit-text-fill-color:var(--bl562-night-link)!important;
}

/* Code/link-kit blocks on the media resource page. */
html[data-theme="night"] .bl-link-snippet code{
  background:#071f1b!important;
  color:#eefaf7!important;
  -webkit-text-fill-color:#eefaf7!important;
  border:1px solid rgba(142,247,219,.10);
}
html[data-theme="night"] .bl-link-snippet .bl-share-btn{
  width:100%;
  justify-content:center;
  font-weight:850!important;
}

/* ---------- Intentional LIGHT islands inside Night mode ----------
   These components remain light by design, therefore their copy must use Day ink. */
html[data-theme="night"] :where(
  .how-it-works,.youtube-showcase,.youtube-info-card,.cat-card,.te-disclosure,
  .bl-cookie-banner,.bl-removed-card,.page-widget-placeholder,.affiliate-book-panel
){
  --bl562-island-ink:#073f36;
  --bl562-island-copy:#5d716b;
  --bl562-island-link:#0b806b;
}
html[data-theme="night"] :where(
  .how-it-works,.youtube-showcase,.youtube-info-card,.cat-card,.te-disclosure,
  .bl-cookie-banner,.bl-removed-card,.page-widget-placeholder,.affiliate-book-panel
) :where(h1,h2,h3,h4,h5,h6,strong,label,summary){
  color:var(--bl562-island-ink)!important;
  -webkit-text-fill-color:var(--bl562-island-ink)!important;
}
html[data-theme="night"] :where(
  .how-it-works,.youtube-showcase,.youtube-info-card,.cat-card,.te-disclosure,
  .bl-cookie-banner,.bl-removed-card,.page-widget-placeholder,.affiliate-book-panel
) :where(p,li,small,.section-sub,.step-desc){
  color:var(--bl562-island-copy)!important;
  -webkit-text-fill-color:var(--bl562-island-copy)!important;
}
html[data-theme="night"] :where(
  .how-it-works,.youtube-showcase,.youtube-info-card,.cat-card,.te-disclosure,
  .bl-cookie-banner,.bl-removed-card,.page-widget-placeholder,.affiliate-book-panel
) a:not(.te-btn):not(.bl-push-btn){
  color:var(--bl562-island-link)!important;
  -webkit-text-fill-color:var(--bl562-island-link)!important;
}

/* Keep the intentionally light disclosure card itself light. */
html[data-theme="night"] .te-disclosure{
  background:#eef8f6!important;
  border-color:#cfe7e1!important;
  color:#315a53!important;
}

/* Warnings use their own warm palette, but never muted dark-on-dark text. */
html[data-theme="night"] :where(.te-note,.legal-warning){
  color:#f2dfad!important;
  -webkit-text-fill-color:#f2dfad!important;
}
html[data-theme="night"] :where(.te-note,.legal-warning) :where(h1,h2,h3,h4,strong,p,li){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}

/* Inputs / placeholders / select options stay legible on iOS as well. */
html[data-theme="night"] :where(input,select,textarea){
  color:var(--bl562-night-ink)!important;
  -webkit-text-fill-color:var(--bl562-night-ink)!important;
  opacity:1!important;
}
html[data-theme="night"] :where(input,textarea)::placeholder{
  color:var(--bl562-night-muted)!important;
  -webkit-text-fill-color:var(--bl562-night-muted)!important;
  opacity:1!important;
}
html[data-theme="night"] option{
  background:#091a17!important;
  color:var(--bl562-night-ink)!important;
}

/* Header/menu controls and floating utilities. */
html[data-theme="night"] :where(.bl-theme-toggle,.bl-theme-menu-action){
  color:var(--bl562-night-ink)!important;
  -webkit-text-fill-color:var(--bl562-night-ink)!important;
}
html[data-theme="night"] :where(.bl-push-trigger-fixed,.bl-help-trigger,.bl-assistant-trigger){
  -webkit-text-fill-color:currentColor!important;
}

/* Disabled controls should look disabled, not invisible. */
html[data-theme="night"] :where(button,input,select,textarea):disabled{
  opacity:.62!important;
}

/* Strong focus indicator in both themes. */
:where(.bl-share-btn,.te-btn,.bl-push-btn,.bl-theme-toggle):focus-visible{
  outline:3px solid #83e8d0!important;
  outline-offset:3px!important;
}

/* Small uppercase/kicker labels on dark Night surfaces. Inline Day colors are
   overridden here so tiny text never becomes a dark teal-on-dark-green trap. */
html[data-theme="night"] :where(
  .te-kicker,.bl-personal-kicker,.te-guide-card small,.bl-search-card small,
  .feature-kicker,.flight-kicker,.hotel-search-kicker,.digital-resource-kicker
){
  color:var(--bl562-night-link)!important;
  -webkit-text-fill-color:var(--bl562-night-link)!important;
  opacity:1!important;
}

/* Secondary helper copy that legacy component sheets paint too dark. */
html[data-theme="night"] :where(
  .bl-search-note,.m-kicker-note,.m-form-hint,.te-form-consent,.moto-note,
  .hotel-search-note,.bl-personal-foot,.bl-alert-privacy
){
  color:var(--bl562-night-muted)!important;
  -webkit-text-fill-color:var(--bl562-night-muted)!important;
}

/* Light helper/list islands used by media/help pages stay explicitly light. */
html[data-theme="night"] .m-help-list li{
  background:#eef7f5!important;
  color:#3e5e56!important;
  -webkit-text-fill-color:#3e5e56!important;
}
html[data-theme="night"] .m-help-list li strong{
  color:#073f36!important;
  -webkit-text-fill-color:#073f36!important;
}
