/* ELVORA COLLECTION — readability & contrast (loads after all page styles) */

/* ══════════════════════════════════════════════════════════════
   BASE — never force dark ink on .page-main (breaks dark chrome)
   ══════════════════════════════════════════════════════════════ */
body.a56-store {
  color: var(--ink);
}

/* ══════════════════════════════════════════════════════════════
   DARK SURFACES — site chrome, heroes, vault bands
   ══════════════════════════════════════════════════════════════ */
.a56-ribbon,
.a56-terrace,
.a56ix-lattice,
.ecl-atrium,
.ecl-covenant-band,
.a56pl-vault {
  color: var(--on-dark);
}

/* Ribbon */
.a56-ribbon,
.a56-ribbon-copy,
.a56-ribbon-inner > p,
.a56-ribbon-meta span {
  color: var(--on-dark-muted) !important;
}
.a56-ribbon-tag { color: var(--ochre) !important; }
.a56-ribbon-meta a { color: var(--on-dark) !important; opacity: 0.92 !important; }
.a56-ribbon-meta a:hover { color: var(--ochre) !important; opacity: 1 !important; }

/* Orbital Loom nav — homepage hero overlay */
.ec-loom.is-home .ec-loom-seal-copy strong {
  color: var(--on-dark) !important;
}
.ec-loom.is-home .ec-loom-seal-copy em {
  color: var(--ochre) !important;
}
.ec-loom.is-home.is-scrolled .ec-loom-seal-copy strong {
  color: var(--vault-deep) !important;
}
.ec-loom.is-home.is-scrolled .ec-loom-seal-copy em {
  color: var(--ochre-deep) !important;
}
.ec-loom.is-home .ec-loom-node-label {
  color: var(--on-dark-muted) !important;
}
.ec-loom.is-home .ec-loom-node.is-active .ec-loom-node-label {
  color: var(--vault-deep) !important;
}
.ec-loom-node-label,
.ec-loom-orbit-link {
  color: var(--text-secondary) !important;
}
.ec-loom.is-inner .ec-loom-node.is-active .ec-loom-node-label,
.ec-loom-orbit-link.is-active {
  color: var(--on-dark) !important;
}
.ec-loom.is-home .ec-loom-node.is-active .ec-loom-node-label,
.ec-loom.is-home .ec-loom-node.is-active .ec-loom-node-glyph {
  color: var(--vault-deep) !important;
}
.ec-loom-radial-nav a {
  color: var(--ink) !important;
}
.ec-loom-radial-nav a.is-active {
  color: var(--vault) !important;
}

/* Terrace Bloom homepage */
.ecl-atrium,
.ecl-atrium-title,
.ecl-atrium-kicker,
.ecl-ticker-track span {
  color: var(--on-dark) !important;
}
.ecl-atrium-lede,
.ecl-atrium-stats span,
.ecl-orbit-label {
  color: var(--on-dark-muted) !important;
}
.ecl-atrium-stats strong,
.ecl-orbit-core strong {
  color: var(--on-dark) !important;
}
.ecl-orbit-meta em {
  color: var(--on-dark-subtle) !important;
}
.ecl-orbit-meta strong {
  color: var(--ochre) !important;
}
.ecl-btn-ghost {
  color: var(--on-dark) !important;
}
.ecl-btn-primary {
  color: var(--vault-deep) !important;
}
.ecl-covenant-copy h2,
.ecl-covenant-steps strong {
  color: var(--on-dark) !important;
}
.ecl-covenant-copy p,
.ecl-covenant-steps p {
  color: var(--on-dark-muted) !important;
}
.ecl-eyebrow-light {
  color: var(--ochre) !important;
}
.ecl-river-head h2,
.ecl-spectrum-rail h2,
.ecl-specimen-copy h3 a {
  color: var(--vault-deep) !important;
}
.ecl-eyebrow,
.ecl-specimen-aisle {
  color: var(--ochre-deep) !important;
}
.ecl-specimen-foot strong {
  color: var(--vault) !important;
}
.ecl-specimen-foot span,
.ecl-river-body small {
  color: var(--text-secondary) !important;
}
.ecl-river-body strong {
  color: var(--on-dark) !important;
}
.ecl-spectrum-rail button {
  color: var(--text-secondary) !important;
}
.ecl-spectrum-rail button.is-active {
  color: var(--vault-deep) !important;
}

/* Help center — Knowledge Nexus (light hub + flip cards) */
.ekn-beacon h1,
.ekn-atlas-head h2,
.ekn-field-head h2,
.ekn-flip-q,
.ekn-magnetic-copy strong,
.ekn-bridge-main h2 {
  color: var(--vault-deep) !important;
}
.ekn-beacon-kicker,
.ekn-eyebrow {
  color: var(--ochre-deep) !important;
}
.ekn-beacon-lede,
.ekn-field-hint,
.ekn-bento-body p,
.ekn-flip-a,
.ekn-magnetic-copy small,
.ekn-bridge-main p,
.ekn-bridge-side p,
.ekn-empty {
  color: var(--text-secondary) !important;
}
.ekn-search-shell input {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.ekn-search-shell input::placeholder {
  color: var(--text-muted) !important;
  opacity: 1 !important;
}
.ekn-chip.is-active,
.ekn-search-count:not(:empty) {
  color: var(--on-dark) !important;
}
.ekn-flip-a a {
  color: var(--vault) !important;
}
.ekn-btn-solid {
  color: var(--on-dark) !important;
}
.ekn-btn-soft {
  color: var(--vault-deep) !important;
}
.ekn-bridge-side strong {
  color: var(--vault-deep) !important;
}

/* Shop — Editorial Runway (split masthead + staggered lookbook) */
.esh-masthead h1,
.esh-piece-body h3 a,
.esh-empty h2,
.esh-cover-overlay strong {
  color: var(--vault-deep) !important;
}
.esh-kicker,
.esh-piece-aisle {
  color: var(--ochre-deep) !important;
}
.esh-lede,
.esh-floor-count,
.esh-piece-tease,
.esh-piece-sku,
.esh-empty p,
.esh-cover-overlay em {
  color: var(--text-secondary) !important;
}
.esh-query {
  color: var(--vault) !important;
}
.esh-tally strong,
.esh-piece-price,
.esh-cover-meta b {
  color: var(--vault) !important;
}
.esh-search-track input {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.esh-search-track input::placeholder {
  color: var(--text-muted) !important;
  opacity: 1 !important;
}
.esh-runway-pill.is-active,
.esh-floor-pill {
  color: var(--on-dark) !important;
}
.esh-search-track button,
.esh-btn-solid {
  color: var(--on-dark) !important;
}
.esh-cover-overlay,
.esh-cover-meta i {
  color: var(--on-dark-muted) !important;
}

/* Track — Dispatch Meridian (split pane + helix stepper) */
.etm-band h1,
.etm-theater-meta h2,
.etm-panel h2,
.etm-ribbon-copy strong {
  color: var(--vault-deep) !important;
}
.etm-kicker,
.etm-signal-badge em {
  color: var(--ochre-deep) !important;
}
.etm-console-head p,
.etm-theater-meta p,
.etm-step-copy p,
.etm-panel p,
.etm-console-hint,
.etm-ribbon-copy small {
  color: var(--text-secondary) !important;
}
.etm-band-stats strong,
.etm-orbit-gauge > span {
  color: var(--vault) !important;
}
.etm-stat-live strong {
  color: #15803d !important;
}
.etm-field input {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.etm-field input:focus + label,
.etm-field input:not(:placeholder-shown) + label {
  color: #1a3a5c !important;
}
.etm-helix-step.is-done .etm-step-copy strong,
.etm-helix-step.is-active .etm-step-copy strong {
  color: var(--vault-deep) !important;
}
.etm-helix-step.is-active .etm-step-copy strong {
  color: var(--ochre-deep) !important;
}
.etm-trace,
.etm-btn-solid {
  color: var(--on-dark) !important;
}
.etm-btn-soft {
  color: var(--vault) !important;
}
.etm-panel-miss h2 {
  color: #8b2e2e !important;
}

/* Account — Identity Vault Hub (light layout) */
.eiv-band h1,
.eiv-identity-copy h2,
.eiv-panel-head h3,
.eiv-auth-head h2,
.eiv-constellation-list p {
  color: var(--vault-deep) !important;
}
.eiv-kicker,
.eiv-identity-label,
.eiv-constellation-label {
  color: var(--ochre-deep) !important;
}
.eiv-lede,
.eiv-panel-head p,
.eiv-auth-head p,
.eiv-loading p {
  color: var(--text-secondary) !important;
}
.eiv-field input {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.eiv-field label {
  color: var(--text-muted) !important;
}
.eiv-field input:focus + label,
.eiv-field input:not(:placeholder-shown) + label {
  color: var(--vault) !important;
}
.eiv-hub .dash-nav-link.is-active,
.eiv-auth-switch .auth-split-tab.is-active {
  color: var(--on-dark) !important;
}
.eiv-hub .dash-nav-link.is-active .eiv-hub-copy strong,
.eiv-hub .dash-nav-link.is-active .eiv-hub-copy small {
  color: var(--on-dark) !important;
}
.eiv-auth-switch .auth-split-tab {
  color: var(--text-secondary) !important;
}
.eiv-submit:not(.eiv-submit-ghost),
.eiv-orbit-chip {
  color: var(--vault) !important;
}
.eiv-submit:not(.eiv-submit-ghost) {
  color: var(--vault-deep) !important;
}
.eiv-submit-ghost {
  color: var(--vault) !important;
}
.eiv-orbit-out {
  color: #a03030 !important;
}

/* Cart — Kiosk Registry (light layout) */
.ekr-atrium h1,
.ekr-stage-head h2,
.ekr-ledger-head h2,
.ekr-vacant h2,
.ekr-specimen-body h3 a {
  color: var(--vault-deep) !important;
}
.ekr-kicker,
.ekr-specimen-sku,
.ekr-ticker-label {
  color: var(--ochre-deep) !important;
}
.ekr-lede,
.ekr-stage-head p,
.ekr-ledger-head p,
.ekr-vacant p,
.ekr-specimen-variant,
.ekr-specimen-unit,
.ekr-ship-note,
.ekr-trust {
  color: var(--text-secondary) !important;
}
.ekr-gauge-core strong,
.ekr-specimen-total,
.ekr-ledger-rows dd {
  color: var(--vault) !important;
}
.ekr-ticker-value,
.ekr-ledger-due dd {
  color: var(--ochre-deep) !important;
}
.ekr-dial-readout input {
  color: var(--vault-deep) !important;
  caret-color: var(--vault-deep) !important;
  background: transparent !important;
  min-height: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.ekr-ship-badge {
  color: var(--moss) !important;
}
.ekr-btn-seal {
  color: var(--vault-deep) !important;
}
.ekr-btn-ghost,
.ekr-sync {
  color: var(--vault) !important;
}

/* Orders — Accession Dashboard (light layout) */
.ead-atrium h1,
.ead-rail-head h2,
.ead-deep-head h2,
.ead-gate-copy h2,
.ead-vacant h2,
.ead-deep-placeholder h3 {
  color: var(--vault-deep) !important;
}
.ead-kicker,
.ead-slip-mon,
.ead-deep-seq {
  color: var(--ochre-deep) !important;
}
.ead-lede,
.ead-rail-head p,
.ead-deep-date,
.ead-deep-summary,
.ead-gate-copy p,
.ead-vacant p,
.ead-loading p,
.ead-deep-placeholder p,
.ead-filter-empty {
  color: var(--text-secondary) !important;
}
.ead-tile-value,
.ead-slip-day,
.ead-slip-id,
.ead-deep-meta dd,
.ead-item em {
  color: var(--vault) !important;
}
.ead-tile-hero .ead-tile-value,
.ead-tile-accent .ead-tile-value {
  color: var(--ochre-deep) !important;
}
.ead-btn-seal {
  color: var(--vault-deep) !important;
}
.ead-btn-ghost,
.ead-btn-track {
  color: var(--vault) !important;
}
.ead-btn-track {
  color: var(--on-dark) !important;
}
.ead-filters button.is-active {
  color: var(--on-dark) !important;
}
.ead-slip-badge,
.ead-deep-badge {
  color: var(--vault) !important;
}
.ead-slip.is-selected .ead-slip-badge,
.ead-deep-badge {
  color: var(--on-dark) !important;
}

/* Checkout — Seal Confluence (light layout) */
.ecs-atrium h1,
.ecs-panel-heading strong,
.ecs-manifest-head h2,
.ecs-manifest-due dt {
  color: var(--vault-deep) !important;
}
.ecs-kicker,
.ecs-manifest-head p {
  color: var(--ochre-deep) !important;
}
.ecs-panel.is-active .ecs-panel-num {
  color: var(--on-dark) !important;
}
.ecs-lede,
.ecs-panel-heading small,
.ecs-fine,
.ecs-manifest-note,
.ecs-meta-chip {
  color: var(--text-secondary) !important;
}
.ecs-meta-chip strong,
.ecs-manifest-line > strong,
.ecs-manifest-rows dd {
  color: var(--vault) !important;
}
.ecs-meta-accent strong,
.ecs-manifest-due dd {
  color: var(--ochre-deep) !important;
}
.ecs-field input,
.ecs-field textarea {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
  background: var(--surface-1) !important;
  min-height: 52px !important;
  padding: 22px 40px 10px 16px !important;
  border: 0 !important;
  box-shadow: none !important;
}
.ecs-field input[readonly] {
  color: var(--text-secondary) !important;
  background: var(--surface-1) !important;
}
.ecs-field label {
  color: var(--text-muted) !important;
}
.ecs-field input:focus + label,
.ecs-field input:not(:placeholder-shown) + label,
.ecs-field textarea:focus + label,
.ecs-field textarea:not(:placeholder-shown) + label {
  color: var(--vault) !important;
}
.ecs-btn-seal {
  color: var(--vault-deep) !important;
}
.ecs-btn-ghost {
  color: var(--vault) !important;
}
.ecs-manifest-badge {
  color: var(--moss) !important;
}
.ecs-progress-steps li.is-active {
  color: var(--vault-deep) !important;
}
.ecs-progress-steps li.is-active span {
  color: var(--on-dark) !important;
}
.ecs-progress-steps li.is-done {
  color: var(--moss) !important;
}
.ecs-progress-steps li.is-done span {
  color: var(--on-dark) !important;
}
.ecs-pay-label {
  color: var(--vault-deep) !important;
}

/* Order status — Orbit Signal Hub (light layout) */
.eos-atrium h1,
.eos-section-head h2,
.eos-inquiry-head h2,
.eos-miss-card h1,
.eos-countdown-head h2,
.eos-dossier-total dd {
  color: var(--vault-deep) !important;
}
.eos-kicker,
.eos-status-pill,
.eos-countdown-head p {
  color: var(--ochre-deep) !important;
}
.eos-status-pill.is-cancelled {
  color: #991b1b !important;
}
.eos-lede,
.eos-section-head span,
.eos-inquiry-head p,
.eos-dossier-grid dt,
.eos-node-copy span,
.eos-cancel-panel p,
.eos-countdown-note {
  color: var(--text-secondary) !important;
}
.eos-orbit-core strong,
.eos-manifest-line > strong,
.eos-countdown-unit strong {
  color: var(--vault) !important;
}
.eos-field input,
.eos-field textarea,
.eos-field select {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.eos-field label {
  color: var(--text-muted) !important;
}
.eos-field input:focus + label,
.eos-field input:not(:placeholder-shown) + label,
.eos-field textarea:focus + label,
.eos-field textarea:not(:placeholder-shown) + label,
.eos-field select:focus + label,
.eos-field select:valid + label {
  color: var(--vault) !important;
}
.eos-btn-seal {
  color: var(--vault-deep) !important;
}
.eos-btn-ghost {
  color: var(--vault) !important;
}
.eos-orbit-node.is-done .eos-node-copy strong {
  color: var(--moss) !important;
}
.eos-orbit-node.is-active .eos-node-copy strong {
  color: var(--ochre-deep) !important;
}

/* Product — Prism Lens (light layout) */
.epl-atrium h1,
.epl-companion-head h2,
.epl-miss-card h1,
.epl-acquire-price strong,
.epl-bento-price strong {
  color: var(--vault-deep) !important;
}
.epl-kicker,
.epl-chip-badge,
.epl-companion-aisle,
.epl-companion-badge {
  color: var(--ochre-deep) !important;
}
.epl-lede,
.epl-bento-story p,
.epl-bento-copy,
.epl-notes li,
.epl-companion-foot span {
  color: var(--text-secondary) !important;
}
.epl-chip,
.epl-acc-no,
.epl-companion-foot strong {
  color: var(--vault) !important;
}
.epl-qty input {
  color: var(--vault-deep) !important;
  caret-color: var(--vault-deep) !important;
  background: transparent !important;
  min-height: 40px !important;
  padding: 0 !important;
  box-shadow: none !important;
}
.epl-btn-seal {
  color: var(--vault-deep) !important;
}
.epl-btn-ghost {
  color: var(--vault) !important;
}
.epl-tabs button.is-active {
  color: var(--on-dark) !important;
}
.epl-bento-label {
  color: var(--text-muted) !important;
}

/* Contact — Tier Canvas (light layout) */
.ect-atrium h1,
.ect-compose-head h2,
.ect-success-copy h2 {
  color: var(--vault-deep) !important;
}
.ect-kicker {
  color: var(--ochre-deep) !important;
}
.ect-lede,
.ect-compose-head p,
.ect-success-copy p,
.ect-footnote {
  color: var(--text-secondary) !important;
}
.ect-desk-signal strong,
.ect-card-email strong {
  color: var(--vault) !important;
}
.ect-card-label,
.ect-nav-copy small {
  color: var(--text-muted) !important;
}
.ect-nav-copy strong {
  color: var(--vault-deep) !important;
}
.ect-field input,
.ect-field textarea {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.ect-field label {
  color: var(--text-muted) !important;
}
.ect-field input:focus + label,
.ect-field input:not(:placeholder-shown) + label,
.ect-field textarea:focus + label,
.ect-field textarea:not(:placeholder-shown) + label {
  color: var(--vault) !important;
}
.ect-btn-seal {
  color: var(--vault-deep) !important;
}
.ect-btn-ghost {
  color: var(--vault) !important;
}
.ect-topic-chips span.is-active {
  color: var(--on-dark) !important;
}
.ect-success-orbit::after {
  color: var(--moss) !important;
}

/* Order success — Seal Ovation Canvas (light layout) */
.eoc-atrium h1,
.eoc-receipt-head h2,
.eoc-journey-head h3 {
  color: var(--vault-deep) !important;
}
.eoc-kicker {
  color: var(--ochre-deep) !important;
}
.eoc-lede,
.eoc-fallback,
.eoc-receipt-head p,
.eoc-journey-head p,
.eoc-stat dt,
.eoc-step-copy span {
  color: var(--text-secondary) !important;
}
.eoc-stat-hero dd {
  color: var(--ochre-deep) !important;
}
.eoc-receipt-stamp {
  color: var(--moss) !important;
}
.eoc-medallion em {
  color: var(--on-dark) !important;
}
.eoc-dock-tile strong {
  color: var(--vault-deep) !important;
}
.eoc-dock-tile small {
  color: var(--text-muted) !important;
}
.eoc-btn-seal {
  color: var(--vault-deep) !important;
}
.eoc-btn-ghost {
  color: var(--vault) !important;
}
.eoc-journey-steps li.is-done .eoc-step-copy strong {
  color: var(--moss) !important;
}
.eoc-journey-steps li.is-active .eoc-step-copy strong {
  color: var(--ochre-deep) !important;
}

/* Company — Heritage Meridian Prism (light layout) */
.emp-atrium-copy h1,
.emp-mission h2,
.emp-perks h2,
.emp-aisles h2,
.emp-vault-head h2,
.emp-chronicle-head h2,
.emp-plaque strong,
.emp-dock strong {
  color: var(--vault-deep) !important;
}
.emp-kicker,
.emp-seal-chip em,
.emp-bento-label,
.emp-chronicle-mark {
  color: var(--ochre-deep) !important;
}
.emp-lede,
.emp-mission p,
.emp-aisles header p,
.emp-vault-head p,
.emp-chronicle-head p,
.emp-plaque span,
.emp-orbit-stat span,
.emp-bento-cell p,
.emp-chronicle-card p,
.emp-dl dt,
.emp-address h3,
.emp-dock small {
  color: var(--text-secondary) !important;
}
.emp-orbit-stat strong,
.emp-bento-cell strong {
  color: var(--vault) !important;
}
.emp-orbit-stat-accent strong {
  color: var(--ochre-deep) !important;
}
.emp-aisle-chip,
.emp-mosaic-tile span:last-child {
  color: var(--vault) !important;
}
.emp-folio summary {
  color: var(--vault-deep) !important;
}
.emp-chronicle-card h3 {
  color: var(--vault-deep) !important;
}
.emp-bento-quote blockquote {
  color: var(--vault) !important;
}
.emp-perk-ribbon li {
  color: var(--vault-deep) !important;
}

/* Catalog — Prism Spectrum Dock (light layout) */
.esd-atrium-copy h1,
.esd-folio-body h2 a,
.esd-dock-foot strong {
  color: var(--vault-deep) !important;
}
.esd-kicker,
.esd-folio-body footer span,
.esd-specimen-meta em {
  color: var(--ochre-deep) !important;
}
.esd-lede,
.esd-folio-body p,
.esd-specimen-sku,
.esd-dock-count,
.esd-dock-foot small,
.esd-empty {
  color: var(--text-secondary) !important;
}
.esd-dock-search input {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}
.esd-dock-search input::placeholder {
  color: var(--text-muted) !important;
  opacity: 1 !important;
}
.esd-dock-search-go,
.esd-btn-seal {
  color: var(--vault-deep) !important;
}
.esd-chip {
  color: var(--vault) !important;
}
.esd-chip.is-active {
  color: var(--on-dark) !important;
}
.esd-sort-value {
  color: var(--vault-deep) !important;
}
.esd-sort-menu button {
  color: var(--vault) !important;
}
.esd-specimen-meta strong {
  color: var(--vault-deep) !important;
}
.esd-dock-count strong {
  color: var(--ochre-deep) !important;
}

/* Footer terrace */
.a56-terrace { color: var(--on-dark-muted) !important; }
.a56-terrace-crest strong { color: var(--on-dark) !important; }
.a56-terrace-crest p,
.a56-terrace-col a,
.a56-terrace-contact p,
.a56-terrace-contact a {
  color: var(--on-dark-muted) !important;
}
.a56-terrace-col h4 { color: var(--ochre) !important; }
.a56-terrace-col a:hover { color: var(--ochre) !important; }
.a56-terrace-bar,
.a56-terrace-bar span {
  color: var(--on-dark-subtle) !important;
}

/* Home lattice band */
.a56ix-lattice,
.a56ix-lattice h2,
.a56ix-lattice h3,
.a56ix-lattice p,
.a56ix-lattice a:not(.a56ix-lattice-card) {
  color: var(--on-dark) !important;
}
.a56ix-lattice .a56-kicker { color: var(--ochre) !important; }
.a56ix-lattice .a56ix-more { color: var(--ochre) !important; }
.a56ix-lattice .a56ix-more:hover { color: var(--on-dark) !important; }

/* Policy vault header */
.a56pl-vault,
.a56pl-vault h1,
.a56pl-vault .a56-kicker,
.a56pl-seal strong {
  color: var(--on-dark) !important;
}
.a56pl-vault h1 em,
.a56pl-vault .a56-kicker { color: var(--ochre) !important; }
.a56pl-vault .a56-lede { color: var(--on-dark-muted) !important; }
.a56pl-seal span:first-of-type { color: var(--ochre) !important; }
.a56pl-seal em { color: var(--on-dark-subtle) !important; opacity: 1 !important; }

/* Account portal — retired dark panel; Member Studio is light */
/* Dark hero sections — catch unstyled descendants */
[class*="-hero"] h1 em {
  color: #f0c96a !important;
}

/* ══════════════════════════════════════════════════════════════
   LIGHT SURFACES — body copy, cards, forms, panels
   ══════════════════════════════════════════════════════════════ */
.page-main,
.page-wrap {
  color: var(--ink);
}

/* Primary readable text on light panels */
.a56-page-hero,
.a56-page-hero h1,
.a56-page-hero h2,
.a56-card,
.a56-card-body,
.a56-card-body h3,
.a56-card-body h3 a,
.a56-card-price,
.a56-card-foot,
.a56-desk,
.a56-desk h2,
.a56-desk label,
.a56-slip,
.a56-slip h2,
.a56-success-card,
.a56-success-card h2,
.a56-timeline article,
.a56-timeline article h2,
.a56-log,
.a56-log dd,
.a56-help-col,
.a56-help-col h2,
.a56-help-col h3,
.a56-faq,
.a56-faq summary,
.a56pl-page,
.a56pl-page-head h2,
.a56pl-content h3,
.a56pl-grid h4,
.a56pl-grid p,
.a56-empty-tray,
.a56-empty-tray h2,
.dash-panel,
.dash-panel h2,
.dash-panel h3,
.profile-grid,
.profile-grid dd,
.profile-item .v,
.order-list,
.order-list strong,
.eiv-panel-head h3,
#profileWelcome,
.empty-state,
.notice,
.a56-loading,
.a56-index-panel,
.a56-index-head strong,
.a56-index-body,
.or27-entry,
.or27-entry * {
  color: var(--ink);
}

/* Secondary / muted text — minimum 4.5:1 on parchment */
.a56-lede,
.a56-shop-count,
.a56-search-note,
.a56-card-sku,
.a56-hero-facts dd,
.a56-notes-grid p,
.a56-faq p,
.a56-timeline article p,
.a56-timeline article li,
.a56-no-match,
.empty-state .sub,
.a56-empty-tray p,
.a56-section-head p,
.a56pl-page-head p,
.a56pl-content p,
.a56pl-foot,
.a56pl-foot span,
.a56pl-rail-inner a,
.a56pl-rail-inner a small,
.mini-copy,
.a56-log dt,
.profile-grid dt,
.profile-item .k,
.or27-entry-date,
.or27-day,
.a56ix-strip-meta em,
.a56ix-row-meta,
.a56ix-assurance p,
.emp-orbit-stat span,
.ect-nav-copy small,
.ekn-magnetic-copy small,
.ead-slip-meta,
.ead-item-copy span,
.ead-tile-label,
.ead-tile-hint,
.ecs-manifest-rows dt,
.ecs-manifest-copy small,
.eos-dossier-grid dt,
.eos-manifest-copy small,
.a56os-card dt,
.a56os-card dd {
  color: var(--text-secondary) !important;
}

.a56-kicker:not(.a56pl-vault .a56-kicker):not(.a56ix-lattice .a56-kicker),
.a56-card-aisle,
.a56-timeline span,
.a56-stop-num,
.a56-section-head .a56-kicker,
.a56pl-acc-no,
.a56ix-shelf-kicker {
  color: var(--ochre-deep) !important;
  font-weight: 700;
}

.a56-page-hero h1 em,
.a56-card-price,
.a56-hero-facts dt,
.a56ix-headline span {
  color: var(--vault) !important;
}

.a56pl-rail-inner a.is-on,
.a56pl-rail-inner a.is-on small {
  color: var(--on-dark) !important;
}
.a56pl-rail-inner a.is-on small {
  color: var(--on-dark-muted) !important;
}

/* Forms on light backgrounds */
input,
select,
textarea,
.a56-desk input,
.a56-desk textarea,
.a56-desk select,
.a56-form-narrow input,
.a56-form-narrow select,
.a56-form-narrow textarea,
.a56-pass input,
.a56-pass textarea,
.a56-pass select,
.a56-buy select,
.a56-qty input,
.a56-qty button,
.dash-panel input,
.dash-panel select,
.dash-panel textarea,
.eiv-field input,
.ect-field input,
.ect-field textarea,
.epl-qty input,
.ekr-dial-readout input,
.ecs-field input,
.ecs-field textarea {
  color: var(--ink) !important;
  caret-color: var(--ink) !important;
}

.a56-folio-search input {
  color: var(--ink) !important;
  background: transparent !important;
}

::placeholder,
input::placeholder,
textarea::placeholder {
  color: var(--text-muted) !important;
  opacity: 1 !important;
}

.a56-form-narrow label,
.a56-desk label,
.dash-panel label,
.eiv-field label,
.ect-field label {
  color: var(--text-secondary) !important;
}

.eiv-field input:focus + label,
.eiv-field input:not(:placeholder-shown) + label {
  color: var(--vault) !important;
}

/* ══════════════════════════════════════════════════════════════
   AUTH & ACCOUNT — light panels must stay dark text
   ══════════════════════════════════════════════════════════════ */
.eiv-auth-portal,
.eiv-auth-portal .auth-split-panel,
#authSplitGate .auth-split-panel,
#authSplitGate .auth-split-panel h2,
#authSplitGate .auth-form label,
.auth-split-panel h2,
.auth-split-panel .lead,
.auth-form label {
  color: var(--ink) !important;
  opacity: 1 !important;
}

.eiv-auth-switch .auth-split-tab {
  color: var(--text-secondary) !important;
}
.eiv-auth-switch .auth-split-tab.is-active {
  color: var(--on-dark) !important;
}

/* Dark checkout / cart summary panels */
.a56-pass,
.a56-pass-side,
.a56-coord-card,
.a56-gate aside {
  color: var(--on-dark) !important;
}
.a56-pass p,
.a56-pass-side p,
.a56-coord-card p,
.a56-pass label,
.a56-pass-side label {
  color: var(--on-dark-muted) !important;
}
.a56-pass h2,
.a56-pass strong,
.a56-pass-total,
.a56-coord-card h2,
.a56-coord-card strong {
  color: var(--on-dark) !important;
}
.a56-coord-card a,
.a56-pass a,
.a56-pass-side a {
  color: #f2d7a8 !important;
}

.a56-pass input,
.a56-pass textarea,
.a56-pass select,
.a56-pass-side input,
#authSplitGate input,
#authSplitGate textarea,
#authSplitGate select {
  color: var(--ink) !important;
  background: var(--paper) !important;
}

/* Dashboard nav — exclude Identity Vault hub cards */
.dash-nav-link:not(.eiv-hub-card) {
  color: var(--text-secondary) !important;
}
.dash-nav-link:not(.eiv-hub-card).is-active,
.dash-nav-link:not(.eiv-hub-card):hover {
  color: var(--vault) !important;
}

/* ══════════════════════════════════════════════════════════════
   BUTTONS, CHIPS, PAGINATION, TOASTS
   ══════════════════════════════════════════════════════════════ */
.a56-btn,
.a56-btn-signal,
.a56-btn-primary,
.a56-submit,
.eiv-submit:not(.eiv-submit-ghost),
[class*="-btn-primary"],
.a56-spec button,
.a56-spec-label,
.pagination-num.is-active,
.pagination-btn:hover:not(.is-disabled),
.a56-chips a.is-on,
.a56-tabs button.is-active,
.a56ix-btn-primary,
.ecl-spectrum-rail button.is-active,
.ekn-chip.is-active,
.esh-runway-pill.is-active,
.esh-search-track button,
.etm-trace,
.ekr-btn-seal {
  color: var(--on-dark) !important;
}

.a56-btn-ghost,
.a56-btn-outline,
.ts-btn-outline,
.eiv-submit-ghost,
.eiv-orbit-chip,
.pagination-btn,
.pagination-num,
.a56-chips a,
.a56-tabs button,
.a56-atrium-link,
.a56-atrium-aisle,
.ec-loom-node:not(.is-active),
.ec-loom-orbit-link:not(.is-active) {
  color: var(--ink) !important;
}

.ec-loom.is-inner .ec-loom-node.is-active,
.ec-loom.is-inner .ec-loom-node.is-active .ec-loom-node-label,
.ec-loom.is-inner .ec-loom-node.is-active .ec-loom-node-glyph,
.ec-loom-orbit-link.is-active {
  color: var(--on-dark) !important;
}

.ec-loom.is-home .ec-loom-node.is-active,
.ec-loom.is-home .ec-loom-node.is-active .ec-loom-node-label,
.ec-loom.is-home .ec-loom-node.is-active .ec-loom-node-glyph {
  color: var(--vault-deep) !important;
}

.a56-folio-search button {
  color: var(--vault-deep) !important;
}
.a56-folio-search button:hover {
  color: var(--on-dark) !important;
}

.toast,
.toast.is-visible,
.toast.visible,
#authMessage.toast {
  color: var(--on-dark) !important;
}

/* Product / catalog badges on images */
.a56-specimen-meta,
.a56-specimen figcaption,
.a56-aisle span,
.a56-aisle i,
.a56ix-strip-num {
  color: var(--on-dark) !important;
}

/* Links on light pages */
.page-main a:not(.a56-btn):not(.a56-btn-ghost):not(.a56-btn-primary):not([class*="-btn-primary"]):not(.a56-atrium-link):not(.a56-atrium-aisle):not(.a56-chip):not(.dash-nav-link):not(.pagination-num):not(.pagination-btn) {
  color: var(--vault);
}
.page-main a:not(.a56-btn):hover {
  color: var(--vault-deep);
}

/* Steps / checkout progress */
.a56-steps li.is-on span {
  color: var(--on-dark) !important;
}

/* Moss / success notices — ensure readable green */
.notice.success {
  color: #1a4d2e !important;
}

/* ══════════════════════════════════════════════════════════════
   GLOBAL READABILITY — breadcrumbs, data, policy, gradients
   ══════════════════════════════════════════════════════════════ */

/* Breadcrumbs — all redesigned pages */
[class*="-crumb"] {
  color: var(--text-muted) !important;
}
[class*="-crumb"] a {
  color: var(--vault) !important;
}
[class*="-crumb"] a:hover {
  color: var(--vault-deep) !important;
}
[class*="-crumb"] [aria-current="page"] {
  color: var(--vault-deep) !important;
  font-weight: 700;
}

/* Gradient headline accents — solid fallback if clip unsupported */
[class*="-shimmer"],
.esh-accent,
.emp-glow,
.eoc-shimmer,
.esd-shimmer,
.ect-shimmer,
.epl-shimmer,
.eos-shimmer,
.ecs-shimmer,
.ekr-shimmer,
.ead-shimmer,
.ekn-beacon h1 em,
.etm-band h1 em,
.eiv-band h1 em {
  color: var(--vault-deep);
}

/* Policy folio — body & rail */
.a56pl-page-head h2,
.a56pl-content h3,
.a56pl-grid h4 {
  color: var(--vault-deep) !important;
}
.a56pl-content p,
.a56pl-content li,
.a56pl-cert,
.a56pl-grid p {
  color: var(--text-secondary) !important;
}
.a56pl-rail-inner a:not(.is-on) {
  color: var(--vault) !important;
}
.a56pl-rail-inner a:not(.is-on) small {
  color: var(--text-muted) !important;
}

/* Definition lists & stat blocks — labels vs values */
[class*="-dl"] dt,
[class*="-stat"] dt,
.eoc-stat dt,
.ecs-manifest-rows dt,
.eos-dossier-grid dt {
  color: var(--text-muted) !important;
}
[class*="-dl"] dd,
[class*="-stat"] dd,
.eoc-stat dd,
.ecs-manifest-rows dd,
.eos-dossier-grid dd,
.emp-chronicle-card time {
  color: var(--vault-deep) !important;
}
.eoc-stat-hero dd,
.ecs-manifest-due dd,
.emp-orbit-stat-accent strong {
  color: var(--ochre-deep) !important;
}

/* Step / timeline titles on light panels */
.eoc-step-copy strong,
.eos-node-copy strong,
.etm-step-copy strong,
.ecs-progress-steps li:not(.is-done):not(.is-active) {
  color: var(--vault-deep) !important;
}

/* Footer links inside folio cards */
.esd-folio-body footer a,
.emp-folio-body footer a,
.esd-folio-body h2 a {
  color: var(--vault) !important;
}

/* Glass dock & sort controls */
.esd-sort-label,
.esd-dock-count {
  color: var(--text-muted) !important;
}
.esd-sort-menu button[aria-selected="true"] {
  color: var(--vault-deep) !important;
}

/* Alerts & form messages on light surfaces */
[class*="-alert"],
[class*="-notice"],
.ekr-alert,
.ect-alert,
.ect-error,
.auth-form .msg,
#authMessage {
  color: var(--ink) !important;
}

/* Ensure light page canvas defaults to readable body copy */
.page-main {
  color: var(--ink);
}
.page-main h1,
.page-main h2,
.page-main h3,
.page-main h4,
.page-main h5,
.page-main h6 {
  color: var(--vault-deep);
}
.page-main p,
.page-main li,
.page-main dd {
  color: var(--text-secondary);
}

/* Preserve dark-surface text hierarchy (override page-main defaults) */
.a56-ribbon,
.a56-ribbon *,
.a56-terrace,
.a56-terrace *,
.a56pl-vault,
.a56pl-vault *,
.ecl-atrium,
.ecl-atrium *,
.ecl-covenant-band,
.ecl-covenant-band *,
.a56ix-lattice,
.a56ix-lattice *,
.esh-cover-overlay,
.esh-cover-overlay * {
  color: inherit;
}

/* Account page — final overrides (after global dash-nav / toast rules) */
.page-account .auth-split-tab {
  color: var(--text-secondary) !important;
}
.page-account .auth-split-tab.is-active {
  color: var(--on-dark) !important;
}
.page-account .eiv-hub .dash-nav-link.is-active {
  color: var(--on-dark) !important;
}
.page-account .eiv-hub .dash-nav-link:not(.is-active) .eiv-hub-copy strong {
  color: var(--vault-deep) !important;
}
.page-account .eiv-hub .dash-nav-link:not(.is-active) .eiv-hub-copy small {
  color: var(--text-muted) !important;
}
#authMessage.toast,
.eiv-root .toast {
  color: var(--on-dark) !important;
}
#authMessage.toast.warning,
.eiv-root .toast.warning {
  color: var(--vault-deep) !important;
}

/* Checkout — final overrides */
.page-checkout .ecs-alert {
  color: #8b2e2e !important;
}
.page-checkout .ecs-manifest-copy span {
  color: var(--vault-deep) !important;
}
.page-checkout .ecs-pay-card:has(input:checked) .ecs-pay-label {
  color: var(--vault-deep) !important;
}
.page-checkout .ecs-progress-steps li.is-active {
  color: var(--vault-deep) !important;
}
