/* Locations overview: deliberately scoped to preserve the shared header/footer. */
#locations-finder { background:#fff; padding:0 max(24px, calc((100vw - 1360px)/2)) 48px; }
#locations-finder [hidden] { display:none !important; }
#locations-finder :is(button,input) { font:inherit; }
#locations-finder :is(a,button,input):focus-visible { outline:3px solid #32346f; outline-offset:4px; }
#locations-finder h1,#locations-finder h2,#locations-finder h3 { color:#32346f; font-family:"Baloo 2",sans-serif; line-height:1.15; margin:0; }
#locations-finder p { margin:0; line-height:1.6; }
.practice-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; padding:30px 0 24px; }
#locations-finder .practice-eyebrow { color:#65708d; font-size:14px; font-weight:800; margin-bottom:6px; }
#locations-finder h1 { font-size:clamp(30px,3.4vw,46px); margin-bottom:9px; }
.practice-intro > div > p:last-child { max-width:740px; font-size:17px; }
.practice-list-shortcut { flex-shrink:0; font-size:14px; font-weight:800; text-decoration:underline; text-underline-offset:4px; padding-bottom:4px; }
.practice-explorer { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(325px,1fr); gap:18px 24px; align-items:start; }
.practice-search { grid-column:1/-1; display:flex; align-items:center; gap:18px; padding:17px 20px; background:#f7f7fb; border:1px solid #e4e4ef; border-radius:16px; }
.practice-search label { font-weight:800; color:#32346f; }
.practice-search__input { display:flex; gap:8px; flex:1; max-width:600px; }
#practice-query { min-width:0; flex:1; width:100%; padding:12px 16px; background:#fff; border:1px solid #b7b8ce; border-radius:9px; font-size:16px; color:#172045; height:48px; }
#locations-finder .practice-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 22px; min-height:48px; border:0; border-radius:9px; font-weight:800; line-height:1.3; cursor:pointer; text-align:center; text-decoration:none; transition:box-shadow .15s,background .15s; }
#locations-finder .practice-button--purple { color:#fff; background:#32346f; }
#locations-finder .practice-button--purple:hover { background:#27295a; }
#locations-finder .practice-button--orange { color:#fff; background:#f47c20; }
#locations-finder .practice-button--orange:hover { background:#f47c20; box-shadow:0 4px 14px #f47c2040; }
#locations-finder .practice-button--orange:active { background:#dc6b16; }
.practice-reset { border:0; padding:8px 0; color:#32346f; text-decoration:underline; text-underline-offset:3px; font-weight:800 !important; background:transparent; cursor:pointer; }
.practice-map-panel { position:sticky; top:18px; min-width:0; }
.practice-map-stage { display:grid; }
.practice-map-stage > * { grid-area:1/1; }
.practice-map-index-image { display:block; width:100%; height:600px; object-fit:cover; border:1px solid #d7ded6; border-radius:18px; }
#practice-map { width:100%; height:600px; background:#e8eee6; border:1px solid #d7ded6; border-radius:18px; z-index:0; font-family:"Nunito",sans-serif; }
.practice-map-fallback { padding:25px; }
.practice-map-fallback a { text-decoration:underline; }
.practice-map-toolbar { display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; }
.practice-map-toolbar button { min-height:44px; border:1px solid #d7d7e7; border-radius:8px; background:#fff; color:#32346f; padding:8px 13px; font-weight:800 !important; cursor:pointer; }
#practice-map-interaction { display:none; }
.practice-results { min-width:0; scroll-margin-top:24px; }
#locations-finder .practice-results__summary h2 { font-size:25px; }
#locations-finder .practice-results__summary p { font-size:14px; color:#65708d; margin:5px 0 13px; }
.practice-results__list { max-height:619px; overflow-y:auto; scrollbar-width:thin; padding-right:8px; overscroll-behavior-y:contain; }
.practice-result { border:1px solid #e0e1ed; border-radius:12px; padding:18px; background:#fff; margin-bottom:12px; }
.practice-result.is-selected { border-color:#32346f; background:#f8f8fc; box-shadow:inset 4px 0 #32346f; }
.practice-result__heading { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
#locations-finder .practice-result h3 { font-size:23px; }
.practice-result h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.practice-result__distance { white-space:nowrap; font-weight:800; font-size:13px; padding-top:4px; color:#32346f; }
#locations-finder .practice-result__address { font-size:15px; line-height:1.5; margin:9px 0 12px; color:#4e5875; }
.practice-result__actions { display:flex; flex-wrap:wrap; gap:4px 16px; align-items:center; }
.practice-result__actions :is(a,button) { display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:800; color:#32346f; }
.practice-result__actions .practice-detail { background:#f0f0f8; padding:9px 12px; border-radius:7px; gap:8px; }
.practice-result__actions :is(a,button):hover { text-decoration:underline; text-underline-offset:3px; }
.practice-on-map { padding:0; background:none; border:0; cursor:pointer; }
.practice-route { margin-left:auto; text-decoration:underline; text-underline-offset:3px; }
.practice-empty { background:#f7f7fb; border-radius:12px; padding:20px; margin-bottom:16px; }
#locations-finder .practice-empty p { margin:12px 0; }
.practice-empty > a { display:block; margin-top:18px; text-decoration:underline; }
#locations-finder .practice-support { display:grid; grid-template-columns:1.2fr 1fr; gap:55px; margin:42px 0 20px; padding:30px 36px; background:#fff7e7; border-radius:18px; }
#locations-finder .practice-support h2 { font-size:32px; }
#locations-finder .practice-support h3 { font-size:25px; }
#locations-finder .practice-support p:not(.practice-eyebrow) { margin:12px 0 16px; max-width:510px; }
.practice-phone { display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:21px; color:#32346f; min-height:44px; }
.practice-support__appointment { border-left:1px solid #e7ddc8; padding-left:36px; }
#locations-finder .practice-insurance { text-align:center; font-size:15px; color:#4e5875; }
.practice-insurance a { text-decoration:underline; text-underline-offset:3px; color:#32346f; }
/* Leaflet uses locally hosted cartography; these controls never load Google Maps. */
#practice-map .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; color:#32346f; }
#practice-map .leaflet-control-attribution { font-size:10px; background:#fffffff2; }
#practice-map .leaflet-control-attribution a { color:#32346f; text-decoration:underline; }
.practice-pin-icon { border:0; background:none; }
.practice-pin-icon span { display:flex; align-items:center; justify-content:center; width:36px; height:36px; margin:4px; border:3px solid #fff; border-radius:50% 50% 50% 4px; transform:rotate(-45deg); background:#32346f; box-shadow:0 2px 7px #17204555; }
.practice-pin-icon span::after { content:""; width:10px; height:10px; background:white; border-radius:50%; }
.practice-cluster-icon { display:flex !important; align-items:center; justify-content:center; width:44px; height:44px; background:#32346f; border:4px solid #fff; border-radius:50%; box-shadow:0 0 0 3px #32346f50; color:#fff; font:800 19px "Nunito",sans-serif; }
#practice-map .leaflet-popup-content { margin:18px 22px; min-width:190px; font:15px/1.5 "Nunito",sans-serif; }
#practice-map .leaflet-popup-content strong { display:block; font-size:20px; line-height:1.2; color:#32346f; margin-bottom:9px; }
#practice-map .leaflet-popup-content p { margin:0 0 12px; }
#practice-map .leaflet-popup-content a { display:flex; justify-content:center; background:#32346f; color:#fff; border-radius:7px; min-height:44px; align-items:center; padding:8px 12px; font-weight:800; }
#practice-map .leaflet-popup-close-button { width:32px; height:32px; line-height:32px; font-size:24px; }
#practice-map .leaflet-tooltip { font-family:"Nunito",sans-serif; font-weight:800; }
@media(max-width:1050px) {
 .practice-intro { display:block; }.practice-list-shortcut { display:inline-block; margin-top:10px; }
 .practice-explorer { grid-template-columns:minmax(0,1.3fr) minmax(310px,1fr); gap:18px; }
 .practice-search { flex-wrap:wrap; gap:10px 18px; }.practice-search label { flex-basis:100%; }.practice-search__input { max-width:none; }
}
@media(max-width:760px) {
 #locations-finder { padding:0 16px 32px; }
 .practice-intro { padding:21px 0 16px; }#locations-finder h1 { font-size:32px; margin-bottom:7px; }
 #locations-finder .practice-eyebrow { font-size:12px; }.practice-intro > div > p:last-child { font-size:15px; line-height:1.5; }
 .practice-list-shortcut { font-size:13px; margin-top:8px; }
 .practice-explorer { display:flex; flex-direction:column; gap:16px; }
 .practice-search { width:100%; padding:12px; border-radius:12px; gap:7px; }.practice-search label { font-size:14px; }
 .practice-search__input { flex-basis:100%; gap:6px; }#practice-query { padding:10px; }
 #locations-finder .practice-search .practice-button { padding:10px 15px; }
 .practice-reset { font-size:14px !important; }
 .practice-map-panel { position:relative; top:auto; width:100%; }
 .practice-map-index-image { height:350px; border-radius:13px; }
 #practice-map { height:350px; border-radius:13px; }
 .practice-map-toolbar { gap:8px; }.practice-map-toolbar button { font-size:13px !important; padding:7px 10px; }
 #practice-map-interaction { display:block; }#practice-map-interaction[aria-pressed="true"] { background:#32346f; color:#fff; }
 #practice-map:not(.is-interactive),#practice-map:not(.is-interactive) .leaflet-container { touch-action:pan-y; }
 #practice-map:not(.is-interactive) .leaflet-map-pane { touch-action:pan-y; }
 .practice-results { width:100%; }.practice-results__list { max-height:none; overflow:visible; padding:0; overscroll-behavior:auto; }
 .practice-result { padding:17px; }#locations-finder .practice-result h3 { font-size:24px; }
 #locations-finder .practice-support { display:block; padding:24px; margin-top:25px; }
 .practice-support__appointment { margin-top:22px; padding:23px 0 0; border:0; border-top:1px solid #e7ddc8; }
 #locations-finder .practice-support h2 { font-size:29px; }
 #locations-finder .practice-insurance { text-align:left; font-size:14px; }
 .practice-insurance a { display:inline-block; padding-top:6px; }
}
@media(prefers-reduced-motion:reduce) { #locations-finder * { scroll-behavior:auto; transition:none; } }
#locations-finder .practice-search-feedback { flex-basis:100%; font-size:14px; color:#4e5875; }
.practice-search:has(.practice-search-feedback:not([hidden])) { flex-wrap:wrap; }
/* The complete location card opens its map details; the two links remain separate. */
.practice-result { position:relative; }
.practice-card-select { position:absolute; inset:0; width:100%; height:100%; padding:0; border:0; border-radius:12px; background:transparent; cursor:pointer; z-index:1; }
.practice-result__actions a { position:relative; z-index:2; }
.practice-result:has(.practice-card-select:hover) { border-color:#f47c20; background:#fffaf4; }
.practice-result.is-selected { border-color:#f47c20; background:#fffaf4; box-shadow:inset 4px 0 #f47c20; }
.practice-pin-icon,.practice-cluster-icon { background:transparent; border:0; border-radius:50%; box-shadow:0 2px 8px #17204540; }
.practice-pin-icon img,.practice-cluster-icon img { width:44px; height:44px; max-width:none; }
.practice-cluster-count { position:absolute; top:-6px; right:-7px; min-width:23px; height:23px; border-radius:50%; display:grid; place-items:center; border:2px solid #fff; background:#32346f; color:#fff; font:800 13px "Nunito",sans-serif; }
#practice-google-map { height:600px; width:100%; border:1px solid #d7ded6; border-radius:18px; overflow:hidden; }
#practice-google-map img { max-width:none; }
.practice-google-notice { display:flex; align-items:center; gap:12px; padding:12px 15px; margin-bottom:12px; background:#f7f7fb; border:1px solid #e4e4ef; border-radius:12px; }
#locations-finder .practice-google-notice p { font-size:13px; line-height:1.4; flex:1; }
.practice-google-notice button { border:0; border-radius:8px; background:#32346f; color:#fff; padding:12px; min-height:44px; font-weight:800 !important; font-size:13px !important; cursor:pointer; }
#locations-finder .practice-map-popup { font:15px/1.5 "Nunito",sans-serif; padding:4px 3px 10px; min-width:190px; }
#locations-finder .practice-map-popup strong { display:block; font-size:20px; line-height:1.2; color:#32346f; margin-bottom:9px; }
#locations-finder .practice-map-popup p { margin:0 0 12px; }
#locations-finder .practice-map-popup a { display:flex; justify-content:center; align-items:center; background:#32346f; color:#fff; border-radius:7px; min-height:44px; padding:8px 12px; font-weight:800; }
@media(max-width:760px) { #practice-google-map { height:350px; border-radius:13px; } }
@media(min-width:761px) { .practice-list-shortcut { display:none; } }
/* Keep the desktop search with the map; make the separate scrollable list clear. */
.practice-scroll-more { display:none; }
@media(min-width:761px) {
 .practice-explorer { grid-template-areas:"search results" "map results"; grid-template-rows:auto 1fr; }
 .practice-search { grid-area:search; flex-wrap:wrap; gap:8px 16px; }
 .practice-search label { flex-basis:100%; }
 .practice-search__input { max-width:none; flex-basis:100%; }
 .practice-map-panel { grid-area:map; }
 .practice-results { grid-area:results; display:flex; flex-direction:column; height:760px; min-height:0; background:#f0eef8; border:1px solid #dbd7eb; border-radius:18px; overflow:hidden; }
 .practice-results__summary { flex-shrink:0; padding:20px 20px 8px; }
 #locations-finder .practice-results__summary p { color:#575574; margin-bottom:10px; }
 #locations-finder .practice-results__summary p::before { content:"Scroll door de lijst. "; }
 .practice-results__list { min-height:0; flex:1; max-height:none; overflow-y:scroll; padding:5px 10px 5px 18px; scrollbar-gutter:stable; scrollbar-width:auto; scrollbar-color:#7b72a4 #e0dced; scroll-padding-block:8px; }
 .practice-results__list::-webkit-scrollbar { width:12px; }
 .practice-results__list::-webkit-scrollbar-track { background:#e0dced; border-radius:8px; }
 .practice-results__list::-webkit-scrollbar-thumb { background:#7b72a4; border:3px solid #e0dced; border-radius:8px; }
 .practice-results__list .practice-result { border-color:#dfdcea; }
 .practice-scroll-more { display:flex; justify-content:center; align-items:center; width:100%; min-height:48px; flex-shrink:0; padding:12px 16px; border:0; border-top:1px solid #dbd7eb; background:#e9e5f3; color:#32346f; font-size:14px !important; font-weight:800 !important; cursor:pointer; }
 .practice-scroll-more:hover { background:#e0d9ef; }
 #locations-finder .practice-scroll-more:focus-visible { outline-offset:-5px; }
 #locations-finder .practice-card-select:focus-visible { outline-offset:-3px; }
 .practice-empty { margin:0 18px 12px; }
}

.practice-map-toolbar:has(> button[hidden]) { display:none; }
@media(min-width:761px) { .practice-map-toolbar { display:none; } }

.practice-email { display:flex; align-items:center; gap:10px; width:fit-content; max-width:100%; min-height:44px; margin-top:3px; color:#32346f; font-size:16px; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.practice-email svg { flex-shrink:0; }
.practice-email span { min-width:0; overflow-wrap:anywhere; }
