/* ═══════════════════════════════════════════════════════
   SPRINT DRIVES — CONTRAST GUARD (v10.13)

   Loaded last, after every other stylesheet.

   The dark surface list below was not written from memory.
   It comes from scanning style.css, shop.css, account.css,
   checkout-flow.css, single-product.css and the responsive
   fixes for any rule setting a dark background, so it
   covers the whole theme rather than the parts I happened
   to notice.

   Two halves, and the order matters:

     1. Dark surfaces force light text on themselves and
        everything inside them.
     2. LIGHT ISLANDS: anything that carries its own light
        background inside one of those surfaces gets its
        dark text back, at higher specificity so it wins.

   Skipping part 2 is what turned the payment chips into
   blank white boxes in v10.8. Anything added to part 1
   needs checking against part 2.
═════════════════════════════════════════════════════════ */

:root{
  --sd-g-indigo:#2a2c7b;
  --sd-g-indigo-dk:#1c1d55;
  --sd-g-green:#cedc49;
  --sd-g-amber:#e08a1e;
  --sd-g-ink:#0e0f1a;
  --sd-g-mut:#5c5c6b;
}

/* ═══ 1. DARK SURFACES ═══ */

.cart-head, .cart-head *,
.cart-empty, .cart-empty *,
.btn-dark, .btn-dark *,
.btn-checkout, .btn-checkout *,
.shop-filter-btn, .shop-filter-btn *,
.shop-filter-head, .shop-filter-head *,
.shop-pagination .current,
.sd-filter-chip, .sd-filter-chip *,
.sd-product-cart-btn, .sd-product-cart-btn *,
.sd-auth-tab.active, .sd-auth-tab.active *,
.sd-dash-welcome, .sd-dash-welcome *,
.sd-dash-empty-btn, .sd-dash-empty-btn *,
.sd-dash-rec-badge, .sd-dash-rec-badge *,
.sd-cart-coupon-btn, .sd-cart-coupon-btn *,
.sd-cart-summary, .sd-cart-summary *,
.sd-co-step-num, .sd-co-step-num *,
.sd-co-summary, .sd-co-summary *,
.sd-co-step--active, .sd-co-step--active *,
.sd-co-step--done, .sd-co-step--done *,
.sp-zoom-btn, .sp-zoom-btn *,
.sp-nav, .sp-nav *,
.sp-bnpl-tooltip, .sp-bnpl-tooltip *,
.sp-buy-now, .sp-buy-now *,
.sp-accessory-add, .sp-accessory-add *,
.sp-woo-reviews, .sp-woo-reviews *,
.hdr-mobile-search, .hdr-mobile-search *,
.nav-mobile-search, .nav-mobile-search *,
.sd-fin, .sd-fin *,
.sd-van__copy, .sd-van__copy *,
.sd-terms, .sd-terms *,
.sd-toolcard, .sd-toolcard *,
.sd-hcar__cap, .sd-hcar__cap *,
.sd-page__hero, .sd-page__hero *,
.sd-pro, .sd-pro__pitch, .sd-pro__pitch *,
#site-header .hdr-top, #site-header .hdr-top *,
#site-header .hdr-nav .hdr-nav-link,
.mob-menu, .mob-menu *,
.mob-bottom-nav, .mob-bottom-nav *,
.ftr, .ftr *{
  color:#fff;
}

/* Accents that stay accented on those dark surfaces */
.sd-fin h2,
.sd-hcar__price,
.sd-terms__i svg,
.sd-toolcard__eyebrow,
.sd-dash-welcome .sd-dash-welcome__accent,
#site-header .hdr-nav-link--hot,
.ftr h4{
  color:var(--sd-g-green);
}
.ftr h4{color:#fff;}
.ftr a{color:#9a9bc4;}
.ftr a:hover{color:var(--sd-g-green);}

/* ═══ 2. LIGHT ISLANDS ═══
   Anything with its own light background living inside a
   dark surface. Two classes deep, so these beat the
   `.surface *` rules above.
═══════════════════════════════════════════════════════ */

/* Verified light surfaces that were wrongly in the dark list. The scan now
   resolves CSS variables and takes the last background declaration per
   selector, so this is measured rather than assumed. */
.sp-bundle-item, .sp-bundle-item *{color:var(--sd-g-ink);}
.sp-bundle-item .sp-bundle-item-price,
.sp-bundle-item .price{color:var(--sd-g-indigo);}
.sp-bundle-item .sp-bundle-item-meta,
.sp-bundle-item small{color:var(--sd-g-mut);}
.sd-cart-upsell-add, .sd-cart-upsell-add *{color:var(--sd-g-indigo-dk);}

/* Payment chips and badges */
.sd-fin .sd-chip{color:var(--sd-g-indigo-dk);}
.sd-fin .sd-chip--lead{background:var(--sd-g-green);color:var(--sd-g-indigo-dk);}

/* Header */
#site-header .hdr-search-input{color:var(--sd-g-ink);}
#site-header .hdr-search-input::placeholder{color:var(--sd-g-mut);}
#site-header .hdr-search-btn,
#site-header .hdr-search-btn svg{color:var(--sd-g-indigo-dk);stroke:var(--sd-g-indigo-dk);}
#site-header .hdr-cart-badge{color:var(--sd-g-indigo-dk);}
#site-header .hdr-cta{color:var(--sd-g-indigo-dk);}
.hdr-tab--van,
.hdr-tab--multi{color:var(--sd-g-indigo-dk);}
.hdr-tab--pro{color:#fff;}

/* Any form control inside a dark block. These have white or light
   backgrounds by default and were rendering as invisible text. */
.cart-head input, .cart-head select, .cart-head textarea,
.mob-menu input, .mob-menu select, .mob-menu textarea,
.hdr-mobile-search input, .nav-mobile-search input,
.sd-pro input, .sd-pro select, .sd-pro textarea,
.sd-co-summary input, .sd-cart-summary input,
.sp-bundle-item input, .sp-bundle-item select{
  color:var(--sd-g-ink);
}
.hdr-mobile-search input::placeholder,
.nav-mobile-search input::placeholder,
.mob-menu input::placeholder{color:var(--sd-g-mut);}

/* Eyebrow pills sitting on green */
.sd-hcar__kick,
.sd-van__eyebrow,
.sd-page__eyebrow,
.sd-dash-rec-badge{color:var(--sd-g-indigo-dk);}

/* Buttons on dark surfaces keep their own pairing */
.sd-van__cta,
.sd-page__cta,
.sd-toolcard__cta,
.sd-pro__submit,
.sd-dash-welcome .sd-dash-cta,
.woocommerce-MyAccount-navigation li.is-active a{
  color:var(--sd-g-indigo-dk);
}
.sd-pro__submit{background:var(--sd-g-indigo);color:#fff;}
.sd-page__cta{background:var(--sd-g-indigo);color:#fff;}

/* The pro account form sits on white inside the dark band */
.sd-pro__formwrap,
.sd-pro__formwrap *{color:var(--sd-g-ink);}
.sd-pro__formwrap .sd-pro__hint,
.sd-pro__formwrap .sd-pro__fine,
.sd-pro__formwrap .sd-pro__consent,
.sd-pro__formwrap .sd-pro__done p{color:var(--sd-g-mut);}
.sd-pro__formwrap .sd-pro__submit{color:#fff;}
.sd-pro__formwrap .sd-pro__msg{color:#c0392b;}

/* Light cards anywhere */
.sd-card, .sd-card *,
.sd-product-card, .sd-product-card *,
.sd-dash-card, .sd-dash-card *,
.woocommerce-MyAccount-content, .woocommerce-MyAccount-content *,
.sd-van-item, .sd-van-item *,
.sd-mcard, .sd-mcard *,
.sd-rate, .sd-rate *{
  color:var(--sd-g-ink);
}
.sd-card__add, .sd-card__add *,
.sd-product-card .sd-product-cart-btn,
.sd-dash-card .sd-dash-cta,
.woocommerce-MyAccount-content .button,
.sd-van-item .sd-van-btn--go,
.sd-mcard__go,
.sd-mcard__tag,
.sd-rate__go,
.sd-rate__tag{color:#fff;}
.sd-mcard__save,
.sd-rate__off,
.sd-van-item .sd-van-btn--go.is-green{color:var(--sd-g-indigo-dk);}
.sd-card__bulk, .sd-wear__txt,
.sd-mcard__eg, .sd-mcard__unit,
.sd-rate__each, .sd-rate__keep, .sd-rate__unit,
.sd-dash-action-desc{color:var(--sd-g-mut);}
.sd-card__price, .sd-product-price,
.sd-mcard__qty, .sd-rate__qty, .sd-rate__line,
.sd-van-item__price{color:var(--sd-g-indigo);}

/* ═══ 3. TRUST TAGS
   All black, as asked. The mixed indigo and black was
   noisy and the indigo was the weaker of the two on white.
═══════════════════════════════════════════════════════ */

.usp-bar .usp-item,
.usp-bar .usp-item *,
.usp-bar .usp-item strong,
.usp-bar .usp-item b,
.usp-bar .usp-item span,
.usp-bar .usp-item .woocommerce-Price-amount{
  color:#000;
}
.usp-bar .usp-item svg{stroke:#000;color:#000;}
.usp-bar .usp-item strong,
.usp-bar .usp-item b{font-weight:800;}

.sd-tstrip__i,
.sd-tstrip__i *,
.sd-tstrip__i b{color:#000;}
.sd-tstrip__i svg{stroke:#000;color:#000;}
