/* hdpny.com — accessibility fixes (a11y rollout 2026-10-09). Source of truth:
   /opt/site-builder/_in-progress/hdpny.com/_a11y/assets/a11y-fixes.css → copied to public/ by apply-02. */
.sr-only{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}

/* visible keyboard focus (navy ring; white on the dark nav bar / black footer bar) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{outline:3px solid #08294f!important;outline-offset:2px}
#main-header .et_menu_container a:focus-visible,#main-header .mobile_menu_bar:focus-visible,.columnbottom a:focus-visible{outline-color:#fff!important}
#main-content:focus{outline:none}
a.screen-reader-shortcut:focus{outline:3px solid #08294f;font-size:14px!important;padding:6px 10px!important}

/* links inside running text: not distinguishable by colour alone (axe link-in-text-block) */
#main-content .et_pb_text_inner :is(p,li) a:not(.et_pb_button),#main-content .entry-content :is(p,li) a:not(.et_pb_button){text-decoration:underline;text-underline-offset:2px}

/* footer credit (CLAUDE.md standard): the monitor SVG is the icon — drop the legacy device-strip background */
.et_pb_blurb:has(.ft-credit){background-image:none!important;padding-left:0!important}
.ft-credit{flex-wrap:wrap}

/* a second <h1> demoted to <h2> for a single-h1 outline — look pinned to the original h1 */
#main-content h2.a11y-was-h1{font-size:30px;font-weight:500;line-height:30px;color:#000;margin:0;padding:0 0 10px;text-transform:none;letter-spacing:normal}

/* Divi contact/appointment forms: visible labels, visible field borders, clearer error state */
.et_pb_contact_form_container .et_pb_contact_form_label{display:block!important;font-size:14px;font-weight:600;color:#222;margin:0 0 6px;line-height:1.3}
.et_pb_contact_form_container .et_pb_contact p input,.et_pb_contact_form_container .et_pb_contact p textarea,.et_pb_contact_form_container .et_pb_contact_select{border:1px solid #767676!important}
.et_pb_contact_form_container .et_pb_contact p .et_contact_error{border:2px solid #c00!important}
.et_pb_contact_form_container .et-pb-contact-message{color:#900}

/* legal pages: contents-rail links reach the 24px target size (WCAG 2.5.8) */
.lg-page .lg-toc li a{display:inline-block;min-height:24px;padding:2px 0}

/* legal pages (body.et_full_width_page, sidebar removed): use the full container width */
body.et_full_width_page #main-content .container #left-area{width:100%!important;margin-right:0!important;float:none}

/* footer legal row: keep each link's own words together; the row still wraps between links */
.columnbottom .et_pb_text_inner a{white-space:nowrap}

/* main nav hover: Divi fades the link to opacity .7 (white on #3f7093 drops to ~3.4:1) -> keep it solid, underline instead */
#top-menu-nav > ul > li > a:hover{opacity:1!important;text-decoration:underline;text-underline-offset:4px}

/* Divi button arrow icon is generated content "5" in the ETmodules icon font: keep the icon, give it empty alt text
   so screen readers stop announcing "Schedule an Appointment 5" */
.et_pb_button:after,.et_pb_button:before{content:"\35" / ""}

/* mobile 4-icon header (<=1000px): it had a fixed 80px height, so enlarged text (widget / browser text size)
   was clipped and "Appointment"/"Location" ran into each other. Same look at 100%; grows with the text. */
@media only screen and (max-width:1000px){
  .mobile_cmenu{display:flex!important;height:auto!important;min-height:80px}
  .mobile_cmenu > #et_mobile_nav_menu{flex:0 0 25%;float:none;height:auto!important}
  .mobile_cmenu > .textwidget{display:flex;flex:1 1 75%;min-width:0}
  .mobile_cmenu .mo_call{float:none;flex:1 1 0;min-width:0;height:auto!important;min-height:80px;padding-bottom:6px}
  .mobile_cmenu .mo_call a{display:block;overflow-wrap:anywhere;hyphens:auto}
}
