/* Accessibility fixes — torontoimplantdentist.com (2026-10-09, a11y rollout).
   Loaded by BaseLayout AFTER each page's own Divi CSS. Each contrast rule names the
   element it fixes; colours are the closest shade of the site's own colour that passes. */

.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}
/* /appointment/: the page's own CSS hides h1.entry-title; keep it for screen readers */
body #page-container h1.entry-title.sr-only{display:block!important}

/* skip link */
.skip-link{position:absolute;left:8px;top:-80px;z-index:100000;background:#0d077a;color:#fff!important;padding:10px 16px;font:600 15px/1.2 'Open Sans',Arial,sans-serif;border-radius:4px;text-decoration:none}
.skip-link:focus{top:8px;outline:3px solid #fff;outline-offset:0}
#main-content:focus{outline:none}

/* visible keyboard focus (two-tone so it shows on light and dark bands) */
#page-container a:focus-visible,#page-container button:focus-visible,#page-container input:focus-visible,
#page-container summary:focus-visible,#page-container [role=button]:focus-visible,.skip-link:focus-visible{
  outline:3px solid #0d077a!important;outline-offset:2px!important;box-shadow:0 0 0 5px #fff!important}

/* footer credit — CLAUDE.md standard (no nowrap) */
.ft-credit{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px}
.ft-credit svg{flex:none}
body #page-container .ft-credit-blurb.et_pb_blurb{background-image:none!important;padding-left:0!important}
.ft-sep{margin:0 4px}

/* ---- colour contrast (homepage, body.home) ---- */
/* white text on the blue bands: #0e8eef 3.42:1 -> #0c79cc 4.54:1 */
body.home .et_pb_row_3,body.home .et_pb_row_4,body.home .et_pb_row_5{background-color:#0c79cc!important}
/* "Book an appointment": white on #48d14c 2.0:1 -> #228825 4.55:1 */
body.home #page-container .et_pb_section .et_pb_button_0,
body.home #page-container .et_pb_section .et_pb_button_1{background-color:#228825!important;border-color:#228825!important}
/* "Click Here": #2ea3f2 on white 2.75:1 -> #0c7bc6 4.5:1 */
body.home #page-container .et_pb_section .et_pb_button_2{color:#0c7bc6!important;border-color:#0c7bc6!important}
/* procedures band heading (large text): white on #0ec4f7 2.05:1 -> #07a1cd 3.0:1 */
body.home .et_pb_section_8.et_pb_section{background-color:#07a1cd!important}
/* "Dental Offices" (large text): #0c71c3 on #7285af 1.37:1 -> #d5ebfc 3.0:1 */
body.home .et_pb_text_9 h2{color:#d5ebfc!important}
/* mobile location cards: #0c71c3 on #e8e8ea 4.12:1 -> #0b62a9 (>=4.5:1 even on the bare #dcdddf band) */
body.home .phoneicmapic h2,body.home .phoneicmapic h3{color:#0b62a9!important}
/* review text: #777 on white 4.48:1 -> #767676 4.54:1 */
body.home .wprev-slider .wprevpro_t1_P_3{color:#767676!important}
/* /contact-us/ links: #2ea3f2 on white 2.75:1 -> #0c7bc6 4.5:1 */
body.page-id-226 #main-content .et_pb_text_inner a{color:#0c7bc6!important}

/* office-tour slider: dots get a 24px hit area (dot itself unchanged), pause control */
#page-container .et_pb_slider .et-pb-controllers a{box-sizing:content-box;padding:8.5px;background-clip:content-box;margin-right:0;margin-bottom:2px}
.a11y-slider-pause{position:absolute;top:12px;right:12px;z-index:30;min-height:30px;background:#0d077a;color:#fff;border:2px solid #fff;border-radius:16px;padding:4px 14px;font:600 13px/1.2 'Open Sans',Arial,sans-serif;cursor:pointer}
/* legal/statement contents rail: 24px targets (WCAG 2.5.8) */
.lg-toc a{display:inline-block;min-height:24px}

/* homepage hero: white title/subtitle partly sat on the white coat / light cabinets
   (pixel check worst 1.0:1). Dark translucent backing behind the text block only. */
body.home .et_pb_text_0 .et_pb_text_inner,body.home .et_pb_text_1 .et_pb_text_inner{display:inline-block;background:rgba(17,17,28,.62);padding:6px 22px 10px;border-radius:10px}
/* footer links over the city photo: #2ea3f2 worst 3.5:1 -> light tint of the same blue */
[role=contentinfo] .et_pb_blurb_description a{color:#a9d8fa!important}
/* keep the last footer row clear of the fixed accessibility launcher on phones (WCAG 2.4.11) */
@media (max-width:767px){[role=contentinfo] .et_pb_section.columnbottom{padding-bottom:64px!important}}
/* current-page menu link: #2ea3f2 on white 2.75:1 -> #0c7bc6 4.5:1 (all pages) */
#top-menu li.current-menu-item > a,#mobile_menu li.current-menu-item > a{color:#0c7bc6!important}
/* "See More Google Reviews" (all states): #2ea3f2 on white 2.75:1 -> #0c7bc6 4.5:1 */
body.home #page-container .et_pb_section .et_pb_button_3,body.home #page-container .et_pb_section .et_pb_button_3:hover,body.home #page-container .et_pb_section .et_pb_button_3:focus{color:#0c7bc6!important;border-color:#0c7bc6!important}
/* non-text contrast (WCAG 1.4.11) */
/* procedure tabs: selected tab was only white vs #f4f4f4 (1.1:1) — add a navy indicator bar */
body.home .et_pb_tabs_controls li.et_pb_tab_active{box-shadow:inset 0 -4px 0 #0d077a}
/* slider dots: white @50% on a light photo -> ringed dots, active one filled navy */
#page-container .et_pb_slider .et-pb-controllers a{background:radial-gradient(circle,#fff 0 3.5px,#0d077a 4px 5.5px,transparent 6px)!important;background-clip:border-box!important;opacity:.8}
#page-container .et_pb_slider .et-pb-controllers a.et-pb-active-control{background:radial-gradient(circle,#0d077a 0 4px,#fff 4.5px 6px,transparent 6.5px)!important;opacity:1}
/* slider arrows only appear on mouse hover: show them on keyboard focus too */
#page-container .et_pb_slider .et-pb-arrow-prev:focus-visible{opacity:1!important;left:22px!important}
#page-container .et_pb_slider .et-pb-arrow-next:focus-visible{opacity:1!important;right:22px!important}
#page-container .et_pb_slider .et-pb-arrow-prev,#page-container .et_pb_slider .et-pb-arrow-next{text-shadow:0 0 6px rgba(0,0,0,.8)}
/* Divi header search has no open button on this site: the hidden field was a dead Tab stop */
#main-header .et_search_outer{display:none!important}
/* footer social icons: the links had no box, so their focus ring was invisible */
.footers.middle .et_pb_text_inner a{display:inline-block}
/* review slider: the Google-logo links' box is empty (absolute image) — ring the image */
.wprevpro_t1_site_logo_a:focus-visible{outline:none!important;box-shadow:none!important}
.wprevpro_t1_site_logo_a:focus-visible img{outline:3px solid #0d077a;outline-offset:2px}
/* Divi button arrow is an icon-font character in ::after; it was read aloud as "5" */
body #page-container .et_pb_button:not([data-icon])::after{content:"5" / ""!important}
body #page-container .et_pb_button[data-icon]::after{content:attr(data-icon) / ""!important}
/* review slider dots: real buttons with a 24px hit area over the plugin's 9px dot */
.wprs_unslider-nav ol li{position:relative;margin-left:8px!important;margin-right:8px!important}
.wprs_unslider-nav .a11y-dot{position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;padding:0;border:0;background:transparent;cursor:pointer;border-radius:50%}
.wprs_unslider-nav ol li{overflow:visible!important;border-color:#767676!important}
.wprs_unslider-nav ol li.wprs_unslider-active{background:#767676!important}
/* footer legal row: same 13px as the rest of the bottom bar so it fits beside the credit */
.middelfooterbar .et_pb_text_inner{font-size:13px;line-height:1.7}
/* desktop/tablet: keep the credit clear of the fixed accessibility launcher (bottom-left, 56px) */
@media (min-width:768px){body #page-container .ft-credit-blurb.et_pb_blurb{padding-left:52px!important}}
