/*
 * Listnova palette harmony — design10.215.
 * Final source of truth for public brand color. This layer intentionally loads
 * after theme, Elementor, component, dark-mode and header-popover styles.
 *
 * Principle:
 * - text / headings = neutral ink
 * - brand / interactive accent = Elementor Accent (pink)
 * - full-width "brand" surfaces = neutral graphite, never green
 * - semantic success/warning/danger colors remain semantic
 */
:root{
  --ln-palette-accent:var(--e-global-color-accent,#e31c5f);
  --ln-palette-accent-dark:#c81750;
  --ln-palette-strong:#222222;
  --ln-palette-strong-dark:#222a30;
  --ln-brand:var(--ln-palette-accent)!important;
  --ln-brand-dark:var(--ln-palette-accent-dark)!important;
  --ln-accent:var(--ln-palette-accent)!important;
  --ln-action:var(--ln-palette-accent)!important;
  --ln-account-green:var(--ln-palette-accent)!important;
  --sx-brand:var(--ln-palette-accent)!important;
  --ln-location-zone:var(--ln-palette-accent)!important;
}

/* Keep older aliases from re-introducing the historical green. */
html:not([data-ln-theme="dark"]){
  --ln-front-brand:var(--ln-palette-accent)!important;
  --ln-front-brand-dark:var(--ln-palette-accent-dark)!important;
  --ln-front-brand-text:var(--ln-palette-accent)!important;
}
html[data-ln-theme="dark"]{
  --ln-palette-accent:var(--ln-front-pink,#ff4f88);
  --ln-palette-accent-dark:#e41c5e;
  --ln-front-brand:var(--ln-palette-accent)!important;
  --ln-front-brand-dark:var(--ln-palette-accent-dark)!important;
  --ln-front-brand-text:#ff8ab0!important;
  --ln-brand:var(--ln-palette-accent)!important;
  --ln-brand-dark:var(--ln-palette-accent-dark)!important;
  --ln-accent:var(--ln-palette-accent)!important;
  --ln-action:var(--ln-palette-accent)!important;
  --ln-account-green:var(--ln-palette-accent)!important;
  --sx-brand:var(--ln-palette-accent)!important;
  --ln-location-zone:var(--ln-palette-accent)!important;
  /* Elementor primary is a text role in the dark canvas; accent remains pink. */
  --e-global-color-primary:var(--ln-front-text)!important;
  --e-global-color-accent:var(--ln-palette-accent)!important;
}

/* Elementor demo semantics: editor and frontend receive the same colors. */
.ln-elementor-demo-page :where(.ln-demo-accent,.ln-explore-kicker,.ln-home-kicker,.ln-eyebrow,.ln-section-kicker){
  color:var(--ln-action)!important;
}
.ln-elementor-demo-page :where(.ln-demo-accent,.ln-explore-kicker,.ln-home-kicker,.ln-eyebrow,.ln-section-kicker) :where(.elementor-heading-title,.elementor-widget-container,p,a,span){
  color:inherit!important;
}
.ln-elementor-demo-page :where(.ln-demo-text,.ln-explore-title,.ln-home-section-title){
  color:var(--ln-ink)!important;
}
.ln-elementor-demo-page :where(.ln-demo-text,.ln-explore-title,.ln-home-section-title) :where(.elementor-heading-title,.elementor-widget-container,p,a,span){
  color:inherit!important;
}

/* Brand accents used throughout cards, search and listing details. */
:where(
  .ln-card__rating i,.ln-native-card__rating i,
  .ln-listing-amenity i,.ln-listing-amenities i,.ln-amenity i,
  .ln-listing-fact i,.ln-listing-fact-strip i,
  .ln-listing-host i,.ln-profile-v2-trust>div:first-child>i,
  .ln-listing-public-map__badge i,
  .ln-host-card__verified,.ln-listing-host__verified
){
  color:var(--ln-action)!important;
}

/* Primary CTAs must use the brand accent, including booking acceptance. */
:where(
  .ln-button:not(.ln-button--ghost):not(.ln-button--secondary),
  .ln-message-booking-action.is-primary,
  .ln-reservation-v3-card__actions .ln-button,
  .ln-host-listing-card__actions>a.is-primary,
  .ln-cancel-dialog[data-mode="accept"] .ln-cancel-dialog__confirm
){
  border-color:var(--ln-action)!important;
  background:var(--ln-action)!important;
  color:#fff!important;
}
:where(
  .ln-button:not(.ln-button--ghost):not(.ln-button--secondary),
  .ln-message-booking-action.is-primary,
  .ln-reservation-v3-card__actions .ln-button,
  .ln-host-listing-card__actions>a.is-primary,
  .ln-cancel-dialog[data-mode="accept"] .ln-cancel-dialog__confirm
):hover{
  border-color:var(--ln-brand-dark)!important;
  background:var(--ln-brand-dark)!important;
  color:#fff!important;
}

/* Large historic "brand" surfaces become graphite, not giant pink panels. */
:where(
  .ln-section--brand,
  .ln-home3-community,.ln-home3-host,.ln-home2-host,
  .ln-d5-dark-feature,.ln-d5-final-cta,.ln-m6-final-cta,
  .ln-auth-side
){
  background:var(--ln-palette-strong)!important;
  color:#fff!important;
}
html[data-ln-theme="dark"] :where(
  .ln-section--brand,
  .ln-home3-community,.ln-home3-host,.ln-home2-host,
  .ln-d5-dark-feature,.ln-d5-final-cta,.ln-m6-final-cta,
  .ln-auth-side
){
  background:var(--ln-palette-strong-dark)!important;
}

/* Prevent legacy green focus states from surviving lower layers. */
:where(a,button,input,select,textarea):focus-visible{
  outline-color:color-mix(in srgb,var(--ln-action) 38%,transparent)!important;
}
html[data-ln-theme="dark"] :where(input,select,textarea):focus{
  border-color:var(--ln-action)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ln-action) 18%,transparent)!important;
}
