/* Recruit Justice — Premium readability refinement v23.
   Color-only changes. Existing layout, content, assets, interactions and six-tone
   background identity remain unchanged. */
:root {
  --contrast-heading: #222b23;     /* deep charcoal olive: editorial headings */
  --contrast-body: #303b30;        /* deep botanical charcoal: main copy */
  --contrast-muted: #3d493b;       /* secondary copy / compact labels */
  --contrast-on-dark: #fffaf4;     /* warm ivory on olive backgrounds */
  --contrast-action: #3b493a;      /* stronger action surfaces */
}
/* Main copy and navigation: dark enough against ivory, peach and sand. */
body, .legal-page, .not-found-page,
.site-header, .site-header.scrolled, .legal-page .header, .not-found-page .header,
.premium-hero, .premium-approach, .directory-section, .form-section,
.form-content, .legal-body, .site-footer, .legal-footer {
  color: var(--contrast-body) !important;
}
.site-header .brand,.site-header .brand .brand-wordmark,.site-header .brand .brand-wordmark>span,
.legal-page .brand,.not-found-page .brand,.brand-footer,.brand-footer span,
.site-header .brand span,.site-footer .brand-footer span,
.navigation a,.navigation a:hover,.navigation a.is-active,
.header-mail,.header-linkedin,.legal-page .email-link,.not-found-page .email-link,
.navigation.open a {
  color: var(--contrast-heading) !important;
}
.header-linkedin .linkedin-mark { background:var(--contrast-action)!important;color:var(--contrast-on-dark)!important; }
.nav-toggle,.nav-toggle span {color:var(--contrast-heading)!important}
.nav-toggle span {background:var(--contrast-heading)!important}
.premium-eyebrow,.premium-overline,.premium-overline span,
.premium-hero h1,.premium-hero h1 em,
.premium-section-intro h2,.premium-section-intro h2 em,
.section-header h2,.locations-section h2,.specializations-section h2,
.service-details h3,.site-footer h2,
.premium-side p,.form-side>p,
.legal-title h1,.missing-screen h1,.legal-body h2 {
  color:var(--contrast-heading)!important;
  -webkit-text-fill-color:var(--contrast-heading)!important;
}
.premium-hero .hero-lead,.premium-section-intro>p,
.service-details p,.manifesto-detail a,
.premium-side .premium-overline,.side-signature,
.art-rail,.art-caption,.art-bottom,.art-corner,.art-monogram,
.art-label .art-label-top,.premium-hero-bottom,.premium-hero-bottom>span:nth-child(2),
.premium-service,.service-no,.service-link,
.footer-top,.footer-bottom,.footer-mail,.footer-mail span,.footer-legal a,.footer-legal button,
.legal-footer-inner p,.legal-footer-inner a,.legal-footer-inner>a:last-child {
  color:var(--contrast-body)!important;
}
/* Compact text was previously very pale sage. */
.premium-hero-bottom,.premium-hero-bottom>span:nth-child(2),
.art-caption,.art-bottom,.art-rail,.art-corner,
.premium-overline,.premium-eyebrow,.overline,
.service-no,.service-link,.side-signature,
.footer-bottom,.footer-legal,
.minor,.hint,.field .minor {
  color:var(--contrast-muted)!important;
}
/* Art label, ribbon, manifesto and primary actions retain the premium dark-on-light/light-on-dark treatment. */
.art-label,.premium-manifesto,.talent-ribbon {color:var(--contrast-on-dark)!important}
.art-label {background:var(--contrast-action)!important}
.art-label-top,.art-label strong,
.premium-manifesto h2,.premium-manifesto h2 em,
.premium-manifesto .premium-overline,.premium-manifesto .premium-overline span,
.manifesto-initial,.manifesto-detail p,.manifesto-detail a,
.ribbon-track span { color:var(--contrast-on-dark)!important;-webkit-text-fill-color:var(--contrast-on-dark)!important;opacity:1!important }
.premium-manifesto{background:var(--contrast-action)!important}
.btn.premium-btn-primary,.lead-form button[type=submit],.lead-form button[type=submit]:hover,
.not-found-page .back-home {
  background:var(--contrast-action)!important;
  color:var(--contrast-on-dark)!important;
  border-color:var(--contrast-action)!important;
}
.btn.premium-btn-primary:hover{background:#2b392d!important;border-color:#2b392d!important;color:var(--contrast-on-dark)!important}
.btn.premium-btn-secondary {
  color:var(--contrast-heading)!important;
  border-color:var(--contrast-body)!important;
}
/* Directory cards and their scrollable sub-specialization/city panels. */
.directory-name,.practice-card .directory-name,.place-card .directory-name,
.directory-options li,.locations-section .directory-options li,
.directory-panel,.locations-section .directory-panel {
  color:var(--contrast-heading)!important;
}
.directory-chevron,.place-card .directory-chevron{color:var(--contrast-body)!important}
/* Form labels, instructions, typed values and placeholder hints. */
.form-stage,.employer-stage,.form-content,
.field label,.marketing-heading strong,.marketing-heading>span,
.consent-row,.consent-row span,.marketing-consent>p,
.field input,.field select,.field textarea,.field input[type=file],
.field input[type=file]::file-selector-button,
.form-message,.marketing-consent a,.employer-consent a,
.cookie-banner,.cookie-banner p,.dialog-content,.dialog-content p,
.legal-page .legal-body,.legal-body>p,.legal-body h2,.legal-body li,.legal-body a,
.legal-body .muted,.not-found-page .missing-screen p {
  color:var(--contrast-body)!important;
}
.field input::placeholder,.field textarea::placeholder{color:var(--contrast-muted)!important;opacity:1!important}
.field input:not([type=file]):focus,.field select:focus,.field textarea:focus{border-color:var(--contrast-action)!important}
.field input[type=file]::file-selector-button{color:var(--contrast-heading)!important}
.cookie-banner button,.dialog-content button {color:var(--contrast-heading)!important}
/* Accessible selection and keyboard focus without changing UI geometry. */
::selection{background:#cb997e;color:var(--contrast-heading)}
:focus-visible{outline-color:var(--contrast-action)!important}
