/**
 * TNT WCAG Bridge — Round 2.2 contrast (scoped; avoid fighting Elementor bands).
 */

body.tnt-wcag-bridge {
  --tnt-wcag-gold-text: #6d5a24;
  --tnt-wcag-gold-btn: #7d6a3d;
  --tnt-wcag-focus: #f5c451;
  --tnt-wcag-scrim: rgba(50, 28, 14, 0.88);
}

body.tnt-wcag-bridge a.skip-link,
body.tnt-wcag-bridge .skip-link.screen-reader-text {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  padding: 0.75rem 1.25rem;
  background: #111 !important;
  color: #fff !important;
  text-decoration: underline;
  font-weight: 600;
}

body.tnt-wcag-bridge a.skip-link:focus,
body.tnt-wcag-bridge .skip-link.screen-reader-text:focus {
  left: 1rem;
  top: 1rem;
}

body.tnt-wcag-bridge a:focus-visible,
body.tnt-wcag-bridge button:focus-visible,
body.tnt-wcag-bridge input:focus-visible,
body.tnt-wcag-bridge select:focus-visible,
body.tnt-wcag-bridge textarea:focus-visible {
  outline: 3px solid var(--tnt-wcag-focus);
  outline-offset: 2px;
}

body.tnt-wcag-bridge .tnt-wcag-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Artisan --- */

/* Text links on light — actual <a> only. Icon-list items are often not links. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-widget-text-editor a,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-post__title a {
  color: var(--tnt-wcag-gold-text) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Checkmarks / icon-list copy is not a link unless it wraps <a>. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-icon-list-text {
  text-decoration: none !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-icon-list-item a,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-icon-list-item a .elementor-icon-list-text {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* Why Choose Us overlay: column 640736e5 is solid #321C0E. Gold-on-brown
   plus underline on non-link checkmarks. White, no underline. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-icon-list-text,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-icon-list-text,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-heading-title {
  color: #fff !important;
  text-decoration: none !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-icon-list-item a,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-icon-list-item a .elementor-icon-list-text,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-icon-list-item a,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-icon-list-item a .elementor-icon-list-text {
  color: #fff !important;
  text-decoration: underline !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-icon-list-icon i,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 .elementor-icon-list-icon svg,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-icon-list-icon i,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark .elementor-icon-list-icon svg {
  color: #fff !important;
  fill: #fff !important;
}

/* Gold TEXT on light (names, slider chrome) — not icon-list checkmarks.
   Header 309 keeps O360 gold #d2b22e icons; do not recolor those. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header):not(.elementor-location-footer) .elementor-social-icon i,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header):not(.elementor-location-footer) .elementor-social-icon svg,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-testimonial__name,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-swiper-button,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-swiper-button svg {
  color: var(--tnt-wcag-gold-text) !important;
  fill: var(--tnt-wcag-gold-text) !important;
}

/* White-on-gold 2.06:1 (#fff on #d2b22e) — darken fills (Elementor widget CSS wins without this).
   Header 309 appointment pill is white + gold type — leave it. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-button,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-button-link,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) a.elementor-button,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-menu-toggle,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-nav-menu--dropdown a.highlighted,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-nav-menu--dropdown a.elementor-item-active {
  background-color: var(--tnt-wcag-gold-btn) !important;
  border-color: var(--tnt-wcag-gold-btn) !important;
  color: #fff !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-button-link .elementor-button-text {
  color: #fff !important;
}

/* WAVE uses CSS background, not the photo. Gold motion layer under white type.
   Header logo row is Elementor rgba(255,255,255,0.9) — do not stain it brown. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-motion-effects-layer {
  background-color: #321c0e !important;
}

/* Photo heroes (Services, About, interiors): image only, overlay is
   transparent + gradient. WAVE scores white text as 1:1 on page white.
   background-color sits UNDER background-image — photo still shows.
   Header 309 min-height row is the cream nav bar, not a photo hero. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-section-height-min-height {
  background-color: #321c0e !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .swiper-pagination-bullet {
  background-color: var(--tnt-wcag-gold-btn) !important;
}

/* Main nav on white row — page/footer only. Header 309 already sets this. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-nav-menu--main .elementor-item {
  color: #321c0e !important;
}

/* Hero slider text over photos — WAVE solid fill */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-widget-slides .elementor-slide-heading,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-widget-slides .elementor-slide-description {
  background-color: var(--tnt-wcag-scrim) !important;
  color: #fff !important;
  padding: 0.2em 0.4em;
  display: inline-block;
}

/* Brown sections */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="321c0e"] {
  background-color: #321c0e !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="321c0e"] .elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="321c0e"] p,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="321c0e"] a:not(.elementor-button-link) {
  color: #fff !important;
}

/* Cream band */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="f2eac3"],
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="F2EAC3"] {
  background-color: #f2eac3 !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-section[style*="f2eac3"] a:not(.elementor-button-link) {
  color: #5a4a1c !important;
}

/* Footer: white type only on dark bands. Credit row is a white strip. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-footer .tnt-wcag-on-dark a:not(.elementor-button-link),
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-footer .tnt-wcag-on-dark .elementor-heading-title {
  color: #fff !important;
}

/* Footer credit row (Maintained by TNT Dental) — inline #321c0e lost to footer a { white }. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-9dfdab3,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-9dfdab3 p,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-9dfdab3 a {
  color: #321c0e !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor:not(.elementor-location-header) .elementor-social-icon {
  background-color: var(--tnt-wcag-gold-btn) !important;
}

/* Footer social row — white glyphs on gold discs (not gold-on-gold mud). */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-footer .elementor-social-icon i,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-footer .elementor-social-icon svg {
  color: #fff !important;
  fill: #fff !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-popup-modal .dialog-widget-content {
  background-color: #fff !important;
  color: #321c0e !important;
}

/* Remaining WAVE contrast — brand gold #d2b22e is 2.07:1 on white / as a fill.
   Darken type to --tnt-wcag-gold-text (6.69:1 on white). Dark-band headings
   stay white via .tnt-wcag-on-dark. Header appointment keeps the white pill. */
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-header .elementor-element-bf1d9e9 .elementor-button,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-location-header .elementor-element-bf1d9e9 .elementor-button-text {
  color: var(--tnt-wcag-gold-text) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan #siteModalCloseBtn,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan button.close-modal-button {
  background-color: var(--tnt-wcag-gold-btn) !important;
  color: #fff !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan h5.elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan h6.elementor-heading-title {
  color: var(--tnt-wcag-gold-text) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark h5.elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .tnt-wcag-on-dark h6.elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 h5.elementor-heading-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-640736e5 h6.elementor-heading-title {
  color: #fff !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-image-box-description a,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-60e21af3,
body.tnt-wcag-bridge.tnt-wcag-bridge--artisan .elementor-element-60e21af3 a {
  color: var(--tnt-wcag-gold-text) !important;
}

/* Logged-in WAVE: Yoast admin-bar "bad" chip is #f0f0f1 on #dc3232 ≈ 4.05:1 */
#wpadminbar .wpseo-score-text {
  color: #fff !important;
}
#wpadminbar .wpseo-score-icon.bad .wpseo-score-text {
  background-color: #8a1212 !important;
}

/* --- AZ Sleep (AIT Doctor2) --- */

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj {
  --tnt-wcag-body-text: #595959;
  --tnt-wcag-footer-text: #c2c2c2;
  --tnt-wcag-footer-link: #b9cab4;
  --tnt-wcag-footer-bar-text: #313131;
  --tnt-wcag-referral-band: #5f7176;
  --tnt-wcag-appointment-band: #8a7a2e;
  --tnt-wcag-green-btn: #4d5f41;
}

/* AIT Doctor2 body copy defaults to #777777 (~4.5:1). #595959 is 7:1 on white. */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .main-sections p,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .main-sections li,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .entry-content p,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .entry-content li,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-text-main p,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-text-main li,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-icon-list-text {
  color: var(--tnt-wcag-body-text) !important;
}

/* Homepage CTA service tiles — WAVE scores white on #c8b954 / #87999e too low */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="87999e"],
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="#87999e"] {
  background-color: var(--tnt-wcag-referral-band) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="c8b954"],
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="#c8b954"] {
  background-color: var(--tnt-wcag-appointment-band) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item h3,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item .item-title,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item .item-title a,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item .rm-button,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item .readmore a {
  color: #fff !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Theme: white disc + icon tinted to match tile (bullhorn / calendar). */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="87999e"] .item-thumb-img i,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="#87999e"] .item-thumb-img i {
  color: var(--tnt-wcag-referral-band) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="c8b954"] .item-thumb-img i,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .elm-services-main .item[style*="#c8b954"] .item-thumb-img i {
  color: var(--tnt-wcag-appointment-band) !important;
}

/* Gold / green accent copy on light sections */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .main-sections .entry-content a:not(.elementor-button-link) {
  color: var(--tnt-wcag-gold-text) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Main nav on white header row */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .nav-menu-main > ul > li > a,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .nav-menu-main .menu-item > a {
  color: var(--tnt-wcag-dark-band, #313131) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .nav-menu-main .sub-menu a {
  color: #fff !important;
  background-color: var(--tnt-wcag-green-btn) !important;
}

/* Footer widgets on #333 — theme uses #999999 body / #6D865E quicklink nav */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .footer-widgets .textwidget,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .footer-widgets .textwidget p,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .footer-widgets .textwidget h3,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .footer-widgets .widget-title h3 {
  color: var(--tnt-wcag-footer-text) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .__footer-1 .widget-title h3,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer #menu-quicklinks a {
  color: var(--tnt-wcag-footer-link) !important;
}

/* Gold bottom band (.site-footer) — dark type, not the charcoal footer tokens */
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .site-footer,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .site-footer .footer-text,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .site-footer .footer-text p,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .nav-menu-footer a,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj .site-footer a {
  color: var(--tnt-wcag-footer-bar-text, #313131) !important;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .widget_social a .fa,
body.tnt-wcag-bridge.tnt-wcag-bridge--azsleepandtmj #footer .widget_social a [class*="fa-"] {
  color: var(--tnt-wcag-footer-text) !important;
}

/* RevSlider: do NOT stain .rs-layer headings/copy. Black-on-light slider
   text is fine; WAVE contrast on photo heroes is not worth ugly boxes. */

/* --- Balcones Family Dental (Practice Cafe classic) ---
   The theme's own style.css already declares the dark green nav color, the
   #524938 footer fill and #486b3c header labels, but app.css / additional.css
   load after it and win. This sheet loads last, so the theme''s intent is
   restored here rather than invented. */


/* Header info labels ship #bacaab on white (1.73:1). */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .above-nav .main-info .h-address p,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .above-nav .main-info .h-phone p,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .h-address p,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .h-phone p {
  color: #486b3c;
}

/* Lime #6db23e carries white type at 2.6:1. Reuse the nav bar green
   #486b3c (6.1:1) so every green CTA matches the header. */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental a.h-bttn-lg,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental a.bttn,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .h-bttn-lg,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .bttn {
  background-color: #486b3c;
  color: #fff;
}

/* Current nav item was #486b3c on #bacaab (3.52:1). Preserve the pale
   active tab, but use charcoal copy for a clear selected state at AA. */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental header nav.nav ul li.current-menu-item > a,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental header nav.nav ul li.current-menu-ancestor > a,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental header nav.nav ul li.current-menu-parent > a {
  color: #313131;
}

/* The wood bands set background-image with no background-color, so WAVE
   measures white type against white. Fills sampled from the images. */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental footer {
  background-color: #524938;
}

body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .wood-bg,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .greenwood-bg {
  background-color: #f2f4ed;
}

/* Footer ADDRESS/PHONE/HOURS: look like the old <strong> labels, not page H3s. */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental footer .f-contact-heading {
  margin: 0 0 0.2em;
  padding: 0;
  font-size: 1em;
  font-weight: 700;
  line-height: inherit;
  letter-spacing: inherit;
  color: #fff;
  text-transform: uppercase;
}

/* Keep the review controls named for assistive technology. WAVE evaluates
   their clipped .sr-only text and inherited white-on-white as contrast, so
   provide an explicit passing pair without making the labels visible. */
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .reviews .carousel-control-prev .sr-only,
body.tnt-wcag-bridge.tnt-wcag-bridge--balconesfamilydental .reviews .carousel-control-next .sr-only {
  color: #313131;
  background-color: #fff;
}
