/* v13 layout tweaks
   - Taller booking/patients/services hero images
   - Single-line subfooter lockup across all pages
*/

.booking-widget-hero-image {
  min-height: 840px !important;
}

.booking-widget-hero-image img {
  display: block !important;
  width: 100% !important;
  height: 840px !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Patients + Services hero images: roughly double current height on desktop */
.patients-page .patients-hero-image,
body.patients-page-mobile-qa .patients-hero-image,
.services-page .services-hero-image {
  min-height: 720px !important;
  height: 720px !important;
}

.patients-page .patients-hero-image picture,
body.patients-page-mobile-qa .patients-hero-image picture,
.services-page .services-hero-image picture {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.patients-page .patients-hero-image img,
body.patients-page-mobile-qa .patients-hero-image img,
.services-page .services-hero-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 720px !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Keep the bottom footer strip on one single flat line */
.footer-bottom,
.site-footer .footer-bottom {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;
  white-space: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: thin;
}

.footer-bottom > *,
.site-footer .footer-bottom > * {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
}

.footer-bottom p,
.footer-bottom span,
.footer-credit,
.footer-credit a,
.site-footer .footer-bottom p,
.site-footer .footer-bottom span,
.site-footer .footer-credit,
.site-footer .footer-credit a {
  white-space: nowrap !important;
  margin: 0 !important;
}

.footer-bottom-links,
.site-footer .footer-bottom-links {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 18px !important;
  white-space: nowrap !important;
}

.footer-bottom-links a,
.footer-bottom-links button,
.site-footer .footer-bottom-links a,
.site-footer .footer-bottom-links button {
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}

@media (max-width: 1180px) {
  .booking-widget-hero-image {
    min-height: 700px !important;
  }

  .booking-widget-hero-image img {
    height: 700px !important;
  }

  .patients-page .patients-hero-image,
  body.patients-page-mobile-qa .patients-hero-image,
  .services-page .services-hero-image {
    min-height: 560px !important;
    height: 560px !important;
  }

  .patients-page .patients-hero-image img,
  body.patients-page-mobile-qa .patients-hero-image img,
  .services-page .services-hero-image img {
    min-height: 560px !important;
  }

  .footer-bottom,
  .site-footer .footer-bottom {
    gap: 18px !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 980px) {
  .booking-widget-hero-image {
    min-height: 520px !important;
  }

  .booking-widget-hero-image img {
    height: 520px !important;
  }

  .patients-page .patients-hero-image,
  body.patients-page-mobile-qa .patients-hero-image,
  .services-page .services-hero-image {
    min-height: 460px !important;
    height: 460px !important;
  }

  .patients-page .patients-hero-image img,
  body.patients-page-mobile-qa .patients-hero-image img,
  .services-page .services-hero-image img {
    min-height: 460px !important;
  }

  .footer-bottom,
  .site-footer .footer-bottom {
    font-size: 11.5px !important;
  }

  .footer-bottom-links,
  .site-footer .footer-bottom-links {
    gap: 14px !important;
  }
}

@media (max-width: 720px) {
  .booking-widget-hero-image {
    min-height: 360px !important;
  }

  .booking-widget-hero-image img {
    height: 360px !important;
  }

  .patients-page .patients-hero-image,
  body.patients-page-mobile-qa .patients-hero-image,
  .services-page .services-hero-image {
    min-height: 320px !important;
    height: 320px !important;
  }

  .patients-page .patients-hero-image img,
  body.patients-page-mobile-qa .patients-hero-image img,
  .services-page .services-hero-image img {
    min-height: 320px !important;
  }

  .footer-bottom,
  .site-footer .footer-bottom {
    padding-bottom: 6px !important;
    gap: 14px !important;
  }

  .footer-bottom-links,
  .site-footer .footer-bottom-links {
    gap: 12px !important;
  }
}

/* v14 footer contact alignment:
   keep icons and content side-by-side and vertically centered,
   including the two-line address block. */
.footer-column .footer-contact-item,
.site-footer .footer-column .footer-contact-item {
  display: grid !important;
  grid-template-columns: 30px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: center !important;
}

.footer-column .footer-contact-item .footer-icon,
.site-footer .footer-column .footer-contact-item .footer-icon {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  align-self: center !important;
  justify-self: center !important;
}

.footer-column .footer-contact-item > span:last-child,
.site-footer .footer-column .footer-contact-item > span:last-child {
  display: block !important;
  min-width: 0 !important;
  align-self: center !important;
  line-height: 1.45 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

@media (max-width: 720px) {
  .footer-column .footer-contact-item,
  .site-footer .footer-column .footer-contact-item {
    grid-template-columns: 30px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: center !important;
  }
}

/* v15 contact page right-column support cards */
.contact-support-card {
  margin-top: 18px !important;
  padding: clamp(22px, 3vw, 30px) !important;
  border: 1px solid rgba(79, 163, 217, 0.16) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 96% 96%, rgba(234, 245, 251, 0.78), transparent 7rem),
    rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 14px 34px rgba(4, 34, 73, 0.06) !important;
}

.contact-support-card h2 {
  margin: 0 0 14px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-heading, Georgia, serif) !important;
  font-size: clamp(26px, 2.2vw, 34px) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.025em !important;
}

.contact-next-steps-list {
  display: grid !important;
  gap: 10px !important;
  margin: 0 !important;
  padding-left: 1.25rem !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

.contact-next-steps-list li::marker {
  color: var(--aim-olive-dark, #4f5d3c) !important;
  font-weight: 800 !important;
}

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

.contact-do-dont-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.contact-do-dont-grid h3 {
  margin: 0 0 8px !important;
  color: var(--aim-blue, #042249) !important;
  font-family: var(--font-body, Arial, sans-serif) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.contact-do-dont-grid ul {
  display: grid !important;
  gap: 7px !important;
  margin: 0 !important;
  padding-left: 1rem !important;
  color: var(--aim-text-soft, #4e5a67) !important;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
}

.contact-emergency-note {
  margin: 18px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 14px !important;
  background: rgba(234, 245, 251, 0.72) !important;
  border: 1px solid rgba(79, 163, 217, 0.18) !important;
  color: var(--aim-blue, #042249) !important;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
}

@media (max-width: 720px) {
  .contact-do-dont-grid {
    grid-template-columns: 1fr !important;
  }

  .contact-support-card {
    padding: 22px !important;
  }
}

/* v16 review card credibility polish:
   keep the cards, but remove the overly template-like testimonial cues. */
.home-testimonial-context {
  max-width: 620px !important;
  margin: 12px auto 0 !important;
  color: rgba(78, 90, 103, 0.86) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
}

.home-testimonial-card,
.review-card {
  border-radius: 22px !important;
  box-shadow: 0 10px 28px rgba(4, 34, 73, 0.055) !important;
}

.home-testimonial-card::before,
.review-card::before {
  display: none !important;
  content: none !important;
}

.home-testimonial-quote {
  margin-bottom: 18px !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.012em !important;
}

.review-card blockquote {
  font-size: clamp(18px, 1.28vw, 22px) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
}

.home-testimonial-label,
.review-meta {
  font-size: 11.5px !important;
  letter-spacing: 0.065em !important;
}

main img.home-testimonial-stars:not(.brand-logo):not(.footer-logo) {
  width: 92px !important;
  max-width: 92px !important;
  margin-bottom: 12px !important;
  opacity: 0.72 !important;
  filter: saturate(0.78) contrast(0.95) !important;
}

main img.review-stars:not(.brand-logo):not(.footer-logo) {
  width: 96px !important;
  max-width: 96px !important;
  opacity: 0.72 !important;
  filter: saturate(0.78) contrast(0.95) !important;
}

@media (max-width: 720px) {
  .home-testimonial-quote,
  .review-card blockquote {
    font-size: 18px !important;
    line-height: 1.32 !important;
  }

  .home-testimonial-context {
    width: min(100% - 32px, var(--container, 1180px)) !important;
  }
}

/* v17 global skip link accessibility patch */
.skip-link {
  position: fixed !important;
  top: 10px !important;
  left: 10px !important;
  z-index: 99999 !important;
  transform: translateY(-150%) !important;
  padding: 10px 14px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: var(--aim-blue, #042249) !important;
  border: 2px solid var(--aim-sky-700, #2c82b8) !important;
  box-shadow: 0 10px 26px rgba(4, 34, 73, 0.22) !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  text-decoration: none !important;
  letter-spacing: 0.02em !important;
}

.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0) !important;
  outline: 3px solid rgba(79, 163, 217, 0.35) !important;
  outline-offset: 3px !important;
}

/* v18 contact right-panel correction:
   support cards belong inside the Office Information column, directly after Office Hours. */
.contact-side-column .contact-support-stack {
  display: grid !important;
  gap: 16px !important;
  margin-top: 18px !important;
}

.contact-side-column .contact-support-card {
  margin-top: 0 !important;
  padding: 22px 24px !important;
  border-radius: 22px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.contact-side-column .contact-support-card h2 {
  font-size: clamp(24px, 2vw, 30px) !important;
  line-height: 1.05 !important;
  margin-bottom: 12px !important;
}

.contact-side-column .contact-next-steps-list {
  gap: 8px !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
}

.contact-side-column .contact-small-note {
  margin-top: 12px !important;
  font-size: 13.5px !important;
}

.contact-side-column .contact-do-dont-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.contact-side-column .contact-do-dont-grid ul {
  gap: 6px !important;
  font-size: 13px !important;
  line-height: 1.38 !important;
}

.contact-side-column .contact-emergency-note {
  margin-top: 14px !important;
  font-size: 13px !important;
}

.contact-map-frame .contact-support-card,
.contact-map-frame .contact-support-stack {
  display: none !important;
}

@media (max-width: 1100px) {
  .contact-side-column .contact-do-dont-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  .contact-side-column .contact-support-card {
    padding: 20px !important;
  }
}

/* v19 footer hours nowrap patch:
   Prevent time ranges from breaking with PM alone on a second line. */
.site-footer .hours-row,
.footer-column .hours-row,
.hours-row {
  display: grid !important;
  grid-template-columns: minmax(92px, max-content) max-content !important;
  column-gap: 20px !important;
  row-gap: 2px !important;
  align-items: start !important;
  justify-content: start !important;
}

.site-footer .hours-row span,
.footer-column .hours-row span,
.hours-row span {
  white-space: nowrap !important;
}

.site-footer .hours-row span:last-child,
.footer-column .hours-row span:last-child,
.hours-row span:last-child {
  white-space: nowrap !important;
  min-width: max-content !important;
}

.site-footer .footer-column:has(.hours-row) {
  min-width: 250px !important;
}

@media (max-width: 720px) {
  .site-footer .hours-row,
  .footer-column .hours-row,
  .hours-row {
    grid-template-columns: minmax(92px, max-content) max-content !important;
    column-gap: 18px !important;
  }

  .site-footer .footer-column:has(.hours-row) {
    min-width: 260px !important;
  }
}

/* v21 Wyatt Spicer code-style footer credit */
.footer-credit .wyatt-code-credit,
.site-footer .footer-credit .wyatt-code-credit {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
  font-size: 0.96em !important;
  font-weight: 750 !important;
  letter-spacing: 0.035em !important;
  text-transform: uppercase !important;
  color: rgba(255, 255, 255, 0.82) !important;
  text-decoration: none !important;
}

.footer-credit .wyatt-code-credit:hover,
.footer-credit .wyatt-code-credit:focus-visible,
.site-footer .footer-credit .wyatt-code-credit:hover,
.site-footer .footer-credit .wyatt-code-credit:focus-visible {
  color: #ffffff !important;
  text-decoration: underline !important;
  text-underline-offset: 0.22em !important;
}

.footer-credit .wyatt-code-credit::after,
.site-footer .footer-credit .wyatt-code-credit::after {
  content: "" !important;
}

/* v22 mobile header tighten:
   Reduce excess white header space on mobile and let the logo fill the row better. */
@media (max-width: 720px) {
  body .site-header {
    min-height: 0 !important;
  }

  body .site-header .nav-container,
  body .site-header .header-inner {
    width: min(100% - 28px, var(--container, 1180px)) !important;
    min-height: 0 !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 48px !important;
    grid-template-rows: auto !important;
    grid-template-areas: "brand toggle" !important;
    column-gap: 10px !important;
    row-gap: 0 !important;
    align-items: center !important;
  }

  body .site-header .brand,
  body .site-header .logo-link {
    grid-area: brand !important;
    align-self: center !important;
    justify-self: start !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

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

  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;
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    align-self: center !important;
  }

  body .site-header .mobile-menu {
  }
}

@media (max-width: 390px) {
  body .site-header .brand-logo,
  body .site-header .logo {
    width: min(238px, calc(100vw - 92px)) !important;
    max-width: min(238px, calc(100vw - 92px)) !important;
  }

  body .site-header .nav-container,
  body .site-header .header-inner {
    width: min(100% - 22px, var(--container, 1180px)) !important;
    grid-template-columns: minmax(0, 1fr) 46px !important;
  }

  body .site-header .mobile-menu-toggle,
  body .site-header button.mobile-menu-toggle,
  body .site-header button[aria-controls="mobile-menu"] {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
  }
}

/* v23 distinct Services / Patients hero images:
   Preserve the taller desktop hero treatment while cropping each new image differently. */
.services-page .services-hero-image img {
  object-fit: cover !important;
  object-position: 52% center !important;
}

.patients-page .patients-hero-image img,
body.patients-page-mobile-qa .patients-hero-image img {
  object-fit: cover !important;
  object-position: 46% center !important;
}

@media (max-width: 720px) {
  .services-page .services-hero-image img {
    object-position: 50% center !important;
  }

  .patients-page .patients-hero-image img,
  body.patients-page-mobile-qa .patients-hero-image img {
    object-position: 42% center !important;
  }
}

/* v24 mobile scroll / overflow stabilization:
   Fixes iPhone horizontal drift, footer-width pressure, contact-card wrapping,
   and Safari content-visibility pop-in while scrolling. */
@media (max-width: 820px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overscroll-behavior-x: none !important;
  }

  body {
    position: relative !important;
  }

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

  main,
  main > section,
  .site-header,
  .site-footer,
  .container,
  .nav-container,
  .header-inner,
  .contact-page-hero,
  .contact-map-section,
  .pre-footer-cta,
  .cta-band {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Disable mobile content-visibility lazy rendering.
     It helped performance, but iOS Safari can visually jump/pop sections while scrolling. */
  main > section,
  main .container,
  .site-footer,
  .pre-footer-cta,
  .cta-band,
  .contact-page-hero,
  .contact-map-section,
  .contact-form-card,
  .contact-side-column {
    content-visibility: visible !important;
    contain-intrinsic-size: auto !important;
    contain: none !important;
  }

  /* Hard stop for accidental sideways page movement without clipping normal vertical content. */
  main,
  .site-footer,
  .site-header {
    overflow-x: clip !important;
  }

  /* Contact page: force all major regions into one stable readable column. */
  .contact-page-hero-grid,
  .contact-page-grid,
  .contact-page-form-grid,
  .contact-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .contact-page-hero-image,
  .contact-form-card,
  .contact-side-column,
  .contact-map-frame,
  .contact-map-actions,
  .contact-billing-cta,
  .contact-callback-note,
  .contact-prescription-note,
  .local-service-note,
  .contact-support-card,
  .contact-support-stack {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* The portal card was using flex on mobile, making the heading column too narrow. */
  .portal-status-card {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 18px 18px 18px 38px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .portal-status-card::before {
    position: absolute !important;
    left: 18px !important;
    top: 24px !important;
    margin: 0 !important;
  }

  .portal-status-card h3,
  .portal-status-card p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .contact-do-dont-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .contact-page-field,
  .form-field,
  .contact-page-field input,
  .contact-page-field select,
  .contact-page-field textarea,
  .form-field select {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Footer: desktop can stay single-line, but mobile must not create page-wide overflow. */
  .site-footer .footer-bottom,
  .footer-bottom {
    width: min(100% - 32px, var(--container, 1180px)) !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    white-space: normal !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 10px 16px !important;
  }

  .site-footer .footer-bottom > *,
  .footer-bottom > *,
  .site-footer .footer-bottom p,
  .footer-bottom p,
  .site-footer .footer-bottom span,
  .footer-bottom span,
  .site-footer .footer-credit,
  .footer-credit,
  .site-footer .footer-credit a,
  .footer-credit a {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
  }

  .site-footer .footer-bottom-links,
  .footer-bottom-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 8px 16px !important;
    overflow-x: hidden !important;
    white-space: normal !important;
  }

  .site-footer .footer-bottom-links a,
  .site-footer .footer-bottom-links button,
  .footer-bottom-links a,
  .footer-bottom-links button {
    white-space: normal !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: normal !important;
  }

  /* Keep mobile menu from dragging the page underneath while open. */
  body.menu-open {
    overflow: hidden !important;
    touch-action: none !important;
  }

  body.menu-open .site-header .mobile-menu {
    max-height: calc(100vh - 92px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

@media (max-width: 420px) {
  .site-footer .footer-bottom-links,
  .footer-bottom-links {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .portal-status-card {
    padding-left: 34px !important;
  }

  .portal-status-card::before {
    left: 16px !important;
  }
}

/* v26 final visual polish:
   Contact office-hours labels, Services medical disclaimer, footer lunch-time wrapping. */

/* Contact page Office Hours: make weekday labels easier to scan. */
.contact-hours-card .contact-hours-row span:first-child {
  font-weight: 750 !important;
  color: var(--aim-blue, #042249) !important;
}

/* Services page medical information disclaimer: more intentional and full-width. */
.medical-disclaimer {
  padding: clamp(34px, 5vw, 72px) 0 !important;
  background:
    radial-gradient(circle at 8% 0%, rgba(79, 163, 217, 0.10), transparent 38%),
    linear-gradient(180deg, rgba(247, 251, 253, 0.92), rgba(255, 255, 255, 0.98)) !important;
}

.medical-disclaimer .container {
  width: min(100% - 48px, var(--container, 1180px)) !important;
}

.medical-disclaimer-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.7fr) !important;
  gap: clamp(22px, 4vw, 56px) !important;
  align-items: center !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 46px) clamp(28px, 5vw, 60px) !important;
  border: 1px solid rgba(79, 163, 217, 0.18) !important;
  border-left: 6px solid rgba(111, 127, 88, 0.72) !important;
  border-radius: 28px !important;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(247, 251, 253, 0.98)) !important;
  box-shadow: 0 18px 44px rgba(4, 34, 73, 0.075) !important;
  overflow: hidden !important;
}

.medical-disclaimer-card::after {
  content: "" !important;
  position: absolute !important;
  right: -90px !important;
  bottom: -110px !important;
  width: 260px !important;
  height: 260px !important;
  border-radius: 999px !important;
  background: rgba(79, 163, 217, 0.075) !important;
  pointer-events: none !important;
}

.medical-disclaimer-card h2 {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  max-width: 12ch !important;
  color: var(--aim-blue, #042249) !important;
  font-size: clamp(30px, 3.1vw, 44px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.025em !important;
}

.medical-disclaimer-card p {
  position: relative !important;
  z-index: 1 !important;
  margin: 0 !important;
  max-width: none !important;
  color: rgba(20, 32, 51, 0.82) !important;
  font-size: clamp(17px, 1.25vw, 20px) !important;
  line-height: 1.72 !important;
}

/* Footer lunch note: keep the time range together so the dash never starts a line. */
.site-footer .footer-note {
  max-width: 30ch !important;
  line-height: 1.45 !important;
}

.site-footer .footer-lunch-time {
  white-space: nowrap !important;
}

@media (max-width: 900px) {
  .medical-disclaimer-card {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .medical-disclaimer-card h2 {
    max-width: none !important;
  }

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

@media (max-width: 720px) {
  .medical-disclaimer {
    padding: 32px 0 !important;
  }

  .medical-disclaimer-card {
    padding: 24px !important;
    border-radius: 24px !important;
  }

  .site-footer .footer-note {
    max-width: 28ch !important;
  }
}

/* v27 launch blocker fix:
   Keep the mobile hamburger menu visible on phones.
   A previous late override used top: calc(100% + 8px) on a fixed menu,
   which placed the menu one viewport below the screen. */
@media (max-width: 720px) {
  body .site-header .mobile-menu,
  body.menu-open .site-header .mobile-menu {
    top: 150px !important;
    bottom: auto !important;
    max-height: calc(100vh - 166px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

@media (max-width: 420px) {
  body .site-header .mobile-menu,
  body.menu-open .site-header .mobile-menu {
    top: 142px !important;
    max-height: calc(100vh - 156px) !important;
  }
}
