/**
 * Global text visibility / contrast — Drivewealth trading house
 * Strategy: ink on light surfaces; white on known dark surfaces LAST
 * so muted/form overrides cannot hide copy on dark banners/panels.
 */

:root {
  --a42-text: #1A2E1F;
  --a42-text-soft: #3f5344;
  --a42-text-muted: #5C6B58;
  --a42-text-on-dark: #ffffff;
  --a42-text-on-dark-soft: rgba(255, 255, 255, 0.9);
  --a42-text-on-gold: #1A2E1F;
}

body.a42-store {
  color: var(--a42-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

body.a42-store .page-wrap,
body.a42-store .page-main {
  color: var(--a42-text);
}

/* ---------- Light chrome ---------- */
body.a42-store .a42-header-crudo,
body.a42-store .a42-topbar,
body.a42-store .a42-announce,
body.a42-store .a42-drawer-panel {
  color: var(--a42-text) !important;
  background: #fff;
}

body.a42-store .a42-brand-word,
body.a42-store .a42-nav-link,
body.a42-store .a42-cart-total,
body.a42-store .a42-action-btn,
body.a42-store .a42-action-glyph,
body.a42-store .a42-topbar-promo,
body.a42-store .a42-announce-text,
body.a42-store .a42-header-search input,
body.a42-store .a42-header-search select,
body.a42-store .a42-topbar-search input {
  color: var(--a42-text) !important;
}

body.a42-store .a42-brand-word,
body.a42-store .a42-nav-link.is-active,
body.a42-store .a42-nav-link:hover {
  color: var(--a42-olive) !important;
}

body.a42-store .a42-action-btn {
  background: transparent !important;
  box-shadow: none !important;
}

body.a42-store .a42-action-badge,
body.a42-store [data-cart-badge] {
  color: #fff !important;
  background: var(--a42-olive) !important;
}

body.a42-store .a42-header-search button,
body.a42-store .a42-topbar-search button {
  color: #fff !important;
}

/* Drawer — light panel text */
body.a42-store .a42-drawer-brand strong,
body.a42-store .a42-drawer-quick-label,
body.a42-store .a42-drawer-nav-copy strong,
body.a42-store .a42-drawer-nav-link,
body.a42-store .a42-drawer-foot a,
body.a42-store .a42-drawer-cat-chip {
  color: var(--a42-text) !important;
}

body.a42-store .a42-drawer-brand small,
body.a42-store .a42-drawer-quick-btn small,
body.a42-store .a42-drawer-quick-btn em,
body.a42-store .a42-drawer-nav-copy small {
  color: var(--a42-text-muted) !important;
}

/* Drawer — olive section toggle stays white-on-olive */
body.a42-store .a42-drawer-section-toggle,
body.a42-store .a42-drawer-section-toggle strong,
body.a42-store .a42-drawer-section-toggle small,
body.a42-store .a42-drawer-section-toggle span,
body.a42-store .a42-drawer-section-toggle .a42-drawer-section-caret {
  color: #fff !important;
}

/* Footer (light) */
body.a42-store .a42-footer,
body.a42-store .a42-footer-crudo {
  color: var(--a42-text) !important;
  background: #fff !important;
}

body.a42-store .a42-footer-logo strong,
body.a42-store .a42-footer-col h4,
body.a42-store .a42-footer-news h4 {
  color: var(--a42-olive) !important;
}

body.a42-store .a42-footer-brand-block p,
body.a42-store .a42-footer-col a,
body.a42-store .a42-footer-base,
body.a42-store .a42-footer-pay,
body.a42-store .a42-footer-news p {
  color: var(--a42-text-muted) !important;
}

body.a42-store .a42-footer-news-form input {
  color: var(--a42-text) !important;
  background: #fff !important;
}

body.a42-store .a42-footer-news-form button {
  color: #fff !important;
  background: var(--a42-olive) !important;
}

/* ---------- Forms on light surfaces only ---------- */
body.a42-store input:not([type="submit"]):not([type="button"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]),
body.a42-store select,
body.a42-store textarea {
  color: var(--a42-text) !important;
}

body.a42-store input::placeholder,
body.a42-store textarea::placeholder {
  color: #6b7a66 !important;
  opacity: 1 !important;
}

body.a42-store label {
  color: var(--a42-text) !important;
}

/* ---------- Soft / ghost / qty controls (ink on light) ---------- */
body.a42-store [class*="-btn--soft"],
body.a42-store [class*="-btn--ghost"],
body.a42-store [class*="-btn-soft"],
body.a42-store [class*="-btn-ghost"],
body.a42-store .btn-outline,
body.a42-store .btn-secondary,
body.a42-store [class*="-qty-btn"],
body.a42-store [class*="-view-btn"]:not(.is-active),
body.a42-store [class*="-sort-btn"]:not(.is-active),
body.a42-store [class*="-filter-chip"]:not(.is-active),
body.a42-store [class*="-nav-btn"]:not(.is-active),
body.a42-store .a42-harvest-cta-ghost,
body.a42-store .a42-spec-btn--ghost,
body.a42-store .a42-crate-btn--soft,
body.a42-store .a42-crate-btn--ghost,
body.a42-store .a42-vault-btn--soft,
body.a42-store .a42-vault-btn--verify,
body.a42-store .a42-dispatch-btn--ghost,
body.a42-store .a42-atlas-btn--soft,
body.a42-store .a42-settle-btn--soft,
body.a42-store .a42-settle-btn--ghost {
  color: var(--a42-text) !important;
}

/* Primary olive buttons — white on olive */
body.a42-store [class*="-btn--primary"],
body.a42-store [class*="-btn-primary"],
body.a42-store .btn-primary,
body.a42-store .btn:not(.btn-outline):not(.btn-secondary):not([class*="-soft"]):not([class*="-ghost"]):not([class*="-gold"]):not([class*="-verify"]),
body.a42-store .a42-harvest-cta,
body.a42-store .a42-harvest-add,
body.a42-store .a42-bazaar-search-btn,
body.a42-store .a42-market-search-btn,
body.a42-store .a42-bazaar-filters-apply,
body.a42-store .a42-bazaar-empty-cta,
body.a42-store .a42-header-search button,
body.a42-store .a42-topbar-search button,
body.a42-store [class*="-view-btn"].is-active,
body.a42-store [class*="-sort-btn"].is-active,
body.a42-store [class*="-filter-chip"].is-active,
body.a42-store [class*="-nav-btn"].is-active {
  color: #fff !important;
}

/*
 * Submit controls inherit from their button variant above.
 * Do NOT blanket-force white on all submits — soft/ghost submits
 * sit on cream/white and become invisible with white text.
 */
body.a42-store input[type="submit"]:not([class*="-soft"]):not([class*="-ghost"]):not([class*="-verify"]):not([class*="-gold"]),
body.a42-store button[type="submit"]:not([class*="-soft"]):not([class*="-ghost"]):not([class*="-verify"]):not([class*="-gold"]):not(.btn-outline):not(.btn-secondary) {
  color: #fff !important;
}

/* Soft/ghost/verify submits must stay dark (higher specificity than submit rule) */
body.a42-store button[type="submit"][class*="-soft"],
body.a42-store button[type="submit"][class*="-ghost"],
body.a42-store button[type="submit"][class*="-verify"],
body.a42-store button[type="submit"].btn-outline,
body.a42-store button[type="submit"].btn-secondary,
body.a42-store button[type="submit"].a42-spec-btn--ghost,
body.a42-store button[type="submit"].a42-crate-btn--soft,
body.a42-store button[type="submit"].a42-vault-btn--soft,
body.a42-store button[type="submit"].a42-vault-btn--verify {
  color: var(--a42-text) !important;
}

/* Gold surfaces / gold buttons — ink on gold */
body.a42-store .pagination-num.is-active,
body.a42-store [class*="-page"].is-active,
body.a42-store .a42-btn--gold,
body.a42-store a.a42-btn--gold,
body.a42-store .a42-desk-cta,
body.a42-store .a42-desk-footer-card--cta .a42-desk-cta,
body.a42-store .a42-dispatch-btn--primary,
body.a42-store [class*="-btn--gold"],
body.a42-store .a42-nav-hot,
body.a42-store .a42-action-badge--hot,
body.a42-store .a42-drawer-nav-badge {
  color: var(--a42-text-on-gold) !important;
}


/* Kickers on light pages */
body.a42-store [class*="-kicker"] {
  color: var(--a42-olive) !important;
}

/* Soft muted helpers on light content (NOT applied after dark rules) */
body.a42-store .muted,
body.a42-store .lead,
body.a42-store .mini-copy,
body.a42-store .sub,
body.a42-store .a42-crate-lede,
body.a42-store .a42-origin-tagline,
body.a42-store .a42-desk-lede {
  color: var(--a42-text-muted) !important;
}

/* Light content sheets */
body.a42-store .a42-policy-sheet,
body.a42-store .policy-content,
body.a42-store .a42-policy-body,
body.a42-store .a42-crate-body,
body.a42-store .a42-origin-story,
body.a42-store .a42-origin-registry,
body.a42-store .a42-origin-contact,
body.a42-store .a42-desk-topic,
body.a42-store .a42-atlas,
body.a42-store .a42-bazaar,
body.a42-store .a42-vault-auth-wrap,
body.a42-store .auth-split-panel,
body.a42-store .panel,
body.a42-store .a42-shop-card,
body.a42-store .a42-crate-line,
body.a42-store .a42-crate-bench,
body.a42-store .a42-atelier-stat {
  color: var(--a42-text) !important;
}

body.a42-store .a42-policy-sheet h1,
body.a42-store .a42-policy-sheet h2,
body.a42-store .a42-policy-sheet h3,
body.a42-store .a42-policy-sheet p,
body.a42-store .a42-policy-sheet li,
body.a42-store .policy-content h1,
body.a42-store .policy-content h2,
body.a42-store .policy-content h3,
body.a42-store .policy-content p,
body.a42-store .policy-content li,
body.a42-store .a42-crate-hero-main h1,
body.a42-store .a42-origin-hero-copy h1,
body.a42-store .a42-desk-hero-main h1,
body.a42-store .a42-relay-hero h1,
body.a42-store .a42-atlas-hero h1,
body.a42-store .a42-market-hero h1,
body.a42-store .a42-vault h1,
body.a42-store .a42-vault h2,
body.a42-store .a42-vault h3,
body.a42-store .a42-vault p,
body.a42-store .a42-vault label,
body.a42-store .auth-split-panel h1,
body.a42-store .auth-split-panel h2,
body.a42-store .auth-split-panel p,
body.a42-store .auth-split-panel label {
  color: var(--a42-text) !important;
}

body.a42-store [class*="-empty"] h2,
body.a42-store [class*="-empty"] p,
body.a42-store [class*="-empty"] strong {
  color: var(--a42-text) !important;
}

body.a42-store .a42-shop-card-title,
body.a42-store .a42-shop-card-price,
body.a42-store .a42-veg-body h3,
body.a42-store .a42-veg-body h3 a,
body.a42-store .a42-veg-price strong,
body.a42-store .a42-bazaar-card h3,
body.a42-store .a42-bazaar-card p,
body.a42-store .a42-harvest-mini-card h4,
body.a42-store .a42-harvest-featured-body h3 {
  color: var(--a42-text) !important;
}

body.a42-store .a42-veg-price s,
body.a42-store .a42-shop-card-price s,
body.a42-store .a42-harvest-featured-body span,
body.a42-store .a42-harvest-featured-body p {
  color: var(--a42-text-muted) !important;
}

body.a42-store .a42-origin-registry dt,
body.a42-store .a42-origin-registry dd,
body.a42-store .a42-origin-channel strong,
body.a42-store .a42-origin-channel p,
body.a42-store .a42-origin-channel a {
  color: var(--a42-text) !important;
}

body.a42-store .a42-origin-registry dt {
  color: var(--a42-text-muted) !important;
}

body.a42-store .a42-pillars {
  color: var(--a42-text) !important;
  background: var(--a42-cream, #FAF7F0);
}

body.a42-store .a42-pillar strong {
  color: var(--a42-olive) !important;
}

body.a42-store .a42-pillar span {
  color: var(--a42-text-muted) !important;
}

/* Light harvest banners (non-dark) keep ink */
body.a42-store .a42-harvest-banner:not(.a42-harvest-banner--hero):not(.a42-crudo-banner--dark) {
  color: var(--a42-text) !important;
}

body.a42-store .a42-crudo-banner--gold,
body.a42-store .a42-crudo-banner--gold h3,
body.a42-store .a42-crudo-banner--gold p,
body.a42-store .a42-crudo-banner--gold span,
body.a42-store .a42-crudo-banner--gold strong {
  color: var(--a42-text) !important;
}

/* Light page heroes (crate/settle/vault/desk/atlas/etc.) keep ink — do NOT force white */
body.a42-store .a42-crate-hero,
body.a42-store .a42-settle-hero,
body.a42-store .a42-vault-hero,
body.a42-store .a42-desk-hero,
body.a42-store .a42-atlas-hero,
body.a42-store .a42-market-hero,
body.a42-store .a42-origin-hero,
body.a42-store .a42-signal-hero,
body.a42-store .a42-seal-hero,
body.a42-store .a42-dispatch-hero,
body.a42-store .a42-ledger-hero,
body.a42-store .a42-gateway-page,
body.a42-store .a42-gateway-card {
  color: var(--a42-text) !important;
}

body.a42-store .a42-crate-hero-main h1,
body.a42-store .a42-settle-hero-main h1,
body.a42-store .a42-vault-hero-main h1,
body.a42-store .a42-desk-hero-main h1,
body.a42-store .a42-atlas-hero-copy h1,
body.a42-store .a42-market-hero h1,
body.a42-store .a42-origin-hero-copy h1,
body.a42-store .a42-signal-hero h1,
body.a42-store .a42-seal-hero h1,
body.a42-store .a42-dispatch-hero h1,
body.a42-store .a42-ledger-hero h1 {
  color: var(--a42-text) !important;
}

/* ==================================================================
   DARK SURFACES — must stay last so form/muted rules cannot win
   ================================================================== */
body.a42-store .a42-policy-hero,
body.a42-store .a42-policy-hero-crudo,
body.a42-store .a42-crudo-banner--dark,
body.a42-store .a42-harvest-banner--hero,
body.a42-store .buy-panel,
body.a42-store [class*="-buy-panel"],
body.a42-store .auth-split-tabs,
body.a42-store .a42-desk-footer-card--cta,
body.a42-store [class*="-spotlight"]:not(.a42-atelier-stat),
body.a42-store .a42-contact-bar,
body.a42-store .a42-drawer-section-toggle {
  color: var(--a42-text-on-dark) !important;
}

body.a42-store .a42-policy-hero :is(h1, h2, h3, h4, p, span, strong, a, li, em, small, label),
body.a42-store .a42-policy-hero-crudo :is(h1, h2, h3, h4, p, span, strong, a, li, em, small, label),
body.a42-store .a42-crudo-banner--dark :is(h1, h2, h3, h4, p, span, strong, a, em, small),
body.a42-store .a42-harvest-banner--hero :is(h1, h2, h3, h4, p, span, strong, a, em, small),
body.a42-store .buy-panel :is(h1, h2, h3, p, span, strong, a, label, small, em),
body.a42-store [class*="-buy-panel"] :is(h1, h2, h3, p, span, strong, a, label, small, em),
body.a42-store [class*="-spotlight"]:not(.a42-atelier-stat) :is(h1, h2, h3, p, span, strong, a, em, small),
body.a42-store .auth-split-tabs,
body.a42-store .auth-split-tab,
body.a42-store .a42-desk-footer-card--cta :is(h3, p, a, span, strong),
body.a42-store .a42-contact-bar :is(h2, p, a, span, strong, small) {
  color: var(--a42-text-on-dark) !important;
}

/* Soft copy on dark */
body.a42-store .a42-policy-lede,
body.a42-store .a42-policy-hero .a42-policy-lede,
body.a42-store .a42-policy-hero-crudo .a42-policy-lede,
body.a42-store .a42-crudo-banner--dark .a42-harvest-banner-copy span,
body.a42-store .a42-harvest-banner--hero .a42-harvest-banner-copy span,
body.a42-store .auth-split-tab:not(.is-active),
body.a42-store .buy-panel .fine-print,
body.a42-store [class*="-buy-panel"] .fine-print {
  color: var(--a42-text-on-dark-soft) !important;
}

/* Kickers / accents on dark */
body.a42-store .a42-policy-hero [class*="-kicker"],
body.a42-store .a42-policy-hero-crudo [class*="-kicker"],
body.a42-store [class*="-spotlight"] [class*="-kicker"],
body.a42-store .a42-crudo-banner--dark [class*="-kicker"],
body.a42-store .a42-harvest-banner--hero [class*="-kicker"],
body.a42-store .auth-split-tab.is-active {
  color: #f0d78c !important;
}

body.a42-store .a42-contact-bar strong {
  color: #f0d78c !important;
}

/* Forms inside dark buy panels */
body.a42-store .buy-panel label,
body.a42-store [class*="-buy-panel"] label,
body.a42-store .buy-panel select,
body.a42-store [class*="-buy-panel"] select,
body.a42-store .buy-panel input:not([type="submit"]):not([type="button"]),
body.a42-store [class*="-buy-panel"] input:not([type="submit"]):not([type="button"]) {
  color: #fff !important;
}

body.a42-store .buy-panel .price-lg,
body.a42-store [class*="-price-lg"] {
  color: #f0d78c !important;
}

/* White CTA chip on dark harvest hero */
body.a42-store .a42-harvest-banner-btn {
  color: var(--a42-olive) !important;
  background: #fff !important;
}

/* Primary buttons on dark surfaces stay white */
body.a42-store .buy-panel [class*="-btn--primary"],
body.a42-store .buy-panel .btn,
body.a42-store [class*="-buy-panel"] [class*="-btn--primary"],
body.a42-store [class*="-buy-panel"] .btn,
body.a42-store .a42-contact-bar a[class*="-btn"]:not([class*="-soft"]):not([class*="-ghost"]):not([class*="-gold"]),
body.a42-store .a42-contact-bar .btn:not(.btn-outline):not(.btn-secondary) {
  color: #fff !important;
}

/* Gold CTAs — ink on gold (must follow dark-surface link overrides) */
body.a42-store .a42-desk-cta,
body.a42-store .a42-desk-footer-card--cta .a42-desk-cta,
body.a42-store .a42-btn--gold,
body.a42-store a.a42-btn--gold,
body.a42-store [class*="-btn--gold"] {
  color: var(--a42-text-on-gold) !important;
  background: var(--a42-gold) !important;
}

body.a42-store .a42-dispatch-btn--primary,
body.a42-store .a42-nav-hot,
body.a42-store .a42-drawer-nav-badge,
body.a42-store .a42-drawer-offer-badge {
  color: var(--a42-text-on-gold) !important;
}

/* Final soft/ghost/verify safety net (wins over dark-surface `a` whitening) */
body.a42-store [class*="-btn--soft"],
body.a42-store [class*="-btn--ghost"],
body.a42-store [class*="-btn-soft"],
body.a42-store [class*="-btn-ghost"],
body.a42-store .btn-outline,
body.a42-store .btn-secondary,
body.a42-store button[type="submit"][class*="-soft"],
body.a42-store button[type="submit"][class*="-ghost"],
body.a42-store button[type="submit"][class*="-verify"],
body.a42-store .a42-spec-btn--ghost,
body.a42-store .a42-crate-btn--soft,
body.a42-store .a42-crate-btn--ghost,
body.a42-store .a42-vault-btn--soft,
body.a42-store .a42-vault-btn--verify,
body.a42-store .a42-harvest-cta-ghost,
body.a42-store .a42-harvest-banner-btn {
  color: var(--a42-text) !important;
}

body.a42-store .a42-harvest-banner-btn {
  background: #fff !important;
}

/* Ghost on dark olive panels (account gate) stays light */
body.a42-store .a42-vault-hero-panel [class*="-btn--ghost"],
body.a42-store .a42-vault-panel--dark [class*="-btn--ghost"],
body.a42-store .a42-vault-btn--ghost {
  color: rgba(255, 255, 255, 0.92) !important;
}
