/* Exotrip / Appily-Ninetyseven — sitewide text contrast hardening
   Loaded LAST after page CSS. Keeps brand identity; fixes unreadable text. */

:root {
  --color-text-muted: #4A5563;
  --a97-muted: #4A5563;
  /* Amber/secondary as TEXT on light (fills keep --color-secondary) */
  --color-secondary-text: #8B4D04;
  --color-on-secondary: #12141A;
  --color-on-mint: #0D1B2A;
  --color-on-aqua: #0D1B2A;
  --color-on-lemon: #12141A;
  --color-on-gold: #12141A;
}

/* ---- Global Solar kickers / muted / secondary-as-text ---- */
.a97-page-kicker,
.a97-section-head h2 em,
.a97-hero-kicker,
.a97-signal-num,
.eyebrow,
.page-hero .eyebrow {
  color: var(--color-secondary-text, #8B4D04);
}

.mini-copy,
.hero-lede,
.a97-muted,
.text-muted {
  color: var(--color-text-muted, #4A5563);
}

input::placeholder,
textarea::placeholder,
select::placeholder {
  color: #556274 !important;
  opacity: 1 !important;
}

/* ---- Chromafan (home) — light surfaces ---- */
.cf-bloom-kicker,
.cf-promise-idx,
.cf-head h2 em {
  color: var(--cf-teal-deep, #007A73) !important;
}
.cf-section:not(.cf-section--ink) .cf-kicker {
  color: var(--cf-teal-deep, #007A73) !important;
}
.cf-section--ink .cf-kicker {
  color: var(--cf-gold, #FFC83D) !important;
}
.cf-btn--coral {
  color: #fff;
  background: var(--cf-coral-deep, #C42A45);
}
.cf-btn--coral:hover,
.cf-btn--coral:focus-visible {
  color: var(--cf-ink, #0E1B2C);
}
.cf-btn--ghost {
  color: var(--cf-ink, #0E1B2C);
  border-color: var(--cf-ink, #0E1B2C);
}
.cf-btn--ink {
  color: #fff;
  background: var(--cf-ink, #0E1B2C);
}
.cf-mute,
.cf-foot-mini,
.cf-foot-base {
  color: rgba(255, 255, 255, 0.85) !important;
}
.cf-foot-cols a {
  color: rgba(255, 255, 255, 0.9) !important;
}
.cf-foot-cols a:hover {
  color: #fff !important;
}

/* ---- Spool shop ---- */
/* Dark rack meters: keep light labels (do NOT force ink) */
.sp-meter-label {
  color: rgba(255, 255, 255, 0.88) !important;
}
.sp-meter-label strong {
  color: #FFE566 !important; /* brighter lemon on dark */
}
.sp-btn,
.sp-hot,
button.sp-apply {
  color: #fff;
  background: var(--sp-hot-deep, #C01E55);
}
.sp-btn:hover,
.sp-btn:focus-visible {
  color: var(--sp-ink, #1B2435);
  background: var(--sp-aqua, #00D4AA);
}
button.sp-apply,
.sp-apply {
  color: var(--sp-ink, #1B2435);
  background: var(--sp-lemon, #FFE14A);
}
.sp-tile.is-sold-out {
  opacity: 1 !important;
  filter: grayscale(0.35);
}
.sp-tile.is-sold-out h3,
.sp-tile.is-sold-out .sp-price {
  color: var(--sp-mute, #4A5563) !important;
}
.sp-hop-toggle {
  color: var(--sp-ink, #1B2435) !important;
  background: var(--sp-lemon, #FFE566) !important;
  border-color: var(--sp-lemon, #FFE566) !important;
}

/* ---- Belt cart ---- */
.bt-mast-kicker,
.bt-promo-note,
.bt-promo-note.is-ok {
  color: var(--bt-mint-deep, #007A66) !important;
}
.bt-score li.is-due strong,
.bt-hop-links a:hover,
.bt-hop-links a[aria-current="page"],
.bt-hop-sheet a[aria-current="page"],
.bt-hop-sheet a:hover {
  color: #FFE08A !important; /* gold on dark hop */
}
.bt-btn--mint {
  color: #fff;
  background: var(--bt-mint-deep, #007A66);
}
.bt-btn--mint:hover,
.bt-btn--mint:focus-visible {
  color: var(--bt-ink, #15202B);
  background: var(--bt-mint, #00C2A0);
}
.bt-btn--rose {
  color: #fff;
  background: var(--bt-rose-deep, #C01845);
}
.bt-btn--rose:hover,
.bt-btn--rose:focus-visible {
  background: var(--bt-rose, #FF3D6E);
}
.bt-btn--ghost {
  color: inherit;
}

/* ---- Mix checkout ---- */
.mx-label {
  color: var(--mx-ink, #0D1B2A) !important;
}
.mx-hop-links a:hover,
.mx-hop-links a[aria-current="page"] {
  color: #5CFFE8 !important; /* aqua on dark */
}
.mx-hop-sheet a[aria-current="page"],
.mx-hop-sheet a:hover,
.mx-send.is-lit small {
  color: #FFE566 !important;
}
.mx-channel input::placeholder,
.mx-channel textarea::placeholder {
  color: #556274 !important;
  opacity: 1 !important;
}
.mx-btn--coral {
  color: #fff !important;
  background: var(--mx-coral-deep, #C02848) !important;
}

/* ---- Punchcard help ---- */
.pc-chip.is-dim {
  opacity: 1 !important;
  color: var(--pc-mute, #4A5563) !important;
  border-color: #C5D0D8;
}
.pc-chip.is-active .pc-chip-stage {
  color: var(--pc-lime, #C6F135) !important; /* lime on dark active chip */
}
.pc-hop-links a:hover,
.pc-hop-links a[aria-current="page"] {
  color: var(--pc-ink, #162033) !important;
  background: var(--pc-lime, #B8FF6A);
}
.pc-btn--punch {
  color: #fff !important;
  background: var(--pc-punch-deep, #C03818) !important;
}

/* ---- Pinboard contact ---- */
.pn-note input::placeholder,
.pn-note textarea::placeholder {
  color: #556274 !important;
  opacity: 1 !important;
}
.pn-hop-sheet a[aria-current="page"],
.pn-hop-links a:hover,
.pn-hop-links a[aria-current="page"] {
  color: #B8FF6A !important;
}
.pn-submit {
  color: #fff !important;
  background: var(--pn-cherry-deep, #C0183A) !important;
}

/* ---- Patchwork company ---- */
.pw-btn--primary {
  color: #fff !important;
  background: var(--pw-aqua-deep, #008A72) !important;
}

/* ---- Abacus catalog — dark frame keeps gold ---- */
.ab-frame .ab-label,
.ab-rod.is-set b,
.ab-hop-sheet a[aria-current="page"] {
  color: #FFE08A !important;
}
.ab-btn--primary {
  color: #fff !important;
  background: var(--ab-rose-deep, #B00064) !important;
}

/* ---- Rolodex policy ---- */
.rx-mast-brand span {
  color: var(--rx-orange-deep, #A84002) !important;
}
.rx-card:not(.is-active) strong,
.rx-card:not(.is-active) span {
  color: var(--rx-ink, #12202C) !important;
}
.rx-card.is-active strong,
.rx-card.is-active span {
  color: #fff !important;
}

/* ---- Wind track ---- */
.wd-mast-kicker,
.wd-fact-value {
  color: var(--wd-blaze-deep, #B8380C) !important;
}
.wd-field input::placeholder {
  color: #556274 !important;
  opacity: 1 !important;
}
.wd-btn--aqua {
  color: #fff;
  background: var(--wd-aqua-deep, #007A94);
}
.wd-btn--aqua:hover,
.wd-btn--aqua:focus-visible {
  color: var(--wd-ink, #142033);
  background: var(--wd-aqua, #00B4D8);
}
.wd-btn--blaze {
  color: #fff;
  background: var(--wd-blaze-deep, #B8380C);
}
.wd-btn--blaze:hover,
.wd-btn--blaze:focus-visible {
  background: var(--wd-blaze, #FF5A1F);
}
.wd-btn--ghost {
  color: var(--wd-ink, #142033);
}

/* ---- Player roll orders ---- */
.pr-btn--red {
  color: #fff !important;
  background: var(--pr-red-deep, #B8241C) !important;
}
.pr-btn--green {
  color: #fff !important;
  background: var(--pr-green-deep, #178A2C) !important;
}

/* ---- Marquee account ---- */
.mq-kicker,
.a97-field span,
.a97-form-subhead,
.mq-stub,
.mq-switch-copy,
.mq-switch-copy small {
  color: var(--mq-ink, #0F1A24) !important;
}
.a97-btn--primary,
button.a97-btn--primary {
  color: var(--mq-ink, #0F1A24);
  background: var(--mq-gold, #FFD60A);
}
.a97-btn--primary:hover,
.a97-btn--primary:focus-visible {
  background: var(--mq-mint, #00C2A8);
  color: var(--mq-ink, #0F1A24);
}
.a97-btn--ghost {
  color: var(--mq-ink, #0F1A24);
}
.toast.success {
  color: var(--mq-ink, #0F1A24) !important;
  background: #B8F0E6 !important;
}
.toast.error,
.toast[class*="error"] {
  color: #fff !important;
  background: var(--mq-neon-deep, #C01E3C) !important;
}

/* ---- Viewcube product ---- */
.vc-price-block s {
  opacity: 1 !important;
  color: rgba(255, 255, 255, 0.78) !important;
}
.vc-hop-links a:hover,
.vc-hop-links a[aria-current="page"],
.vc-hop-sheet a[aria-current="page"],
.vc-hop-sheet a:hover {
  color: #FFE566 !important;
}
.vc-btn--orange {
  color: #fff !important;
  background: var(--vc-orange-deep, #C04400) !important;
}
.vc-btn--orange:hover,
.vc-btn--orange:focus-visible {
  background: var(--vc-orange, #FF5C00) !important;
  color: #fff !important;
}
.vc-btn--mint {
  color: var(--vc-ink, #121820) !important;
  background: var(--vc-mint, #00D68F) !important;
}
.vc-btn--mint:hover,
.vc-btn--mint:focus-visible {
  background: #7AD9B0 !important;
  color: var(--vc-ink, #121820) !important;
}
.vc-btn--ghost {
  color: var(--vc-ink, #121820) !important;
}
.vc-btn.is-disabled,
.vc-btn.is-disabled[aria-disabled="true"] {
  opacity: 1 !important;
  color: var(--vc-mute, #4A5563) !important;
  background: #DDE3EA !important;
}
.vc-stage-head p {
  color: rgba(255, 255, 255, 0.82) !important;
}
.vc-badge {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  color: var(--vc-ink, #121820) !important;
  background: var(--vc-lemon, #FFE66D) !important;
}
.vc-stamp button {
  color: var(--vc-ink, #121820) !important;
}
.vc-stamp.is-active button {
  color: #fff !important;
}

/* ---- Gondola status ---- */
.gd-btn--berry {
  color: #fff !important;
  background: var(--gd-berry-deep, #B81640) !important;
}
.gd-btn--cable {
  color: #fff !important;
  background: var(--gd-cable-deep, #008838) !important;
}

/* ---- Cage success ---- */
.cg-day {
  opacity: 1 !important;
  color: var(--cg-mute, #4A5563) !important;
}
.cg-hop-sheet a[aria-current="page"],
.cg-hop-links a:hover,
.cg-hop-links a[aria-current="page"] {
  color: #FFE566 !important;
}
.cg-btn,
.cg-cta {
  color: #fff !important;
  background: var(--cg-orange-deep, #C03800) !important;
}

/* ---- Washline footer (light poles) ---- */
.wl-pole-copy,
.wl-pole-meta,
.wl-bag-kicker,
.wl-bag-title,
.wl-bag-note,
.wl-bag-form label,
.wl-tag h4,
.wl-tag a,
.wl-aisle,
.wl-mute,
.wl-rise {
  color: var(--wl-ink, #1A2744) !important;
}
.wl-tag a:hover,
.wl-aisle:hover {
  color: var(--wl-hot, #C01845) !important;
}
.wl-bag-form input::placeholder {
  color: #556274 !important;
  opacity: 1 !important;
}
.wl-bag-submit {
  color: #fff !important;
  background: var(--wl-hot, #C01845) !important;
}
.wl-sill,
.wl-sill span,
.wl-sill-pay {
  color: #E8F0FA !important;
}

/* ---- Spectra Capstan + slash chrome ---- */
.sc-bolt-word small { color: var(--cf-coral-deep, #C42A45) !important; }
.sc-bolt-word strong,
.sc-bolt-face em { color: var(--cf-ink, #0E1B2C) !important; }
.sc-drum-kicker { color: var(--cf-gold, #FFC83D) !important; }
.sc-lug--teal { color: var(--cf-ink, #0E1B2C) !important; background: var(--cf-teal, #00D4C8) !important; }
.sc-lug--coral { color: #fff !important; background: var(--cf-coral, #FF4D6A) !important; }
.sc-lug--gold { color: var(--cf-ink, #0E1B2C) !important; background: var(--cf-gold, #FFC83D) !important; }
.sc-lug--lime { color: var(--cf-ink, #0E1B2C) !important; background: var(--cf-lime, #B8FF3D) !important; }
.sc-cleat { color: #fff !important; }
.sc-winch-form input,
.sc-belt-search input { color: var(--cf-ink, #0E1B2C) !important; }
.sc-winch-form input::placeholder,
.sc-belt-search input::placeholder { color: #4A5563 !important; opacity: 1 !important; }
.sc-twist { color: var(--cf-ink, #0E1B2C) !important; background: #fff !important; }
.sc-belt-head h2,
.sc-belt-kicker { color: var(--cf-ink, #0E1B2C) !important; }
.sc-belt-kicker { color: var(--cf-coral-deep, #C42A45) !important; }
.a97-slash-links a,
.a97-slash-icon,
.a97-slash-word small,
.a97-slash-word strong {
  color: var(--cf-ink, #0E1B2C);
}
.a97-slash-links a:hover,
.a97-slash-icon:hover,
.a97-slash-links a[aria-current="page"] {
  color: var(--cf-coral-deep, #C42A45) !important;
}

/* Dark hop bars: default light links (current/hover handled above per theme) */
.pc-hop a,
.pn-hop a,
.sp-hop a,
.bt-hop a,
.mx-hop a,
.mq-hop a,
.ab-hop a,
.pw-hop a,
.rx-hop a,
.wd-hop a,
.pr-hop a,
.vc-hop a,
.gd-hop a,
.cg-hop a {
  color: rgba(255, 255, 255, 0.92);
}

/* Disabled: solid mute fill, not faded ink */
.a97-btn.is-disabled,
.a97-shop-card-atc.is-disabled,
button:disabled,
.btn:disabled {
  opacity: 1 !important;
  color: #4A5563 !important;
  background: #D5DBE3 !important;
  border-color: #B8C0CA !important;
}

/* Payment return / gateway */
.page-payment-return .eyebrow,
.gateway-card .mini-copy {
  color: var(--color-secondary-text, #8B4D04);
}
.gateway-card .mini-copy {
  color: var(--color-text-muted, #4A5563) !important;
}

/* ---- Labels & chrome: relative flow only (never sticky/fixed) ---- */
label:not(.visually-hidden):not([class*="skip"]),
[class*="-label"],
[class*="_label"],
.ab-label,
.rx-fan-label,
.cg-cage-label,
.cg-jackpot-label,
.cg-dauber-label,
.mx-label,
.vc-opt-label,
.pr-status-label,
.wd-fact-label,
.sp-meter-label,
.wl-bag-kicker,
.cf-kicker,
.cf-bloom-kicker,
[class*="-kicker"],
.cf-ribbon,
[class$="-hop"],
.sp-rack,
.a97-shop-filters,
.a97-filters,
.a97-side-nav,
.a97-slash {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
}
/* Keep SR-only footer email label clipped, not sticky */
.wl-bag-form label {
  position: absolute !important;
}

/* Spectra Capstan: keep drum / twist / belt placement (not forced relative) */
.sc-bolt,
.sc-drum,
.sc-twist,
.sc-belt {
  position: absolute !important;
}
@media (max-width: 900px) {
  .sc-twist,
  .sc-belt {
    position: fixed !important;
  }
}