/* Accessibility additions are separate from the site's established layouts. */
:root { --lime-dark: #806100; }
.service-content .process-grid p { color: #d9dccd; }
.contact-card-highlight p:not(.eyebrow) { color: #cfc9b3; }
.legal-summary .eyebrow { color: #625c43; }
:is(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #272918;
}
main:focus { outline: none; }
:where(p, li, address, .footer-contact, .service-content) { overflow-wrap: break-word; }
.faq summary { min-height: 44px; padding-block: .6rem; }
.footer-nav a, .footer-legal a, .service-body aside a { min-height: 24px; }
.service-content a { text-decoration: underline; text-underline-offset: .18em; }
.a11y-entry { position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 40; padding: 0; }
.a11y-entry.a11y-opposite { right: auto; left: max(16px, env(safe-area-inset-left)); }
.a11y-open, .a11y-dialog button, .a11y-dialog select {
  min-height: 44px;
  max-width: 100%;
  padding: .65rem 1rem;
  border: 2px solid currentColor;
  border-radius: .5rem;
  color: inherit;
  background: transparent;
  font: inherit;
  line-height: 1.4;
  cursor: pointer;
}
.a11y-open { display: grid; place-items: center; width: 56px; height: 56px; padding: 3px; border: 2px solid #000; border-radius: 8px; color: #000; background: #fff; box-shadow: 0 3px 16px rgb(0 0 0 / .25); }
.a11y-open img { display: block; width: 46px; height: 46px; }
.a11y-open:hover { box-shadow: 0 4px 20px rgb(0 0 0 / .4); }
.a11y-contrast .a11y-entry { background: transparent !important; }
.a11y-shortcut { font: inherit; border: 0; }
.a11y-shortcut:focus { top: 4.5rem; }
.a11y-dialog {
  width: min(34rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  margin: auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 2px solid #272918;
  border-radius: 1rem;
  color: #272918;
  background: #f7f3e7;
}
.a11y-dialog::backdrop { background: rgb(0 0 0 / .65); }
.a11y-dialog h2 { font-size: 1.65rem; line-height: 1.25; letter-spacing: -.02em; }
.a11y-dialog p { font-size: 1rem; }
.a11y-dialog form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; min-width: 0; }
.a11y-dialog label { display: flex; gap: .7rem; align-items: center; min-height: 44px; min-width: 0; }
.a11y-dialog label span { min-width: 0; overflow-wrap: anywhere; }
.a11y-dialog .a11y-size-label { display: grid; gap: .5rem; }
.a11y-dialog input[type="checkbox"] { width: 24px; height: 24px; flex: 0 0 24px; accent-color: #272918; }
.a11y-dialog select { width: 100%; min-width: 0; background: #fff; color: #272918; }
.a11y-dialog-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.a11y-dialog-actions button { flex: 1 1 10rem; min-width: 0; overflow-wrap: anywhere; }
.a11y-dialog .a11y-close { color: #fff; background: #272918; }
.a11y-status { min-height: 1.6em; }
@media (max-width: 480px) {
  .a11y-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); padding: .75rem; }
}
.a11y-links a { text-decoration: underline !important; text-underline-offset: .2em; }
.a11y-large-text .site-header { position: static; flex-wrap: wrap; gap: 1rem; }
.a11y-large-text .site-header nav { flex-wrap: wrap; }
.a11y-large-text :is(.hero, .home-hero, .service-hero, .mission, .profile, .section-intro, .section-showcase, .method-showcase, .audience-showcase, .service-body, .contact-hero, .contact-location, .legal-layout) { grid-template-columns: 1fr; }
.a11y-large-text :is(.service-grid, .process-grid, .audience-list, .contact-options, .values, .footer-main) { grid-template-columns: 1fr; }
.a11y-large-text :is(h1, h2, h3, p, a) { overflow-wrap: anywhere; }
.a11y-large-text :is(.service-body aside, .legal-summary) { position: static; }
.a11y-large-text .profile-reverse :is(.profile-visual, .profile-copy) { grid-column: 1; grid-row: auto; }
.a11y-large-text .hero-panel { width: min(100%, 44rem); margin-inline: auto; min-height: 24rem; aspect-ratio: auto; padding-block: 3rem; }
.a11y-large-text .hero-panel p { font-size: max(1.25rem, 6.4cqi); }
.a11y-large-text .hero-art { min-height: 24rem; border-radius: var(--radius); }
.a11y-large-text .art-caption { top: 0; left: 0; width: 100%; max-width: none; padding: 1rem; transform: none; font-size: 1rem; color: #272918; background: #f7f3e7; }
.a11y-large-text .art-caption :is(strong, span) { white-space: normal; }
.a11y-large-text .footer-contact a { overflow-wrap: anywhere; }
.a11y-contrast { --ink: #fff; --muted: #fff; --paper: #111; --white: #fff; --forest: #111; --lime: #ffeb75; --lime-dark: #ffeb75; --line: #aaa; }
.a11y-contrast :is(body, header, main, section, article, aside, footer, nav, div, p, h1, h2, h3, address, blockquote, details, summary, figure, figcaption, dialog) { color: #fff !important; background-color: #111 !important; background-image: none !important; border-color: #aaa !important; }
.a11y-contrast :is(a, button, strong, .eyebrow, .card-number) { color: #ffeb75 !important; }
.a11y-contrast :is(button, select, .button, .nav-cta) { border: 2px solid #ffeb75 !important; background: #111 !important; color: #ffeb75 !important; }
.a11y-contrast .brand-logo { background: #f7f3e7; border-radius: .25rem; }
.a11y-contrast .a11y-dialog input[type="checkbox"] { accent-color: #ffeb75; color-scheme: dark; }
.a11y-contrast .a11y-open { color: #000 !important; background: #fff !important; border-color: #000 !important; }
.a11y-reduce-motion { scroll-behavior: auto !important; }
.a11y-reduce-motion *, .a11y-reduce-motion *::before, .a11y-reduce-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
@media (prefers-reduced-motion: reduce) {
  html, *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  :focus-visible { outline: 3px solid Highlight; box-shadow: none; }
  .a11y-dialog, .a11y-open { border: 2px solid ButtonText; }
}
