:root{
  --ngbs-primary:#2d48c3;
  --ngbs-primary-dark:#21379c;
  --ngbs-accent:#2d48c3;
  --ngbs-border:#dedede;
  --ngbs-muted:#6b7280;
  --ngbs-bg:#f6f7ff;
  --ngbs-map-height:620px;
}
.ngbs-search{font-family:inherit;color:#1f2937;max-width:1280px;margin:0 auto 32px}
.ngbs-search *{box-sizing:border-box}
.ngbs-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ngbs-searchbar{display:grid;grid-template-columns:minmax(260px,1fr) 145px 115px 140px 160px;gap:0;background:#fff;border:1px solid var(--ngbs-border);border-radius:8px;padding:12px;box-shadow:0 3px 12px rgba(0,0,0,.08)}
.ngbs-searchbar label{display:flex;align-items:center;border:1px solid #d7d7d7;border-right:0;min-height:54px;background:#fff}
.ngbs-searchbar label:first-child{border-radius:5px 0 0 5px}
.ngbs-searchbar input,.ngbs-searchbar select,.ngbs-quick select,.ngbs-filter-panel select{border:0!important;box-shadow:none!important;background:#fff;width:100%;min-height:50px;padding:0 12px;font-size:15px;color:#374151}
.ngbs-input-icon{padding-left:14px;color:var(--ngbs-primary);font-size:22px}
.ngbs-btn{appearance:none;border:0;border-radius:6px;padding:12px 18px;cursor:pointer;font-weight:700;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.ngbs-btn-search{background:var(--ngbs-accent);color:#fff!important}
.ngbs-btn-search:hover{filter:brightness(.95)}
.ngbs-quick{display:flex;align-items:center;gap:12px;padding:12px 4px}
.ngbs-btn-location{background:#fff;border:1px solid var(--ngbs-primary);color:var(--ngbs-primary)}
.ngbs-open-toggle{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#fff;border:1px solid var(--ngbs-border);border-radius:6px;font-weight:700}
.ngbs-filter-tabs{display:flex;border-bottom:1px solid var(--ngbs-border);margin-top:4px;background:#fff}
.ngbs-filter-tabs button{flex:0 0 auto;border:0;background:transparent;padding:14px 24px;font-weight:700;color:#4b5563;cursor:pointer;border-bottom:3px solid transparent}
.ngbs-filter-tabs button.is-active{color:#1f2937;border-color:var(--ngbs-primary)}
.ngbs-filter-panel{display:none;padding:16px;background:#fff;border:1px solid var(--ngbs-border);border-top:0;gap:16px}
.ngbs-filter-panel.is-active{display:flex;flex-wrap:wrap}
.ngbs-filter-panel label{min-width:220px;font-weight:700}
.ngbs-filter-panel select{display:block;border:1px solid var(--ngbs-border)!important;border-radius:5px;margin-top:6px}
.ngbs-feature-filters{display:flex;flex-wrap:wrap;gap:10px;width:100%}
.ngbs-feature-choice{display:flex!important;min-width:auto!important;align-items:center;gap:7px;border:1px solid var(--ngbs-border);border-radius:6px;padding:9px 12px;cursor:pointer;font-weight:600!important}
.ngbs-feature-choice:has(input:checked){border-color:var(--ngbs-primary);background:#eef1ff;color:var(--ngbs-primary-dark)}
.ngbs-feature-choice input{width:auto!important}
.ngbs-feature-choice-icon{font-size:20px}
.ngbs-view-switch{display:flex;align-items:center;gap:8px;margin:18px 0 10px}
.ngbs-view-switch button{background:#fff;border:1px solid var(--ngbs-border);border-radius:5px;padding:8px 12px;cursor:pointer}
.ngbs-view-switch button.is-active{background:var(--ngbs-primary);color:#fff}
.ngbs-count{margin-left:auto;color:var(--ngbs-muted);font-size:14px}
.ngbs-results-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:16px}
.ngbs-results-layout[data-layout="list"]{grid-template-columns:1fr}
.ngbs-results-layout[data-layout="list"] .ngbs-map-wrap{display:none}
.ngbs-results-layout[data-layout="map"]{grid-template-columns:1fr}
.ngbs-results-layout[data-layout="map"] .ngbs-list{display:none}
.ngbs-map{height:var(--ngbs-map-height);min-height:460px;border-radius:10px;overflow:hidden;position:sticky;top:16px}
.ngbs-list{display:flex;flex-direction:column;gap:12px}
.ngbs-result-card{display:grid;grid-template-columns:190px 1fr;background:#fff;border:1px solid var(--ngbs-border);border-radius:10px;overflow:hidden;min-height:180px}
.ngbs-result-media{display:block;height:100%;background:#eef1ee}
.ngbs-result-img{width:100%;height:100%;min-height:180px;object-fit:cover;display:block}
.ngbs-result-placeholder{display:flex;align-items:center;justify-content:center;color:#99a19b;font-weight:800;letter-spacing:.08em}
.ngbs-result-body{padding:15px}
.ngbs-result-top{display:flex;gap:10px;align-items:center;justify-content:space-between}
.ngbs-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}
.ngbs-status.is-open{background:#e7f8ec;color:#077832}
.ngbs-status.is-closed{background:#f3f4f6;color:#6b7280}
.ngbs-distance{font-size:12px;color:var(--ngbs-muted)}
.ngbs-result-card h3{font-size:18px;margin:8px 0 6px}
.ngbs-result-card h3 a{text-decoration:none;color:#111827}
.ngbs-address,.ngbs-station{margin:4px 0;color:#4b5563;font-size:13px}
.ngbs-mini-features{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}
.ngbs-mini-feature{font-size:11px;border:1px solid #cbd3fb;color:var(--ngbs-primary-dark);padding:3px 6px;border-radius:4px;background:#f5f6ff}
.ngbs-hours-row{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:#4b5563;border-top:1px solid #eee;padding-top:9px;margin-top:9px}
.ngbs-loading,.ngbs-empty{padding:32px;background:#fff;border:1px solid var(--ngbs-border);border-radius:8px;text-align:center;color:var(--ngbs-muted)}
.ngbs-area-links{margin:28px 0}
.ngbs-area-links h2{font-size:20px;color:var(--ngbs-primary)}
.ngbs-area-links-grid{display:flex;flex-wrap:wrap;gap:8px 14px}
.ngbs-area-links-grid a{font-size:13px;text-decoration:underline}
.ngbs-list-only .ngbs-map-wrap,.ngbs-list-only .ngbs-view-switch [data-view="map"],.ngbs-list-only .ngbs-view-switch [data-view="split"]{display:none!important}
.ngbs-list-only .ngbs-results-layout{grid-template-columns:1fr!important}
.ngbs-map-only .ngbs-results-layout{grid-template-columns:minmax(300px,.65fr) 1.35fr}
.ngbs-map-only .ngbs-map{height:var(--ngbs-map-height)}
@media (max-width:900px){
  .ngbs-searchbar{grid-template-columns:1fr 1fr}
  .ngbs-keyword{grid-column:1/-1}
  .ngbs-searchbar label{border-right:1px solid #d7d7d7}
  .ngbs-btn-search{min-height:52px}
  .ngbs-results-layout,.ngbs-map-only .ngbs-results-layout{grid-template-columns:1fr}
  .ngbs-map{position:relative;top:auto;height:420px;min-height:360px}
}
@media (max-width:600px){
  .ngbs-searchbar{grid-template-columns:1fr}
  .ngbs-keyword{grid-column:auto}
  .ngbs-quick{align-items:stretch;flex-direction:column}
  .ngbs-filter-tabs{overflow-x:auto}
  .ngbs-filter-tabs button{white-space:nowrap;padding:12px 16px}
  .ngbs-result-card{grid-template-columns:1fr}
  .ngbs-result-media{height:180px}
}


/* v0.2.1 search UI refinements */
.ngbs-search{width:100%}
.ngbs-searchbar{border-color:#d7d9dc;border-radius:10px;padding:10px;background:#fff;box-shadow:0 4px 18px rgba(15,23,42,.08)}
.ngbs-searchbar label{border-color:#dde1e6;min-height:56px}
.ngbs-searchbar input,.ngbs-searchbar select{font-size:14px}
.ngbs-btn-search{border-radius:7px;min-height:56px;font-size:15px;letter-spacing:.01em}
.ngbs-btn-search:disabled{opacity:.65;cursor:wait}
.ngbs-quick{margin:10px 0 6px;padding:0;gap:10px;flex-wrap:wrap}
.ngbs-open-toggle,.ngbs-radius-select{min-height:40px;background:#fff;border:1px solid #d9dde2;border-radius:7px}
.ngbs-open-toggle{padding:9px 12px}
.ngbs-radius-select{display:flex;align-items:center;padding:0 4px}
.ngbs-radius-select select{border:0!important;background:transparent;min-height:38px;padding:0 8px}
.ngbs-datetime-toggle{color:#4b5563}
.ngbs-is-open-now .ngbs-date,.ngbs-is-open-now .ngbs-time{background:#f3f4f6;opacity:.68}
.ngbs-filter-tabs{margin-top:18px;border-bottom:1px solid #d9dde2}
.ngbs-filter-tabs button{font-size:14px;padding:13px 22px}
.ngbs-filter-panel{border-color:#d9dde2;padding:20px;border-radius:0 0 8px 8px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.025)}
.ngbs-filter-panel label{min-width:min(280px,100%);font-size:13px;color:#374151}
.ngbs-filter-panel select{margin-top:8px;min-height:45px;background:#fff}
.ngbs-filter-error{margin:10px 0;padding:11px 14px;border:1px solid #f0b4b4;background:#fff6f6;color:#a12626;border-radius:7px;font-size:13px}
.ngbs-view-switch{margin-top:20px}
.ngbs-view-switch button{font-weight:700;padding:8px 13px;border-radius:6px}
.ngbs-results-layout{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:18px;align-items:start}
.ngbs-map{border:1px solid #e0e3e7;box-shadow:0 3px 14px rgba(15,23,42,.07)}
.ngbs-result-card{border-color:#e0e3e7;box-shadow:0 2px 10px rgba(15,23,42,.045)}
.ngbs-result-card:hover{box-shadow:0 6px 20px rgba(15,23,42,.08);transform:translateY(-1px);transition:.16s ease}
.ngbs-empty,.ngbs-loading{min-height:120px;display:flex;flex-direction:column;justify-content:center;line-height:1.8}
.ngbs-empty span{font-size:12px;color:#7b8491}
@media (max-width:1100px){
  .ngbs-searchbar{grid-template-columns:minmax(260px,1fr) 135px 105px 130px 135px}
}
@media (max-width:900px){
  .ngbs-searchbar{grid-template-columns:1fr 1fr}
  .ngbs-keyword{grid-column:1/-1}
  .ngbs-results-layout{grid-template-columns:1fr}
}

.ngbs-capacity-summary{margin:7px 0 3px;color:var(--ngbs-primary-dark);font-size:13px;font-weight:700}
.ngbs-result-card h3 a:hover,.ngbs-area-links-grid a{color:var(--ngbs-primary)}


/* v0.3.1 result layout and unified feature icons */
.ngbs-results-layout[data-layout="split"] .ngbs-list{
  max-height:620px;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:8px;
  align-content:start;
}
.ngbs-results-layout[data-layout="split"] .ngbs-map{height:620px;min-height:620px}
.ngbs-results-layout[data-layout="split"] .ngbs-list::-webkit-scrollbar{width:9px}
.ngbs-results-layout[data-layout="split"] .ngbs-list::-webkit-scrollbar-thumb{background:#b9c2d6;border-radius:10px;border:2px solid #fff}
.ngbs-results-layout[data-layout="split"] .ngbs-list::-webkit-scrollbar-track{background:#f5f6fa;border-radius:10px}

@media (min-width:1000px){
  .ngbs-results-layout[data-layout="list"] .ngbs-list,
  .ngbs-list-only .ngbs-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
  }
  .ngbs-results-layout[data-layout="list"] .ngbs-result-card,
  .ngbs-list-only .ngbs-result-card{
    grid-template-columns:145px minmax(0,1fr);
    min-width:0;
    height:100%;
  }
  .ngbs-results-layout[data-layout="list"] .ngbs-result-img,
  .ngbs-list-only .ngbs-result-img{
    min-height:100%;
  }
}

.ngbs-feature-choice-icon,
.ngbs-mini-feature-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--ngbs-primary)}
.ngbs-feature-choice-icon{width:24px;height:24px}
.ngbs-feature-choice-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ngbs-mini-feature{display:inline-flex;align-items:center;gap:4px}
.ngbs-mini-feature-icon{width:14px;height:14px}
.ngbs-mini-feature-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

@media (max-width:999px){
  .ngbs-results-layout[data-layout="list"] .ngbs-list,
  .ngbs-list-only .ngbs-list{display:flex;flex-direction:column}
}
@media (max-width:900px){
  .ngbs-results-layout[data-layout="split"] .ngbs-list{max-height:none;overflow:visible;padding-right:0}
  .ngbs-results-layout[data-layout="split"] .ngbs-map{height:420px;min-height:360px}
}


/* v0.3.2 mobile feature/icon stability */
.ngbs-feature-choice{min-width:0!important;max-width:100%}
.ngbs-feature-choice > span:last-child,
.ngbs-mini-feature > span:last-child{min-width:0;line-height:1.35;overflow-wrap:anywhere}
.ngbs-feature-choice-icon,
.ngbs-mini-feature-icon{flex-shrink:0!important}
.ngbs-feature-choice-icon svg,
.ngbs-mini-feature-icon svg{display:block;max-width:none!important;max-height:none!important;flex:none!important}
@media (max-width:600px){
  .ngbs-feature-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ngbs-feature-choice{width:100%;padding:8px 9px;gap:6px;font-size:12px;justify-content:flex-start}
  .ngbs-feature-choice-icon{width:22px;height:22px;flex-basis:22px}
  .ngbs-feature-choice-icon svg{width:22px!important;height:22px!important}
  .ngbs-mini-features{gap:5px}
  .ngbs-mini-feature{max-width:100%;padding:4px 6px;white-space:normal}
  .ngbs-mini-feature-icon{width:14px;height:14px;flex-basis:14px}
  .ngbs-mini-feature-icon svg{width:14px!important;height:14px!important}
}
@media (max-width:380px){
  .ngbs-feature-filters{grid-template-columns:1fr}
}

/* v0.3.3 search balance, mobile text-only equipment, ad slot */
@media (min-width:901px){
  .ngbs-searchbar{
    grid-template-columns:minmax(250px,.78fr) 145px 115px 145px 128px;
    align-items:stretch;
  }
  .ngbs-searchbar > label,
  .ngbs-searchbar > .ngbs-btn-search{
    height:56px;
    min-height:56px;
  }
  .ngbs-searchbar > .ngbs-btn-search{
    align-self:stretch;
    padding-top:0;
    padding-bottom:0;
    border-radius:0 7px 7px 0;
  }
  .ngbs-searchbar > label:first-child{border-radius:7px 0 0 7px}
}
@media (min-width:1200px){
  .ngbs-searchbar{grid-template-columns:minmax(300px,.82fr) 150px 120px 150px 132px}
}

.ngbs-banner-ad{
  width:100%;
  margin:0 0 18px;
  text-align:center;
  overflow:hidden;
}
.ngbs-banner-ad a{display:block;text-decoration:none}
.ngbs-banner-ad picture{display:block}
.ngbs-banner-ad img{
  display:block;
  width:100%;
  height:auto;
  max-height:180px;
  object-fit:cover;
  margin:0 auto;
  border:0;
}
.ngbs-search-page-shell{width:100%;margin:0;padding:24px 18px 48px}
.ngbs-search-page-inner{width:100%;max-width:1280px;margin:0 auto}

@media (max-width:600px){
  /* On phones, equipment is text-first: no SVG icons in filters or result cards. */
  .ngbs-feature-choice-icon,
  .ngbs-mini-feature-icon{display:none!important}
  .ngbs-feature-choice{gap:0!important;justify-content:flex-start}
  .ngbs-mini-feature{gap:0!important}
  .ngbs-search-page-shell{padding:14px 10px 36px}
  .ngbs-banner-ad{margin-bottom:12px}
  .ngbs-banner-ad img{max-height:none}
}


/* v0.3.5: center the search bar within the available content width. */
.ngbs-search > .ngbs-searchbar{
  width:min(100%,1180px);
  margin-left:auto;
  margin-right:auto;
}

/* Mobile maps are intentionally narrower than the surrounding content
   so the map does not visually dominate the page. */
@media (max-width:600px){
  .ngbs-search .ngbs-map-wrap{
    width:80%;
    max-width:80%;
    margin-left:auto;
    margin-right:auto;
  }
  .ngbs-search .ngbs-map{
    width:100%;
    min-width:0;
  }
}


/* v0.3.6 mobile header spacing + text-only equipment */
@media (max-width:900px){
  .ngbs-search-page-shell{
    box-sizing:border-box;
    padding-top:var(--ngbs-mobile-header-offset,72px)!important;
  }
}

@media (max-width:782px){
  /* On smartphones/tablets in phone layout, equipment is text only. */
  .ngbs-search .ngbs-feature-choice-icon,
  .ngbs-search .ngbs-mini-feature-icon{
    display:none!important;
  }
  .ngbs-search .ngbs-feature-choice,
  .ngbs-search .ngbs-mini-feature{
    gap:0!important;
  }
}

@media (max-width:600px){
  .ngbs-search-page-shell{
    padding-left:14px!important;
    padding-right:14px!important;
    padding-bottom:38px!important;
  }
  .ngbs-search-page-inner,
  .ngbs-search{
    width:100%;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }
}


/* v0.3.8: mobile search page also starts immediately below the actual menu.
   No extra top whitespace beyond the detected overlap. */
@media (max-width:900px){
  .ngbs-search-page-shell{
    padding-top:var(--ngbs-mobile-header-offset,0px)!important;
  }
}


/* v0.3.17: smartphone top/search page header-to-banner spacing.
   Keep a small but safe gap under the logo/hamburger row. */
@media (max-width:600px){
  .ngbs-search-page-shell{
    padding-top:30px!important;
    margin-top:0!important;
  }

  .ngbs-search-page-inner{
    margin-top:0!important;
  }

  .ngbs-search > .ngbs-banner-ad:first-child{
    margin-top:0!important;
  }
}
