/* Runtime-only behavior. No master design tokens are changed. */
body{margin:0}
#page-business-profile.page.active{display:block}
.jbh-action-link{display:inline-flex;text-decoration:none}
.jbh-action-link.btn-secondary{color:var(--text-primary)}
.jbh-action-link.btn-primary,.jbh-action-link.btn-sage{color:#fff}
.jbh-copy-status{font-size:12px;line-height:16px;color:var(--status-success);margin-top:8px;display:none}
.jbh-copy-status.on{display:block}
@media(max-width:767px){
  #page-business-profile .profile-main-grid{grid-template-columns:1fr !important}
  #page-business-profile .profile-sidebar{width:100%}
}

/* Foreground lock for dark action buttons. WordPress/link state rules must never override the locked demo. */
#page-business-profile a.jbh-action-link.btn-primary,
#page-business-profile a.jbh-action-link.btn-primary:link,
#page-business-profile a.jbh-action-link.btn-primary:visited,
#page-business-profile a.jbh-action-link.btn-primary:hover,
#page-business-profile a.jbh-action-link.btn-primary:focus,
#page-business-profile a.jbh-action-link.btn-primary:active,
#page-business-profile a.jbh-action-link.btn-sage,
#page-business-profile a.jbh-action-link.btn-sage:link,
#page-business-profile a.jbh-action-link.btn-sage:visited,
#page-business-profile a.jbh-action-link.btn-sage:hover,
#page-business-profile a.jbh-action-link.btn-sage:focus,
#page-business-profile a.jbh-action-link.btn-sage:active{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
#page-business-profile a.jbh-action-link.btn-primary svg,
#page-business-profile a.jbh-action-link.btn-primary svg *,
#page-business-profile a.jbh-action-link.btn-sage svg,
#page-business-profile a.jbh-action-link.btn-sage svg *{
  stroke:#fff !important;
}

/* Businesses archive: runtime behavior only; the visual recipes remain in master-demo.css. */
#page-search-results .jbh-directory-result-link{text-decoration:none;color:inherit}
#page-search-results .biz-result-action .btn-primary,
#page-search-results .biz-result-action .btn-primary:link,
#page-search-results .biz-result-action .btn-primary:visited{color:#fff !important;-webkit-text-fill-color:#fff !important;text-decoration:none}
#page-search-results .jbh-directory-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--sage);color:#fff;font-size:30px;font-weight:650}
#page-search-results .biz-cat-card.jbh-category-link{text-decoration:none;color:inherit}
#page-search-results .jbh-filter-form select.input{width:100%}
#page-search-results .jbh-filter-actions{display:flex;gap:8px;align-items:center;margin-top:12px}
#page-search-results .jbh-filter-actions .btn{flex:1}
#page-search-results .jbh-clear-filter{font-size:12px;color:var(--sage);text-decoration:none;font-weight:600}
#page-search-results .jbh-no-results{padding:34px;border:1px solid var(--border-default);border-radius:10px;background:#fff;text-align:center}
#page-search-results .jbh-result-count{font-weight:600;color:var(--text-secondary);margin-bottom:12px}
#page-search-results .jbh-pagination{display:flex;justify-content:center;gap:8px;margin-top:22px;flex-wrap:wrap}
#page-search-results .jbh-pagination .page-numbers{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--border-default);border-radius:8px;background:#fff;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink)}
#page-search-results .jbh-pagination .current{background:var(--ink);border-color:var(--ink);color:#fff}
#page-search-results .biz-searchbar form{display:contents}

/* v0.5.0 location-directory production bindings. These do not change the
   locked visual system; they only let semantic anchors inherit button styles. */
a.loc-gold-btn{display:flex;align-items:center;justify-content:center;text-decoration:none}
a.type-tab{text-decoration:none}

/* v0.6 Places production bindings. Visual values mirror the locked master; these
   rules only make semantic form controls and dynamic profile layout behave like it. */
#page-places .places-search-loc-safe select{width:100%;height:100%;min-height:48px;border:0;background:#fff;color:var(--text-primary);font:inherit;font-weight:550;padding:0 34px 0 14px;outline:none;cursor:pointer}
#page-places select.safe-filter{appearance:auto;-webkit-appearance:auto;display:block;padding-right:28px}
#page-places .safe-filter:disabled{opacity:.55;cursor:not-allowed}
#page-place-profile .bizrow .btn{white-space:nowrap}
@media(max-width:820px){
  #page-place-profile .grid[style*="grid-template-columns:1fr 360px"]{grid-template-columns:1fr !important}
  #page-place-profile img[style*="height:280px"]{height:220px !important}
}

/* v0.6.1 Places visual-lock patch: preserve master demo proportions while keeping filters real. */
#page-places .safe-filters select.safe-filter{
  width:auto !important;
  max-width:none !important;
  flex:0 0 auto !important;
  appearance:auto;
  -webkit-appearance:menulist;
}
#page-places .safe-filters .safe-filter.map{flex:0 0 auto !important;width:auto !important;opacity:.62}
#page-place-profile .searchbar[style*="max-width:520px"]{width:100%}
#page-place-profile .bizcard .im{background-color:var(--surface-subtle)}
#page-place-profile .bizcard .im:not([style*="background-image"]){background-image:linear-gradient(135deg,var(--surface-subtle),#fff)}
#page-place-profile .bizcard .iconbtn{color:var(--ink);text-decoration:none}
#page-place-profile .mapbox{position:relative}
@media (max-width:767px){
  #page-places .safe-filters select.safe-filter{width:100% !important;flex:1 1 100% !important}
}

/* v0.7 Search + filter engine bindings. Keep locked master visuals; only add behavior-safe semantics. */
#page-search-results .jbh-filter-link{display:inline-flex;align-items:center;text-decoration:none;color:var(--text-primary)}
#page-search-results .biz-popular a{color:inherit;text-decoration:none}
#page-search-results .biz-popular a:hover{text-decoration:underline}
#page-search-results .jbh-current-location-link{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;font:inherit;color:var(--sage);font-weight:600;cursor:pointer}
#page-search-results .jbh-current-location-link:disabled,[data-jbh-current-location]:disabled{opacity:.65;cursor:wait}
#page-search-results .jbh-radius-field{margin-top:10px}
#page-search-results .biz-result-image img{width:100%;height:100%;object-fit:cover;display:block}
#page-search-results .location-dropdown button.loc-option{width:100%;border:0;background:#fff;text-align:left;font:inherit;cursor:pointer}
#page-search-results .location-dropdown button.loc-option:hover{background:var(--surface-subtle)}
#page-search-map .jbh-chip-link{text-decoration:none;color:inherit}
#page-search-map .jbh-map-result{text-decoration:none;color:inherit}
#page-search-map .jbh-search-mapbox{position:relative;overflow:hidden}
#page-search-map .jbh-dynamic-pin{transform:translate(-50%,-50%);text-decoration:none}
#page-search-map .jbh-user-pin{transform:translate(-50%,-50%)}
@media(max-width:900px){
  #page-search-map .jbh-map-grid{grid-template-columns:1fr !important}
  #page-search-map .jbh-search-mapbox{height:420px !important}
}


/* v0.7.1 visual QA patch — preserve master link styling when geolocation is a real button. */
#page-search-results button.biz-current-link.jbh-current-location-link{
  all:unset;
  display:inline-flex;
  align-items:center;
  color:var(--sage);
  font-family:inherit;
  font-size:inherit;
  font-weight:600;
  line-height:inherit;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}
#page-search-results button.biz-current-link.jbh-current-location-link:hover{text-decoration:underline}
#page-search-results button.biz-current-link.jbh-current-location-link:focus-visible{
  outline:2px solid var(--sage);
  outline-offset:3px;
  border-radius:3px;
}
#page-search-results button.biz-current-link.jbh-current-location-link:disabled{opacity:.65;cursor:wait;text-decoration:none}

/* v0.7.2 — Places Map View. Keep the locked master layout language. */
#page-places .safe-filters a.safe-filter.map{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--text-primary);opacity:1;white-space:nowrap}
#page-places .safe-filters a.safe-filter.map:hover{border-color:var(--ink);background:var(--surface-1)}
#page-places-map .jbh-map-result{text-decoration:none;color:inherit}
#page-places-map .jbh-search-mapbox{position:relative;overflow:hidden}
#page-places-map .jbh-dynamic-pin{text-decoration:none;display:flex;align-items:center;justify-content:center}
#page-places-map .jbh-map-coordinate-note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:360px;text-align:center;background:rgba(255,255,255,.94);border:1px solid var(--border-default);border-radius:12px;padding:16px;color:var(--text-secondary);font-size:14px}
@media(max-width:900px){#page-places-map .jbh-map-grid{grid-template-columns:1fr !important}#page-places-map .jbh-search-mapbox{height:420px !important}}

/* v0.8 Get Listed production bindings. Locked master supplies the visual system;
   these rules only support native file inputs, readonly account state, and real form errors. */
.jbh-onboarding-form .gl-upload{position:relative;overflow:hidden}
.jbh-onboarding-form .jbh-file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.jbh-onboarding-form .jbh-readonly-field{display:flex;align-items:center;background:var(--surface-subtle);color:var(--text-secondary);cursor:default}
.jbh-onboarding-form .jbh-method-error{margin:8px 0 0}
.jbh-onboarding-error{margin:0 0 22px}
#page-reg-review .jbh-payment-shell{min-height:1px}
#page-reg-review .jbh-payment-shell input:disabled{background:#F5F6F8;color:#98A1AF;cursor:not-allowed}

/* v0.8.1 production profile wiring */
#page-business-profile a.iconbtn{ text-decoration:none; }
#page-business-profile .kt-social{ flex:0 0 auto; }


/* v0.8.3 — production media uploader previews for Get Listed. */
.jbh-onboarding-form .jbh-media-section .jbh-file-input{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
  opacity:0!important;
  pointer-events:none!important;
}
.jbh-media-upload-grid{align-items:stretch}
.jbh-onboarding-form .jbh-media-section .gl-upload{
  min-height:220px;
  padding:18px;
  cursor:default;
  justify-content:flex-start;
  align-items:stretch;
  gap:14px;
  overflow:visible;
}
.jbh-onboarding-form .jbh-media-section .gl-upload:hover{
  border-color:var(--gl-line);
  background:#FBFCFD;
}
.jbh-onboarding-form .jbh-media-section .gl-upload.has-file{
  border-color:var(--gl-green);
  background:var(--gl-green-tint-2);
}
.jbh-media-empty{
  min-height:182px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-align:center;
}
.jbh-media-empty[hidden],
.jbh-single-preview[hidden],
.jbh-media-error[hidden],
.jbh-gallery-add-tile[hidden]{display:none!important}
.jbh-media-empty small,
.jbh-gallery-toolbar small{
  display:block;
  max-width:360px;
  line-height:1.45;
}
.jbh-media-action{
  appearance:none;
  border:1px solid var(--gl-line);
  background:#fff;
  color:var(--text-primary);
  border-radius:7px;
  min-height:36px;
  padding:7px 12px;
  font:600 12.5px/1.2 inherit;
  cursor:pointer;
}
.jbh-media-action:hover{border-color:var(--gl-green);color:var(--gl-green-ink)}
.jbh-media-action:focus-visible,
.jbh-gallery-remove:focus-visible,
.jbh-gallery-add-tile:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:2px;
}
.jbh-media-action-primary{
  border-color:var(--gl-green);
  color:var(--gl-green-ink);
  background:#fff;
}
.jbh-media-remove{color:#9a3c35}
.jbh-media-remove:hover{border-color:#c96b62;color:#7f2822}
.jbh-single-preview{
  width:100%;
  display:grid;
  grid-template-columns:minmax(120px,170px) minmax(0,1fr);
  gap:16px;
  align-items:center;
}
.jbh-single-preview-image{
  aspect-ratio:1/1;
  background:#fff;
  border:1px solid var(--gl-line);
  border-radius:10px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.jbh-single-preview-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.jbh-single-preview-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:left;
}
.jbh-single-preview-copy b{font-size:15px}
.jbh-single-preview-copy small{
  color:var(--gl-muted);
  line-height:1.4;
  overflow-wrap:anywhere;
}
.jbh-media-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.jbh-gallery-media{grid-column:auto}
.jbh-gallery-toolbar{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  text-align:left;
}
.jbh-gallery-toolbar > div:first-child{min-width:0}
.jbh-gallery-toolbar b{display:block;font-size:15px;margin-bottom:5px}
.jbh-gallery-toolbar-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.jbh-gallery-count{
  white-space:nowrap;
  font-size:12px;
  font-weight:650;
  color:var(--gl-green-ink);
}
.jbh-gallery-preview-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.jbh-gallery-preview,
.jbh-gallery-add-tile{
  position:relative;
  aspect-ratio:1/1;
  min-width:0;
  margin:0;
  border:1px solid var(--gl-line);
  border-radius:9px;
  background:#fff;
  overflow:hidden;
}
.jbh-gallery-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.jbh-gallery-remove{
  position:absolute;
  top:6px;
  right:6px;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.8);
  background:rgba(18,34,58,.88);
  color:#fff;
  font:700 18px/1 inherit;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(18,34,58,.18);
}
.jbh-gallery-add-tile{
  appearance:none;
  border-style:dashed;
  color:var(--gl-green-ink);
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.jbh-gallery-add-tile:hover{border-color:var(--gl-green);background:var(--gl-green-tint)}
.jbh-gallery-add-tile span{font-size:25px;line-height:1}
.jbh-gallery-add-tile small{font-weight:650;color:inherit}
.jbh-media-error{
  width:100%;
  border:1px solid #E7B9B4;
  background:#FFF4F2;
  color:#8A302A;
  border-radius:8px;
  padding:10px 12px;
  font-size:12.5px;
  line-height:1.45;
  text-align:left;
}
@media(max-width:900px){
  .jbh-single-preview{grid-template-columns:130px minmax(0,1fr)}
  .jbh-gallery-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  .jbh-onboarding-form .jbh-media-section .gl-upload{min-height:0;padding:14px}
  .jbh-single-preview{grid-template-columns:1fr}
  .jbh-single-preview-image{max-width:190px;width:100%;margin:0 auto}
  .jbh-single-preview-copy{text-align:center;align-items:center}
  .jbh-gallery-toolbar{flex-direction:column}
  .jbh-gallery-toolbar-actions{width:100%;justify-content:space-between}
  .jbh-gallery-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.jbh-single-media[data-media-kind="provider-photo"] .jbh-single-preview-image img{object-fit:cover}

/* Production Member Login status messages. The layout itself is inherited
   directly from the locked master demo's .gl-login / .gl-login-card rules. */
.jbh-login-notice{
  max-width:680px;
  margin:0 auto 20px;
  padding:12px 14px;
  border:1px solid var(--gl-line);
  border-radius:8px;
  font-size:13.5px;
  line-height:20px;
  text-align:left;
}
.jbh-login-notice.is-success{background:var(--gl-green-tint-2);border-color:#BFDCD0;color:var(--gl-green-ink)}
.jbh-login-notice.is-error{background:#FDF1F0;border-color:#EFC6C6;color:#8F2F2A}
#page-login .gl-login-form input[type="checkbox"]{width:auto;height:auto}
