/* Original component layout and motion, with the smoother timing retained. */
:root{--jnb-ease:cubic-bezier(.22,1,.36,1)}
.jnb-icon{width:21px;height:21px;display:block;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transform-origin:center;transition:transform .38s var(--jnb-ease)}
button .jnb-icon{margin:auto}
#search-toggle .jnb-icon{width:20px;height:20px}
#search-clear .jnb-icon{width:15px;height:15px}
#house-browse .jnb-icon{width:19px;height:19px;stroke-width:2.2}
:is(.slide-prev,.slide-next,#feed-prev,#feed-next,.close,#back,#search-toggle,#search-clear,#more,#restore-project,.construction-progress){transition:background-color .22s,color .22s,scale .3s var(--jnb-ease);touch-action:manipulation}
:is(button,a):focus-visible{outline:2px solid #45453f;outline-offset:4px}
:is(.slide-prev,.slide-next,#feed-prev,#feed-next,.close,#back,#search-toggle,#search-clear,#more,#restore-project,.construction-progress):active{scale:.94}
#results{transform-origin:top left;animation:jnb-results-in .3s var(--jnb-ease)}
.search-box{transition:background .3s,border-color .3s,box-shadow .3s}
.search-open .search-box{background:#fff;border-color:#d9d9d3;box-shadow:0 4px 16px #00000005}
@media(hover:hover) and (pointer:fine){
 :is(.slide-next,#feed-next,#house-next):hover .jnb-icon{transform:translateX(3px)}
 :is(.slide-prev,#feed-prev,#house-prev):hover .jnb-icon{transform:translateX(-3px)}
 :is(.close,#back):hover .jnb-icon-close{transform:rotate(90deg)}
 :is(.close,#back):hover{background:#e5e5df}
}
@keyframes jnb-results-in{from{opacity:0;translate:0 -5px;scale:.98}to{opacity:1;translate:0 0;scale:1}}
@media(prefers-reduced-motion:reduce){.jnb-icon,#results{animation:none!important;transition:none!important}:is(.slide-prev,.slide-next,#feed-prev,#feed-next,.close,#back,#search-toggle,#search-clear,#more,#restore-project,.construction-progress){transition:none!important}}

/* Neighborhood controls match the circular search control. */
.map-zoom{display:flex!important;flex-direction:column;gap:8px;right:28px;bottom:calc(28px + env(safe-area-inset-bottom));z-index:4}
.map-zoom button{width:46px;height:46px;border:1px solid #e4e4e0;border-radius:50%;background:#f3f3f1;color:#777;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;font-size:24px;font-weight:400}
.map-zoom button:hover{background:#f3f3f1}
#map-reset .jnb-icon{width:20px;height:20px;stroke-width:1.7}
body:is(.view-about,.view-contact,.view-bou,.model-view) .map-zoom{display:none!important}
/* Keep optional :has support separate from essential view visibility. */
body:has(dialog[open]) .map-zoom{display:none!important}
@media(max-width:700px){.map-zoom{right:20px;bottom:calc(18px + env(safe-area-inset-bottom))}}

/* Identical circular controls across smartphone browser defaults. */
@media(max-width:760px),(hover:none),(pointer:coarse){
 #search-toggle,.map-zoom button{
  -webkit-appearance:none;appearance:none;box-sizing:border-box;
  width:46px;height:46px;min-width:46px;max-width:46px;min-height:46px;max-height:46px;
  flex:0 0 46px;padding:0;border-radius:50%;
 }
}
