[data-sm-hours-before][hidden] { display: none !important; }
.sm_hours_notice { margin-top: 132px; padding: 15px 0; background: #fff0df; border-bottom: 1px solid #e9c6a5; }
.sm_hours_notice .container { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 18px; }
.sm_hours_notice strong { color: #753b12; font-size: 1rem; }
.sm_hours_notice_badge { padding: 3px 10px; border-radius: 4px; background: #c05e18; color: white; font-size: .75rem; font-weight: 700; }
.sm_hours_notice a { color: #843f10; text-decoration: underline; text-underline-offset: 3px; font-size: .84rem; }
.sm_hours_notice:not([hidden]) ~ main.sm_page_main,
.sm_hours_notice:not([hidden]) ~ main .sm_hero { margin-top: 0; }
#clinic-hours { scroll-margin-top: 155px; }
.sm_hours_period + .sm_hours_period { margin-top: 30px; }
.sm_hours_period[hidden] + .sm_hours_period { margin-top: 0; }
.sm_hours_period_title { display: flex; gap: 8px 16px; flex-wrap: wrap; align-items: center; margin: 0 0 14px; font-size: 1.08rem; color: #753b12; }
.sm_hours_period_title span { font-size: .81rem; font-weight: 500; color: #76543a; }
.sm_hours_upcoming { padding: 22px; border: 2px solid #e6a577; border-radius: 12px; background: #fffaf5; }
.sm_hours_change_note { font-size: .9rem; line-height: 1.8; margin: 0 0 16px; color: #614732; }
.sm_hours_new_table .sm_hours_open > span { display: block; white-space: nowrap; }
.sm_hours_new_table { min-width: 600px; }
.sm_hours_new_table thead th:first-child { width: 90px; }
.sm_hours_new_table small { display: block; color: #753b12; }
.sm_hours_text { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 24px; margin-top: 18px; font-size: .92rem; color: #443629; }
.sm_hours_text > div { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 8px; padding: 4px 0; }
.sm_hours_text dt { font-weight: 700; }
.sm_hours_text dd { margin: 0; }
.sm_hours_visit { display: block; font-size: .86em; color: #795033; }
.sm_hours_sr_only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sm_footer .sm_hours_period_title,
.sm_footer .sm_hours_period_title span,
.sm_footer .sm_hours_text,
.sm_footer .sm_hours_visit { color: #fff4ec; }
.sm_footer .sm_hours_text { grid-template-columns: 1fr; font-size: .83rem; gap: 0; }
.sm_footer .sm_footer_schedule { min-width: 0; }
.sm_footer .sm_hours_upcoming { padding: 16px; background: rgba(255, 255, 255, .07); border-color: #e4b38c; }
.sm_footer .sm_hours_change_note { color: #fff4ec; font-size: .82rem; }
.sm_footer .sm_hours_period_title { font-size: .97rem; }
.sm_footer .sm_hours_period_title span { font-size: .77rem; }
.sm_footer .sm_hours_new_table { min-width: 600px; }
.sm_footer .sm_hours_new .sm_schedule_scroll_hint { display: flex; color: #fff4ec; }
.sm_hours_schedule .sm_schedule_wrap:focus-visible { outline: 3px solid #b85a16; outline-offset: 3px; }
@media (max-width: 768px) {
  .sm_hours_notice { margin-top: 72px; padding: 14px 0; }
  .sm_hours_notice .container { justify-content: flex-start; gap: 6px; }
  .sm_hours_notice strong, .sm_hours_notice a { width: 100%; }
  .sm_hours_notice strong { font-size: .94rem; }
  #clinic-hours { scroll-margin-top: 90px; }
  .sm_hours_text { grid-template-columns: 1fr; font-size: .88rem; gap: 2px; }
  .sm_hours_upcoming { padding: 16px 12px; }
  .sm_hours_period_title { font-size: 1rem; gap: 4px; }
  .sm_hours_period_title span { width: 100%; }
}
