/* Accessibility fixes — edgedentalga.com, 2026-10-09 (SOP-A11Y-WIDGET-ROLLOUT Step 5/5a).
   Loaded after the Divi head CSS. Selectors are kept low-specificity so they only replace Divi DEFAULTS,
   never a module's own colour. Companion edits: /opt/site-builder/_in-progress/edgedentalga.com/_a11y/apply-*.py */

.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}

/* Skip link (2.4.1) */
.skip-link{transition:none!important;position:absolute;left:8px;top:-80px;z-index:1000000;background:#fff;color:#1f3a52!important;padding:10px 16px;font:600 16px/1.2 Arial,sans-serif;border:2px solid #1f3a52;border-radius:4px;text-decoration:underline}
.skip-link:focus{top:8px}
main#main-content{display:block}
main#main-content:focus{outline:none}

/* Visible focus ring (2.4.7) — navy ring + white halo so it shows on light, steel-blue and black bands */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid #1f3a52!important;outline-offset:2px!important;box-shadow:0 0 0 5px #fff!important}
header.et-l--header a:focus-visible,.et_pb_section_1_tb_footer a:focus-visible{outline-color:#fff!important;box-shadow:0 0 0 5px #1f3a52!important}

/* Link colour (1.4.3): Divi default #2ea3f2 is 2.1–2.7:1 on this site's light bands and grey textures.
   #095e97 = same hue, >= 4.6:1 down to a #d4d4d4 backdrop (6.9:1 on white). :where() keeps Divi-default specificity. */
:where(#main-content,.et_pb_section_0_tb_footer) a{color:#095e97}
:where(#main-content) .et_pb_button{color:#095e97;border-color:#095e97}

/* Links inside running text are underlined (1.4.1 — not colour alone) */
:where(#main-content) :is(p,li) > a:not(.et_pb_button){text-decoration:underline}

/* Team member role text: Divi default #aaa (2.3:1) -> #767676 (4.5:1) */
:where(#main-content) .et_pb_member_position{color:#767676}

/* Divi contact forms (1.3.1/3.3.2, pre-approved): visible labels, 3:1 field borders, readable text */
.et_pb_contact_form .et_pb_contact_form_label{display:block!important;margin:0 0 6px;font-weight:600;font-size:15px;color:#333;line-height:1.3}
.et_pb_contact_form .a11y-req{font-weight:400;color:#555}
.et_pb_contact_form .input,.et_pb_contact_form select.input{color:#333!important;border:1px solid #767676!important}
.et_pb_contact_form .input::placeholder{color:#666!important;opacity:1}
.et_pb_contact_form .et_contact_error{border:2px solid #b3261e!important}
.et-pb-contact-message{color:#b3261e}
.et-pb-contact-message ul{margin:6px 0 10px 18px}
.a11y-pay-label{display:block;font-weight:600;margin:0 0 6px}
#custrefid{border:1px solid #767676}

/* Divi FAQ toggles: the title text is now a real <button> (keyboard operable) */
.et_pb_toggle_title .a11y-toggle-btn{all:unset;display:block;width:100%;box-sizing:border-box;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;line-height:inherit}

/* Header "Book Now / Location / phone" blurbs now contain real links — keep their look */
.a11y-hdr-link,.a11y-hdr-link:hover{text-decoration:none!important}
/* outranks Divi's dormant module link colour (.et-db #et-boc .et-l .et_pb_blurb_N_tb_header.et_pb_blurb .et_pb_blurb_description a{color:#000!important}) */
.et-db #et-boc header.et-l.et-l--header .et_pb_blurb.et_pb_module .et_pb_blurb_description p a.a11y-hdr-link{color:#fff!important}

/* Hamburger "Menu" label: stays white on the steel-blue bar when hovered/focused (Divi a:hover blue was 1.4–2:1) */
header.et-l--header .tresio-nav__hamburger:is(:hover,:focus,:active),header.et-l--header .tresio-nav__hamburger:is(:hover,:focus,:active) .menu_text{color:#fff!important}

/* Gallery slider dots (2.5.8): 7px dot kept, 24px target via transparent border */
.et-pb-controllers a{box-sizing:content-box!important;border:9px solid transparent!important;background-clip:padding-box!important;margin-right:2px!important}

/* Legal-page contents rail links (2.5.8) */
.lg-toc li a{display:inline-block;min-height:24px;line-height:24px}

/* Body text #666 sitting on light photo/texture backdrops (pixel-measured 4.1–4.3:1) -> #595959 */
.home #main-content .et_pb_section_3 .et_pb_text_inner,.home #main-content .et_pb_section_6 .et_pb_text_inner,
.term-advanced-care #main-content .et_pb_section_43 .et_pb_blurb_description{color:#595959!important}

/* Advanced Care archive: the emergency banner lost its module styles on the archive (black text on a dark photo).
   Same treatment as /dental-services/emergency-dentist-in-kennesaw/: white title, white-on-blue button. */
.term-advanced-care.et-db #et-boc .et-l .et_pb_section_39 .et_pb_text_inner h1{color:#fff!important}
body.term-advanced-care.et-db #page-container #et-boc .et-l .et_pb_section_39 .et_pb_button{color:#fff!important;background-color:#1b74c1!important;border-color:#fff!important}

/* Hero titles in black over photos: on narrow screens they run into the photo subject. White halo
   (class set by a11y-fixes.js only on dark-coloured hero text). */
@media (max-width:980px){.a11y-halo{text-shadow:0 0 2px #fff,0 0 4px #fff,0 0 8px #fff,0 0 12px rgba(255,255,255,.9)}}

/* Mobile menu drawer (2.4.11): the open-state "Menu" label hangs over the first item — start the list below it */
@media (max-width:980px){.tresio-nav__hamburger[aria-expanded="true"] ~ .tresio-nav__main{padding-top:40px!important}}

/* Home service-tab row (1.4.4 / 1.4.10): labels were white-space:nowrap in 63px columns, so 150% text
   pushed "Cosmetic" past the 375px viewport. Only while the widget's larger text is on, let them wrap. */
html:is(.a11y-text-1,.a11y-text-2) .tabsection .et_pb_row_5col .tablinks,html:is(.a11y-text-1,.a11y-text-2) .tabsection .et_pb_row_5col .tablinks *{white-space:normal!important;overflow-wrap:anywhere}
