/* Original practice photography, followed by address and direct actions. */
.locations{position:relative;z-index:1;isolation:isolate;background:#f2f6fa}
.locations>.section-heading{align-items:flex-end;margin-bottom:32px}
.locations>.section-heading h2{max-width:20ch}
.locations .practice-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0;margin-bottom:22px;border:0;border-radius:0;background:transparent}
.locations .practice-tabs button{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-width:0;min-height:58px;padding:10px 15px;background:#fff;border:1px solid #d4e1eb;border-radius:16px;box-shadow:none;color:#45617b;transition:background .18s,border-color .18s,color .18s}
.locations .practice-tabs .practice-tab-number{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid #dce7ef;border-radius:50%;font-size:.625rem;font-weight:600;font-variant-numeric:tabular-nums;background:#f3f7fa;color:#5c7890}
.locations .practice-tabs .practice-tab-city{min-width:0;font-size:.9375rem;line-height:1.4;font-weight:600}
.locations .practice-tabs button[aria-selected=true]{background:#255c8b;border-color:#255c8b;color:#fff;box-shadow:0 4px 12px #244f7512}
.locations .practice-tabs button[aria-selected=true] .practice-tab-number{background:#ffffff16;border-color:#ffffff45;color:#fff}
.locations .practice-tabs button:hover:not([aria-selected=true]){background:#eaf2f8;border-color:#a8c4d9}
.practice-view-panel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0;padding:0;border:1px solid #d9e5ee;border-radius:26px;background:#fff;overflow:hidden;box-shadow:0 12px 40px #24496307}
.practice-view-panel:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.practice-visual{position:relative;display:block;isolation:isolate;min-width:0;min-height:100%;overflow:hidden;background:#e6eef4;color:white}
.practice-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;transition:transform .4s ease}
.practice-photo-label{position:absolute;inset:auto 16px 16px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:10px 15px;border:1px solid #ffffff80;border-radius:12px;background:#fffffff0;color:#284b6c;font-size:.8125rem;font-weight:600;line-height:1.5;box-shadow:0 2px 12px #1939510a}
.practice-photo-label>span{font-size:1.125rem}
.practice-visual:focus-visible{outline-offset:-5px;z-index:1}
.practice-card-content{min-width:0;padding:clamp(28px,3.4vw,52px);display:flex;flex-direction:column;align-items:stretch}
.practice-card-heading .eyebrow{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#55718a;font-size:.625rem;letter-spacing:.1em;margin:0 0 14px}
.practice-card-heading .eyebrow>span{flex-shrink:0;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.practice-card-heading h2,.practice-card-heading h3{margin:0;font-size:clamp(30px,3vw,44px);font-weight:600;line-height:1.2;letter-spacing:-.035em}
.practice-card-note{margin-top:12px;color:var(--muted);font-size:.9375rem;line-height:1.6}
.practice-visit-address{display:flex;align-items:flex-start;gap:12px;margin-block:25px}
.practice-visit-address>svg{margin-top:3px;flex-shrink:0;color:#4e7594}
.practice-visit-address address{font-size:1rem;line-height:1.65;color:var(--ink)}
.practice-card-content svg{stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;flex-shrink:0}
.practice-primary-actions{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(100px,1fr);gap:10px;margin-top:auto}
.practice-primary-actions .practice-booking{margin:0;width:100%;min-height:52px;justify-content:space-between;gap:10px;padding:13px 17px;border-radius:13px;background:#255c8b;border-color:#255c8b;box-shadow:none;font-size:.875rem;font-weight:600;line-height:1.45}
.practice-primary-actions .practice-booking>span{font-size:1.125rem}
.practice-route{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px;border:1px solid #ccdeeb;border-radius:13px;background:#f5f9fc;color:#305f83;font-size:.875rem;font-weight:600;line-height:1.4}
.practice-route svg{width:19px;height:19px}
.practice-direct-contact{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;padding-block:14px 16px;margin-bottom:6px;border-bottom:1px solid #e1eaf1}
.practice-direct-contact>a{display:flex;align-items:center;gap:8px;min-height:44px;font-size:.9375rem;line-height:1.5;font-weight:500;color:#31536f}
.practice-direct-contact>a:last-child{font-size:.8125rem}
.practice-direct-contact svg{width:17px;height:17px;color:#5a7c98}
.practice-detail-link{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding-top:5px;font-size:.8125rem;font-weight:600;color:#315b7e}
.practice-detail-link>span{font-size:1.125rem}
.practice-visual-graphic{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 24px 100px;background:#2a5b89;background-image:radial-gradient(ellipse at top right,#75a7cb45,transparent 65%);color:white}
.practice-visual-graphic>svg{width:72px;height:72px;stroke:currentColor;stroke-width:.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:24px;color:#c7e2f4}
.practice-graphic-label{font-size:.625rem;font-weight:600;letter-spacing:.16em;color:#d3e8f6}
.practice-visual-graphic>strong{font-size:clamp(24px,2.4vw,36px);font-weight:500;line-height:1.4;letter-spacing:-.025em;margin-top:12px;text-align:center}
.practice-graphic-floor{font-size:.9375rem;color:#deedf7;margin-top:5px}
.practice-directory{gap:26px}
.practice-view-card{display:flex;flex-direction:column;overflow:hidden;padding:0;border-radius:24px;background:#fff;border:1px solid #d9e5ee;box-shadow:0 8px 28px #24496306}
.practice-view-card>.practice-visual{flex-shrink:0;min-height:0;aspect-ratio:1.8}
.practice-view-card>.practice-card-content{flex:1;padding:28px}
.practice-view-card .practice-card-heading h2{font-size:2rem;margin:0}
.practice-view-card .practice-card-heading h2>a{gap:20px;margin:0}
.practice-view-card .practice-card-heading h2>a>span{font-size:1.375rem;color:#507d9f}
.practice-view-card .practice-visual-graphic{padding:28px 24px 76px}
.practice-view-card .practice-visual-graphic>svg{width:38px;height:38px;margin-bottom:12px}
.practice-view-card .practice-visual-graphic>strong{font-size:1.5rem;margin-top:8px}
.practice-view-card .practice-graphic-floor{font-size:.8125rem;margin-top:2px}
.practice-view-card .practice-card-note{min-height:3.2em}
@media(hover:hover){
 .practice-visual:hover>img{transform:scale(1.025)}
 .practice-primary-actions .practice-booking:hover{background:#194b77;border-color:#194b77;transform:none}
 .practice-route:hover{background:#e8f2f9;border-color:#b0cadf}
 .practice-direct-contact>a:hover,.practice-detail-link:hover{color:var(--blue);text-decoration:underline;text-underline-offset:4px}
}
@media(max-width:1100px) and (min-width:761px){
 .practice-card-content{padding:28px}
 .locations .practice-tabs button{padding:10px;gap:8px}
 .locations .practice-tabs .practice-tab-city{font-size:.8125rem}
 .practice-primary-actions{grid-template-columns:minmax(0,1.5fr) minmax(90px,1fr)}
 .practice-primary-actions .practice-booking{font-size:.8125rem;padding-inline:13px}
 .practice-view-card>.practice-card-content{padding:24px}
}
@media(max-width:760px){
 .locations{padding-block:56px;border-radius:0}
 .locations>.section-heading{display:block;margin-bottom:24px}
 .locations>.section-heading h2{font-size:clamp(30px,8vw,40px);line-height:1.2}
 .locations .section-intro{max-width:36ch;font-size:.9375rem;margin-top:16px}
 .locations .practice-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
 .locations .practice-tabs button{min-height:52px;padding:9px 11px;border-radius:13px;gap:9px}
 .locations .practice-tabs .practice-tab-city{font-size:.8125rem}
 .locations .practice-tabs .practice-tab-number{width:24px;height:24px;flex-basis:24px;font-size:.5625rem}
 .practice-view-panel{display:flex;flex-direction:column;gap:0;padding:0;border-radius:20px}
 .practice-view-panel>.practice-visual{display:block;min-height:0;aspect-ratio:1.5}
 .practice-view-panel>.practice-visual-graphic{display:flex;min-height:240px;padding:26px 20px 68px}
 .practice-view-panel .practice-visual-graphic>svg{width:35px;height:35px;margin-bottom:12px}
 .practice-view-panel .practice-visual-graphic>strong{font-size:1.375rem;margin-top:7px}
 .practice-view-panel .practice-graphic-floor{font-size:.8125rem}
 .practice-photo-label{inset:auto 12px 12px;min-height:42px;padding:9px 12px;font-size:.75rem;border-radius:10px}
 .practice-card-content,.practice-view-card>.practice-card-content{padding:24px 20px 18px}
 .practice-card-heading .eyebrow{margin-bottom:12px;font-size:.5625rem}
 .practice-card-heading h2,.practice-card-heading h3,.practice-view-card .practice-card-heading h2{font-size:1.875rem;line-height:1.2}
 .practice-card-note{margin-top:9px;font-size:.875rem}
 .practice-visit-address{margin-block:20px;gap:10px}
 .practice-visit-address address{font-size:.9375rem}
 .practice-visit-address>svg{width:20px;height:20px}
 .practice-primary-actions{grid-template-columns:minmax(0,1.6fr) minmax(90px,1fr);gap:8px}
 .practice-primary-actions .practice-booking{font-size:.8125rem;padding:12px;border-radius:12px;gap:7px}
 .practice-route{font-size:.8125rem;padding:12px 10px;border-radius:12px;gap:6px}
 .practice-direct-contact{padding-block:10px;margin-bottom:4px;gap:0 12px}
 .practice-direct-contact>a{font-size:.875rem;gap:7px}
 .practice-direct-contact>a:last-child{font-size:.75rem}
 .practice-detail-link{font-size:.75rem}
 .practice-directory{grid-template-columns:minmax(0,1fr);gap:22px}
 .practice-view-card{border-radius:20px}
 .practice-view-card>.practice-visual{aspect-ratio:1.6}
 .practice-view-card .practice-card-note{min-height:0}
 .practice-view-card .practice-visual-graphic{min-height:240px;padding:24px 20px 68px}
 .practice-view-card .practice-visual-graphic>svg{width:30px;height:30px;margin-bottom:10px}
 .practice-view-card .practice-visual-graphic>strong{font-size:1.375rem}
}
@media(max-width:350px){
 .locations .practice-tabs button{padding-inline:9px;gap:7px}
 .locations .practice-tabs .practice-tab-city{font-size:.75rem}
 .practice-card-content,.practice-view-card>.practice-card-content{padding-inline:17px}
 .practice-primary-actions{grid-template-columns:minmax(0,1.5fr) minmax(84px,1fr)}
 .practice-primary-actions .practice-booking{padding-inline:10px;font-size:.75rem}
 .practice-route{padding-inline:8px;font-size:.75rem}
}
@media(prefers-reduced-motion:reduce){.practice-visual>img,.locations .practice-tabs button{transition:none}}
