/* WCAG-focused refinements; keep the publication's quiet, monochrome presentation. */
body { background-color: #fff; color: #303030; }
body :is(.entry-meta, .entry-meta a, .entry-meta time, .entry-header .category, .entry-header .category a,
.fpp-story-categories, .fpp-story-categories a, .fpp-story-date, .fpp-section-heading > a,
.fpp-about-eyebrow, .fpp-author-label, .page-header .sub-title, .page-header .post-count) { color: #555; }
body #crumbs, body #crumbs :is(a, span), body #crumbs .current :is(a, span) { color: #555; }
body.single-post .site-main article .entry-content figcaption { color: #555; }
/* Keep gallery credits below photographs, on a predictable background. */
body.single-post .entry-content .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
    position: relative; z-index: 2; inset: auto; max-height: none; overflow: visible;
    width: 100%; flex: 0 0 auto; padding: 8px 0; margin: 0;
    background: #fff; color: #4f4f4f;
}
body.single-post .entry-content .wp-block-gallery.has-nested-images figure.wp-block-image::before { content: none; }
body.fpp-about-page :is(.breadcrumb, .breadcrumb a, .breadcrumb span, figcaption,
.categories a span, .author-copy .eyebrow, .author-role, .story-category) { color: #555; }
body .fpp-toc { --fpp-toc-muted: #555; }
body .fpp-toc h2.fpp-toc-title { margin: 0; padding: 0; font: 600 21px/1.3 "EB Garamond", Georgia, serif; letter-spacing: 0; text-transform: none; }
body .fpp-toc :is(.fpp-toc-number, .fpp-toc-count, .fpp-toc-toggle) { color: #555; }
body button.fpp-toc-topic { color: #555; min-height: 44px; }
body button.fpp-toc-topic[aria-current="location"], body button.fpp-toc-topic:hover { color: #111; }
body .fpp-author-box .fpp-author-label { color: #555; }
/* Maintain readable white captions even when a photograph has a pale background. */
body .fpp-home-hero-photo figcaption { background: rgba(0, 0, 0, .82); padding: 6px 10px; }
body .fpp-home-hero-photo figcaption::before { content: none; }
body .fpp-category-card::after { background: linear-gradient(transparent, rgba(0, 0, 0, .82) 15%, rgba(0, 0, 0, .88)); }
body .entry-meta, body .entry-meta :is(.byline, a, time), body .entry-header .category a { color: #4f4f4f !important; }
body.fpp-about-page :is(.breadcrumb a, .categories a span, .author-copy .eyebrow, .author-role) { color: #4f4f4f !important; }
body.single-post .entry-meta .byline, body.single-post .entry-meta .byline a { font-size: 13px; }
body :is(input, textarea)::placeholder { color: #555; opacity: 1; }

/* Clear focus appears for keyboard users, without adding permanent visual boxes. */
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid #222 !important; outline-offset: 3px; scroll-margin-block: 80px;
}
body .fpp-footer :is(a, button):focus-visible { outline-color: #fff !important; }
body .fpp-toc-target:focus-visible { outline: 2px solid #222; outline-offset: 6px; }
body .skip-link:focus, body .skip-link:focus-visible {
    position: fixed; z-index: 100000; top: 12px; left: 12px; right: auto;
    width: auto; height: auto; max-width: calc(100vw - 24px); clip: auto; clip-path: none;
    padding: 12px 16px; background: #111; color: #fff; font: 500 16px/1.5 "DM Sans", sans-serif;
    text-decoration: underline; white-space: normal; outline-color: #fff !important;
    box-shadow: 0 0 0 5px #111;
}

/* Larger hit areas use spacing, rather than oversized icons or filled controls. */
body :is(.custom-logo-link, .fpp-footer-logo) { min-height: 44px; align-content: center; }
body :is(.close-main-nav-toggle, .mbl-close-main-nav-toggle, .close-main-nav, .submenu-toggle) { min-width: 44px; min-height: 44px; }
body .entry-header .category a, body .entry-meta :is(.byline a, .posted-on a) {
    display: inline-flex; align-items: center; min-height: 44px; vertical-align: middle;
}
body .navigation.pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
}
body .navigation.pagination .page-numbers.dots { min-width: 24px; }
body .error-num { color: #4f4f4f !important; }

/* Preserve browser text and contrast preferences, and avoid horizontal text overflow. */
body .entry-content :is(p, li, blockquote), body .fpp-about-page-content { overflow-wrap: break-word; }
body .entry-content :is(h2, h3, h4, h5, h6) { scroll-margin-block-start: 80px; }
@media (prefers-reduced-motion: reduce) {
    html:focus-within { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (forced-colors: active) {
    body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline-color: Highlight !important; }
    body .fpp-toc { border-color: CanvasText; }
}
