/* Local discovery: the shared controller also serves the application. */
#vnl-local-providers{--vnl-ink:#214536;--vnl-muted:#65736a;color:var(--vnl-ink);min-width:0}
#vnl-local-providers *{box-sizing:border-box}
#vnl-local-providers .vnl2-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}
#vnl-local-providers .vnl2-eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#74866c;margin:0 0 9px}
#vnl-local-providers h2{margin:0;font-size:clamp(27px,3vw,38px);line-height:1.2;font-weight:400}
#vnl-local-providers .vnl2-intro{max-width:680px;color:var(--vnl-muted);font-size:15px;line-height:1.6;margin:0 0 20px}
.vnl2-controls{display:flex;gap:7px;flex:none}.vnl2-controls button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d9e1d6;border-radius:50%;background:#fff;color:#214536;font:inherit;font-size:20px;line-height:1;cursor:pointer}.vnl2-controls button[data-pause]{font-size:14px}.vnl2-controls button:disabled{opacity:.4;cursor:default}
#vnl-local-providers button:focus-visible,#vnl-local-providers a:focus-visible,#vnl-local-providers input:focus-visible{outline:3px solid #ad8a44;outline-offset:3px}
.vnl2-location{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.vnl2-place{flex:1 1 220px;font-size:14px;font-weight:600;overflow-wrap:anywhere}.vnl2-button{min-height:44px;border:1px solid #d9e1d6;border-radius:24px;background:#fff;color:#214536;padding:9px 15px;font:inherit;font-weight:600;font-size:13px;line-height:1.4;cursor:pointer}.vnl2-button:disabled{opacity:.6;cursor:wait}.vnl2-location .vnl2-locate{background:#eff3e9}
.vnl2-status{font-size:12px;line-height:1.6;color:#65736a;margin:6px 0 18px;min-height:20px}.vnl2-city{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0}.vnl2-city[hidden]{display:none}.vnl2-city label{font-size:13px}.vnl2-city input{min-width:0;flex:1 1 180px;width:auto;max-width:420px;min-height:44px;border:1px solid #ccd6c9;border-radius:10px;padding:10px;font:16px/1.4 inherit}.vnl2-city button{background:#214536;color:white}
.vnl2-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:1px;scrollbar-width:none;overscroll-behavior-x:contain;padding:2px 1px 16px;min-width:0;max-width:100%}.vnl2-track::-webkit-scrollbar{display:none}
#vnl-local-providers .vnl2-card{position:relative;flex:0 0 calc((100% - 40px)/3);min-width:0;margin:0;border:1px solid #e4e7df;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 5px 20px #2543330a;scroll-snap-align:start}
.vnl2-card>a{display:block;color:inherit;text-decoration:none}.vnl2-photo{display:block;width:100%;height:230px;object-fit:cover}.vnl2-placeholder{display:grid;place-items:center;background:#eef1e8;color:#74816d}.vnl2-card-body{padding:18px}.vnl2-card-body h3{font-size:19px;line-height:1.3;margin:0 0 9px;font-weight:400}.vnl2-card-body p{font-size:12px;line-height:1.5;min-height:36px;color:#65736a;margin:0 0 12px}.vnl2-card-body span{font-size:12px;font-weight:600}#vnl-local-providers .vnl2-card>.vpr-medal-stamp{position:absolute;inset:10px 10px auto auto;width:24px!important;height:29px!important;transform:none!important;pointer-events:none}.vnl2-card .vnl2-sponsored{position:absolute;inset:12px 12px auto auto;background:#f5e6be;padding:5px 8px;border-radius:8px;color:#4e4a27;font-size:11px}
.vnl2-empty{flex:1 0 100%;padding:35px 20px;background:#f6f7f0;border:1px solid #e5e8de;border-radius:16px;text-align:center;font-size:14px;line-height:1.6;color:#65736a}.vnl2-bottom{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:12px}.vnl2-bottom>a{font-size:14px;color:#214536;font-weight:600}.vnl2-attribution{font-size:11px;color:#75806d}.vnl2-attribution a{color:inherit}
@media(max-width:850px){#vnl-local-providers .vnl2-card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:560px){#vnl-local-providers .vnl2-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}#vnl-local-providers .vnl2-card{flex-basis:86%}.vnl2-photo{height:215px}.vnl2-location{gap:8px}.vnl2-place{flex-basis:100%}.vnl2-track{gap:14px}.vnl2-bottom{align-items:flex-start;flex-direction:column}.vnl2-city input{flex-basis:100%;max-width:none}}
@media(prefers-reduced-motion:reduce){.vnl2-track{scroll-behavior:auto}}
