/* VentaLoca - Mobile search, scoped to avoid affecting Classima / other forms. */
.vlb-overlay[hidden] { display: none !important; }
.vlb-overlay, .vlb-overlay * { box-sizing: border-box; }
.vlb-overlay { position: fixed; inset: 0; z-index: 2147483000; display: flex; justify-content: center; align-items: flex-start; font-family: system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
.vlb-backdrop { position: absolute; inset: 0; background: rgba(7,22,23,.68); backdrop-filter: blur(2px); }
.vlb-panel { position: relative; z-index: 1; width: min(560px, calc(100vw - 28px)); margin-top: max(20px, env(safe-area-inset-top)); background: #fff; color: #16463e; border-radius: 22px; box-shadow: 0 20px 55px rgba(0,0,0,.27); padding: 20px; max-height: calc(100dvh - 30px); overflow: auto; }
.vlb-panel-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:18px; }
.vlb-heading { font-size: 19px; font-weight: 800; line-height: 1.3; color: #0c5b4e; }
.vlb-overlay .vlb-close { display: flex; justify-content:center; align-items:center; width:40px; height:40px; padding:8px; border:0; border-radius:50%; background:#eff4f3; color:#1b534a; flex-shrink:0; cursor:pointer; }
.vlb-close svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; }
.vlb-form { display:block; margin:0; }
.vlb-input-wrap { position:relative; margin:0 0 14px; }
.vlb-search-icon { position:absolute; left:16px; top:50%; transform:translateY(-50%); width:24px; height:24px; fill:none; stroke:#087d69; stroke-width:2.2; stroke-linecap:round; pointer-events:none; }
.vlb-overlay .vlb-search-input { display:block; width:100%; height:60px; font-size:17px !important; line-height:normal; font-weight:500; background:#f7fbfa !important; border:2px solid #a9d8cd !important; border-radius:15px !important; color:#172e2a !important; padding:0 14px 0 50px !important; margin:0 !important; outline:none !important; box-shadow:none !important; text-align:left; -webkit-appearance:none; appearance:none; }
.vlb-overlay .vlb-search-input:focus { border-color:#008b77 !important; box-shadow:0 0 0 3px rgba(0,139,119,.12) !important; }
.vlb-overlay .vlb-search-input::placeholder { color:#687e79; opacity:1; }
.vlb-overlay .vlb-submit { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:54px; padding:12px 18px; border:0; border-radius:15px; background:#008572; color:#fff; font-size:17px; font-weight:750; cursor:pointer; line-height:1.35; }
.vlb-submit svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.vlb-overlay .vlb-submit:hover, .vlb-overlay .vlb-submit:focus { background:#006657; color:#fff; }
.vlb-help { margin:15px 0 2px; font-size:13px; line-height:1.5; color:#58716a; }
.vlb-help strong { color:#375a53; }
.vlb-visually-hidden { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:991px) {
  .vlb-search-tab { pointer-events: auto !important; cursor: pointer !important; touch-action: manipulation; }
}
@media (max-width:380px) { .vlb-panel { width:calc(100vw - 18px); padding:16px; } .vlb-heading { font-size:17px; } }
@media (min-width:992px) { .vlb-overlay { display:none !important; } }

/* Search-results template: real published HivePress listings before theme/footer menus. */
.vlb-view-all { display:block; text-align:center; margin-top:14px; font-size:15px; font-weight:750; color:#087f70; text-decoration:underline; }
.vlb-results-page, .vlb-results-page * {box-sizing:border-box;}
.vlb-results-page { background:#f3f7f6; min-height:60vh; color:#213934; padding:26px 14px 60px; }
.vlb-results-container { width:min(1180px,100%); margin:0 auto; }
.vlb-results-page h1 { color:#14493f; font-size:clamp(25px,3.3vw,37px); margin:0 0 9px; line-height:1.14; }
.vlb-results-caption { color:#526863; font-size:15px; margin:0 0 20px; line-height:1.55; }
.vlb-listings-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:0 0 28px; }
.vlb-listing-card { background:#fff; border:1px solid #dfebe6; border-radius:17px; overflow:hidden; box-shadow:0 4px 20px rgba(0,60,40,.06); min-width:0; }
.vlb-listing-card .vlb-listing-link {display:block;color:inherit;text-decoration:none !important;height:100%;}
.vlb-listing-card .vlb-listing-link:focus-visible { outline:3px solid #00a887;outline-offset:-3px; }
.vlb-listing-photo {width:100%;aspect-ratio:1.25;display:flex;align-items:center;justify-content:center;background:#e5f1ed;overflow:hidden;}
.vlb-listing-photo img { width:100%;height:100%;object-fit:cover;display:block;}
.vlb-no-photo {font-size:65px;font-weight:300;color:#81b5a6;}
.vlb-listing-details { padding:13px 14px 17px; }
.vlb-listing-category { text-transform:uppercase;letter-spacing:.07em;color:#087763;font-weight:800;font-size:11px;margin-bottom:5px; }
.vlb-listing-details h2 {font-size:17px;line-height:1.35;margin:0 0 9px;color:#173a33;font-weight:800;overflow-wrap:anywhere;}
.vlb-listing-price {color:#008572;font-size:20px;font-weight:850;}
.vlb-listing-date {font-size:12px;color:#72827d;margin-top:8px;}
.vlb-results-empty {background:#fff;padding:22px;border:1px solid #d8e8e3;border-radius:14px;margin:15px 0 26px;line-height:1.5;}
.vlb-results-pagination {display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin:20px 0 35px;}
.vlb-results-pagination a {font-weight:800;text-decoration:none;color:#087f70;}
.vlb-results-pagination span {font-size:14px;color:#667a72;}
.vlb-search-again { background:#fff; padding:22px; border-radius:18px;border:1px solid #d8e8e3; margin:24px 0 15px;max-width:650px; }
.vlb-search-again h2 { color:#185144;font-size:20px;margin:0 0 14px; }
.vlb-search-again .vlb-form {display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;}
.vlb-search-again .vlb-input-wrap {flex:2 1 260px;margin:0;}
.vlb-search-again .vlb-search-input {display:block;width:100%;height:52px !important;background:#f7fbfa !important;border:2px solid #a9d8cd !important;border-radius:12px !important;color:#173f35 !important;padding:0 14px 0 50px !important;font-size:16px !important;}
.vlb-search-again .vlb-submit {width:auto;flex:1 1 140px;min-height:52px;}
.vlb-search-again > a {display:inline-block;margin-top:13px;font-weight:750;color:#008572;}
@media(max-width:900px){.vlb-listings-grid {grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:600px){
 .vlb-results-page {padding:20px 12px 115px;}
 .vlb-listings-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}
 .vlb-listing-photo {aspect-ratio:1;}
 .vlb-listing-details {padding:10px 11px 14px;}
 .vlb-listing-details h2 {font-size:14px;}
 .vlb-listing-price {font-size:17px;}
 .vlb-search-again {padding:15px;}
}
/* v2.2: The search input and published ads stay ABOVE any map or theme blocks. */
.vlb-search-first {display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:18px; background:#fff; border:1px solid #dae8e4; border-radius:15px; padding:14px;}
.vlb-search-first .vlb-form {display:flex; flex:1 1 430px; gap:10px; align-items:stretch; flex-wrap:wrap;}
.vlb-search-first .vlb-input-wrap {flex:2 1 230px; margin:0;}
.vlb-search-first .vlb-search-input {width:100%; background:#f7fbfa !important; border:2px solid #a9d8cd !important; border-radius:12px !important; padding:0 12px 0 48px !important; height:53px !important; font-size:16px !important;}
.vlb-search-first .vlb-submit {min-width:134px; flex:1 1 135px; width:auto; min-height:53px;}
.vlb-search-first .vlb-clear {display:inline-block; color:#087f70; font-weight:750; text-decoration:underline; font-size:14px;}
.vlb-map-link {margin:32px 0 12px; font-weight:750;}
.vlb-map-link a {color:#087f70;}
.vlb-results-empty p {margin-bottom:0;}
@media (max-width:600px) { .vlb-search-first{padding:11px;} .vlb-search-first .vlb-form {gap:9px;} .vlb-search-first .vlb-input-wrap {flex-basis:100%;} .vlb-search-first .vlb-submit {flex-basis:100%;} }
