.ov-route{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 12px;color:#64776f;font-size:12px;line-height:1.6}
.ov-route a{color:#35695b;text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}
.ov-route strong{color:#244b40;overflow-wrap:anywhere}
.ov-hub-welcome{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 16px}
.ov-hub-welcome p{margin:3px 0;font-size:14px;line-height:1.6;color:#365d53}
.ov-hub-welcome .ov-hub-eyebrow{font-size:12px;color:#6a7e75}
.ov-hub-streets{margin:0 0 16px;scroll-margin-top:85px}
.ov-hub-streets-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 12px;margin-bottom:8px}
.ov-hub-streets h2{margin:0;color:#214f41;font-size:20px;line-height:1.4}
.ov-hub-map-link{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:700;color:#245e50;text-underline-offset:3px}
.ov-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ov-hub-street{display:grid;grid-template-columns:36px minmax(0,1fr);gap:5px 9px;align-items:center;min-width:0;padding:13px;border:1px solid #b8d3c8;border-radius:12px;color:#254f41;text-decoration:none;background:#fff;box-shadow:0 2px 3px #244c3708;touch-action:manipulation}
.ov-hub-street:focus-visible,.ov-hub-map-link:focus-visible,.ov-route a:focus-visible{outline:3px solid #2563eb;outline-offset:3px}
.ov-hub-street:hover{border-color:#3b8066;background:#f9fdfb}
.ov-hub-street strong{font-size:18px;line-height:1.4;overflow-wrap:anywhere}
.ov-hub-street-icon{grid-row:1/3;display:grid;place-items:center;width:36px;height:42px;color:#43866a}
.ov-hub-street-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ov-hub-street-count{font-size:12px;line-height:1.4;color:#648272}
.ov-hub-street-go{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding-top:8px;border-top:1px solid #e4eee9;font-size:12px;font-weight:700}
.ov-hub-street.is-vacant{border-color:#e5cda4;background:#fffdf6}
.ov-hub-street.is-vacant .ov-hub-street-count{color:#94631b}
.ov-hub-town-name{font-size:12px;line-height:1.5;color:#64776f;margin:0 0 3px}
main .ov-info-hero .ov-info-board{margin-top:16px}
@media(max-width:540px){.ov-route{font-size:11px;gap:4px;margin:3px 0 7px}.ov-hub-welcome{margin:6px 0 12px;gap:8px}.ov-hub-welcome p{font-size:13px}.ov-hub-welcome .ov-hub-eyebrow{font-size:10px}.ov-hub-streets h2{font-size:18px}.ov-hub-grid{gap:7px}.ov-hub-street{grid-template-columns:26px minmax(0,1fr);gap:4px 5px;padding:10px 8px}.ov-hub-street strong{font-size:15px}.ov-hub-street-icon{width:26px}.ov-hub-street-icon svg{width:26px;height:28px}.ov-hub-street-count{font-size:11px}.ov-hub-street-go{font-size:11px}.ov-hub-streets{margin-bottom:12px}}
.ov-hub-welcome-host{align-items:center;gap:12px;margin:10px 0 18px}
.ov-hub-welcome-copy{flex:1;min-width:0}
.ov-hub-welcome .ov-hub-prompt{position:relative;margin:7px 0 0;padding:15px 18px;background:#fffdf2;color:#164e3e;border:2px solid #6eaa8b;border-radius:16px 16px 4px 16px;box-shadow:0 3px 0 #3d795014;font-size:clamp(22px,3.4vw,31px);line-height:1.5;letter-spacing:.01em}
.ov-hub-prompt strong{font-weight:800}
.ov-hub-prompt span{display:block;overflow-wrap:anywhere}
.ov-hub-prompt::after{content:'';position:absolute;right:-7px;bottom:22px;width:11px;height:11px;background:#fffdf2;border-top:2px solid #6eaa8b;border-right:2px solid #6eaa8b;transform:rotate(45deg)}
.ov-hub-host{flex:0 0 155px;width:155px;max-width:36%;margin:0;align-self:center}
.ov-hub-host>svg{display:block;width:100%;height:auto;overflow:visible}
.ov-hub-host-wave{transform-box:view-box;transform-origin:99px 114px}
.ov-hub-host-head{transform-box:view-box;transform-origin:72px 99px}
html.ov-info-effects .ov-hub-host-wave{animation:ov-hub-wave 7s ease-in-out infinite;animation-play-state:paused}
html.ov-info-effects .ov-hub-host-head{animation:ov-hub-nod 7s ease-in-out infinite;animation-play-state:paused}
html.ov-info-effects .ov-hub-host.ov-info-in-view .ov-hub-host-wave,html.ov-info-effects .ov-hub-host.ov-info-in-view .ov-hub-host-head{animation-play-state:running}
html.ov-info-effects.ov-info-page-hidden .ov-hub-host .ov-hub-host-wave,html.ov-info-effects.ov-info-page-hidden .ov-hub-host .ov-hub-host-head{animation-play-state:paused}
@keyframes ov-hub-wave{0%,8%,55%,100%{transform:rotate(0)}18%,38%{transform:rotate(-17deg)}28%,48%{transform:rotate(10deg)}}
@keyframes ov-hub-nod{0%,10%,55%,100%{transform:rotate(0)}25%,40%{transform:rotate(-3deg)}}
@media(max-width:540px){.ov-hub-welcome-host{gap:9px;margin:8px 0 16px}.ov-hub-host{flex-basis:112px;width:112px;max-width:35%}.ov-hub-welcome .ov-hub-prompt{font-size:21px;padding:11px 10px;line-height:1.55;border-radius:13px 13px 4px 13px}.ov-hub-welcome-host .ov-hub-eyebrow{font-size:11px;line-height:1.5}.ov-hub-prompt::after{right:-6px;width:9px;height:9px}}
@media(max-width:350px){.ov-hub-welcome .ov-hub-prompt{font-size:19px;padding:10px 8px}.ov-hub-host{flex-basis:94px;width:94px;max-width:34%}}
@media(prefers-reduced-motion:reduce){html.ov-info-effects .ov-hub-host .ov-hub-host-wave,html.ov-info-effects .ov-hub-host .ov-hub-host-head{animation:none;transform:none}}
