/* Accessible reading scale for information-heavy partnership pages. */
:root { --read-text: #334155; --read-muted: #475569; --read-blue: #365f8c; }

body.accessible-reading main { font-size: 18px; }
body.accessible-reading main p,
body.accessible-reading main li { color: var(--read-text); line-height: 1.75; }
body.accessible-reading main :is(.text-xs,.text-sm) { font-size: .95rem !important; line-height: 1.55 !important; }
body.accessible-reading main :is(.text-lg) { font-size: 1.125rem !important; line-height: 1.75 !important; }
body.accessible-reading main h1 { font-size: clamp(2.8rem,6vw,4.8rem) !important; line-height: 1.08 !important; }
body.accessible-reading main h2 { font-size: clamp(2.15rem,4.5vw,3.55rem) !important; line-height: 1.14 !important; }
body.accessible-reading main h3 { font-size: clamp(1.3rem,2vw,1.6rem); line-height: 1.3; }
body.accessible-reading main :is(h1,h2,h3,p,a,strong) { overflow-wrap: anywhere; }
body.accessible-reading main a,
body.accessible-reading main button { font-size: 1rem; }
body.accessible-reading main a:focus-visible,
body.accessible-reading main button:focus-visible,
body.accessible-reading main [tabindex]:focus-visible { outline: 3px solid #2563eb; outline-offset: 4px; }

body.accessible-reading .section-number,
body.accessible-reading .section-nav a,
body.accessible-reading .section-nav-index,
body.accessible-reading .path-nav small,
body.accessible-reading .resource-kicker,
body.accessible-reading .resource-type,
body.accessible-reading .campaign-card-tag,
body.accessible-reading .trust-intro small,
body.accessible-reading .journey-step b,
body.accessible-reading .impact-stage b { font-size: .9rem !important; line-height: 1.5; }

body.accessible-reading .path-nav strong { font-size: 1.25rem; line-height: 1.35; }
body.accessible-reading .path-nav a { min-height: 6rem; padding: 1.35rem 1.5rem; }
body.accessible-reading .impact-step { min-height: 14rem; padding: 1.5rem; }
body.accessible-reading .impact-step b { width: 2.6rem; height: 2.6rem; font-size: .9rem; }
body.accessible-reading .impact-step h3,
body.accessible-reading .campaign-card h3,
body.accessible-reading .resource-row h3,
body.accessible-reading .community-card h3,
body.accessible-reading .flow-stage h3,
body.accessible-reading .impact-stage h3,
body.accessible-reading .collab-card h3 { font-size: 1.3rem; line-height: 1.35; }
body.accessible-reading .impact-step p,
body.accessible-reading .campaign-card p,
body.accessible-reading .resource-row p,
body.accessible-reading .resource-access-step span,
body.accessible-reading .community-card p,
body.accessible-reading .journey-step p,
body.accessible-reading .flow-stage p,
body.accessible-reading .impact-stage p,
body.accessible-reading .collab-card p,
body.accessible-reading .shared-value-card p { color: var(--read-muted); font-size: 1rem !important; line-height: 1.7; }
body.accessible-reading .shared-value-card p,
body.accessible-reading .journey-step p { color: #e2e8f0; }
body.accessible-reading .related-link,
body.accessible-reading .campaign-card a,
body.accessible-reading .resource-link,
body.accessible-reading .resource-contact { min-height: 3rem; align-items: center; font-size: 1rem; line-height: 1.5; }
body.accessible-reading .link-card,
body.accessible-reading .link-action,
body.accessible-reading .link-outline { padding: .8rem 1rem; }
body.accessible-reading .product-copy small,
body.accessible-reading .product-copy em { font-size: .85rem; line-height: 1.5; }
body.accessible-reading .product-copy h3 { font-size: 1.3rem; line-height: 1.3; }

/* Contact cards sit on photographs: never inherit dark reading text. */
body.accessible-reading main .contact-cta-card .contact-cta-kicker {
  color: #dbeafe !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-title {
  color: #fff !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-copy {
  color: #f8fafc !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-primary {
  border-color: #fff !important;
  background: #1e3a5f !important;
  color: #fff !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-primary:hover {
  background: #102a46 !important;
  color: #fff !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-secondary {
  border-color: #fff !important;
  background: #fff !important;
  color: #0f172a !important;
}
body.accessible-reading main .contact-cta-card .contact-cta-secondary:hover {
  border-color: #e2e8f0 !important;
  background: #e2e8f0 !important;
  color: #020617 !important;
}

/* Explicit high-contrast treatment for dark and photographic surfaces. */
body.accessible-reading :is(.shared-value,.resource-intro,.journey-step,.product-copy,.hero-impact-card,.bg-\[\#1d3557\]) :is(h1,h2,h3,strong) { color: #fff !important; }
body.accessible-reading :is(.shared-value,.resource-intro,.journey-step,.product-copy,.hero-impact-card,.bg-\[\#1d3557\]) p { color: #e2e8f0 !important; }
body.accessible-reading :is(.shared-value,.resource-intro,.journey-step,.product-copy,.hero-impact-card,.bg-\[\#1d3557\]) :is(.text-blue-200,.resource-kicker,.journey-step b,.product-copy small,.product-copy em) { color: #bfdbfe !important; }
body.accessible-reading .photo-card .bg-gradient-to-t :is(p,strong),
body.accessible-reading .photo-story-caption :is(h3,strong) { color: #fff !important; }
body.accessible-reading .photo-story-caption { background: rgba(255,255,255,.97); }
body.accessible-reading .photo-story-caption :is(h3,strong) { color: #0f172a !important; }
body.accessible-reading .impact-stage.is-active :is(h3,p),
body.accessible-reading .impact-stage:hover :is(h3,p) { color: #fff !important; }
body.accessible-reading .impact-stage.is-active b,
body.accessible-reading .impact-stage:hover b { color: #bfdbfe !important; }
body.accessible-reading .shared-value-card { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.3); }
body.accessible-reading .shared-value-card p { color: #e2e8f0 !important; }
body.accessible-reading :is(.section-number,.resource-type,.campaign-card-tag,.trust-intro small) { color: #4a5f85; }
body.accessible-reading main :is(a,button,[tabindex]) { text-underline-offset: .2em; }
body.accessible-reading main :is(a,button,[tabindex]):focus-visible { outline-color: #f59e0b; box-shadow: 0 0 0 5px rgba(255,255,255,.9); }

@media (max-width: 1100px) {
  body.accessible-reading .impact-model,
  body.accessible-reading .journey { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.accessible-reading .impact-step { min-height: 0; }
}
@media (max-width: 760px) {
  body.accessible-reading main { font-size: 17px; }
  body.accessible-reading main * { min-width: 0; }
  body.accessible-reading main h1 { font-size: clamp(2.35rem,11vw,3.2rem) !important; }
  body.accessible-reading main h2 { font-size: clamp(1.9rem,8vw,2.5rem) !important; }
  body.accessible-reading main .flex.flex-wrap:has(> a) { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; }
  body.accessible-reading main .flex.flex-wrap:has(> a) > a { width: 100%; min-height: 3.25rem; justify-content: center; text-align: center; }
  body.accessible-reading .impact-model,
  body.accessible-reading .journey { grid-template-columns: 1fr; }
}
@media (prefers-contrast: more) {
  body.accessible-reading main p,
  body.accessible-reading main li { color: #1e293b; }
  body.accessible-reading main :is(a,button,[tabindex]) { text-decoration-thickness: 2px; }
}
