/* dental-align-center.com — accessibility fixes (SOP-A11Y-WIDGET-ROLLOUT, 2026-10-09).
   Source of truth: _a11y/a11y-fixes.css (copied to public/ by apply-a11y.py). Every rule is scoped. */

/* screen-reader-only text (used for h1 on /contact-us/ and link context) */
.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 */
.mpo-skip-link{position:absolute;left:8px;top:-80px;z-index:2147483000;background:#014365;color:#fff!important;padding:10px 16px;border-radius:4px;font:600 16px/1.2 "Open Sans",Arial,sans-serif;text-decoration:none}
.mpo-skip-link:focus{top:8px;outline:3px solid #fff;outline-offset:2px}
#main-content:focus{outline:none}

/* visible focus ring: navy outline + white halo, so it shows on light and dark bands */
:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"]),[role=button]):focus-visible{outline:3px solid #014365!important;outline-offset:2px;box-shadow:0 0 0 2px #fff}
:where(#top-header,.customenu,#et-top-navigation,.et_pb_section_9,body.home .et_pb_section_3,body.home .et_pb_section_2) :where(a,[role=button]):focus-visible{outline-color:#fff!important;box-shadow:0 0 0 2px #014365}

/* nav: current item #2ea3f2 on #3f7093 = 1.93:1 -> #e1f2fd = 4.64:1, underlined so "current" still reads */
#top-menu li.current-menu-item > a,#top-menu li.current_page_item > a{color:#e1f2fd!important;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}

/* footer widgets: #888 / #7d7d7d on #fafafa = 3.39 / 3.94 -> #727272 = 4.61 */
#footer-widgets .footer-widget p,#footer-widgets .footer-widget li,#footer-widgets .footer-widget a,#footer-widgets .fooaddress{color:#727272!important}

/* inner-page body links: #2ea3f2 on white = 2.74 -> #0c79c3 = 4.63; underlined inside text (link-in-text-block) */
#left-area .et_pb_text_inner a:not(.et_pb_button){color:#0c79c3}
#left-area .et_pb_text_inner p a:not(.et_pb_button){text-decoration:underline;text-underline-offset:2px}
/* same #2ea3f2-on-white links outside #left-area: homepage review link, Contact Us phone link */
body.home .one_column a:not(.et_pb_button),.page-id-1583 .et_pb_text_inner p a[href^="tel:"]{color:#0c79c3}

/* legal/statement contents rail: links at least 24px tall (WCAG 2.5.8) */
.lg-toc li a{display:inline-block;padding:2px 0}

/* homepage: "SCHEDULE YOUR APPOINTMENT TODAY" band, white on #6f8fab = 3.39 -> #577895 = 4.64 */
body.home .et_pb_section_2.et_pb_section{background-color:#577895!important}
/* homepage: dark office band headings #6f8fab on #282828 = 4.34 -> #7594ae = 4.64 */
body.home .et_pb_text_5 h2,body.home .et_pb_text_6 h2{color:#7594ae!important}
/* homepage: second <h1> demoted to <h2>; keep its original h1 look */
body.home .et_pb_text_5 h2.dac-was-h1{font-size:30px!important;line-height:30px!important;font-weight:500;padding-bottom:10px;margin:0}

/* Meet Dr. Rizkallah credentials table: #666 on #0099ff = 1.91 / on #ccc = 3.57 */
.page-id-29204 td[bgcolor="#0099FF" i]{color:#2c2c2c}
.page-id-29204 td[bgcolor="#CCCCCC" i]{color:#555}
/* Forgiver Retainers table headers: #666 on #3366ff = 1.22 -> white = 4.68 */
.page-id-29282 p.style2{color:#fff}

/* contact form: visible labels instead of placeholder-only fields */
.dac-label{display:block;margin:0 0 4px;font-weight:600;color:#333;font-size:15px;line-height:1.4}

/* links that only wrap a floated image have a 0x0 box: draw the focus ring on the image */
a:focus-visible > img.alignleft,a:focus-visible > img.alignright{outline:3px solid #014365;outline-offset:2px}

/* mobile menu (open): white on #c4c8de = 1.67:1 -> navy #014365 = 6.36:1 */
#et_mobile_nav_menu .et_mobile_menu li a{color:#014365!important}

/* homepage office map image overflowed a 320px screen by 9px (WCAG 1.4.10) */
body.home .hoursmap img{max-width:100%;height:auto}

/* nav hover: Divi fades links to opacity .7 (white on #3f7093 -> 3.51:1); keep full colour, underline instead */
#top-menu-nav #top-menu a:hover{opacity:1!important;text-decoration:underline;text-underline-offset:5px}
/* mobile menu icon: #2ea3f2 on #3f7093 = 1.93:1 (non-text needs 3:1) -> white = 5.32:1 */
#et_mobile_nav_menu .mobile_menu_bar:before{color:#fff!important;content:"a" / ""}
/* form field borders: #bbb on white = 1.92:1 (non-text needs 3:1) -> #767676 = 4.54:1 */
form[action$="form-submit.php"] .wpcf7-form-control:not(.wpcf7-submit){border-color:#767676!important}

/* icon-font glyphs were read out as letters ("E", "5", "9", private-use chars): same glyph, empty alt text */
#et-info-phone::before{content:"\e090" / ""}
#footer-widgets .footer-widget li::before{content:"\45" / ""}
body.home #page-container .et_pb_section .et_pb_button_0::after{content:attr(data-icon) / ""}
body.home .et_pb_button_2::after{content:"5" / ""}
body.home #page-container .et_pb_section .et_pb_button_3::before{content:attr(data-icon) / ""}
#top-header .et-social-facebook a.icon::before{content:"\e093" / ""}
#top-header .et-social-twitter a.icon::before{content:"\e094" / ""}
.lg-toc > summary::after{content:" \25BE" / ""}
.lg-toc[open] > summary::after{content:" \25B4" / ""}
/* accordion: closed-state icon #ccc on white = 1.61:1 (non-text needs 3:1) -> #767676; glyph not announced */
.et_pb_toggle_close .et_pb_toggle_title::before{content:"\e04f" / "";color:#767676!important}
.dac-toggle-btn{cursor:pointer}
/* the spam-check widget is a fixed 300px; on a 320px screen the appointment form column is 259px (WCAG 1.4.10) */
@media (max-width:359px){form[action$="form-submit.php"] .cf-turnstile{transform:scale(.85);transform-origin:0 0}}
