/* Explicit Maison CTA registry, grouped by global styling location. Keep controls (quantity, tabs, dismiss, arrows) out of this list.
   Campaign color declarations intentionally win over merchant section styles and embedded form
   inline styles. This file is only loaded when the selected campaign opts into global styling. */
:is(
  html[data-maison-campaign-style~="hero"] :is(.maison-hero__button, .maison-hb__button, .maison-hpv2__button, .maison-hpv3__button),
  html[data-maison-campaign-style~="collection_grid"] :is(.maison-fc__banner-button),
  html[data-maison-campaign-style~="collection_cta"] :is(.maison-bc__button, .maison-fc__button, .maison-tc__cta),
  html[data-maison-campaign-style~="product_cards"] :is(.maison-card__cart-btn, .maison-bold-card__cta),
  html[data-maison-campaign-style~="product_finder"] :is(.maison-pf__card-btn),
  html[data-maison-campaign-style~="quick_links"] :is(.maison-ql__btn),
  html[data-maison-campaign-style~="story"] :is(.maison-story__button),
  html[data-maison-campaign-style~="stats"] :is(.maison-stats__button),
  html[data-maison-campaign-style~="faq"] :is(.maison-faqs__button, .maison-faqv2__button),
  html[data-maison-campaign-style~="business"] :is(.maison-bs__button),
  html[data-maison-campaign-style~="tracking"] :is(.maison-tb__button),
  html[data-maison-campaign-style~="support"] :is(.maison-sh__button),
  html[data-maison-campaign-style~="product_buy"] :is(buy-buttons > .button, .nb-buy-btn, .mib__atc, .maison-sub__button, .maison-care__submit, .maison-kd__submit, .maison-spray__atc, .maison-ou__button, .maison-ouv2__button),
  html[data-maison-campaign-style~="sticky_buy"] :is(.maison-satc__button),
  html[data-maison-campaign-style~="upsells"] :is(.nb-drawer-atc, .mib__why-cta, .mib__updrawer-atc),
  html[data-maison-campaign-style~="out_of_stock"] :is(.maison-oos__button),
  html[data-maison-campaign-style~="comparison"] :is(.maison-cmp__btn, .maison-bv__button),
  html[data-maison-campaign-style~="quiz"] :is(.sq__btn),
  html[data-maison-campaign-style~="bundle_builder"] :is(.sbb-side__cta, .sbb-btn--primary),
  html[data-maison-campaign-style~="cart"] :is(.maison-cart-footer__checkout, .maison-cartpage__checkout, .maison-cartpage__empty .button, .maison-cart-empty__button),
  html[data-maison-campaign-style~="newsletter"] :is(.maison-footer__nl-button),
  html[data-maison-campaign-style~="waitlist"] :is(.mws-form__submit, .clw-form__submit, .maison-cw__embed button[type='submit'], .maison-cw__embed .klaviyo-form-button, .maison-cw__embed button[type='button']:not([role='combobox']):not([role='checkbox'])),
  html[data-maison-campaign-style~="business_form"] :is(.maison-bh__form .klaviyo-form-button),
  html[data-maison-campaign-style~="menu_buttons"] :is(.maison-mega__view-all, .maison-mega__promo-button, .maison-drawer__promo-button, .maison-ndr__banner-button),
  html[data-maison-campaign-style~="post_purchase"] :is(.maison-pcp__btn, .maison-pct__btn),
  html[data-maison-campaign-style~="custom_ctas"] :is([data-maison-campaign-cta])
) {
  background: var(--maison-campaign-accent) !important;
  color: var(--maison-campaign-cta-text) !important;
  border-color: var(--maison-campaign-accent) !important;
  border-radius: 100px !important;
  transition: filter 0.15s ease, transform 0.15s ease !important;

  /* Native nesting keeps one CTA registry for color, keyboard, press and reduced-motion states. */
  @media (hover: hover) and (pointer: fine) {
    &:not(:disabled):not([aria-disabled='true']):hover {
      filter: brightness(1.08) !important;
      opacity: 1 !important;
    }
  }
  &:not(:disabled):not([aria-disabled='true']):active { transform: scale(0.98); }
  &:focus-visible { outline: 2px solid var(--maison-campaign-accent) !important; outline-offset: 3px; }
  @media (prefers-reduced-motion: reduce) {
    transition: none !important;
  }
}

/* Labels only: each location can retain its own colors and typography. */
:is(
  html[data-maison-campaign-style~="announcement"] :is(.mcb__title),
  html[data-maison-campaign-style~="navigation"] :is([data-maison-campaign-label] > a, [data-maison-campaign-label] > button, [data-maison-campaign-label] > details > summary),
  html[data-maison-campaign-style~="hero_labels"] :is(.maison-hero__eyebrow, .maison-hpv2__eyebrow, .maison-hpv3__eyebrow),
  html[data-maison-campaign-style~="card_badges"] :is(.maison-corner-badge__text),
  html[data-maison-campaign-style~="gallery_badges"] :is(.campaign-badge__top, .campaign-badge__bottom)
) {
  font-family: var(--maison-campaign-label-font) !important;
  font-weight: var(--maison-campaign-label-weight) !important;
  letter-spacing: var(--maison-campaign-label-spacing) !important;
  text-transform: uppercase;
}

/* Navigation keeps the menu's original casing and normal tracking, independently of hero/badge labels. */
html[data-maison-campaign-style~="navigation"] :is([data-maison-campaign-label] > a, [data-maison-campaign-label] > button, [data-maison-campaign-label] > details > summary) {
  letter-spacing: normal !important;
  text-transform: none !important;
}

:is(
  html[data-maison-campaign-style~="navigation"] :is([data-maison-campaign-label] > a, [data-maison-campaign-label] > button, [data-maison-campaign-label] > details > summary),
  html[data-maison-campaign-style~="hero_labels"] :is(.maison-hero__eyebrow, .maison-hpv2__eyebrow, .maison-hpv3__eyebrow)
) {
  color: var(--maison-campaign-accent) !important;
}

:is(
  html[data-maison-campaign-style~="gallery_badges"] :is(.campaign-badge__shape),
  html[data-maison-campaign-style~="card_badges"] :is(.maison-corner-badge__text)
) {
  background: var(--maison-campaign-accent) !important;
  border-color: var(--maison-campaign-accent) !important;
}
:is(
  html[data-maison-campaign-style~="gallery_badges"] :is(.campaign-badge__text),
  html[data-maison-campaign-style~="card_badges"] :is(.maison-corner-badge__text)
) {
  color: var(--maison-campaign-cta-text) !important;
}

html[data-maison-campaign-style~="announcement"] :is(.mcb) {
  background: var(--maison-campaign-dark) !important;
  --mcb-text: var(--maison-campaign-light) !important;
}
html[data-maison-campaign-style~="announcement"] .mcb__timer {
  font-family: var(--maison-campaign-label-font);
}

/* The header's transparent mode keeps its contrast; filled headers and the mobile drawer use dark. */
html[data-maison-campaign-style~="header_text"] .header:not([allow-transparency]),
html[data-maison-campaign-style~="header_text"] .header.is-filled {
  color: var(--maison-campaign-dark);
  --text-color: var(--maison-campaign-dark-rgb);
}
html[data-maison-campaign-style~="header_text"] :is(.maison-ndr, .maison-drawer) {
  --mn-text: var(--maison-campaign-dark);
}
html[data-maison-campaign-style~="header_text"] :is(.maison-drawer, .maison-mega) {
  --maison-indigo: var(--maison-campaign-dark);
  --maison-drawer-back-color: var(--maison-campaign-dark);
}
html[data-maison-campaign-style~="header_text"] .navigation-drawer[data-maison-campaign-header] {
  color: var(--maison-campaign-dark);
  --text-color: var(--maison-campaign-dark-rgb);
}

/* The JSON header copy opts in; the original header never receives these weight overrides. */
html[data-maison-campaign-style~="navigation"] [data-maison-campaign-header] [data-maison-campaign-bold] > :is(a, button),
html[data-maison-campaign-style~="navigation"] [data-maison-campaign-header] [data-maison-campaign-bold] > details > summary {
  font-weight: 700 !important;
}
html[data-maison-campaign-style~="navigation"] [data-maison-campaign-header] [data-maison-campaign-label] > :is(a, button),
html[data-maison-campaign-style~="navigation"] [data-maison-campaign-header] [data-maison-campaign-label] > details > summary {
  font-weight: var(--maison-campaign-header-label-weight) !important;
}
/* Uploaded logos are bitmaps/SVG images; currentColor cannot recolor them. Preserve alpha. */
html[data-maison-campaign-style~="logo"] .header:not([allow-transparency]) .header__logo-image,
html[data-maison-campaign-style~="logo"] .header.is-filled .header__logo-image:not(.header__logo-image--transparent) {
  filter: url('#maison-campaign-logo-color');
}
