/* Elementor migration and WCAG 2.2 refinements. */
.od-elementor-template .elementor-widget-html,
.od-elementor-template .elementor-widget-html > .elementor-widget-container,
.optimum-elementor-header .elementor-widget-html,
.optimum-elementor-footer .elementor-widget-html {
  margin: 0 !important;
}

/*
 * Global Elementor templates must remain full-bleed. Elementor's classic
 * section wrapper otherwise constrains the saved header/footer to 1140px and
 * adds 10px of widget padding in both the editor canvas and the front end.
 */
.od-elementor-template .elementor-section-boxed > .elementor-container,
.optimum-elementor-header .elementor-section-boxed > .elementor-container,
.optimum-elementor-footer .elementor-section-boxed > .elementor-container,
.od-elementor-template .elementor-column,
.optimum-elementor-header .elementor-column,
.optimum-elementor-footer .elementor-column,
.od-elementor-template .elementor-widget-wrap,
.optimum-elementor-header .elementor-widget-wrap,
.optimum-elementor-footer .elementor-widget-wrap,
.od-elementor-template .elementor-widget-html,
.optimum-elementor-header .elementor-widget-html,
.optimum-elementor-footer .elementor-widget-html,
.od-elementor-template .elementor-widget-container,
.optimum-elementor-header .elementor-widget-container,
.optimum-elementor-footer .elementor-widget-container {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}

.od-elementor-template .elementor-widget-wrap.elementor-element-populated,
.optimum-elementor-header .elementor-widget-wrap.elementor-element-populated,
.optimum-elementor-footer .elementor-widget-wrap.elementor-element-populated {
  padding: 0 !important;
}

/* Preserve intentional light-on-dark contrast inside every branded surface. */
.utility-bar,
.trust-band,
.doctors-section,
.doctors-panel,
.finance-promo-inner,
.quick-location-band,
.location-final,
.financing-options,
.membership-section,
.contact-hero,
.technology-section,
.final-cta,
.site-footer {
  color: var(--white) !important;
}

.trust-band :is(h1, h2, h3, h4, h5, h6),
.doctors-section :is(h1, h2, h3, h4, h5, h6),
.doctors-panel :is(h1, h2, h3, h4, h5, h6),
.finance-promo-inner :is(h1, h2, h3, h4, h5, h6),
.quick-location-band :is(h1, h2, h3, h4, h5, h6),
.location-final :is(h1, h2, h3, h4, h5, h6),
.financing-options :is(h1, h2, h3, h4, h5, h6),
.membership-section :is(h1, h2, h3, h4, h5, h6),
.contact-hero :is(h1, h2, h3, h4, h5, h6),
.technology-section :is(h1, h2, h3, h4, h5, h6),
.final-cta :is(h1, h2, h3, h4, h5, h6),
.site-footer :is(h1, h2, h3, h4, h5, h6) {
  color: var(--white) !important;
}

.site-footer p,
.site-footer li,
.site-footer address,
.site-footer a,
.site-footer span:not(.eyebrow),
.technology-section p:not(.eyebrow),
.contact-hero p:not(.eyebrow),
.quick-location-band p:not(.eyebrow) {
  color: rgba(255, 255, 255, 0.82) !important;
}

.site-footer .footer-brand > a,
.site-footer .footer-actions a,
.site-footer .footer-location h2,
.site-footer .footer-link-label,
.utility-bar a,
.utility-bar span {
  color: var(--white) !important;
}

.utility-bar .utility-label,
.utility-bar .utility-mobile-label,
.site-footer .footer-link-label,
.site-footer .eyebrow {
  color: var(--sand) !important;
}

/* Keep readable dark type on the site's light surfaces. */
.home-hero,
.locations-section,
.services-overview,
.reviews-section,
.faq-section,
.service-hero,
.location-services,
.service-locations,
.legal-content,
.od-blog-section,
.wp-content-main {
  color: var(--ink) !important;
}

.home-hero :is(h1, h2, h3, h4, h5, h6),
.locations-section :is(h1, h2, h3, h4, h5, h6),
.services-overview :is(h1, h2, h3, h4, h5, h6),
.reviews-section :is(h1, h2, h3, h4, h5, h6),
.faq-section :is(h1, h2, h3, h4, h5, h6),
.service-hero :is(h1, h2, h3, h4, h5, h6),
.location-services :is(h1, h2, h3, h4, h5, h6),
.service-locations :is(h1, h2, h3, h4, h5, h6),
.legal-content :is(h1, h2, h3, h4, h5, h6),
.od-blog-section :is(h1, h2, h3, h4, h5, h6) {
  color: var(--ink) !important;
}

.footer-contact {
  display: grid;
  justify-items: start;
  gap: 6px;
}

.od-post-card-featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(320px, 1.15fr) minmax(0, 0.85fr);
}

.od-post-card-featured .od-post-card-image,
.od-post-card-featured .od-post-card-image img {
  min-height: 430px;
  height: 100%;
}

.od-post-card-featured .od-post-card-copy {
  justify-content: center;
  padding: clamp(38px, 5vw, 76px);
}

@media (max-width: 760px) {
  .od-post-card-featured {
    grid-template-columns: 1fr;
  }

  .od-post-card-featured .od-post-card-image,
  .od-post-card-featured .od-post-card-image img {
    min-height: 280px;
  }
}

.page-id-24 .elementor-widget-text-editor,
.page-id-24 .elementor-widget-text-editor span,
.page-id-24 .elementor-widget-text-editor p,
.page-id-24 .elementor-widget-text-editor li {
  color: var(--ink-soft) !important;
}

.page-id-24 .elementor-widget-text-editor a {
  color: var(--clay-dark) !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.elementor-location-header a,
.elementor-location-header button,
.elementor-location-footer a,
.elementor-location-footer button,
.od-elementor-template a,
.od-elementor-template button,
.od-elementor-template summary {
  scroll-margin-top: 120px;
}

.od-elementor-template button,
.od-elementor-template summary,
.od-elementor-template a.button,
.od-elementor-template .text-link {
  min-height: 44px;
}

@media (forced-colors: active) {
  :focus-visible {
    outline: 3px solid CanvasText !important;
  }

  .button,
  .location-actions a,
  .service-location-button {
    border: 2px solid ButtonText !important;
  }
}

/* Keep the mobile menu trigger above the off-canvas navigation click layer. */
@media (max-width: 960px) {
  .main-header .header-actions {
    position: relative;
    z-index: 110;
  }

  .main-header .menu-toggle {
    position: relative;
    z-index: 111;
  }
}

/* WordPress's signed-in toolbar must not cover the fixed mobile close control. */
@media screen and (max-width: 782px) {
  body.admin-bar .main-header.mobile-menu-active {
    top: 46px;
  }

  body.admin-bar .main-header.mobile-menu-active .primary-nav {
    top: 120px;
    height: calc(100dvh - 120px);
    max-height: calc(100dvh - 120px);
  }
}

@media screen and (min-width: 783px) and (max-width: 960px) {
  body.admin-bar .main-header.mobile-menu-active {
    top: 32px;
  }

  body.admin-bar .main-header.mobile-menu-active .primary-nav {
    top: 124px;
    height: calc(100dvh - 124px);
    max-height: calc(100dvh - 124px);
  }
}
