/* ==========================================================================
   AIM Mobile Tap-to-Call Button
   Mobile-only sticky phone CTA. Does not affect desktop.
   ========================================================================== */

.mobile-tap-call {
  display: none;
}

@media (max-width: 980px) {
  .mobile-tap-call {
    position: fixed !important;
    left: 16px !important;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 700 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;

    min-height: 48px !important;
    padding: 0 17px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: var(--aim-blue, #042249) !important;
    color: #ffffff !important;
    box-shadow: 0 18px 42px rgba(4, 34, 73, 0.28) !important;

    font-family: var(--font-body, Inter, Arial, sans-serif) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: 0.075em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    -webkit-tap-highlight-color: transparent !important;
  }

  .mobile-tap-call svg {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 auto !important;
    stroke: currentColor !important;
  }

  .mobile-tap-call:focus-visible {
    outline: 3px solid rgba(79, 163, 217, 0.55) !important;
    outline-offset: 4px !important;
  }

  .mobile-tap-call:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 22px 50px rgba(4, 34, 73, 0.34) !important;
  }

  /* Keep it out of the way of form submit buttons and footer content. */
  body {
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
}

@media (max-width: 380px) {
  .mobile-tap-call {
    left: 12px !important;
    min-height: 46px !important;
    padding: 0 14px !important;
    font-size: 11.5px !important;
  }
}


/* ==========================================================================
   Final mobile QA fixes — requested 2026-05-18
   Desktop remains untouched; these rules only activate on tablet/mobile.
   ========================================================================== */

@media (max-width: 980px) {
  /* Move sticky tap-to-call to bottom right. */
  .mobile-tap-call {
    left: auto !important;
    right: 16px !important;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 780 !important;
  }

  /* Keep smart/back buttons sticky and below the sticky mobile header. */
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: 156px !important;
    z-index: 430 !important;
    margin-top: 0 !important;
  }

  .return-nav-wrap {
    padding-top: 12px !important;
    padding-bottom: 10px !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(247,251,253,0.96) 100%) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 178px !important;
  }

  /* About page only: place action buttons below the headshot on mobile. */
  .about-page .about-hero-copy > .about-actions {
    display: none !important;
  }

  .about-page .about-mobile-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 18px !important;
  }

  .about-page .about-mobile-actions .btn {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* Mobile about-page quote card: stop narrow text columns and keep the boat readable. */
  .about-page .about-quote {
    padding: 46px 0 !important;
  }

  .about-page .about-quote-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: auto !important;
    gap: 22px !important;
    padding: 30px 28px 28px !important;
    border-radius: 26px !important;
    align-items: center !important;
  }

  .about-page .about-quote-copy {
    max-width: none !important;
    width: 100% !important;
  }

  .about-page .about-quote-card blockquote {
    max-width: none !important;
    width: 100% !important;
    font-size: clamp(30px, 8vw, 42px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.02em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  .about-page .about-quote-card cite {
    margin-top: 18px !important;
    font-size: 20px !important;
  }

  .about-page .about-quote-visual {
    min-height: 112px !important;
    padding: 0 !important;
    justify-items: center !important;
  }

  .about-page .about-quote-boat {
    width: min(300px, 92%) !important;
    max-width: 300px !important;
    opacity: 0.76 !important;
    transform: none !important;
  }

  /* Condensed mobile footer. Desktop footer is unchanged. */
  .site-footer {
    padding: 32px 0 92px !important;
  }

  .footer-grid {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 22px 18px !important;
  }

  .footer-brand {
    grid-column: 1 / -1 !important;
  }

  .footer-logo {
    width: 190px !important;
    margin-bottom: 0 !important;
  }

  .footer-brand p {
    display: none !important;
  }

  .footer-column h3 {
    margin-bottom: 8px !important;
    font-size: 10px !important;
  }

  .footer-column a,
  .footer-column p,
  .footer-column li,
  .hours-row {
    font-size: 12.5px !important;
    line-height: 1.35 !important;
  }

  .footer-column a {
    margin-bottom: 7px !important;
  }

  .footer-contact-item {
    grid-template-columns: 16px 1fr !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }

  .hours-row {
    grid-template-columns: 58px 1fr !important;
    gap: 8px !important;
    margin-bottom: 6px !important;
  }

  .footer-bottom {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    margin-top: 22px !important;
    padding-top: 14px !important;
    gap: 8px !important;
    font-size: 11px !important;
  }
}

@media (min-width: 981px) {
  .about-page .about-mobile-actions {
    display: none !important;
  }

  /* Desktop sticky back buttons: keep below the 92px sticky header. */
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: 96px !important;
    z-index: 430 !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 116px !important;
  }
}

@media (max-width: 520px) {
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 146px !important;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .footer-column:last-child,
  .footer-column:nth-last-child(1) {
    grid-column: 1 / -1 !important;
  }

  .about-page .about-quote-card {
    padding: 28px 24px 26px !important;
  }

  .about-page .about-quote-card blockquote {
    font-size: clamp(28px, 8.2vw, 36px) !important;
  }
}


/* ==========================================================================
   Final fixed-header protection — header stays at top on every page.
   Loaded through the shared mobile-tap-to-call stylesheet.
   ========================================================================== */

html {
  scroll-padding-top: 116px !important;
}

body {
  padding-top: 92px !important;
}

.site-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1200 !important;
  transform: none !important;
}

@media (min-width: 981px) {
  .site-header {
    min-height: 92px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 96px !important;
    z-index: 980 !important;
  }
}

@media (max-width: 980px) {
  html {
    scroll-padding-top: 178px !important;
  }

  body {
    padding-top: 146px !important;
  }

  body .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1200 !important;
    transform: none !important;
  }

  .mobile-menu {
    z-index: 1300 !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 150px !important;
    z-index: 980 !important;
  }
}

@media (max-width: 520px) {
  body {
    padding-top: 146px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 150px !important;
  }
}


/* ==========================================================================
   Definitive hamburger reset — no dot/circle, original three-line icon only
   ========================================================================== */
@media (max-width: 980px) {
  body .site-header .mobile-menu-toggle,
  body .site-header button.mobile-menu-toggle,
  body .site-header button[aria-controls="mobile-menu"] {
    grid-area: toggle !important;
    justify-self: end !important;
    align-self: center !important;
    position: relative !important;
    inset: auto !important;
    z-index: 650 !important;
    display: grid !important;
    place-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    padding: 0 !important;
    border: 1px solid rgba(79, 163, 217, 0.24) !important;
    border-radius: 15px !important;
    background: #ffffff !important;
    color: var(--aim-blue, #042249) !important;
    box-shadow: 0 10px 24px rgba(4, 34, 73, 0.14) !important;
    overflow: visible !important;
    isolation: auto !important;
    transform: none !important;
    cursor: pointer !important;
  }

  body .site-header .mobile-menu-toggle::before,
  body .site-header .mobile-menu-toggle::after,
  body .site-header button.mobile-menu-toggle::before,
  body .site-header button.mobile-menu-toggle::after,
  body .site-header button[aria-controls="mobile-menu"]::before,
  body .site-header button[aria-controls="mobile-menu"]::after {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    opacity: 0 !important;
  }

  body .site-header .mobile-menu-toggle span,
  body .site-header .mobile-menu-toggle span::before,
  body .site-header .mobile-menu-toggle span::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    width: 25px !important;
    height: 2px !important;
    min-width: 25px !important;
    min-height: 2px !important;
    max-width: 25px !important;
    max-height: 2px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: currentColor !important;
    background-image: none !important;
    color: inherit !important;
    box-shadow: none !important;
    opacity: 1 !important;
    animation: none !important;
    transform-origin: center center !important;
    transition: transform 180ms ease, opacity 180ms ease, top 180ms ease !important;
  }

  body .site-header .mobile-menu-toggle span {
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
  }

  body .site-header .mobile-menu-toggle span::before {
    top: -8px !important;
    transform: translateX(-50%) !important;
  }

  body .site-header .mobile-menu-toggle span::after {
    top: 8px !important;
    transform: translateX(-50%) !important;
  }

  body .site-header .mobile-menu-toggle:hover,
  body .site-header .mobile-menu-toggle:focus-visible {
    transform: translateY(-1px) !important;
    border-color: rgba(79, 163, 217, 0.38) !important;
    box-shadow: 0 14px 28px rgba(4, 34, 73, 0.16) !important;
  }

  body.menu-open .site-header .mobile-menu-toggle span,
  body .site-header .mobile-menu-toggle[aria-expanded="true"] span {
    background: transparent !important;
    background-image: none !important;
  }

  body.menu-open .site-header .mobile-menu-toggle span::before,
  body .site-header .mobile-menu-toggle[aria-expanded="true"] span::before {
    top: 0 !important;
    transform: translateX(-50%) rotate(45deg) !important;
    background: currentColor !important;
    background-image: none !important;
  }

  body.menu-open .site-header .mobile-menu-toggle span::after,
  body .site-header .mobile-menu-toggle[aria-expanded="true"] span::after {
    top: 0 !important;
    transform: translateX(-50%) rotate(-45deg) !important;
    background: currentColor !important;
    background-image: none !important;
  }
}


/* ==========================================================================
   Subtle on-theme hamburger polish — simple, cleaner, slightly nicer
   ========================================================================== */
@media (max-width: 980px) {
  body .site-header .mobile-menu-toggle,
  body .site-header button.mobile-menu-toggle,
  body .site-header button[aria-controls="mobile-menu"] {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(79, 163, 217, 0.28) !important;
    background: linear-gradient(180deg, #ffffff 0%, #f4fafd 100%) !important;
    color: var(--aim-blue, #042249) !important;
    box-shadow:
      0 10px 22px rgba(4, 34, 73, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
    transition:
      transform 180ms ease,
      border-color 180ms ease,
      box-shadow 180ms ease,
      background 180ms ease !important;
  }

  body .site-header .mobile-menu-toggle:hover,
  body .site-header .mobile-menu-toggle:focus-visible {
    transform: translateY(-1px) !important;
    border-color: rgba(79, 163, 217, 0.42) !important;
    background: linear-gradient(180deg, #ffffff 0%, #edf7fc 100%) !important;
    box-shadow:
      0 14px 28px rgba(4, 34, 73, 0.15),
      inset 0 1px 0 rgba(255, 255, 255, 0.98) !important;
    outline: none !important;
  }

  body .site-header .mobile-menu-toggle:active {
    transform: translateY(0) scale(0.98) !important;
    box-shadow:
      0 8px 18px rgba(4, 34, 73, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
  }

  body .site-header .mobile-menu-toggle span,
  body .site-header .mobile-menu-toggle span::before,
  body .site-header .mobile-menu-toggle span::after {
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 2.25px !important;
    min-height: 2.25px !important;
    max-height: 2.25px !important;
    border-radius: 999px !important;
    background: currentColor !important;
  }

  body .site-header .mobile-menu-toggle span::before {
    top: -7px !important;
  }

  body .site-header .mobile-menu-toggle span::after {
    top: 7px !important;
  }

  body.menu-open .site-header .mobile-menu-toggle,
  body .site-header .mobile-menu-toggle[aria-expanded="true"] {
    background: linear-gradient(180deg, #ffffff 0%, #eaf5fb 100%) !important;
    border-color: rgba(79, 163, 217, 0.46) !important;
    box-shadow:
      0 12px 24px rgba(4, 34, 73, 0.14),
      inset 0 1px 0 rgba(255, 255, 255, 0.98) !important;
  }
}


/* ==========================================================================
   Mobile back button spacing fix — keep back pills below fixed header
   ========================================================================== */
@media (max-width: 980px) {
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: 178px !important;
    z-index: 980 !important;
    padding-top: 14px !important;
    padding-bottom: 12px !important;
    margin-top: 0 !important;
  }

  .return-nav,
  .smart-back-pill,
  .back-pill {
    margin-top: 0 !important;
  }

  .site-header + .return-nav-wrap,
  .site-header + .sticky-return-nav,
  .site-header + .smart-back-wrap,
  main > .return-nav-wrap:first-child,
  main > .sticky-return-nav:first-child,
  main > .smart-back-wrap:first-child {
    margin-top: 18px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 205px !important;
  }
}

@media (max-width: 520px) {
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 184px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 212px !important;
  }
}


/* ==========================================================================
   Mobile return/back bar gap fix — tighter below fixed header CTA
   ========================================================================== */
@media (max-width: 980px) {
  body {
    padding-top: 128px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 132px !important;
    margin-top: 0 !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }

  .return-nav-wrap + section,
  .sticky-return-nav + section,
  .smart-back-wrap + section,
  .return-nav-wrap + .page-hero,
  .sticky-return-nav + .page-hero,
  .smart-back-wrap + .page-hero {
    margin-top: 0 !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 162px !important;
  }
}

@media (max-width: 520px) {
  body {
    padding-top: 124px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 128px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 158px !important;
  }
}


/* ==========================================================================
   Final mobile back-button audit layer
   - Back buttons sit directly below the fixed mobile header
   - No blank gap above/below the back bar on mobile
   - Existing smart-back behavior remains intact
   ========================================================================== */
@media (max-width: 980px) {
  body {
    padding-top: 128px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: 128px !important;
    z-index: 980 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    pointer-events: none !important;
    background: #ffffff !important;
    border-top: 0 !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
    box-shadow: 0 6px 14px rgba(4, 34, 73, 0.035) !important;
  }

  .return-nav {
    pointer-events: auto !important;
    margin: 0 !important;
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  main > .return-nav-wrap:first-child,
  main > .sticky-return-nav:first-child,
  main > .smart-back-wrap:first-child {
    margin-top: 0 !important;
  }

  .return-nav-wrap + section,
  .sticky-return-nav + section,
  .smart-back-wrap + section {
    margin-top: 0 !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 168px !important;
  }
}

@media (max-width: 520px) {
  body {
    padding-top: 126px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 126px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 166px !important;
  }
}


/* ==========================================================================
   Final back-button behavior
   Back buttons are normal scrolling page elements on mobile and desktop,
   so they are never hidden under the fixed header.
   ========================================================================== */

/* Desktop/tablet: keep back buttons in document flow, below fixed header. */
.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap {
  position: relative !important;
  top: auto !important;
  z-index: 20 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 12px max(24px, calc((100vw - var(--container, 1180px)) / 2)) 10px !important;
  pointer-events: none !important;
  background: #ffffff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
  box-shadow: 0 6px 14px rgba(4, 34, 73, 0.035) !important;
}

.return-nav {
  pointer-events: auto !important;
  margin: 0 !important;
}

.return-nav-wrap + section,
.sticky-return-nav + section,
.smart-back-wrap + section {
  margin-top: 0 !important;
}

/* Mobile: no sticky/fixed back bars, no header overlap, no awkward gap. */
@media (max-width: 980px) {
  body {
    padding-top: 128px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: relative !important;
    top: auto !important;
    z-index: 20 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    background: #ffffff !important;
    border-top: 0 !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
    box-shadow: 0 6px 14px rgba(4, 34, 73, 0.035) !important;
  }

  .return-nav {
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  main > .return-nav-wrap:first-child,
  main > .sticky-return-nav:first-child,
  main > .smart-back-wrap:first-child {
    margin-top: 0 !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 148px !important;
  }
}

@media (max-width: 520px) {
  body {
    padding-top: 126px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 146px !important;
  }
}


/* ==========================================================================
   FINAL back button placement
   Back buttons are sticky directly under the fixed header on desktop and mobile.
   This overrides every earlier back-button experiment.
   ========================================================================== */

.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap {
  position: sticky !important;
  top: 92px !important;
  z-index: 1100 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 10px max(24px, calc((100vw - var(--container, 1180px)) / 2)) 10px !important;
  pointer-events: none !important;
  background: #ffffff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
  box-shadow: 0 8px 18px rgba(4, 34, 73, 0.045) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.return-nav {
  pointer-events: auto !important;
  margin: 0 !important;
  min-height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
}

main > .return-nav-wrap:first-child,
main > .sticky-return-nav:first-child,
main > .smart-back-wrap:first-child {
  margin-top: 0 !important;
}

.return-nav-wrap + section,
.sticky-return-nav + section,
.smart-back-wrap + section {
  margin-top: 0 !important;
}

html {
  scroll-padding-top: 148px !important;
}

section[id],
main[id] {
  scroll-margin-top: 148px !important;
}

/* Mobile header is taller because it includes the logo row and appointment CTA. */
@media (max-width: 980px) {
  body {
    padding-top: 128px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: 128px !important;
    z-index: 1100 !important;
    padding: 7px 16px !important;
    width: 100% !important;
    margin: 0 !important;
    background: #ffffff !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
    box-shadow: 0 7px 16px rgba(4, 34, 73, 0.04) !important;
  }

  .return-nav {
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  html {
    scroll-padding-top: 178px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 178px !important;
  }
}

@media (max-width: 520px) {
  body {
    padding-top: 126px !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: 126px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  html {
    scroll-padding-top: 176px !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: 176px !important;
  }
}


/* ==========================================================================
   ABSOLUTE FINAL back-button placement
   Uses the real measured header height, so back buttons are never covered.
   ========================================================================== */

:root {
  --aim-fixed-header-height: 92px;
  --aim-back-offset: var(--aim-fixed-header-height);
}

body {
  padding-top: var(--aim-fixed-header-height) !important;
}

.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap {
  position: sticky !important;
  top: var(--aim-back-offset) !important;
  z-index: 1050 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 10px max(24px, calc((100vw - var(--container, 1180px)) / 2)) 10px !important;
  pointer-events: none !important;
  background: #ffffff !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
  box-shadow: 0 8px 18px rgba(4, 34, 73, 0.045) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.return-nav {
  pointer-events: auto !important;
  margin: 0 !important;
  min-height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
}

main > .return-nav-wrap:first-child,
main > .sticky-return-nav:first-child,
main > .smart-back-wrap:first-child {
  margin-top: 0 !important;
}

.return-nav-wrap + section,
.sticky-return-nav + section,
.smart-back-wrap + section {
  margin-top: 0 !important;
}

html {
  scroll-padding-top: calc(var(--aim-fixed-header-height) + 58px) !important;
}

section[id],
main[id] {
  scroll-margin-top: calc(var(--aim-fixed-header-height) + 58px) !important;
}

@media (max-width: 980px) {
  :root {
    --aim-fixed-header-height: 146px;
    --aim-back-offset: var(--aim-fixed-header-height);
  }

  body {
    padding-top: var(--aim-fixed-header-height) !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: sticky !important;
    top: var(--aim-back-offset) !important;
    z-index: 1050 !important;
    padding: 8px 16px !important;
    width: 100% !important;
    margin: 0 !important;
    background: #ffffff !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.13) !important;
    box-shadow: 0 7px 16px rgba(4, 34, 73, 0.04) !important;
  }

  .return-nav {
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  html {
    scroll-padding-top: calc(var(--aim-fixed-header-height) + 54px) !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: calc(var(--aim-fixed-header-height) + 54px) !important;
  }
}


/* ==========================================================================
   BACK BUTTON FINAL LOCK
   Requirements:
   1. Every non-home subpage with a back button keeps it always onscreen.
   2. It is fixed directly under the actual fixed header.
   3. It is never covered by the header.
   4. Page content is pushed below the fixed back bar when a back button exists.
   ========================================================================== */

:root {
  --aim-fixed-header-height: 92px;
  --aim-back-offset: var(--aim-fixed-header-height);
  --aim-back-bar-height: 62px;
}

body {
  padding-top: var(--aim-fixed-header-height) !important;
}

body.has-smart-back main {
  padding-top: var(--aim-back-bar-height) !important;
}

.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap,
[data-smart-back-wrap] {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: var(--aim-back-offset) !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: var(--aim-back-bar-height) !important;
  min-height: var(--aim-back-bar-height) !important;
  margin: 0 !important;
  padding: 10px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  pointer-events: none !important;
  display: flex !important;
  align-items: center !important;
  background: rgba(255, 255, 255, 0.98) !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(79, 163, 217, 0.15) !important;
  box-shadow: 0 8px 18px rgba(4, 34, 73, 0.055) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  transform: none !important;
}

.return-nav {
  pointer-events: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 40px !important;
  margin: 0 !important;
  white-space: nowrap !important;
  position: relative !important;
  z-index: 1 !important;
}

.return-nav-wrap + section,
.sticky-return-nav + section,
.smart-back-wrap + section,
[data-smart-back-wrap] + section {
  margin-top: 0 !important;
}

html {
  scroll-padding-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 18px) !important;
}

section[id],
main[id] {
  scroll-margin-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 18px) !important;
}

@media (max-width: 980px) {
  :root {
    --aim-fixed-header-height: 146px;
    --aim-back-offset: var(--aim-fixed-header-height);
    --aim-back-bar-height: 58px;
  }

  body {
    padding-top: var(--aim-fixed-header-height) !important;
  }

  body.has-smart-back main {
    padding-top: var(--aim-back-bar-height) !important;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap,
  [data-smart-back-wrap] {
    top: var(--aim-back-offset) !important;
    height: var(--aim-back-bar-height) !important;
    min-height: var(--aim-back-bar-height) !important;
    padding: 8px 16px !important;
    z-index: 1190 !important;
  }

  .return-nav {
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  html {
    scroll-padding-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 14px) !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 14px) !important;
  }
}

@media (max-width: 520px) {
  :root {
    --aim-fixed-header-height: 146px;
    --aim-back-bar-height: 56px;
  }

  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap,
  [data-smart-back-wrap] {
    height: var(--aim-back-bar-height) !important;
    min-height: var(--aim-back-bar-height) !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
}


/* ==========================================================================
   BACK BUTTON VISUAL FINAL
   Remove the visible back-bar/gap. Only the button itself shows.
   ========================================================================== */

.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap,
[data-smart-back-wrap] {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;

  height: 50px !important;
  min-height: 50px !important;
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}

.return-nav {
  background: linear-gradient(135deg, #031a38 0%, #042249 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(4, 34, 73, 0.18) !important;
  border: 1px solid rgba(4, 34, 73, 0.12) !important;
}

body.has-smart-back main {
  padding-top: 50px !important;
}

:root {
  --aim-back-bar-height: 50px !important;
}

@media (max-width: 980px) {
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap,
  [data-smart-back-wrap] {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;

    height: 50px !important;
    min-height: 50px !important;
    padding: 5px 16px !important;
  }

  body.has-smart-back main {
    padding-top: 50px !important;
  }

  :root {
    --aim-back-bar-height: 50px !important;
  }
}

@media (max-width: 520px) {
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap,
  [data-smart-back-wrap] {
    height: 48px !important;
    min-height: 48px !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  body.has-smart-back main {
    padding-top: 48px !important;
  }

  :root {
    --aim-back-bar-height: 48px !important;
  }
}


/* ==========================================================================
   STRICT SMART BACK BUTTON LOCK
   One fixed visible button under the fixed header. Transparent container.
   Applies identically on Contact and every other page with [data-smart-back-wrap].
   ========================================================================== */

:root {
  --aim-fixed-header-height: 92px;
  --aim-back-offset: var(--aim-fixed-header-height);
  --aim-back-bar-height: 50px;
}

body {
  padding-top: var(--aim-fixed-header-height) !important;
}

body.has-smart-back main {
  padding-top: var(--aim-back-bar-height) !important;
}

[data-smart-back-wrap],
.return-nav-wrap {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: var(--aim-back-offset) !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: var(--aim-back-bar-height) !important;
  min-height: var(--aim-back-bar-height) !important;
  margin: 0 !important;
  padding: 5px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  pointer-events: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transform: none !important;
}

[data-smart-back],
.return-nav {
  pointer-events: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 17px !important;
  border: 1px solid rgba(4, 34, 73, 0.14) !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #031a38 0%, #042249 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(4, 34, 73, 0.20) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: 0.08em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

[data-smart-back]::before,
.return-nav::before {
  content: "←" !important;
  width: 23px !important;
  height: 23px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: var(--aim-sky-soft, #eaf5fb) !important;
  color: var(--aim-sky-700, #2f7fb3) !important;
  font-size: 15px !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}

[data-smart-back]:hover,
.return-nav:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 30px rgba(4, 34, 73, 0.24) !important;
}

[data-smart-back]:focus-visible,
.return-nav:focus-visible {
  outline: 3px solid rgba(79, 163, 217, 0.55) !important;
  outline-offset: 4px !important;
}

[data-smart-back-wrap] + section,
.return-nav-wrap + section {
  margin-top: 0 !important;
}

html {
  scroll-padding-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 14px) !important;
}

section[id],
main[id] {
  scroll-margin-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 14px) !important;
}

@media (max-width: 980px) {
  :root {
    --aim-fixed-header-height: 146px;
    --aim-back-offset: var(--aim-fixed-header-height);
    --aim-back-bar-height: 50px;
  }

  body {
    padding-top: var(--aim-fixed-header-height) !important;
  }

  body.has-smart-back main {
    padding-top: var(--aim-back-bar-height) !important;
  }

  [data-smart-back-wrap],
  .return-nav-wrap {
    top: var(--aim-back-offset) !important;
    height: var(--aim-back-bar-height) !important;
    min-height: var(--aim-back-bar-height) !important;
    padding: 5px 16px !important;
    z-index: 1190 !important;
  }

  [data-smart-back],
  .return-nav {
    min-height: 40px !important;
    max-width: calc(100vw - 32px) !important;
  }

  html {
    scroll-padding-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 12px) !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: calc(var(--aim-fixed-header-height) + var(--aim-back-bar-height) + 12px) !important;
  }
}


/* ==========================================================================
   DETERMINISTIC SMART BACK LAYOUT LOCK
   The transparent wrapper is fixed under the measured header.
   The only visible element is the Back button.
   ========================================================================== */
:root {
  --aim-fixed-header-height: 92px;
  --aim-back-offset: var(--aim-fixed-header-height);
  --aim-back-bar-height: 50px;
}

body {
  padding-top: var(--aim-fixed-header-height) !important;
}

body.has-smart-back main {
  padding-top: var(--aim-back-bar-height) !important;
}

[data-smart-back-wrap],
.return-nav-wrap {
  position: fixed !important;
  top: var(--aim-back-offset) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: var(--aim-back-bar-height) !important;
  min-height: var(--aim-back-bar-height) !important;
  margin: 0 !important;
  padding: 5px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  pointer-events: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

[data-smart-back],
.return-nav {
  pointer-events: auto !important;
}

@media (max-width: 980px) {
  :root {
    --aim-fixed-header-height: 146px;
    --aim-back-offset: var(--aim-fixed-header-height);
    --aim-back-bar-height: 50px;
  }

  [data-smart-back-wrap],
  .return-nav-wrap {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ==========================================================================
   BACK BUTTON BREATHING ROOM FINAL
   Lowers fixed smart Back buttons so they are never covered by the header.
   Keeps the wrapper transparent; only the button itself is visible.
   ========================================================================== */
:root {
  --aim-back-header-gap: 12px;
  --aim-back-offset: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-header-gap));
  --aim-back-bar-height: 56px;
}

body.has-smart-back main {
  padding-top: calc(var(--aim-back-bar-height) + var(--aim-back-header-gap)) !important;
}

[data-smart-back-wrap],
.return-nav-wrap {
  top: var(--aim-back-offset) !important;
  height: var(--aim-back-bar-height) !important;
  min-height: var(--aim-back-bar-height) !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html {
  scroll-padding-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-header-gap) + var(--aim-back-bar-height) + 16px) !important;
}

section[id],
main[id] {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-header-gap) + var(--aim-back-bar-height) + 16px) !important;
}

@media (max-width: 980px) {
  :root {
    --aim-back-header-gap: 14px;
    --aim-back-offset: calc(var(--aim-fixed-header-height, 146px) + var(--aim-back-header-gap));
    --aim-back-bar-height: 56px;
  }

  body.has-smart-back main {
    padding-top: calc(var(--aim-back-bar-height) + var(--aim-back-header-gap)) !important;
  }

  [data-smart-back-wrap],
  .return-nav-wrap {
    top: var(--aim-back-offset) !important;
    height: var(--aim-back-bar-height) !important;
    min-height: var(--aim-back-bar-height) !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }

  html {
    scroll-padding-top: calc(var(--aim-fixed-header-height, 146px) + var(--aim-back-header-gap) + var(--aim-back-bar-height) + 14px) !important;
  }

  section[id],
  main[id] {
    scroll-margin-top: calc(var(--aim-fixed-header-height, 146px) + var(--aim-back-header-gap) + var(--aim-back-bar-height) + 14px) !important;
  }
}

@media (max-width: 520px) {
  :root {
    --aim-back-header-gap: 14px;
    --aim-back-bar-height: 54px;
  }

  [data-smart-back-wrap],
  .return-nav-wrap {
    height: var(--aim-back-bar-height) !important;
    min-height: var(--aim-back-bar-height) !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}


/* ==========================================================================
   BACK BUTTON BACKGROUND TRANSPARENCY LOCK
   The fixed back-button wrapper is fully invisible: no blur, no tint,
   no shadow, no border. Only the button itself is visible/clickable.
   ========================================================================== */

[data-smart-back-wrap],
.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  opacity: 1 !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  outline: 0 !important;
}

/* Kill any pseudo-element blur/overlay that earlier CSS may have added. */
[data-smart-back-wrap]::before,
[data-smart-back-wrap]::after,
.return-nav-wrap::before,
.return-nav-wrap::after,
.sticky-return-nav::before,
.sticky-return-nav::after,
.smart-back-wrap::before,
.smart-back-wrap::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  background-image: none !important;
  opacity: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Preserve the button itself. */
[data-smart-back],
.return-nav {
  opacity: 1 !important;
}

@media (max-width: 980px) {
  [data-smart-back-wrap],
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}


/* ==========================================================================
   FINAL SITE QA PASS
   Header stability, BP/resource mobile hero fix, no horizontal overflow,
   transparent fixed smart-back area, and safer mobile button wrapping.
   ========================================================================== */

html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

*,
*::before,
*::after {
  box-sizing: border-box !important;
}

.site-header {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  width: 100% !important;
  max-width: 100vw !important;
  z-index: 1200 !important;
  background: #ffffff !important;
  overflow: visible !important;
  transform: none !important;
}

.site-header .nav-container,
.site-header .header-inner {
  max-width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin-inline: auto !important;
}

body {
  padding-top: var(--aim-fixed-header-height, 92px) !important;
}

/* Back button: visible button only; wrapper remains visually 0% opacity. */
[data-smart-back-wrap],
.return-nav-wrap,
.sticky-return-nav,
.smart-back-wrap {
  position: fixed !important;
  top: calc(var(--aim-fixed-header-height, 92px) + 12px) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: 56px !important;
  min-height: 56px !important;
  padding: 6px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  pointer-events: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  opacity: 1 !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

[data-smart-back-wrap]::before,
[data-smart-back-wrap]::after,
.return-nav-wrap::before,
.return-nav-wrap::after,
.sticky-return-nav::before,
.sticky-return-nav::after,
.smart-back-wrap::before,
.smart-back-wrap::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.has-smart-back main {
  padding-top: 68px !important;
}

[data-smart-back],
.return-nav {
  pointer-events: auto !important;
}

/* Mobile/tablet: stabilize header and prevent BP/resource inline hero grids from breaking layout. */
@media (max-width: 980px) {
  .site-header .nav-container,
  .site-header .header-inner {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    margin-inline: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 54px !important;
    grid-template-rows: auto auto !important;
    grid-template-areas:
      "brand toggle"
      "cta cta" !important;
    gap: 10px 12px !important;
    padding: 12px 0 12px !important;
    overflow: visible !important;
  }

  .site-header .brand,
  .site-header .logo-link {
    grid-area: brand !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  .site-header .brand-logo,
  .site-header .logo {
    width: min(220px, calc(100vw - 112px)) !important;
    max-width: min(220px, calc(100vw - 112px)) !important;
    height: auto !important;
    display: block !important;
  }

  .site-header .mobile-menu-toggle {
    grid-area: toggle !important;
    justify-self: end !important;
  }

  .site-header .nav-container > .nav-cta,
  .site-header .header-inner > .nav-cta {
    grid-area: cta !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    display: flex !important;
  }

  .mobile-safe-two-col,
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  [style*="display:flex"][style*="gap:var(--space-4)"] {
    flex-wrap: wrap !important;
  }

  main img,
  section img {
    max-width: 100% !important;
    height: auto !important;
  }

  [data-smart-back-wrap],
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    top: calc(var(--aim-fixed-header-height, 146px) + 14px) !important;
    height: 56px !important;
    min-height: 56px !important;
    padding: 6px 16px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.has-smart-back main {
    padding-top: 70px !important;
  }
}

@media (max-width: 520px) {
  .site-header .nav-container,
  .site-header .header-inner {
    width: calc(100vw - 28px) !important;
    max-width: calc(100vw - 28px) !important;
    grid-template-columns: minmax(0, 1fr) 52px !important;
  }

  .site-header .brand-logo,
  .site-header .logo {
    width: min(205px, calc(100vw - 104px)) !important;
    max-width: min(205px, calc(100vw - 104px)) !important;
  }
}


/* ==========================================================================
   BP page mobile chart/table QA
   Desktop chart layout remains unchanged. Mobile converts dense chart grids
   into readable stacked cards instead of tiny squeezed columns.
   ========================================================================== */

@media (max-width: 780px) {
  .bp-category-chart,
  .bp-log-card {
    overflow: visible !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 34px rgba(4, 34, 73, 0.10) !important;
  }

  .bp-category-header,
  .bp-log-header {
    display: none !important;
  }

  .bp-category-row,
  .bp-crisis-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 18px 18px 16px !important;
    align-items: start !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.18) !important;
  }

  .bp-category-row > div:first-child,
  .bp-crisis-row > div:first-child {
    align-items: center !important;
    gap: 10px !important;
  }

  .bp-category-row > span:nth-child(2)::before,
  .bp-crisis-row > span:nth-child(2)::before {
    content: "Systolic: ";
    display: inline !important;
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-category-row > span:nth-child(3)::before,
  .bp-crisis-row > span:nth-child(3)::before {
    content: "Diastolic: ";
    display: inline !important;
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-category-row > span:nth-child(2),
  .bp-category-row > span:nth-child(3),
  .bp-crisis-row > span:nth-child(2),
  .bp-crisis-row > span:nth-child(3) {
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  .bp-category-row > span:nth-child(4),
  .bp-crisis-row > span:nth-child(4) {
    font-size: 14px !important;
    line-height: 1.45 !important;
    max-width: 100% !important;
  }

  .bp-log-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px 12px !important;
    padding: 16px 18px !important;
    align-items: start !important;
  }

  .bp-log-row > span {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
    min-width: 0 !important;
  }

  .bp-log-row > span:nth-child(1) {
    grid-column: 1 / -1 !important;
  }

  .bp-log-row > span:nth-child(1)::before {
    content: "Date/Time: ";
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-log-row > span:nth-child(2)::before {
    content: "Systolic: ";
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-log-row > span:nth-child(3)::before {
    content: "Diastolic: ";
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-log-row > span:nth-child(4)::before {
    content: "Pulse: ";
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .bp-log-row > span:nth-child(5) {
    grid-column: 1 / -1 !important;
  }

  .bp-log-row > span:nth-child(5)::before {
    content: "Notes: ";
    color: var(--aim-blue, #042249) !important;
    font-weight: 800 !important;
  }

  .article-reading-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}

@media (max-width: 420px) {
  .bp-category-row,
  .bp-crisis-row,
  .bp-log-row {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }

  .bp-log-row {
    grid-template-columns: 1fr !important;
  }

  .bp-log-row > span {
    grid-column: 1 / -1 !important;
  }
}


/* ==========================================================================
   Booking flow cleanup and prototype calendar interaction
   ========================================================================== */

.booking-step-2 .booking-layout,
.booking-step-3 .booking-layout {
  align-items: start !important;
}

.booking-test-date {
  font: inherit !important;
  cursor: pointer !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.booking-test-date.selected,
.calendar-day.selected {
  background: var(--aim-olive-900, #4f5d3c) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(79, 93, 60, 0.22) !important;
}

.booking-test-times {
  margin-top: var(--space-6, 24px) !important;
  padding: var(--space-5, 20px) !important;
  border: 1px solid rgba(79, 163, 217, 0.20) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 100%) !important;
}

.booking-test-times[hidden],
.appointment-confirmation[hidden] {
  display: none !important;
}

.booking-test-note {
  margin: 0 0 14px !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}

.booking-confirm-btn {
  margin-top: var(--space-5, 20px) !important;
}

.booking-confirm-btn:disabled {
  cursor: not-allowed !important;
  opacity: 0.55 !important;
}

.appointment-confirmation {
  margin-top: var(--space-6, 24px) !important;
  padding: var(--space-5, 20px) !important;
  border: 1px solid rgba(79, 93, 60, 0.20) !important;
  border-radius: 22px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 12px 28px rgba(4, 34, 73, 0.08) !important;
}

.appointment-confirmation h3 {
  margin: 0 0 8px !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(24px, 2.6vw, 34px) !important;
}

.appointment-confirmation p:last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 780px) {
  .booking-step-2 .booking-layout,
  .booking-step-3 .booking-layout {
    grid-template-columns: 1fr !important;
  }

  .calendar-grid {
    gap: 6px !important;
  }

  .calendar-day,
  .calendar-day-name {
    min-width: 0 !important;
  }

  .time-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* ==========================================================================
   Booking columns layout final
   Step 2: calendar in column one, times below calendar, confirmation full-width
   above the columns after confirm. Support content falls below confirmation.
   ========================================================================== */

.booking-two-column-layout,
.booking-step-2 .booking-layout,
.booking-step-3 .booking-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) !important;
  gap: clamp(24px, 4vw, 44px) !important;
  align-items: start !important;
}

.booking-primary-column {
  grid-column: 1 !important;
  min-width: 0 !important;
}

.booking-support-sidebar {
  grid-column: 2 !important;
  min-width: 0 !important;
}

.booking-step-2 .calendar-card {
  order: 1 !important;
}

.booking-step-2 .booking-test-times {
  margin-top: var(--space-6, 24px) !important;
  padding: var(--space-5, 20px) !important;
  border: 1px solid rgba(79, 163, 217, 0.20) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 100%) !important;
}

.booking-step-2 .booking-confirmation-wide {
  width: 100% !important;
  margin: 0 0 var(--space-6, 24px) !important;
  padding: clamp(22px, 3vw, 34px) !important;
  border: 1px solid rgba(79, 93, 60, 0.20) !important;
  border-radius: 24px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 14px 34px rgba(4, 34, 73, 0.10) !important;
}

.booking-step-2.is-confirmed .booking-confirmation-wide {
  display: block !important;
}

.booking-step-2.is-confirmed .booking-layout {
  margin-top: 0 !important;
}

.booking-test-times[hidden],
.booking-confirmation-wide[hidden],
.appointment-confirmation[hidden] {
  display: none !important;
}

.booking-confirm-btn {
  margin-top: var(--space-5, 20px) !important;
}

.booking-confirm-btn:disabled {
  cursor: not-allowed !important;
  opacity: 0.55 !important;
}

.booking-test-date {
  font: inherit !important;
  cursor: pointer !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.booking-test-date.selected,
.calendar-day.selected {
  background: var(--aim-olive-900, #4f5d3c) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(79, 93, 60, 0.22) !important;
}

@media (max-width: 880px) {
  .booking-two-column-layout,
  .booking-step-2 .booking-layout,
  .booking-step-3 .booking-layout {
    grid-template-columns: 1fr !important;
  }

  .booking-primary-column,
  .booking-support-sidebar {
    grid-column: 1 !important;
  }

  .booking-step-2 .booking-support-sidebar,
  .booking-step-3 .booking-support-sidebar {
    margin-top: var(--space-5, 20px) !important;
  }

  .time-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* ==========================================================================
   Booking screenshot layout final
   Step 2 uses three columns: reason/continue, calendar+times, support cards.
   Confirmation appears above the columns and pushes all columns below it.
   ========================================================================== */

.booking-three-column-layout,
.booking-step-2 .booking-layout.booking-three-column-layout {
  display: grid !important;
  grid-template-columns: minmax(260px, 0.92fr) minmax(360px, 1.25fr) minmax(260px, 0.95fr) !important;
  gap: clamp(24px, 3vw, 44px) !important;
  align-items: start !important;
}

.booking-reason-column {
  grid-column: 1 !important;
  min-width: 0 !important;
}

.booking-calendar-column {
  grid-column: 2 !important;
  min-width: 0 !important;
}

.booking-support-sidebar {
  grid-column: 3 !important;
  min-width: 0 !important;
}

.booking-confirmation-wide {
  width: 100% !important;
  margin: 0 0 var(--space-6, 24px) !important;
  padding: clamp(22px, 3vw, 34px) !important;
  border: 1px solid rgba(79, 93, 60, 0.20) !important;
  border-radius: 24px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 14px 34px rgba(4, 34, 73, 0.10) !important;
}

.booking-confirmation-wide[hidden],
.booking-test-times[hidden] {
  display: none !important;
}

.booking-step-2.is-confirmed .booking-confirmation-wide {
  display: block !important;
}

.booking-test-times {
  margin-top: var(--space-6, 24px) !important;
  padding: var(--space-5, 20px) !important;
  border: 1px solid rgba(79, 163, 217, 0.20) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 100%) !important;
}

.booking-test-date {
  font: inherit !important;
  cursor: pointer !important;
  border: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.booking-test-date.selected,
.calendar-day.selected {
  background: var(--aim-olive-900, #4f5d3c) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(79, 93, 60, 0.22) !important;
}

.booking-confirm-btn {
  margin-top: var(--space-5, 20px) !important;
}

.booking-confirm-btn:disabled {
  cursor: not-allowed !important;
  opacity: 0.55 !important;
}

@media (max-width: 1100px) {
  .booking-three-column-layout,
  .booking-step-2 .booking-layout.booking-three-column-layout {
    grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1.1fr) !important;
  }

  .booking-reason-column {
    grid-column: 1 !important;
  }

  .booking-calendar-column {
    grid-column: 2 !important;
  }

  .booking-support-sidebar {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}

@media (max-width: 780px) {
  .booking-three-column-layout,
  .booking-step-2 .booking-layout.booking-three-column-layout {
    grid-template-columns: 1fr !important;
  }

  .booking-reason-column,
  .booking-calendar-column,
  .booking-support-sidebar {
    grid-column: 1 !important;
  }

  .booking-support-sidebar {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .time-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* ==========================================================================
   BOOKING STEP 2 FINAL PLACEMENT LOCK
   Fixes the older .calendar-card order rule that pushed the calendar below
   the reason/support columns. Desktop should match the screenshot:
   left = reason/continue, center = calendar + times, right = support cards.
   ========================================================================== */

@media (min-width: 1101px) {
  .booking-step-2 .booking-layout.booking-three-column-layout {
    display: grid !important;
    grid-template-columns: minmax(260px, 0.92fr) minmax(420px, 1.25fr) minmax(280px, 0.95fr) !important;
    gap: clamp(28px, 3vw, 54px) !important;
    align-items: start !important;
  }

  .booking-step-2 .booking-reason-column {
    grid-column: 1 !important;
    grid-row: 1 !important;
    order: 0 !important;
    align-self: start !important;
    min-width: 0 !important;
  }

  .booking-step-2 .booking-calendar-column,
  .booking-step-2 .calendar-card.booking-calendar-column {
    grid-column: 2 !important;
    grid-row: 1 !important;
    order: 0 !important;
    align-self: start !important;
    min-width: 0 !important;
  }

  .booking-step-2 .booking-support-sidebar {
    grid-column: 3 !important;
    grid-row: 1 !important;
    order: 0 !important;
    align-self: start !important;
    min-width: 0 !important;
  }
}

@media (min-width: 781px) and (max-width: 1100px) {
  .booking-step-2 .booking-layout.booking-three-column-layout {
    display: grid !important;
    grid-template-columns: minmax(260px, 0.9fr) minmax(340px, 1.1fr) !important;
    gap: 28px !important;
    align-items: start !important;
  }

  .booking-step-2 .booking-reason-column {
    grid-column: 1 !important;
    grid-row: 1 !important;
    order: 0 !important;
  }

  .booking-step-2 .booking-calendar-column,
  .booking-step-2 .calendar-card.booking-calendar-column {
    grid-column: 2 !important;
    grid-row: 1 !important;
    order: 0 !important;
  }

  .booking-step-2 .booking-support-sidebar {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    order: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}

.booking-step-2 .booking-test-times {
  margin-top: var(--space-6, 24px) !important;
}

.booking-step-2 .booking-confirmation-wide {
  display: block !important;
  width: 100% !important;
  margin: 0 0 var(--space-6, 24px) !important;
}

.booking-step-2 .booking-confirmation-wide[hidden] {
  display: none !important;
}


/* ==========================================================================
   Booking scroll consistency
   Revealing times/confirmation does not force unexpected scroll jumps.
   ========================================================================== */
.booking-step-2 .booking-test-times,
.booking-step-2 .booking-confirmation-wide {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + 72px) !important;
}

.booking-step-2 .booking-layout,
.booking-step-2 .booking-three-column-layout {
  align-items: start !important;
}

.booking-step-2 .booking-confirmation-wide[hidden],
.booking-step-2 .booking-test-times[hidden] {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .booking-step-2 * {
    scroll-behavior: auto !important;
  }
}


/* ==========================================================================
   Booking calendar final functions
   Weekdays are clickable; weekends are inactive; selected date shows green oval.
   ========================================================================== */
.booking-step-2 .calendar-day {
  display: grid !important;
  place-items: center !important;
}

.booking-step-2 button.calendar-day {
  border: 0 !important;
  background: transparent !important;
  color: var(--aim-text, #142033) !important;
  font: inherit !important;
  cursor: pointer !important;
  min-height: 34px !important;
  border-radius: 999px !important;
  transition: background 160ms ease, color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}

.booking-step-2 button.calendar-day:hover,
.booking-step-2 button.calendar-day:focus-visible {
  background: var(--aim-sky-soft, #eaf5fb) !important;
  color: var(--aim-blue, #042249) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(79, 163, 217, 0.25) !important;
}

.booking-step-2 button.calendar-day.selected,
.booking-step-2 button.calendar-day.booking-test-date.selected {
  background: var(--aim-olive-900, #4f5d3c) !important;
  color: #ffffff !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 18px rgba(79, 93, 60, 0.22) !important;
}

.booking-step-2 .calendar-day.is-weekend,
.booking-step-2 .calendar-day.is-muted {
  color: rgba(20, 32, 51, 0.38) !important;
  cursor: not-allowed !important;
}

.booking-step-2 .calendar-day.is-weekend {
  background: rgba(4, 34, 73, 0.03) !important;
  border-radius: 999px !important;
}

.booking-step-2 .calendar-day.is-muted {
  background: transparent !important;
}

.booking-step-2 .booking-test-times[hidden],
.booking-step-2 .booking-confirmation-wide[hidden] {
  display: none !important;
}


/* ==========================================================================
   Footer social icon final order/polish
   Order: Google, Instagram, Facebook, TikTok.
   ========================================================================== */
.footer-social a {
  display: inline-grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  line-height: 1 !important;
  transition: transform 160ms ease, color 160ms ease, background 160ms ease !important;
}

.footer-social a:hover,
.footer-social a:focus-visible {
  color: #ffffff !important;
  background: rgba(255,255,255,0.10) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}


/* ==========================================================================
   Booking tight-scroll behavior
   Calendar interactions reveal nearby content with small controlled movement.
   ========================================================================== */
.booking-step-2 .booking-test-times {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 22px) !important;
}

.booking-step-2 .booking-confirmation-wide {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 22px) !important;
}

.booking-step-2 .time-option,
.booking-step-2 .calendar-day {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 22px) !important;
}

@media (prefers-reduced-motion: reduce) {
  .booking-step-2 {
    scroll-behavior: auto !important;
  }
}


/* ==========================================================================
   Booking subtle scroll refinement
   Keeps Continue/date/time/confirm interactions calm and close.
   ========================================================================== */

.booking-step-2 .booking-test-times,
.booking-step-2 .booking-confirmation-wide {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 18px) !important;
}

.booking-step-2 .booking-test-times {
  margin-top: 16px !important;
}

.booking-step-2 .booking-confirmation-wide {
  margin-bottom: 18px !important;
}

.booking-step-2 .booking-reason-column .btn[href="#date-title"] {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 18px) !important;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}


/* ==========================================================================
   Booking no-jump scroll refinement
   Continue/date/time/confirm interactions stay close and never jump to top.
   ========================================================================== */

.booking-continue-to-calendar {
  cursor: pointer !important;
}

.booking-step-2 .booking-test-times {
  margin-top: 14px !important;
}

.booking-step-2 .booking-confirmation-wide {
  margin-bottom: 16px !important;
}

.booking-step-2 .booking-test-times,
.booking-step-2 .booking-confirmation-wide,
.booking-step-2 .booking-calendar-column {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 18px) !important;
}


/* ==========================================================================
   Booking confirmation focus
   Confirm Appointment scrolls the You're All Set card under the fixed header.
   ========================================================================== */
#appointment-confirmation {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 14px) !important;
}


/* ==========================================================================
   Booking Continue FINAL scroll target
   Continue aligns the steps/progress row directly below the fixed header/back.
   ========================================================================== */
#booking-steps-progress,
#booking-step-2 {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 10px) !important;
}

.booking-continue-to-calendar {
  cursor: pointer !important;
}


/* ==========================================================================
   Booking reason choices / Other reason textbox
   ========================================================================== */
.booking-reason-warning {
  margin: 0 0 var(--space-5, 20px) !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(79, 163, 217, 0.22) !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 100%) !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
}

.booking-reason-warning strong {
  color: var(--aim-blue, #042249) !important;
}

.choice {
  cursor: pointer !important;
  user-select: none !important;
}

.choice:focus-visible {
  outline: 3px solid rgba(79, 163, 217, 0.45) !important;
  outline-offset: 3px !important;
}

.booking-other-reason {
  margin: var(--space-5, 20px) 0 0 !important;
  padding: 18px !important;
  border: 1px solid rgba(79, 93, 60, 0.20) !important;
  border-radius: 18px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 10px 24px rgba(4, 34, 73, 0.06) !important;
}

.booking-other-reason[hidden] {
  display: none !important;
}

.booking-other-reason label {
  display: block !important;
  margin-bottom: 8px !important;
  color: var(--aim-blue, #042249) !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

.booking-other-reason textarea {
  width: 100% !important;
  min-height: 112px !important;
  resize: vertical !important;
  padding: 13px 14px !important;
  border: 1px solid rgba(79, 163, 217, 0.26) !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  color: var(--aim-text, #142033) !important;
  font: inherit !important;
  line-height: 1.45 !important;
}

.booking-other-reason textarea:focus {
  outline: 3px solid rgba(79, 163, 217, 0.24) !important;
  border-color: rgba(79, 163, 217, 0.54) !important;
}

.booking-other-warning {
  margin: 10px 0 0 !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 12.5px !important;
  line-height: 1.42 !important;
}


/* ==========================================================================
   Booking Continue no-top-jump final
   Continue is a button and only tiny-nudges toward the calendar if needed.
   ========================================================================== */
.booking-continue-to-calendar {
  cursor: pointer !important;
}

button.booking-continue-to-calendar {
  border: 0 !important;
  font: inherit !important;
}


/* ==========================================================================
   Booking progress advancement
   Top steps update as the prototype functions advance.
   ========================================================================== */
.booking-progress-dynamic .step.is-upcoming {
  opacity: 0.72 !important;
}

.booking-progress-dynamic .step.is-complete {
  opacity: 1 !important;
}

.booking-progress-dynamic .step.is-complete .step-number {
  background: var(--aim-olive-900, #4f5d3c) !important;
  color: #ffffff !important;
}

.booking-progress-dynamic .step.is-complete .step-number::after {
  content: "✓";
  font-size: 12px;
  line-height: 1;
}

.booking-progress-dynamic .step.is-complete .step-number {
  color: transparent !important;
  position: relative;
}

.booking-progress-dynamic .step.is-complete .step-number::after {
  color: #ffffff !important;
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}


/* ==========================================================================
   Contact form confirmation
   ========================================================================== */
.contact-form-confirmation {
  margin-top: 20px !important;
  padding: 22px !important;
  border: 1px solid rgba(79, 93, 60, 0.22) !important;
  border-radius: 22px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 14px 34px rgba(4, 34, 73, 0.10) !important;
}

.contact-form-confirmation[hidden] {
  display: none !important;
}

.contact-form-confirmation h3 {
  margin: 0 0 8px !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(24px, 2.4vw, 32px) !important;
}

.contact-form-confirmation p:last-child {
  margin-bottom: 0 !important;
}

.contact-page-form.is-submitted {
  opacity: 0.72 !important;
}


/* ==========================================================================
   SMART BACK FINAL LOCK
   Visible only on subpages; transparent wrapper; fixed below measured header.
   Main pages have no visible Back button.
   ========================================================================== */
:root {
  --aim-fixed-header-height: 92px;
  --aim-back-bar-height: 56px;
}

body {
  padding-top: var(--aim-fixed-header-height) !important;
}

body.has-smart-back main {
  padding-top: calc(var(--aim-back-bar-height) + 14px) !important;
}

[data-smart-back-wrap],
.return-nav-wrap {
  position: fixed !important;
  top: calc(var(--aim-fixed-header-height, 92px) + 12px) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: var(--aim-back-bar-height) !important;
  min-height: var(--aim-back-bar-height) !important;
  margin: 0 !important;
  padding: 6px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  display: flex !important;
  align-items: center !important;
  pointer-events: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

[data-smart-back-wrap]::before,
[data-smart-back-wrap]::after,
.return-nav-wrap::before,
.return-nav-wrap::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

[data-smart-back],
.return-nav {
  pointer-events: auto !important;
}

@media (max-width: 980px) {
  body.has-smart-back main {
    padding-top: calc(var(--aim-back-bar-height) + 16px) !important;
  }

  [data-smart-back-wrap],
  .return-nav-wrap {
    top: calc(var(--aim-fixed-header-height, 146px) + 14px) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ==========================================================================
   V20 fixes: portal labels, insurance verification, dynamic booking calendar
   ========================================================================== */
.insurance-verification-panel {
  width: min(var(--container-wide, 1320px), calc(100% - 56px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: clamp(22px, 3vw, 36px);
}

.insurance-verification-card {
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(79, 163, 217, 0.18);
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(4, 34, 73, 0.10);
}

.insurance-verification-card h3 {
  margin: 0 0 10px;
  color: var(--aim-blue, #042249);
  font-size: clamp(24px, 2.4vw, 34px);
}

.insurance-verification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}

.insurance-verification-card ul {
  margin: 14px 0 0;
  padding-left: 20px;
  color: var(--aim-text-soft, #4e5a67);
  line-height: 1.6;
}

.booking-step-2 [data-dynamic-calendar] .calendar-day {
  display: grid;
  place-items: center;
  min-height: 34px;
}

.booking-step-2 [data-dynamic-calendar] button.calendar-day {
  border: 0;
  border-radius: 999px;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.booking-step-2 [data-dynamic-calendar] button.calendar-day:hover,
.booking-step-2 [data-dynamic-calendar] button.calendar-day:focus-visible {
  background: var(--aim-sky-soft, #eaf5fb);
  outline: 3px solid rgba(79, 163, 217, 0.24);
}

.booking-step-2 [data-dynamic-calendar] button.calendar-day.selected {
  background: var(--aim-olive-900, #4f5d3c);
  color: #ffffff;
  box-shadow: 0 8px 18px rgba(79, 93, 60, 0.22);
}

.booking-step-2 [data-dynamic-calendar] .calendar-day.is-weekend,
.booking-step-2 [data-dynamic-calendar] .calendar-day.is-muted {
  color: rgba(20, 32, 51, 0.38);
}

.booking-step-2 [data-dynamic-calendar] .calendar-day.is-weekend {
  background: rgba(4, 34, 73, 0.03);
  border-radius: 999px;
}

@media (max-width: 780px) {
  .insurance-verification-panel {
    grid-template-columns: 1fr;
    width: min(100% - 32px, var(--container, 1180px));
  }
}


/* ==========================================================================
   Insurance verification layout repair
   Keeps the plan verification cards fully contained; no cut-off / overflow.
   ========================================================================== */
.insurance-verification-section {
  overflow-x: hidden !important;
}

.insurance-verification-section > .container {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin-inline: auto !important;
}

.insurance-verification-panel {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.88fr) !important;
  gap: clamp(22px, 3vw, 36px) !important;
  align-items: stretch !important;
}

.insurance-verification-card {
  min-width: 0 !important;
  padding: clamp(24px, 3vw, 38px) !important;
  border: 1px solid rgba(79, 163, 217, 0.18) !important;
  border-radius: 28px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 44px rgba(4, 34, 73, 0.10) !important;
}

.insurance-verification-card h3 {
  margin: 0 0 10px !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(24px, 2.4vw, 34px) !important;
  line-height: 1.05 !important;
}

.insurance-verification-card p,
.insurance-verification-card li,
.insurance-disclaimer {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.insurance-disclaimer {
  margin: 24px auto 0 !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

.insurance-verification-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 20px !important;
}

.insurance-verification-card ul {
  margin: 14px 0 0 !important;
  padding-left: 20px !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  line-height: 1.6 !important;
}

@media (max-width: 900px) {
  .insurance-verification-section > .container {
    width: min(100% - 32px, var(--container, 1180px)) !important;
  }

  .insurance-verification-panel {
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================================
   Insurance fake carrier grid restoration
   Restores the visual plan-card grid while keeping layout contained.
   ========================================================================== */
.insurance-carrier-section {
  overflow-x: hidden !important;
}

.insurance-carrier-section .insurance-logo-grid {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: clamp(14px, 2vw, 22px) !important;
}

.insurance-carrier-section .insurance-logo-card {
  min-width: 0 !important;
}

.insurance-carrier-section .fake-logo {
  min-height: 118px !important;
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
  gap: 4px !important;
}

.insurance-carrier-section .insurance-disclaimer {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin: 24px auto 0 !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

@media (max-width: 1100px) {
  .insurance-carrier-section .insurance-logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 680px) {
  .insurance-carrier-section .insurance-logo-grid {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .insurance-carrier-section .insurance-disclaimer {
    width: min(100% - 32px, var(--container, 1180px)) !important;
  }
}


/* ==========================================================================
   Insurance Back Button Final Sticky/Fix
   Overrides older insurance-only static/scrolling rules so the Back button
   stays visible under the fixed header without affecting other pages.
   ========================================================================== */
.insurance-page {
  padding-top: calc(var(--aim-back-bar-height, 56px) + 18px) !important;
}

.insurance-page [data-smart-back-wrap],
.insurance-page .return-nav-wrap {
  position: fixed !important;
  top: calc(var(--aim-fixed-header-height, 92px) + 12px) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1190 !important;
  width: 100% !important;
  height: var(--aim-back-bar-height, 56px) !important;
  min-height: var(--aim-back-bar-height, 56px) !important;
  margin: 0 !important;
  padding: 6px max(24px, calc((100vw - var(--container, 1180px)) / 2)) !important;
  display: flex !important;
  align-items: center !important;
  pointer-events: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.insurance-page [data-smart-back-wrap]::before,
.insurance-page [data-smart-back-wrap]::after,
.insurance-page .return-nav-wrap::before,
.insurance-page .return-nav-wrap::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.insurance-page .return-nav {
  pointer-events: auto !important;
}

.insurance-page .return-nav-wrap + .insurance-hero {
  padding-top: clamp(22px, 3vw, 40px) !important;
}

@media (max-width: 980px) {
  .insurance-page {
    padding-top: calc(var(--aim-back-bar-height, 56px) + 20px) !important;
  }

  .insurance-page [data-smart-back-wrap],
  .insurance-page .return-nav-wrap {
    top: calc(var(--aim-fixed-header-height, 146px) + 14px) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .insurance-page .return-nav-wrap + .insurance-hero {
    padding-top: 26px !important;
  }
}


/* ==========================================================================
   ALL PHOTO / IMAGE BEZEL V2
   Stronger visible metallic bezel on every major content image container.
   This uses the parent frame, not just the img tag, so it shows on existing
   hero images, portrait cards, resource images, booking images, and fake
   insurance plan cards.
   ========================================================================== */

:root {
  --aim-metal-bezel: linear-gradient(
    135deg,
    #fbfcfd 0%,
    #c7cdd3 14%,
    #ffffff 28%,
    #aeb5bd 44%,
    #f8fafb 58%,
    #8f98a2 74%,
    #f4f6f8 100%
  );
}

/* Major image containers across the site */
main :where(
  .hero-card,
  .about-portrait-card,
  .services-hero-image,
  .patients-hero-image,
  .resources-hero-image,
  .contact-page-hero-image,
  .insurance-hero-image,
  .what-hero-image,
  .patient-detail-image,
  .resource-detail-image,
  .booking-hero-image,
  .page-hero-image,
  .hero-portrait-card,
  .about-quote-visual,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img)
) {
  position: relative !important;
  overflow: hidden !important;
  border-radius: max(20px, var(--radius-image, 24px)) !important;
  box-shadow:
    0 18px 42px rgba(4, 34, 73, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
  isolation: isolate !important;
}

/* Metallic frame overlay. This is the visible bezel. */
main :where(
  .hero-card,
  .about-portrait-card,
  .services-hero-image,
  .patients-hero-image,
  .resources-hero-image,
  .contact-page-hero-image,
  .insurance-hero-image,
  .what-hero-image,
  .patient-detail-image,
  .resource-detail-image,
  .booking-hero-image,
  .page-hero-image,
  .hero-portrait-card,
  .about-quote-visual,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img)
)::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  pointer-events: none !important;
  border-radius: inherit !important;
  padding: 4px !important;
  background: var(--aim-metal-bezel) !important;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0) !important;
  -webkit-mask-composite: xor !important;
  mask-composite: exclude !important;
  opacity: 0.96 !important;
}

/* Subtle metal glint, still classy and not loud */
main :where(
  .hero-card,
  .about-portrait-card,
  .services-hero-image,
  .patients-hero-image,
  .resources-hero-image,
  .contact-page-hero-image,
  .insurance-hero-image,
  .what-hero-image,
  .patient-detail-image,
  .resource-detail-image,
  .booking-hero-image,
  .page-hero-image,
  .hero-portrait-card,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img)
)::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  z-index: 4 !important;
  pointer-events: none !important;
  border-radius: calc(max(20px, var(--radius-image, 24px)) - 4px) !important;
  background:
    linear-gradient(115deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0.32) 18%,
      rgba(255,255,255,0.08) 32%,
      rgba(255,255,255,0) 48%) !important;
  mix-blend-mode: screen !important;
  opacity: 0.55 !important;
}

/* The image itself fills cleanly beneath the frame; no white border. */
main :where(
  .hero-card,
  .about-portrait-card,
  .services-hero-image,
  .patients-hero-image,
  .resources-hero-image,
  .contact-page-hero-image,
  .insurance-hero-image,
  .what-hero-image,
  .patient-detail-image,
  .resource-detail-image,
  .booking-hero-image,
  .page-hero-image,
  .hero-portrait-card,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img)
) > img,
main :where(
  .hero-card,
  .about-portrait-card,
  .services-hero-image,
  .patients-hero-image,
  .resources-hero-image,
  .contact-page-hero-image,
  .insurance-hero-image,
  .what-hero-image,
  .patient-detail-image,
  .resource-detail-image,
  .booking-hero-image,
  .page-hero-image,
  .hero-portrait-card
) img {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Keep decorative/non-photo graphics from looking boxed-in. */
main :where(
  .about-sticky-note,
  .about-arrow-note,
  .about-left-leaf-accent,
  .about-quote-boat
) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Fake insurance plan cards get the same visible metallic treatment. */
.insurance-logo-card {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 26px !important;
  padding: 4px !important;
  background: var(--aim-metal-bezel) !important;
  box-shadow:
    0 16px 34px rgba(4, 34, 73, 0.14),
    inset 0 1px 0 rgba(255,255,255,0.70) !important;
}

.insurance-logo-card::after {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  pointer-events: none !important;
  border-radius: 22px !important;
  background:
    linear-gradient(115deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0.38) 18%,
      rgba(255,255,255,0) 44%) !important;
  mix-blend-mode: screen !important;
  opacity: 0.62 !important;
}

.insurance-logo-card .fake-logo {
  position: relative !important;
  z-index: 1 !important;
  min-height: 118px !important;
  border: 0 !important;
  border-radius: 21px !important;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.38),
    0 8px 16px rgba(4,34,73,0.08) !important;
}

/* Mobile: still visible, but not heavy. */
@media (max-width: 980px) {
  main :where(
    .hero-card,
    .about-portrait-card,
    .services-hero-image,
    .patients-hero-image,
    .resources-hero-image,
    .contact-page-hero-image,
    .insurance-hero-image,
    .what-hero-image,
    .patient-detail-image,
    .resource-detail-image,
    .booking-hero-image,
    .page-hero-image,
    .hero-portrait-card,
    div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img),
    div[style*="box-shadow"][style*="overflow:hidden"]:has(> img)
  )::before {
    padding: 3px !important;
  }

  .insurance-logo-card {
    padding: 3px !important;
    border-radius: 20px !important;
  }

  .insurance-logo-card .fake-logo {
    border-radius: 17px !important;
  }
}


/* ==========================================================================
   Booking Step 1 Continue scroll alignment
   Step 1 Continue lands Step 2 with the five-step meter just below header.
   ========================================================================== */
#booking-steps-progress {
  scroll-margin-top: calc(var(--aim-fixed-header-height, 92px) + var(--aim-back-bar-height, 56px) + 12px) !important;
}


/* ==========================================================================
   Mobile booking calendar/accessibility fixes
   - 44px minimum tap targets for date/time buttons
   - calendar/time section appears before support cards on mobile
   ========================================================================== */
@media (max-width: 780px) {
  .booking-step-2 .calendar-grid {
    gap: 8px !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }

  .booking-step-2 .calendar-day,
  .booking-step-2 button.calendar-day,
  .booking-step-2 .booking-date-option {
    min-width: 44px !important;
    min-height: 44px !important;
    width: 44px !important;
    height: 44px !important;
    justify-self: center !important;
    font-size: 14px !important;
    touch-action: manipulation !important;
  }

  .booking-step-2 .calendar-day-name {
    min-width: 44px !important;
    justify-self: center !important;
    font-size: 10px !important;
  }

  .booking-step-2 .time-option {
    min-height: 44px !important;
    touch-action: manipulation !important;
  }

  .booking-step-2 .booking-layout,
  .booking-step-2 .booking-three-column-layout {
    display: flex !important;
    flex-direction: column !important;
  }

  .booking-step-2 .booking-reason-column {
    order: 1 !important;
  }

  .booking-step-2 .booking-calendar-column {
    order: 2 !important;
  }

  .booking-step-2 .booking-support-sidebar {
    order: 3 !important;
    margin-top: var(--space-5, 20px) !important;
  }
}

@media (max-width: 390px) {
  .booking-step-2 .calendar-grid {
    gap: 5px !important;
  }

  .booking-step-2 .calendar-day,
  .booking-step-2 button.calendar-day,
  .booking-step-2 .booking-date-option,
  .booking-step-2 .calendar-day-name {
    min-width: 40px !important;
    width: 40px !important;
  }
}


/* ==========================================================================
   About page: no metallic bezels except Dr. Adams headshot
   ========================================================================== */
main.about-page :where(
  .about-quote-visual,
  .about-fun-card,
  .about-story,
  .about-mobile-actions,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card)
)::before,
main.about-page :where(
  .about-quote-visual,
  .about-fun-card,
  .about-story,
  .about-mobile-actions,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card)
)::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 0 !important;
}

main.about-page :where(
  .about-sticky-note,
  .about-arrow-note,
  .about-left-leaf-accent,
  .about-quote-boat
) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  filter: none !important;
  outline: 0 !important;
}

main.about-page .about-portrait-card {
  border: 1px solid rgba(79, 163, 217, 0.18) !important;
  box-shadow: var(--shadow-hero, 0 30px 80px rgba(4, 34, 73, 0.18)) !important;
  background: linear-gradient(180deg, var(--aim-sky-soft, #eaf5fb), #ffffff) !important;
  overflow: hidden !important;
}




/* ==========================================================================
   ABOUT PAGE FINAL: only Dr. Adams headshot keeps a bezel
   Everything else on About — Greece map, sticky note, arrow note, boat,
   fun-card art, and decorative images — has no metallic frame/bezel.
   ========================================================================== */

main.about-page :where(
  .about-quote-visual,
  .about-fun-card,
  .about-story,
  .about-mobile-actions,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card)
)::before,
main.about-page :where(
  .about-quote-visual,
  .about-fun-card,
  .about-story,
  .about-mobile-actions,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card)
)::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 0 !important;
  padding: 0 !important;
}

main.about-page :where(
  .about-quote-visual,
  .about-fun-card,
  .about-story,
  div[style*="aspect-ratio"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card),
  div[style*="box-shadow"][style*="overflow:hidden"]:has(> img):not(.about-portrait-card)
) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  filter: none !important;
}

main.about-page img:not(.about-doctor):not(.brand-logo):not(.footer-logo) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: 0 !important;
  filter: none !important;
}

main.about-page :where(
  .about-sticky-note,
  .about-arrow-note,
  .about-left-leaf-accent,
  .about-quote-boat,
  .about-fun-card img
) {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  filter: none !important;
  outline: 0 !important;
}

/* The only About-page image that remains framed. */
main.about-page .about-portrait-card {
  position: relative !important;
  overflow: hidden !important;
  border-radius: max(20px, var(--radius-image, 24px)) !important;
  border: 1px solid rgba(79, 163, 217, 0.18) !important;
  background:
    linear-gradient(180deg, var(--aim-sky-soft, #eaf5fb), #ffffff) !important;
  box-shadow: var(--shadow-hero, 0 30px 80px rgba(4, 34, 73, 0.18)) !important;
}

main.about-page .about-portrait-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  pointer-events: none !important;
  border-radius: inherit !important;
  padding: 4px !important;
  background: var(--aim-metal-bezel, linear-gradient(135deg, #fbfcfd 0%, #c7cdd3 14%, #ffffff 28%, #aeb5bd 44%, #f8fafb 58%, #8f98a2 74%, #f4f6f8 100%)) !important;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0) !important;
  -webkit-mask-composite: xor !important;
  mask-composite: exclude !important;
  opacity: 0.96 !important;
}

main.about-page .about-portrait-card img.about-doctor {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}


/* ==========================================================================
   Homepage conversion polish: accepting patients, human hero image, testimonial-ready cards
   ========================================================================== */
.home-accepting-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: fit-content !important;
  max-width: min(100%, 620px) !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
  box-shadow: none !important;
}

.home-accepting-pill strong {
  color: var(--aim-olive-900, #4f5d3c) !important;
  font-weight: 800 !important;
}

.home-accepting-dot {
  width: 10px !important;
  height: 10px !important;
  flex: 0 0 10px !important;
  border-radius: 50% !important;
  background: linear-gradient(180deg, #7a8f5f 0%, #5b6d47 100%) !important;
  box-shadow: 0 0 0 6px rgba(111, 127, 88, 0.12) !important;
}

.home-doctor-visual {
  position: relative !important;
}

.home-doctor-card {
  position: relative !important;
  min-height: 560px !important;
  overflow: hidden !important;
  border-radius: 46px !important;
  background:
    radial-gradient(circle at 88% 10%, rgba(234, 245, 251, 0.82), transparent 20rem),
    linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%) !important;
  box-shadow: 0 30px 80px rgba(4, 34, 73, 0.16) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
}

.home-doctor-card img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 560px !important;
  object-fit: cover !important;
  object-position: center top !important;
}

.home-doctor-badge {
  position: absolute !important;
  left: 28px !important;
  right: auto !important;
  bottom: 28px !important;
  max-width: min(420px, calc(100% - 56px)) !important;
  display: grid !important;
  grid-template-columns: 56px 1fr !important;
  gap: 16px !important;
  align-items: center !important;
  padding: 16px 18px 16px 16px !important;
  border-radius: 26px !important;
  border: 1px solid rgba(255, 255, 255, 0.48) !important;
  background: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(247,251,253,0.92) 100%) !important;
  box-shadow: 0 22px 48px rgba(4, 34, 73, 0.18) !important;
  backdrop-filter: blur(16px) saturate(1.05) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.05) !important;
}

.home-doctor-badge::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  pointer-events: none !important;
  background: linear-gradient(140deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 40%) !important;
}

.home-doctor-badge-mark {
  position: relative !important;
  z-index: 1 !important;
  width: 56px !important;
  height: 56px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, rgba(234,245,251,0.95) 0%, rgba(216,235,246,0.9) 100%) !important;
  color: var(--aim-sky-700, #2f7fb3) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.75), 0 10px 22px rgba(79,163,217,0.16) !important;
}

.home-doctor-badge-copy {
  position: relative !important;
  z-index: 1 !important;
  min-width: 0 !important;
}

.home-doctor-badge-eyebrow {
  display: block !important;
  margin: 0 0 6px !important;
  color: var(--aim-olive-900, #4f5d3c) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.home-doctor-badge p {
  margin: 0 !important;
  display: grid !important;
  gap: 4px !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.home-doctor-badge strong {
  display: block !important;
  color: var(--aim-blue, #042249) !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

.home-doctor-badge p span {
  display: block !important;
}

@media (max-width: 980px) {
  .home-doctor-badge {
    left: 18px !important;
    right: 18px !important;
    bottom: 18px !important;
    max-width: none !important;
    grid-template-columns: 48px 1fr !important;
    gap: 12px !important;
    padding: 14px !important;
    border-radius: 22px !important;
  }

  .home-doctor-badge-mark {
    width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
  }

  .home-doctor-badge strong {
    font-size: 15px !important;
  }

  .home-doctor-badge-eyebrow {
    font-size: 10px !important;
  }
}

.home-testimonials {
  padding: clamp(42px, 6vw, 76px) 0 !important;
  background: linear-gradient(180deg, #eaf5fb 0%, #ffffff 100%) !important;
}

.home-testimonial-grid {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.5vw, 28px) !important;
}

.home-testimonial-card {
  position: relative !important;
  min-height: 170px !important;
  padding: clamp(24px, 3vw, 34px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 96% 96%, rgba(234, 245, 251, 0.78), transparent 8rem),
    #ffffff !important;
  box-shadow: 0 16px 38px rgba(4, 34, 73, 0.08) !important;
}

.home-testimonial-card::before {
  content: "“" !important;
  position: absolute !important;
  right: 22px !important;
  top: 16px !important;
  color: rgba(79, 163, 217, 0.18) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: 84px !important;
  line-height: 1 !important;
}

.home-testimonial-quote {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 0 18px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.08 !important;
}

.home-testimonial-label {
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

@media (max-width: 980px) {
  .home-accepting-pill {
    font-size: 14px !important;
    gap: 9px !important;
    margin-bottom: 16px !important;
  }

  .home-doctor-card {
    min-height: 430px !important;
    border-radius: 32px !important;
  }

  .home-doctor-card img {
    min-height: 430px !important;
  }

  .home-testimonial-grid {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================================
   Booking confirmation local inline display
   Confirm Appointment shows the confirmation below the time selection feature.
   ========================================================================== */
.booking-step-2 .booking-confirmation-inline {
  margin-top: var(--space-5, 20px) !important;
  padding: clamp(20px, 3vw, 30px) !important;
  border: 1px solid rgba(79, 93, 60, 0.20) !important;
  border-radius: 22px !important;
  background: #f7fbf3 !important;
  box-shadow: 0 14px 34px rgba(4, 34, 73, 0.10) !important;
}

.booking-step-2 .booking-confirmation-inline[hidden] {
  display: none !important;
}

.booking-step-2 .booking-confirmation-inline h3 {
  margin: 0 0 8px !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(24px, 2.5vw, 34px) !important;
}

.booking-confirm-next-steps {
  margin-top: 14px !important;
  padding: 14px 16px !important;
  border-radius: 16px !important;
  background: rgba(234, 245, 251, 0.72) !important;
  color: var(--aim-text-soft, #4e5a67) !important;
}

.booking-confirm-next-steps p {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.booking-confirm-next-steps strong {
  color: var(--aim-blue, #042249) !important;
}


/* ==========================================================================
   Homepage launch copy / testimonial refinements
   ========================================================================== */
.home-accepting-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: fit-content !important;
  max-width: min(100%, 620px) !important;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
  box-shadow: none !important;
}

.home-accepting-pill strong {
  color: var(--aim-olive-900, #4f5d3c) !important;
  font-weight: 800 !important;
}

.home-accepting-dot {
  width: 10px !important;
  height: 10px !important;
  flex: 0 0 10px !important;
  border-radius: 50% !important;
  background: linear-gradient(180deg, #7a8f5f 0%, #5b6d47 100%) !important;
  box-shadow: 0 0 0 6px rgba(111, 127, 88, 0.12) !important;
}

.home-testimonials {
  padding: clamp(42px, 6vw, 76px) 0 !important;
  background: linear-gradient(180deg, #eaf5fb 0%, #ffffff 100%) !important;
}

.home-testimonial-grid {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.5vw, 28px) !important;
}

.home-testimonial-card {
  position: relative !important;
  min-height: 180px !important;
  padding: clamp(24px, 3vw, 34px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 28px !important;
  background: radial-gradient(circle at 96% 96%, rgba(234, 245, 251, 0.78), transparent 8rem), #ffffff !important;
  box-shadow: 0 16px 38px rgba(4, 34, 73, 0.08) !important;
}

.home-testimonial-card::before {
  content: "“" !important;
  position: absolute !important;
  right: 22px !important;
  top: 16px !important;
  color: rgba(79, 163, 217, 0.18) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: 84px !important;
  line-height: 1 !important;
}

.home-testimonial-quote {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 0 18px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: clamp(21px, 1.9vw, 28px) !important;
  line-height: 1.1 !important;
}

.home-testimonial-label {
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

@media (max-width: 980px) {
  .home-testimonial-grid {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   Appointment request form launch update
   ========================================================================== */
.appointment-request-shell .appointment-request-form {
  display: grid !important;
  gap: 16px !important;
  margin-top: var(--space-5, 20px) !important;
}

.appointment-request-shell .appointment-request-form label {
  display: grid !important;
  gap: 7px !important;
  color: var(--aim-blue, #042249) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
}

.appointment-request-shell .appointment-request-form input,
.appointment-request-shell .appointment-request-form select,
.appointment-request-shell .appointment-request-form textarea {
  width: 100% !important;
  min-height: 44px !important;
  padding: 12px 13px !important;
  border: 1px solid rgba(79, 163, 217, 0.28) !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: var(--aim-text, #142033) !important;
  font: inherit !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
}

.appointment-request-shell .appointment-request-form textarea {
  min-height: 122px !important;
  resize: vertical !important;
}

.appointment-request-shell .form-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.appointment-request-shell .contact-page-checkbox {
  display: grid !important;
  grid-template-columns: 18px 1fr !important;
  gap: 10px !important;
  align-items: start !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

@media (max-width: 720px) {
  .appointment-request-shell .form-row {
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================================
   Credentials affiliations visibility update
   ========================================================================== */
.credentials-affiliations-section {
  padding: var(--space-9, 72px) 0 !important;
  background: linear-gradient(180deg, #ffffff 0%, #eaf5fb 100%) !important;
}

.credentials-affiliations-panel {
  width: min(1120px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  display: grid !important;
  gap: 22px !important;
}

.association-image-card {
  padding: clamp(20px, 3vw, 36px) !important;
  border-radius: 28px !important;
  background: #061021 !important;
  border: 1px solid rgba(79, 163, 217, 0.22) !important;
  box-shadow: 0 22px 58px rgba(4, 34, 73, 0.16) !important;
}

.association-image-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 560px !important;
  object-fit: contain !important;
  margin-inline: auto !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.association-text-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.association-text-grid article {
  min-height: 112px !important;
  padding: 18px !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  box-shadow: 0 12px 28px rgba(4, 34, 73, 0.06) !important;
}

.association-text-grid strong {
  display: block !important;
  color: var(--aim-blue, #042249) !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  margin-bottom: 8px !important;
}

.association-text-grid span {
  display: block !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.weight-wellness-section .info-list-card,
.info-list-card {
  padding: clamp(22px, 3vw, 32px) !important;
  border-radius: 24px !important;
  background: #ffffff !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  box-shadow: 0 16px 38px rgba(4, 34, 73, 0.08) !important;
}

.info-list-card ul {
  margin: 14px 0 0 !important;
  padding-left: 20px !important;
  color: var(--aim-text-soft, #4e5a67) !important;
}

.info-list-card li + li {
  margin-top: 8px !important;
}

@media (max-width: 980px) {
  .association-text-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ==========================================================================
   Weight Loss & Wellness page polish
   Improves spacing and visual consistency with the rest of the site.
   ========================================================================== */
.weight-wellness-overview {
  padding: clamp(88px, 9vw, 132px) 0 clamp(72px, 8vw, 108px) !important;
  background:
    radial-gradient(circle at 94% 8%, rgba(234, 245, 251, 0.72), transparent 24rem),
    #ffffff !important;
  border-top: 1px solid rgba(79, 163, 217, 0.10) !important;
}

.weight-wellness-overview-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 0.62fr) minmax(320px, 0.38fr) !important;
  gap: clamp(38px, 6vw, 82px) !important;
  align-items: center !important;
}

.weight-wellness-copy h2 {
  margin: 0 0 var(--space-4, 18px) !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(40px, 4.5vw, 68px) !important;
  line-height: 0.96 !important;
}

.weight-wellness-copy h2 em {
  color: var(--aim-sky, #6fb2df) !important;
  font-style: italic !important;
}

.weight-wellness-list-card {
  padding: clamp(24px, 3vw, 36px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 96% 96%, rgba(234, 245, 251, 0.78), transparent 8rem),
    #ffffff !important;
  box-shadow: 0 18px 46px rgba(4, 34, 73, 0.10) !important;
}

.weight-wellness-list-card h3 {
  margin: 0 0 14px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: clamp(24px, 2.3vw, 34px) !important;
  line-height: 1.05 !important;
}

.weight-wellness-list-card ul {
  display: grid !important;
  gap: 11px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.weight-wellness-list-card li {
  display: grid !important;
  grid-template-columns: 20px 1fr !important;
  gap: 10px !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

.weight-wellness-list-card li::before {
  content: "✓" !important;
  color: var(--aim-olive-900, #4f5d3c) !important;
  font-weight: 900 !important;
}

.weight-wellness-approach {
  padding: clamp(96px, 9vw, 136px) 0 clamp(84px, 8vw, 120px) !important;
  background:
    linear-gradient(180deg, var(--aim-sky-soft, #eaf5fb) 0%, #ffffff 100%) !important;
  border-top: 1px solid rgba(79, 163, 217, 0.12) !important;
}

.weight-wellness-approach .section-header {
  margin-bottom: clamp(34px, 5vw, 62px) !important;
}

.weight-wellness-card-grid {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.5vw, 28px) !important;
}

.weight-wellness-card {
  min-height: 210px !important;
  padding: clamp(26px, 3vw, 36px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 96% 96%, rgba(234, 245, 251, 0.78), transparent 8rem),
    #ffffff !important;
  box-shadow: 0 16px 38px rgba(4, 34, 73, 0.08) !important;
}

.weight-wellness-card h3 {
  margin: 0 0 12px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-heading, serif) !important;
  font-size: clamp(25px, 2.4vw, 36px) !important;
  line-height: 1.04 !important;
}

.weight-wellness-card p {
  margin: 0 !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  line-height: 1.62 !important;
}

.weight-wellness-services {
  padding-top: clamp(88px, 8vw, 126px) !important;
}

@media (max-width: 980px) {
  .weight-wellness-overview-grid,
  .weight-wellness-card-grid {
    grid-template-columns: 1fr !important;
    width: min(100% - 32px, var(--container, 1180px)) !important;
  }

  .weight-wellness-overview {
    padding-top: 72px !important;
  }

  .weight-wellness-approach {
    padding-top: 78px !important;
  }
}




/* ==========================================================================
   Credentials page full visible rebuild
   ========================================================================== */
.credentials-hero-refresh,
.credentials-affiliations-final,
.credentials-training-final,
.credentials-certifications-final,
.credentials-service-final {
  padding: var(--space-9, 72px) 0 !important;
}

.credentials-hero-refresh,
.credentials-training-final,
.credentials-affiliations-final {
  background: #ffffff !important;
}

.credentials-certifications-final,
.credentials-service-final {
  background: linear-gradient(180deg, #ffffff 0%, var(--aim-sky-soft, #eaf5fb) 100%) !important;
}

.credentials-hero-grid-final {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.58fr) !important;
  gap: var(--space-8, 48px) !important;
  align-items: center !important;
}

.credentials-hero-grid-final h1 {
  font-size: clamp(42px, 4.8vw, 76px) !important;
  line-height: 0.94 !important;
  margin-bottom: var(--space-5, 24px) !important;
}

.credentials-hero-photo {
  border-radius: var(--radius-card-lg, 32px) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-hero, 0 30px 80px rgba(4, 34, 73, 0.18)) !important;
  background: var(--aim-sage, #edf3e7) !important;
  aspect-ratio: 4 / 5 !important;
}

.credentials-hero-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
}

.credentials-section-intro {
  max-width: 72ch !important;
  margin: 0 auto !important;
}

.association-composite-card {
  width: min(1120px, calc(100% - 40px)) !important;
  margin: 0 auto 28px !important;
  padding: clamp(20px, 3vw, 34px) !important;
  border-radius: 28px !important;
  background: #061021 !important;
  border: 1px solid rgba(79, 163, 217, 0.22) !important;
  box-shadow: 0 22px 58px rgba(4, 34, 73, 0.16) !important;
}

.association-composite-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 580px !important;
  object-fit: contain !important;
  margin-inline: auto !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.association-card-grid-final,
.credentials-training-grid-final,
.credentials-cert-grid-final,
.credentials-service-grid-final {
  display: grid !important;
  gap: var(--space-5, 24px) !important;
}

.association-card-grid-final {
  width: min(1120px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.credentials-training-grid-final {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.credentials-cert-grid-final,
.credentials-service-grid-final {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.association-card-final,
.credentials-training-card-final,
.credentials-cert-grid-final article,
.credentials-service-grid-final article {
  padding: var(--space-6, 32px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 24px !important;
  background: #ffffff !important;
  box-shadow: 0 14px 32px rgba(4, 34, 73, 0.07) !important;
}

.association-card-final {
  min-height: 220px !important;
  padding: 22px 16px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: center !important;
}

.association-card-final img {
  width: 100% !important;
  max-width: 180px !important;
  height: 78px !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 auto 14px !important;
  display: block !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.association-card-final h3,
.credentials-training-card-final h3,
.credentials-cert-grid-final h3,
.credentials-service-grid-final h3 {
  display: block !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(18px, 2vw, 26px) !important;
  line-height: 1.15 !important;
  margin: 0 0 8px !important;
}

.association-card-final p,
.credentials-training-card-final p,
.credentials-cert-grid-final p,
.credentials-service-grid-final p,
.credential-meta {
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  margin: 0 !important;
}

.credential-meta {
  margin: 0 0 var(--space-4, 18px) !important;
}

@media (max-width: 1100px) {
  .association-card-grid-final,
  .credentials-cert-grid-final,
  .credentials-service-grid-final {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 820px) {
  .credentials-hero-grid-final,
  .association-card-grid-final,
  .credentials-training-grid-final,
  .credentials-cert-grid-final,
  .credentials-service-grid-final {
    grid-template-columns: 1fr !important;
  }

  .association-card-final {
    min-height: auto !important;
  }
}


/* Patient reviews homepage link */
.home-testimonial-actions {
  width: min(var(--container-wide, 1320px), calc(100% - 56px)) !important;
  margin: clamp(24px, 3vw, 34px) auto 0 !important;
  display: flex !important;
  justify-content: center !important;
}

.home-testimonial-actions .btn {
  min-width: 230px !important;
}

@media (max-width: 640px) {
  .home-testimonial-actions {
    width: min(100% - 32px, var(--container, 1180px)) !important;
  }
}



/* Star rating asset reset — keep uploaded transparent PNG clean */
main img.home-testimonial-stars:not(.brand-logo):not(.footer-logo),
main img.review-stars:not(.brand-logo):not(.footer-logo),
main img.review-chip-stars:not(.brand-logo):not(.footer-logo) {
  box-sizing: content-box !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
  filter: none !important;
  padding: 0 !important;
}

main img.home-testimonial-stars:not(.brand-logo):not(.footer-logo) {
  width: 108px !important;
  max-width: 108px !important;
  margin: 0 0 14px !important;
}

main img.review-stars:not(.brand-logo):not(.footer-logo) {
  width: 116px !important;
  max-width: 116px !important;
  margin: 0 0 16px !important;
}

main img.review-chip-stars:not(.brand-logo):not(.footer-logo) {
  width: 72px !important;
  max-width: 72px !important;
  margin: 0 0 8px !important;
}


/* ========================================================================
   FINAL MOBILE SCREENSHOT QA PATCH — May 21
   Addresses the mobile issues visible in the provided screenshots:
   - Back button was fixed over content/images/forms.
   - Booking action divider/sticky bar was crossing form fields and time cards.
   - Inline two-column article/resource grids were still overflowing on phones.
   - Large fixed Tap to Call pill was blocking page text/buttons and keyboard use.
   Desktop remains unchanged.
   ======================================================================== */

@media (max-width: 820px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  body {
    padding-bottom: calc(94px + env(safe-area-inset-bottom, 0px)) !important;
  }

  main,
  main > section,
  section,
  .container,
  .pre-footer-inner,
  .cta-band-inner {
    max-width: 100vw !important;
    overflow-x: clip !important;
  }

  .container,
  .pre-footer-inner,
  .cta-band-inner {
    width: min(100% - 28px, var(--container, 1180px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  img,
  svg,
  video,
  canvas {
    max-width: 100% !important;
  }

  /* Mobile back button should be in document flow, never floating over content. */
  body.has-smart-back main {
    padding-top: 0 !important;
  }

  [data-smart-back-wrap],
  .return-nav-wrap,
  .sticky-return-nav,
  .smart-back-wrap {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: 30 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px 16px 8px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    pointer-events: none !important;
    background: #ffffff !important;
    border-bottom: 1px solid rgba(79, 163, 217, 0.12) !important;
    box-shadow: 0 8px 20px rgba(4, 34, 73, 0.035) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none !important;
  }

  [data-smart-back],
  .return-nav {
    pointer-events: auto !important;
    min-height: 38px !important;
    padding: 0 14px !important;
    max-width: calc(100vw - 32px) !important;
    font-size: 11.25px !important;
    letter-spacing: 0.075em !important;
    transform: none !important;
  }

  [data-smart-back]::before,
  .return-nav::before {
    width: 21px !important;
    height: 21px !important;
    font-size: 14px !important;
  }

  html,
  section[id],
  main[id] {
    scroll-padding-top: calc(var(--aim-fixed-header-height, 132px) + 12px) !important;
    scroll-margin-top: calc(var(--aim-fixed-header-height, 132px) + 12px) !important;
  }

  /* Turn all inline desktop grids used by resource/article pages into single columns. */
  main [style*="grid-template-columns:1fr 1fr"],
  main [style*="grid-template-columns: 1fr 1fr"],
  main [style*="grid-template-columns:2fr 1fr"],
  main [style*="grid-template-columns: 2fr 1fr"],
  main [style*="grid-template-columns:1fr 2fr"],
  main [style*="grid-template-columns: 1fr 2fr"],
  main [style*="grid-template-columns:repeat(2"],
  main [style*="grid-template-columns: repeat(2"],
  main [style*="grid-template-columns:repeat(3"],
  main [style*="grid-template-columns: repeat(3"],
  main [style*="grid-template-columns:repeat(4"],
  main [style*="grid-template-columns: repeat(4"],
  main [style*="grid-template-columns:repeat(5"],
  main [style*="grid-template-columns: repeat(5"],
  main [style*="grid-template-columns:1.5fr"],
  main [style*="grid-template-columns: 1.5fr"],
  main [style*="grid-template-columns:1.55fr"],
  main [style*="grid-template-columns: 1.55fr"] {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
  }

  .resource-detail-grid,
  .resource-article-layout,
  .article-reading-layout,
  .patient-detail-hero-grid,
  .patient-info-grid,
  .service-detail-hero-grid,
  .service-process-panel,
  .mobile-safe-two-col,
  .contact-page-grid,
  .forms-layout,
  .footer-grid {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
  }

  .resource-sidebar-card,
  .article-sidebar-card,
  .article-info-card,
  .article-cta-card,
  .patient-side-card {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  main [style*="display:flex"][style*="gap:var(--space-4)"],
  .hero-actions,
  .patient-detail-actions,
  .service-detail-actions,
  .contact-hero-actions,
  .button-row,
  .cta-row {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .btn,
  .button,
  .nav-cta,
  .footer-cta,
  .hero-cta,
  .hero-cta-secondary,
  .article-cta-card .btn,
  .resource-sidebar-card .btn,
  .article-sidebar-card .btn {
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    justify-content: center !important;
  }

  .resource-detail-hero h1,
  .patient-detail-hero h1,
  .service-detail-hero h1,
  main h1 {
    font-size: clamp(34px, 11vw, 48px) !important;
    line-height: 0.98 !important;
  }

  .resource-article-copy h2,
  .patient-info-main h2,
  main h2 {
    font-size: clamp(30px, 9vw, 42px) !important;
    line-height: 1.04 !important;
  }

  .body-copy,
  .resource-article-copy p,
  .resource-article-copy li,
  main p,
  main li {
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  /* Patient subpage quote cards were too dominant over the image on phones. */
  .patient-detail-callout {
    display: none !important;
  }

  .patient-detail-image,
  .patient-detail-image img,
  .resource-detail-image,
  .resource-detail-image img,
  .service-visual-image-card,
  .service-visual-image-card img {
    min-height: 280px !important;
    max-height: 430px !important;
  }

  .patient-detail-image img,
  .resource-detail-image img,
  .service-visual-image-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Tap to Call: smaller, lower priority, and never shown over active keyboards. */
  .mobile-tap-call {
    left: auto !important;
    right: 14px !important;
    bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 650 !important;
    min-height: 44px !important;
    padding: 0 14px !important;
    max-width: calc(100vw - 28px) !important;
    gap: 8px !important;
    font-size: 11px !important;
    letter-spacing: 0.065em !important;
  }

  .mobile-tap-call svg {
    width: 16px !important;
    height: 16px !important;
  }

  body:has(input:focus) .mobile-tap-call,
  body:has(textarea:focus) .mobile-tap-call,
  body:has(select:focus) .mobile-tap-call {
    display: none !important;
  }
}

@media (max-width: 820px) {
  /* Booking flow: keep buttons inside the card instead of sticky overlays. */
  .booking-widget-shell,
  .booking-widget-main-card,
  .booking-widget-layout,
  .booking-three-column-layout,
  .booking-step-2 .booking-layout,
  .booking-step-2 .booking-layout.booking-three-column-layout,
  .booking-step-3 .booking-layout {
    max-width: 100% !important;
    overflow: visible !important;
  }

  .booking-widget-shell {
    width: min(100% - 28px, 1180px) !important;
  }

  .booking-widget-layout,
  .booking-three-column-layout,
  .booking-step-2 .booking-layout.booking-three-column-layout,
  .booking-step-3 .booking-layout {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .booking-reason-column,
  .booking-calendar-column,
  .booking-support-sidebar,
  .booking-primary-column {
    grid-column: 1 !important;
    min-width: 0 !important;
  }

  .booking-support-sidebar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .booking-widget-main-card {
    padding: 20px !important;
    border-radius: 24px !important;
  }

  .booking-widget-pane h2 {
    font-size: clamp(28px, 8.5vw, 40px) !important;
    line-height: 1.04 !important;
    margin-bottom: 14px !important;
  }

  .booking-widget-pane > p,
  .booking-test-note,
  .booking-widget-form label {
    font-size: 14.5px !important;
    line-height: 1.45 !important;
  }

  .booking-widget-form input,
  .booking-widget-form select,
  .booking-widget-form textarea {
    font-size: 16px !important;
    max-width: 100% !important;
  }

  .booking-widget-form textarea {
    min-height: 128px !important;
  }

  .booking-field-grid,
  .form-row,
  .review-grid {
    grid-template-columns: 1fr !important;
  }

  .booking-widget-actions {
    position: static !important;
    bottom: auto !important;
    z-index: auto !important;
    margin: 24px 0 0 !important;
    padding: 18px 0 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    background: transparent !important;
    background-image: none !important;
    border-top: 1px solid rgba(4,34,73,.08) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .booking-widget-actions .btn,
  .booking-widget-actions .booking-submit-primary {
    width: 100% !important;
    margin: 0 !important;
  }

  .calendar-card,
  .booking-test-times,
  .booking-confirmation-wide {
    max-width: 100% !important;
    overflow: visible !important;
  }

  .calendar-grid,
  .booking-calendar-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  .calendar-day,
  .booking-calendar-day,
  .calendar-day-name {
    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    min-height: 38px !important;
    height: auto !important;
    padding: 0 !important;
    font-size: clamp(12px, 3.35vw, 15px) !important;
  }

  .time-grid,
  .booking-time-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .time-option,
  .booking-time-option {
    min-width: 0 !important;
    width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    white-space: normal !important;
  }

  .booking-widget-consent {
    align-items: flex-start !important;
  }

  .booking-widget-consent input {
    margin-top: 4px !important;
    flex: 0 0 auto !important;
  }
}

@media (max-width: 430px) {
  .time-grid,
  .booking-time-grid {
    grid-template-columns: 1fr !important;
  }

  .mobile-tap-call {
    right: 12px !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: 10.5px !important;
  }

  .article-cta-card .btn,
  .footer-cta.btn,
  .pre-footer-cta .btn {
    font-size: 11px !important;
    letter-spacing: 0.055em !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}
