/* layout: main */
:root { --text: #555; --accent: #04699d; --accent-dark: #01263a; --line: #c8c8c8; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--text); font: 15px/1.4 "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; -webkit-font-smoothing: antialiased; overflow-wrap: anywhere; }
a { color: var(--accent); text-decoration: none; outline: 0; }
a:visited { color: var(--accent); }
a:hover, a:active { color: var(--accent-dark); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 9px; color: var(--accent); font-weight: normal; line-height: 1.25; }
h1 { font-size: 1.2em; margin-bottom: 12px; }
h2 { font-size: 1.1em; }
h3, h4, h5, h6 { font-size: 1em; }
h4, h5 { margin-bottom: 3px; }
h6 { margin-bottom: 0; }
p { margin: 0 0 18px; }
strong, b { font-weight: bold; }
em, i { font-style: italic; }
ul, ol { margin: 0 0 18px; }
ul { list-style: disc outside; padding-left: 20px; }
ol { list-style: decimal; padding-left: 30px; }
li { margin-bottom: 12px; }
table { width: 100%; margin: 0 0 18px; border-collapse: collapse; }
td, th { padding: 9px 10px; text-align: left; vertical-align: top; }
button { font: inherit; }

.site { margin: 0 auto 30px; max-width: 982px; border-left: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.site-header img { display: block; width: 100%; max-width: 980px; height: auto; max-height: 200px; }
.crumbs { padding: 15px 10px 10px 20px; background: #eaeaea; border-bottom: 1px solid var(--line); color: #222; }

.cols { display: grid; grid-template-columns: minmax(0, 1fr); }
.menu, .content, .practice-info { padding: 10px; min-width: 0; }

.menu__toggle { display: block; width: 100%; padding: 10px; border: 0; background: var(--accent); color: #fff; text-align: left; cursor: pointer; }
.menu__list { margin: 0; padding: 0; list-style: none; }
.menu__list li { margin: 0; }
.menu__list a { display: block; padding: 10px 5px; }
.menu__list a:hover, .menu__list a.active { background: var(--accent); color: #fff; }
.js .menu__list { display: none; }
.js .menu.is-open .menu__list { display: block; }

.practice-info { border-top: 1px solid #ddd; }
.practice-info .text { margin: 0; }
.practice-info h4 { font-size: 1em; }

.site-footer { margin-top: 20px; padding-left: 10px; border-top: 1px solid var(--line); font-size: 0.9em; line-height: 30px; }
.site-footer .text { margin: 0; }
.site-footer .text p { margin: 0; line-height: 30px; }

.cookie-notice { position: fixed; top: 0; left: 0; z-index: 9999; width: 100%; max-height: 100vh; overflow-y: auto; padding: 20px; background: rgba(255, 255, 255, 0.9); border-bottom: 1px solid #333; text-align: center; }
.cookie-notice[hidden] { display: none; }

@media (min-width: 768px) {
  body { font-size: 13px; line-height: 18px; }
  p { line-height: 17px; }
  .site { margin-top: 0; }
  .cols { grid-template-columns: 21.68% 56.5% 15%; column-gap: 2.4%; align-items: start; }
  .cookie-notice { font-size: 1.2em; }
  .menu, .content, .practice-info { padding: 10px; }
  .practice-info { border-top: 0; }
  .menu__toggle { display: none; }
  .js .menu__list, .menu__list { display: block; margin: 0 0 18px 10px; }
  .menu__list a { display: inline; padding: 0; color: var(--text); font-size: 1.1em; line-height: 30px; background: none; }
  .menu__list a:hover, .menu__list a.active { background: none; color: var(--accent); }
  .site-footer { font-size: 0.9em; }
}
/* block: hours */
.hours { margin: 10px 0; }
.hours__title { margin-bottom: 18px; font-weight: bold; }
.hours__title p { margin: 0; }
.hours[data-emphasis] .hours__title { color: var(--accent); font-size: 1.2em; font-style: italic; line-height: 1.25; }
.hours[data-emphasis] .hours__rows { font-weight: bold; font-style: italic; }
.hours__rows { margin: 0 0 18px; padding: 0; list-style: none; color: var(--accent); font-size: 1.2em; line-height: 1.25; }
.hours__row { margin: 0 0 12px; }
.hours__day, .hours__time { display: block; }
.hours__time { font-weight: bold; }
@media (min-width: 768px) {
  .hours__rows { display: grid; grid-template-columns: max-content 1fr; column-gap: 2em; row-gap: 12px; }
  .hours__row { display: contents; }
  .hours__time { font-weight: normal; }
  .hours[data-emphasis] .hours__time { font-weight: bold; }
}
/* block: map-consent */
.map-consent { margin: 10px 0; }
.map-consent__frame { display: block; width: 100%; height: 400px; border: 0; }
.map-consent__frame[hidden] { display: none; }
/* block: text */
.text { margin: 10px 0; }
.text[data-centered] { text-align: center; }
.text[data-large] :is(h2, h3, h4, h5, h6) { font-size: 1.2em; }
/* template: team */
.team { margin: 10px 0; }
.team__member { margin: 0 0 30px; }
.team__photo { display: block; width: 220px; max-width: 100%; height: auto; margin-bottom: 9px; }
.team__name { margin: 0; color: #04699d; font-size: 1em; font-weight: bold; }