/* -------------------------------------------------------
   FIX 1: Skip Link — visible when keyboard users tab to it
------------------------------------------------------- */
.skip-link, a[href="#content"] {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
    z-index: -999;
}
.skip-link:focus, a[href="#content"]:focus {
    position: fixed;
    top: 0;
    left: 0;
    width: auto;
    height: auto;
    padding: 12px 20px;
    background-color: #1a5276;
    color: #ffffff;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    z-index: 99999;
    border: 3px solid #ffffff;
    border-radius: 0 0 4px 0;
    overflow: visible;
}

/* -------------------------------------------------------
   FIX 2: Focus Indicators — visible outline for keyboard users
------------------------------------------------------- */
a:focus, button:focus, input:focus,
textarea:focus, select:focus, [tabindex]:focus {
    outline: 3px solid #1a5276 !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px rgba(26, 82, 118, 0.25) !important;
}
*:focus-visible {
    outline: 3px solid #1a5276 !important;
    outline-offset: 2px !important;
}
*:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* -------------------------------------------------------
   FIX 3: Form Fields — visible labels and borders
------------------------------------------------------- */
.wpcf7-form label, .elementor-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    color: #333333;
}
.wpcf7-form input, .wpcf7-form textarea,
.elementor-form input, .elementor-form textarea {
    border: 2px solid #767676 !important;
    padding: 10px 12px !important;
    border-radius: 4px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus,
.elementor-form input:focus, .elementor-form textarea:focus {
    border-color: #1a5276 !important;
    outline: 3px solid #1a5276 !important;
}
.wpcf7-not-valid-tip,
.wpcf7-response-output.wpcf7-validation-errors {
    color: #c0392b !important;
    font-weight: 600 !important;
    padding: 8px !important;
    border: 2px solid #c0392b !important;
    border-radius: 4px !important;
}
.wpcf7-response-output.wpcf7-mail-sent-ok {
    color: #1e8449 !important;
    border-color: #1e8449 !important;
    background-color: #eafaf1 !important;
}

/* -------------------------------------------------------
   FIX 4: Minimum touch target size (44x44px)
------------------------------------------------------- */
.elementor-button, .wpcf7-submit, button[type="submit"] {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 12px 24px !important;
}

/* -------------------------------------------------------
   FIX 5: Screen-reader-only utility class
   Use class="sr-only" on text meant only for screen readers
------------------------------------------------------- */
.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;
}

/* Mobile fix: push hero text below floating logo (added Aug 2026) */
@media (max-width: 767px) {
  .elementor-element-bf48392 > .elementor-container {
    padding-top: 110px;
  }
}

/* Collapse empty spacer section between banner and How to Find Us (added Aug 2026) */
.elementor-element-30f34eb {
  display: none !important;
}

/* Card treatment for doctor bio sections (added Aug 2026) */
.elementor-element-adbc3cd,
.elementor-element-b6d8c8a {
  background-color: #eef2f9;
  border-radius: 12px;
  padding: 40px !important;
}
.elementor-element-adbc3cd p b,
.elementor-element-b6d8c8a p b {
  color: #1a1a1a;
  font-weight: 600;
}

/* Highlight doctor names in navy (added Aug 2026) */
.elementor-element-26f8ab6 .elementor-heading-title,
.elementor-element-05e2e0a .elementor-heading-title {
  color: #003087 !important;
  font-weight: 600;
  font-size: 24px !important;
}

/* Reduce doctor bio card padding on mobile (added Aug 2026) */
@media (max-width: 767px) {
  .elementor-element-adbc3cd,
  .elementor-element-b6d8c8a {
    padding: 20px !important;
  }
}

/* Frosted-glass header + smooth button hovers + bold hero headline (added Aug 2026) */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@600;700&display=swap');

/* Frosted-glass header */
#masthead {
  background-color: rgba(0, 0, 0, 0.35) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background-color 0.3s ease;
}
#masthead.ast-header-break-point:not(.ast-transparent-header) {
  background-color: rgba(255, 255, 255, 0.75) !important;
}

/* Bold condensed hero headline */
.elementor-element-bf48392 h1 {
  font-family: 'Oswald', 'Inter', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
}

/* Smooth button hover transitions */
.elementor-button, a.elementor-button {
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, transform 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}
.elementor-button:hover, a.elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.2);
}

/* Hide schema markup section from view (added Aug 2026) */
.elementor-element-b681fe1 {
  display: none !important;
}