/* Practice details with a shared, readable hierarchy. */
#locations.locations{display:block;background:#fff;padding:clamp(56px,7vw,100px) clamp(22px,6vw,96px)}
#locations .locations-heading{max-width:900px;margin-bottom:36px}
#locations .locations-heading .eyebrow{color:#80612d;font-size:13px;letter-spacing:.14em;margin:0 0 16px}
#locations .locations-heading h2{font-size:clamp(32px,4vw,56px);line-height:1.12;margin:0;letter-spacing:-.035em}
#locations .location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;border:0;margin:0}
#locations .location-grid article{min-width:0;margin:0;padding:clamp(24px,3vw,40px);border:1px solid #d8ded8;border-top:2px solid #b99a60;border-radius:5px;background:#fafbf9}
#locations .location-region{font-size:14px;line-height:1.5;letter-spacing:.12em;color:#765921}
#locations .location-grid h3{font-size:clamp(26px,2.8vw,36px);line-height:1.2;letter-spacing:-.025em;margin:12px 0 22px;color:#183a2b}
#locations address{font:400 16px/1.75 'DM Sans',sans-serif;color:#4b5c52;min-height:84px}
#locations .location-details{margin:24px 0 0;padding-top:8px;border-top:1px solid #d8ded8}
#locations .location-details>div{padding-top:18px}
#locations dt{font:500 14px/1.4 'DM Sans',sans-serif;color:#65756a;margin-bottom:4px}
#locations dd{margin:0;font:400 16px/1.6 'DM Sans',sans-serif;color:#183a2b}
#locations .location-details a{display:inline-block;font:inherit;margin:0;padding:4px 0;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:#b99a6070;text-underline-offset:4px}
#locations .location-details a:hover{text-decoration-color:#765921}
#locations .location-details a:focus-visible{outline:2px solid #9c7839;outline-offset:4px}
@media(max-width:760px){#locations .location-grid{grid-template-columns:1fr;gap:20px}#locations address{min-height:0}}

/* Compact consultation cards with quiet brass detail and local maps. */
#locations.locations{padding:40px clamp(20px,5vw,76px);position:relative;background:radial-gradient(ellipse at 100% 0,#d5b56d12,transparent 55%),#fff}
#locations .locations-heading{margin-bottom:22px}
#locations .locations-heading .eyebrow{margin-bottom:8px;font-size:11px}
#locations .locations-heading h2{font-size:clamp(30px,3.6vw,46px)}
#locations .location-grid{gap:20px}
#locations .location-grid article{padding:22px;border-radius:16px;box-shadow:0 8px 28px #183a2b06;transition:transform .45s ease,box-shadow .45s ease;position:relative;overflow:hidden}
#locations .location-grid article::before{content:"";display:block;position:absolute;right:-40px;top:-60px;width:170px;height:170px;border:1px solid #b99a6028;border-radius:50%;pointer-events:none}
#locations .location-region{font-size:11px}
#locations .location-grid h3{font-size:28px;margin:7px 0 12px}
#locations address{font-size:14px;line-height:1.5;min-height:63px}
#locations .location-details{margin:12px 0 16px;padding-top:4px}
#locations .location-details>div{display:grid;grid-template-columns:98px minmax(0,1fr);gap:10px;align-items:baseline;padding-top:7px}
#locations dt{font-size:12px;margin:0}
#locations dd{font-size:14px;line-height:1.5}
#locations .location-details a{padding:2px 0}
#locations .location-map{border:1px solid #d8ded8;border-radius:10px;overflow:hidden;background:#e9eeea}
#locations .location-map iframe{display:block;width:100%;height:172px;border:0}
#locations .location-map>a{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin:0;padding:10px 14px;font-size:12px;background:#f4f6f2;color:#183a2b}
#locations .location-map>a span{transition:transform .3s}
#locations .location-map>a:hover span{transform:translate(3px,-3px)}
@media(hover:hover){#locations .location-grid article:hover{transform:translateY(-4px);box-shadow:0 14px 34px #183a2b12}}
@media(prefers-reduced-motion:no-preference){#locations.is-visible .location-grid article{animation:clinic-card-arrive .7s both}#locations.is-visible .location-grid article+article{animation-delay:.16s}@keyframes clinic-card-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}}
@media(max-width:760px){#locations.locations{padding:32px 20px}#locations .location-grid article{padding:18px}#locations address{min-height:0}#locations .location-map iframe{height:160px}#locations .location-details>div{grid-template-columns:82px minmax(0,1fr);gap:8px}}
@media(prefers-reduced-motion:reduce){#locations .location-grid article,#locations .location-map>a span{transition:none;transform:none}}

/* Curved ceramic mosaic inspired by the supplied architectural reference. */
#locations.locations{isolation:isolate;overflow:hidden;background:#f5f1e9;padding-top:120px}
#locations .consultation-mosaic{position:absolute;z-index:-1;inset:0 0 auto;height:145px;background:url('assets/consultation-mosaic.svg') center 46%/cover;opacity:.75;clip-path:ellipse(76% 88% at 50% 0);pointer-events:none}
#locations .locations-heading{position:relative}
#locations .location-grid article{background:#fffdf8f5;border-color:#d6c8af;border-top-color:#ad8a50;box-shadow:0 8px 30px #57473309}
#locations .location-map>a{background:#ecefe7}
#locations .location-grid article::before{border-color:#b879602b}
@media(prefers-reduced-motion:no-preference){#locations.is-visible .consultation-mosaic{animation:mosaic-settle 1.6s cubic-bezier(.2,.7,.2,1) both}@keyframes mosaic-settle{from{opacity:.2;transform:translateY(-22px)}to{opacity:.75;transform:translateY(0)}}}
@media(max-width:760px){#locations.locations{padding-top:96px}#locations .consultation-mosaic{height:105px;background-size:auto 160px}}

#locations.locations{scroll-margin-top:96px}
