/* GMAP WCAG 2.2 accessibility hardening layer - V314 */
:root{
  --gmap-focus:#0a5bd3;
  --gmap-focus-ring:#ffffff;
  --gmap-a11y-gold-text:#765600;
  --gmap-a11y-ink:#17362f;
}
.gmap-skip-link{position:fixed;left:12px;top:8px;z-index:2147483647;transform:translateY(-180%);background:#fff;color:#063f32;border:3px solid #0a5bd3;border-radius:6px;padding:10px 14px;font-weight:800;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.2)}
.gmap-skip-link:focus{transform:none}
.gmap-skip-target{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.gmap-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html{scroll-padding-top:96px}
[id]{scroll-margin-top:96px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--gmap-focus)!important;outline-offset:3px!important;box-shadow:0 0 0 2px var(--gmap-focus-ring)!important}
:where(button,input[type="button"],input[type="submit"],input[type="reset"],select,summary){min-block-size:24px;min-inline-size:24px}
:where(input,select,textarea,button){font:inherit}
:where(img,video,canvas,svg){max-inline-size:100%}
:where(p,li,td,th,label,button,a){overflow-wrap:anywhere}
:where(pre,code){overflow-wrap:normal}
:where(dialog,[role="dialog"],.modal,.gmapa-modal,.modal-overlay,.modal-backdrop){max-block-size:calc(100dvh - 24px)}
:where(.dialog,.gmapa-modal-card,.modal-card,.modal-content){max-block-size:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
/* Gold brand color is decorative in many places; where it carries text on light surfaces, use a contrast-safe shade. */
.president-photo-role{color:var(--gmap-a11y-gold-text)!important}
/* Gold-filled controls use dark text for minimum contrast. */
:where(.donatebtn,.contrib,.choice.sel,.amount.selected,.btn.gold,.gold-btn,.primary-gold){color:var(--gmap-a11y-ink)!important}
/* Do not encode state by color alone. */
[aria-invalid="true"]{outline:2px solid #b42318!important;outline-offset:2px!important}
[aria-busy="true"]{cursor:progress}
/* Reflow safeguards without changing the desktop visual design. */
@media (max-width: 400px){
  body{min-inline-size:0!important}
  :where(.container,.wrap,.shell,.content,.main,.page,.card,.panel){min-inline-size:0!important;max-inline-size:100%!important}
  :where(table){max-inline-size:100%!important}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media (forced-colors: active){
  :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}
  :where(button,.btn,a[role="button"]){forced-color-adjust:auto}
}
@media (prefers-contrast: more){
  :where(body){text-rendering:optimizeLegibility}
  :where(input,select,textarea,button,.card,.panel){border-width:2px!important}
}
