/* A shared, clearly grouped footer for every page. */
footer.site-footer {
  padding: 52px 6% 24px;
  background: #fff;
  border-top: 1px solid #cdd9d3;
  color: #142c4b;
}
.footer-shell { max-width: 1280px; margin-inline: auto; }
.site-footer .footer-brand-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px; margin: 0; padding: 0 0 36px;
  border-bottom: 1px solid #e0e6e2;
}
.site-footer .footer-brand-row .brand-link { flex: 0 1 340px; min-width: 0; }
.site-footer .footer-brand-row .brand-name { width: 250px; }
.site-footer .footer-brand-row p {
  margin: 0; width: auto; max-width: none;
  font: 400 clamp(1.25rem, 1.8vw, 1.6rem)/1.35 var(--serif);
  color: #163e35;
}
.site-footer .footer-waitlist { gap: 20px; flex-shrink: 0; border-radius: 3px; font-size: .875rem; }
.site-footer .footer-columns {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 1fr 1.15fr;
  gap: clamp(24px, 3.8vw, 54px); padding-block: 38px 42px;
}
.site-footer .footer-section { min-width: 0; }
.site-footer .footer-section h2 {
  margin: 0 0 20px; color: #142c4b;
  font: 700 .75rem/1.5 var(--sans);
  letter-spacing: .11em; text-transform: uppercase;
}
.site-footer .footer-section :is(address, p, a, dt, dd) { font-size: .875rem; line-height: 1.75; }
.site-footer .footer-section address { margin: 0 0 14px; font-style: normal; color: #42536a; }
.site-footer .footer-email { overflow-wrap: anywhere; }
.site-footer .footer-connect { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 22px; }
.site-footer .footer-connect a { display: inline-flex; align-items: center; gap: 7px; color: #163e35; }
.site-footer .footer-connect svg { flex: 0 0 18px; width: 18px; height: 18px; }
.site-footer .footer-opening-note { margin: 0 0 14px; color: #163e35; }
.site-footer .footer-schedule { margin: 0; max-width: 250px; }
.site-footer .footer-schedule > div { display: flex; justify-content: space-between; gap: 14px; padding-block: 4px; }
.site-footer .footer-schedule :is(dt, dd) { margin: 0; color: #42536a; font-weight: 400; }
.site-footer .footer-schedule dd { white-space: nowrap; font-variant-numeric: tabular-nums; }
.site-footer .footer-appointment-note { margin: 13px 0 0; font-size: .75rem !important; color: #53645e; }
.site-footer .footer-link-column { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.site-footer .footer-link-column h2 { margin-bottom: 11px; }
.site-footer .footer-link-column a { text-decoration: none; color: #42536a; }
.site-footer .footer-section a:hover,
.site-footer .footer-section a[aria-current="page"] { color: #142c4b; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: #947135; }
.site-footer .footer-base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; border-top: 1px solid #e0e6e2; padding-top: 22px; font: 400 .75rem/1.7 var(--sans); color: #53645e; }
@media (max-width: 1050px) {
  .site-footer .footer-brand-row { flex-wrap: wrap; }
  .site-footer .footer-brand-row p { display: none; }
  .site-footer .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 48px; }
}
@media (max-width: 600px) {
  footer.site-footer { padding: 36px 7% 24px; }
  .site-footer .footer-brand-row { flex-direction: column; align-items: flex-start; gap: 20px; padding-bottom: 28px; }
  .site-footer .footer-brand-row .brand-link { flex: none; width: min(100%, 320px); }
  .site-footer .footer-brand-row .brand-name { width: auto; flex: 1; }
  .site-footer .footer-brand-row p { display: block; margin: 0; font-size: 1.35rem; }
  .site-footer .footer-waitlist { width: 100%; justify-content: space-between; }
  .site-footer .footer-columns { gap: 30px 22px; padding-block: 30px; }
  .site-footer .footer-clinic, .site-footer .footer-opening { grid-column: 1 / -1; }
  .site-footer .footer-section h2 { font-size: .7rem; letter-spacing: .08em; }
  .site-footer .footer-link-column a { padding-block: 4px; }
  .site-footer .footer-schedule { max-width: none; }
  .site-footer .footer-base { flex-direction: column; }
}
