/* search.html — page-specific styles. */

.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--pine);font-weight:500;}
.wrap{max-width:1360px;margin:0 auto;padding:0 32px;}
@media (max-width:720px){.wrap{padding:0 20px;}}
@media (max-width:420px){.wrap{padding:0 16px;}}
/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:15px;border:1px solid transparent;transition:transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;white-space:nowrap;}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-sm{padding:9px 16px;font-size:13.5px;}
.phototile svg{width:100%;height:100%;display:block;}
/* ================= HEADER ================= */
.site-header{position:sticky;top:0;z-index:200;background:rgba(250,247,241,0.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.header-inner{max-width:1360px;margin:0 auto;padding:0 32px;height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{display:flex;align-items:center;gap:9px;font-family:'Fraunces',serif;font-weight:600;font-size:21px;letter-spacing:0.01em;color:var(--pine-deep);}
.nav-links a{font-size:15px;font-weight:500;color:var(--ink-soft);transition:color .15s ease;position:relative;padding:6px 0;}
.nav-links a.active{color:var(--pine-deep);font-weight:600;}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:2px;background:var(--pine);border-radius:2px;}
.icon-btn{width:42px;height:42px;border:none;background:transparent;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s ease;}
@media (max-width:960px){.nav-desktop{display:none;}.nav-mobile-controls{display:flex;}.header-inner{height:64px;padding:0 20px;}}
/* ================= PAGE HEADER ================= */
.page-header{padding:22px 0 18px;border-bottom:1px solid var(--line);background:var(--white);}
.breadcrumb{font-size:13px;color:var(--ink-soft);margin-bottom:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.breadcrumb a{color:var(--ink-soft);transition:color .15s ease;}
.breadcrumb a:hover{color:var(--pine);}
.breadcrumb span.sep{color:#C9C0AC;}
.breadcrumb span.current{color:var(--ink);font-weight:600;}
.page-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.page-title-row h1{font-size:28px;font-weight:600;letter-spacing:-0.015em;}
.page-title-row p{font-size:14.5px;color:var(--ink-soft);margin-top:5px;}
@media (max-width:640px){
  .page-header{padding:14px 0 12px;}
  .breadcrumb{font-size:11.5px;margin-bottom:7px;gap:4px;}
  .page-title-row h1{font-size:19px;letter-spacing:-0.01em;}
  .page-title-row p{font-size:12.5px;margin-top:3px;}
}
/* ================= SEARCH MODE TABS ================= */
.mode-tabs{display:flex;gap:2px;background:var(--sand);border-radius:999px;padding:4px;width:max-content;margin-top:16px;}
.mode-tab{padding:9px 18px;border-radius:999px;border:none;background:transparent;font-size:14px;font-weight:600;color:var(--ink-soft);transition:background .15s ease,color .15s ease;white-space:nowrap;min-height:38px;}
.mode-tab.active{background:var(--white);color:var(--pine-deep);box-shadow:var(--shadow-soft);}
@media (max-width:640px){
  .mode-tabs{width:100%;overflow-x:auto;scrollbar-width:none;margin-top:10px;padding:3px;}
  .mode-tabs::-webkit-scrollbar{display:none;}
  .mode-tab{flex:0 0 auto;padding:8px 15px;font-size:13px;min-height:36px;}
}
/* ================= SEARCH BAR ================= */
.search-bar-section{padding:18px 0;background:var(--white);border-bottom:1px solid var(--line);}
.search-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-l);padding:8px;box-shadow:var(--shadow-soft);}
.search-fields{display:flex;gap:8px;flex-wrap:wrap;}
.search-input-wrap{position:relative;flex:2 1 240px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;background:var(--paper);}
.search-input-wrap input{border:none;background:transparent;outline:none;font-size:15px;width:100%;color:var(--ink);font-family:inherit;}
.search-input-wrap input::placeholder{color:var(--ink-faint);}
.search-submit{flex:0 0 auto;padding:12px 26px;}
.suggest-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);padding:6px;z-index:80;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease, transform .18s ease;}
.suggest-panel.open{opacity:1;transform:none;pointer-events:auto;}
.suggest-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-s);font-size:14.5px;color:var(--ink);text-align:left;background:transparent;border:none;font-family:inherit;}
.suggest-item:hover{background:var(--sand);}
.suggest-item svg{width:15px;height:15px;color:var(--ink-soft);flex-shrink:0;}
.dropdown{position:relative;flex:1 1 160px;}
.dropdown-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;background:var(--paper);font-size:15px;color:var(--ink);font-family:inherit;text-align:left;transition:border-color .15s ease;}
.dropdown-trigger.has-value{color:var(--ink);font-weight:500;}
.dropdown-trigger:not(.has-value){color:var(--ink-faint);}
.dropdown-trigger svg{flex-shrink:0;color:var(--ink-faint);transition:transform .2s ease;}
.dropdown-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;z-index:80;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);padding:6px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease, transform .18s ease;max-height:340px;overflow-y:auto;}
.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 12px;border-radius:var(--radius-s);font-size:15px;color:var(--ink);text-align:left;background:transparent;border:none;font-family:inherit;}
.dropdown-option .check{width:16px;height:16px;color:var(--pine);flex-shrink:0;visibility:hidden;}
.dropdown-backdrop{display:none;}
@media (max-width:960px){
  .search-fields{flex-direction:column;}
  .search-input-wrap,.dropdown{flex:1 1 auto;}
  .search-input-wrap input,.dropdown-trigger{font-size:16px;}
  .search-submit{width:100%;}
  .dropdown-backdrop{display:block;position:fixed;inset:0;background:rgba(21,37,30,0.4);z-index:198;opacity:0;pointer-events:none;transition:opacity .2s ease;}
  .dropdown-backdrop.open{opacity:1;pointer-events:auto;}
  .dropdown-panel,.suggest-panel{position:fixed;top:auto;left:0;right:0;bottom:0;min-width:0;z-index:199;border-radius:20px 20px 0 0;padding:8px 8px calc(10px + env(safe-area-inset-bottom));transform:translateY(100%);box-shadow:0 -8px 32px rgba(21,37,30,0.18);max-height:70vh;}
  .dropdown-panel.open,.suggest-panel.open{transform:translateY(0);}
  .dropdown-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 10px;font-family:'Fraunces',serif;font-weight:600;font-size:17px;}
  .dropdown-sheet-close{width:34px;height:34px;border:none;background:var(--sand);border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--ink);}
  .dropdown-option,.suggest-item{padding:14px 12px;font-size:16px;}
}
/* mobile sticky compact search */
.mobile-search-compact{display:none;}
@media (max-width:720px){
  .search-bar-section{padding:12px 0;position:sticky;top:64px;z-index:90;}
  .search-bar-section .search-card{display:none;}
  .mobile-search-compact{display:flex;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:999px;padding:13px 16px;background:var(--paper);color:var(--ink-soft);font-size:14.5px;min-height:48px;text-align:left;}
  .mobile-search-compact svg{flex-shrink:0;color:var(--ink-faint);}
  .mobile-search-compact span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
}
/* ---------- Full-screen mobile search sheet ---------- */
.mobile-search-sheet{display:none;}
@media (max-width:720px){
  .mobile-search-sheet{
    position:fixed;inset:0;z-index:250;background:var(--paper);
    flex-direction:column;transform:translateY(100%);transition:transform .28s ease;
  }
  .mobile-search-sheet.open{display:flex;transform:translateY(0);}
  .mss-head{display:flex;align-items:center;gap:12px;padding:16px 16px;background:var(--white);border-bottom:1px solid var(--line);flex-shrink:0;}
  .mss-head h3{font-size:17px;font-weight:600;flex:1;}
  .mss-body{flex:1;overflow-y:auto;padding:18px 16px calc(24px + env(safe-area-inset-bottom));}
  .mss-field-label{font-size:12.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:8px;display:block;}
  .mss-input-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius-m);padding:14px 16px;background:var(--white);margin-bottom:22px;}
  .mss-input-wrap input{border:none;background:transparent;outline:none;font-size:16px;width:100%;color:var(--ink);font-family:inherit;}
  .mss-input-wrap svg{flex-shrink:0;color:var(--ink-faint);}
  .mss-suggest-list{display:flex;flex-direction:column;gap:2px;margin-bottom:24px;}
  .mss-suggest-item{display:flex;align-items:center;gap:12px;padding:13px 4px;border-radius:var(--radius-s);font-size:15px;color:var(--ink);text-align:left;background:transparent;border:none;font-family:inherit;border-bottom:1px solid var(--line);min-height:48px;}
  .mss-suggest-item:last-child{border-bottom:none;}
  .mss-suggest-item svg{width:16px;height:16px;color:var(--ink-soft);flex-shrink:0;}
  .mss-select-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
  .mss-select-opt{padding:11px 16px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:14px;font-weight:600;color:var(--ink-soft);min-height:44px;}
  .mss-select-opt.selected{background:var(--pine);border-color:var(--pine);color:var(--white);}
  .mss-foot{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);flex-shrink:0;}
  .mss-foot .btn{width:100%;min-height:50px;}
}
/* ================= QUICK FILTERS ================= */
.quick-filters-row{padding:14px 0;background:var(--white);border-bottom:1px solid var(--line);}
.quick-filters{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;}
.quick-filters::-webkit-scrollbar{display:none;}
.qf-chip{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:14px;font-weight:600;color:var(--ink-soft);transition:all .15s ease;}
.qf-chip:hover{border-color:var(--ink);color:var(--ink);}
.qf-chip.has-value{background:var(--pine-tint);border-color:var(--pine);color:var(--pine-deep);}
.qf-chip svg{width:14px;height:14px;flex-shrink:0;}
.qf-chip.more-btn{background:var(--ink);color:var(--white);border-color:var(--ink);}
.qf-chip.more-btn:hover{background:var(--pine-deep);border-color:var(--pine-deep);color:var(--white);}
/* Active filters */
.active-filters-row{padding:0;max-height:0;overflow:hidden;transition:max-height .2s ease;}
.active-filters-row.show{padding:12px 0 0;max-height:80px;}
.active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.af-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 8px 7px 14px;border-radius:999px;background:var(--pine-tint);color:var(--pine-deep);font-size:13.5px;font-weight:600;}
.af-pill button{width:20px;height:20px;border-radius:999px;border:none;background:rgba(31,77,62,0.14);color:var(--pine-deep);display:flex;align-items:center;justify-content:center;}
.af-pill button svg{width:11px;height:11px;}
.clear-all-link{font-size:13.5px;font-weight:600;color:var(--ink-soft);border-bottom:1px solid transparent;}
.clear-all-link:hover{color:var(--ink);border-color:var(--ink);}
@media (max-width:720px){
  .quick-filters-row{padding:12px 0;}
  .quick-filters{margin:0 -20px;padding:0 20px 4px;gap:8px;}
  .qf-chip{padding:10px 15px;font-size:13.5px;min-height:40px;}
  .active-filters-row.show{max-height:100px;}
  .af-pill{padding:8px 8px 8px 14px;font-size:13px;min-height:36px;}
  .af-pill button{width:22px;height:22px;}
  .clear-all-link{padding:8px 4px;}
}
@media (max-width:420px){.quick-filters{margin:0 -16px;padding:0 16px 4px;}}
/* ================= RESULTS TOOLBAR ================= */
.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0 16px;flex-wrap:wrap;}
.results-count{font-size:15px;font-weight:600;color:var(--ink);}
.results-count span{color:var(--ink-soft);font-weight:500;}
.toolbar-actions{display:flex;align-items:center;gap:10px;}
.sort-dropdown{position:relative;}
.view-toggle{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--white);}
.view-toggle button{padding:8px 16px;border-radius:999px;border:none;background:transparent;font-size:13.5px;font-weight:600;color:var(--ink-soft);display:flex;align-items:center;gap:6px;}
.view-toggle button.active{background:var(--ink);color:var(--white);}
.view-toggle button svg{width:15px;height:15px;}
.map-hide-btn{font-size:13.5px;font-weight:600;color:var(--ink-soft);padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);display:flex;align-items:center;gap:6px;}
.map-hide-btn:hover{border-color:var(--ink);color:var(--ink);}
.map-hide-btn svg{width:15px;height:15px;}
@media (max-width:1180px){
  .map-hide-btn{display:none;}
}
@media (max-width:720px){
  .results-toolbar{padding:12px 0;gap:10px;}
  .results-count{font-size:14px;}
  .toolbar-actions{width:100%;justify-content:space-between;}
  .toolbar-actions .view-toggle{display:none;}
  .sort-dropdown{flex:1;}
  .sort-dropdown .dropdown-trigger{min-height:44px;width:100%;}
  .filter-btn-mobile{display:flex;flex:0 0 auto;align-items:center;gap:6px;min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:13.5px;font-weight:600;color:var(--ink);}
  .filter-btn-mobile svg{width:15px;height:15px;}
  .filter-btn-mobile .fb-count{background:var(--pine);color:var(--white);border-radius:999px;min-width:17px;height:17px;font-size:10.5px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
}
@media (min-width:721px){.filter-btn-mobile{display:none;}}
/* ================= MAIN LAYOUT ================= */
.results-layout{display:grid;grid-template-columns:1fr;gap:0;padding-bottom:60px;}
.results-layout.split{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start;}
.results-col{min-width:0;}
.map-col{position:sticky;top:96px;height:calc(100vh - 116px);border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);display:none;}
.results-layout.split .map-col{display:block;}
@media (max-width:1180px){
  .results-layout.split{grid-template-columns:1fr;}
  .map-col{display:none !important;}
}
.results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.results-grid.wide{grid-template-columns:repeat(3,1fr);}
@media (max-width:1180px){.results-grid.wide{grid-template-columns:repeat(3,1fr);}.results-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:900px){.results-grid,.results-grid.wide{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.results-grid,.results-grid.wide{grid-template-columns:1fr;gap:16px;}}
/* ================= PROPERTY CARDS ================= */
.property-card{background:var(--white);border-radius:var(--radius-m);overflow:hidden;border:1px solid var(--line);transition:transform .2s ease, box-shadow .2s ease;display:block;cursor:pointer;}
.property-card.highlighted{border-color:var(--pine);box-shadow:0 0 0 3px var(--pine-tint);}
.property-media .phototile{position:absolute;inset:0;}
.property-media svg{transition:transform .5s ease;}
.property-card:hover .property-media svg{transform:scale(1.07);}
.save-btn svg{width:17px;height:17px;}
.save-btn.saved svg{fill:var(--pine);stroke:var(--pine);}
.property-body{padding:16px 16px 18px;}
.property-price{font-family:'IBM Plex Mono',monospace;font-size:18px;font-weight:500;color:var(--pine-deep);margin-bottom:5px;}
.property-title{font-size:16px;font-weight:600;margin-bottom:3px;}
.property-loc{font-size:13.5px;color:var(--ink-soft);margin-bottom:11px;display:flex;align-items:center;gap:5px;}
.property-loc svg{width:13px;height:13px;flex-shrink:0;}
.property-specs{display:flex;gap:9px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft);padding-top:11px;border-top:1px solid var(--line);margin-bottom:9px;}
.property-seller{font-size:12px;color:var(--ink-faint);}
/* Project card variant */
.project-card{background:var(--white);border-radius:var(--radius-m);overflow:hidden;border:1px solid var(--brass);border-color:var(--sand);transition:transform .2s ease, box-shadow .2s ease;cursor:pointer;position:relative;}
.project-card::before{content:"PROJECT";position:absolute;top:0;left:16px;background:var(--pine-deep);color:var(--white);font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:0.08em;font-weight:500;padding:4px 10px;border-radius:0 0 6px 6px;z-index:2;}
.project-media{position:relative;aspect-ratio:16/10;overflow:hidden;}
.project-media .phototile{position:absolute;inset:0;}
.project-body{padding:16px;background:var(--brass-tint);}
.project-body h3{font-size:17px;font-weight:600;margin-bottom:3px;}
.project-builder{font-size:12.5px;color:var(--ink-soft);margin-bottom:10px;}
.project-loc{font-size:13px;color:var(--ink-soft);margin-bottom:10px;display:flex;align-items:center;gap:5px;}
.project-loc svg{width:13px;height:13px;}
.project-meta{display:flex;justify-content:space-between;align-items:flex-end;padding-top:11px;border-top:1px solid rgba(184,135,63,0.25);}
.project-meta .cfg{font-size:12.5px;color:var(--ink-soft);}
.project-meta .price{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:14.5px;color:var(--brass-deep);}
.project-meta .price-label{font-size:10px;color:var(--brass-deep);display:block;font-family:'Inter',sans-serif;font-weight:500;}
/* Commercial card slight variant marker */
.property-card.commercial .property-price::after{content:" ";}
@media (max-width:640px){
  .property-card:active,.project-card:active{transform:scale(0.985);}
  .save-btn{width:40px;height:40px;top:10px;right:10px;}
  .save-btn svg{width:18px;height:18px;}
  .property-body{padding:14px 14px 16px;}
  .property-price{font-size:17px;}
  .property-title{font-size:15.5px;}
  .property-loc{font-size:13px;margin-bottom:10px;}
  .property-specs{font-size:12px;gap:8px;}
}
/* Skeleton */
.skel-card{background:var(--white);border-radius:var(--radius-m);overflow:hidden;border:1px solid var(--line);}
.skel-media{aspect-ratio:4/3;background:linear-gradient(90deg,var(--sand) 25%,#F5EFE1 37%,var(--sand) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;}
.skel-body{padding:16px;}
.skel-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--sand) 25%,#F5EFE1 37%,var(--sand) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;margin-bottom:10px;}
.skel-line.w60{width:60%;}
.skel-line.w80{width:80%;}
.skel-line.w40{width:40%;}
/* ================= MAP ================= */
.map-visual{position:relative;width:100%;height:100%;background:
  linear-gradient(0deg, rgba(31,77,62,0.05) 1px, transparent 1px),
  linear-gradient(90deg, rgba(31,77,62,0.05) 1px, transparent 1px),
  var(--pine-tint);
  background-size:32px 32px, 32px 32px, auto;
  overflow:hidden;
}
.map-visual::before{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 20% 30%, rgba(31,77,62,0.08), transparent 40%),
  radial-gradient(circle at 75% 65%, rgba(31,77,62,0.10), transparent 45%),
  radial-gradient(circle at 50% 85%, rgba(31,77,62,0.06), transparent 35%);
}
.map-road{position:absolute;background:rgba(21,37,30,0.10);}
.map-marker{position:absolute;transform:translate(-50%,-100%);background:var(--ink);color:var(--white);font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:500;padding:7px 12px;border-radius:999px 999px 999px 4px;box-shadow:var(--shadow-lift);transition:transform .15s ease, background .15s ease;white-space:nowrap;min-height:30px;}
@media (max-width:720px){.map-marker{font-size:13.5px;padding:9px 14px;min-height:36px;}}
.map-marker::after{content:"";position:absolute;bottom:-5px;left:12px;width:10px;height:10px;background:var(--ink);transform:rotate(45deg);border-radius:0 0 2px 0;z-index:-1;}
.map-marker:hover,.map-marker.active{background:var(--pine);transform:translate(-50%,-108%) scale(1.06);}
.map-marker.active::after{background:var(--pine);}
.map-legend{position:absolute;bottom:16px;left:16px;background:rgba(255,255,255,0.92);backdrop-filter:blur(6px);border-radius:var(--radius-s);padding:10px 14px;font-size:12px;color:var(--ink-soft);box-shadow:var(--shadow-soft);}
/* Mobile full-screen map */
.floating-map-btn{display:none;}
@media (max-width:1180px){
  .floating-map-btn{display:flex;position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:150;align-items:center;gap:8px;background:var(--ink);color:var(--white);padding:14px 24px;border-radius:999px;box-shadow:var(--shadow-lift);font-size:14px;font-weight:600;border:none;min-height:48px;}
  .floating-map-btn svg{width:16px;height:16px;}
}
.mobile-map-view{position:fixed;inset:0;z-index:300;background:var(--paper);display:none;flex-direction:column;}
.mobile-map-view.open{display:flex;}
.mobile-map-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--white);}
.mobile-map-head h3{font-size:16px;font-weight:600;}
.mobile-map-body{flex:1;position:relative;}
.mobile-map-list-btn{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--white);padding:14px 26px;border-radius:999px;font-size:14px;font-weight:600;border:none;box-shadow:var(--shadow-lift);display:flex;align-items:center;gap:8px;min-height:48px;}
.mobile-map-list-btn svg{width:15px;height:15px;}
.mobile-map-card{position:absolute;bottom:calc(84px + env(safe-area-inset-bottom));left:16px;right:16px;background:var(--white);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);padding:12px;display:none;gap:12px;align-items:center;}
.mobile-map-card.show{display:flex;}
.mobile-map-card .thumb{width:64px;height:64px;border-radius:10px;overflow:hidden;flex-shrink:0;}
.mobile-map-card .thumb svg{width:100%;height:100%;}
.mobile-map-card .info{min-width:0;}
.mobile-map-card .price{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14.5px;color:var(--pine-deep);}
.mobile-map-card .title{font-size:13px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* ================= FILTER DRAWER ================= */
.drawer-overlay{position:fixed;inset:0;background:rgba(21,37,30,0.4);z-index:299;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.filter-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);background:var(--paper);z-index:300;box-shadow:-8px 0 32px rgba(21,37,30,0.18);transform:translateX(100%);transition:transform .3s ease;display:flex;flex-direction:column;}
.filter-drawer.open{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);background:var(--white);}
.drawer-head h3{font-size:19px;font-weight:600;}
.drawer-close{width:38px;height:38px;border:none;background:var(--sand);border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--ink);}
.drawer-body{flex:1;overflow-y:auto;padding:20px 22px;}
.drawer-section{margin-bottom:28px;}
.drawer-section h4{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--ink);}
.range-inputs{display:flex;align-items:center;gap:10px;}
.range-inputs input{flex:1;border:1px solid var(--line);border-radius:var(--radius-s);padding:10px 12px;font-size:14px;background:var(--white);font-family:inherit;color:var(--ink);}
.range-sep{color:var(--ink-soft);font-size:13px;}
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);}
.toggle-row:last-child{border-bottom:none;}
.toggle-row span{font-size:14.5px;color:var(--ink);}
.switch{position:relative;width:42px;height:24px;border-radius:999px;background:var(--line);border:none;flex-shrink:0;}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:var(--white);transition:transform .18s ease;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.switch.on{background:var(--pine);}
.switch.on::after{transform:translateX(18px);}
.drawer-foot{padding:16px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);display:flex;gap:12px;align-items:center;}
.drawer-foot .clear-all-link{flex-shrink:0;}
.drawer-handle{display:none;}
@media (max-width:720px){
  .filter-drawer{
    top:auto;right:0;left:0;bottom:0;width:100%;height:88vh;max-height:88vh;
    border-radius:20px 20px 0 0;transform:translateY(100%);
  }
  .filter-drawer.open{transform:translateY(0);}
  .drawer-handle{display:block;width:36px;height:4px;border-radius:999px;background:var(--line);margin:10px auto 0;flex-shrink:0;}
  .drawer-head{padding:10px 18px 14px;}
  .drawer-head h3{font-size:18px;}
  .drawer-close{width:36px;height:36px;}
  .drawer-body{padding:16px 18px;}
  .drawer-section{margin-bottom:26px;}
  .drawer-section h4{font-size:13.5px;}
  .pill-group{gap:9px;}
  .pill-opt{padding:12px 18px;font-size:14px;min-height:44px;}
  .range-inputs input{padding:13px 14px;font-size:16px;min-height:46px;}
  .toggle-row{padding:14px 0;min-height:48px;}
  .toggle-row span{font-size:15px;}
  .switch{width:46px;height:27px;}
  .switch::after{width:21px;height:21px;}
  .switch.on::after{transform:translateX(19px);}
  .drawer-foot{padding:14px 18px calc(14px + env(safe-area-inset-bottom));}
  .drawer-foot .btn{min-height:50px;}
  .drawer-foot .clear-all-link{padding:12px 4px;font-size:14px;}
}
/* ================= EMPTY STATE ================= */
.empty-state{text-align:center;padding:60px 20px;grid-column:1/-1;}
.empty-state .icon-wrap{width:76px;height:76px;border-radius:999px;background:var(--pine-tint);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--pine);}
.empty-state .icon-wrap svg{width:32px;height:32px;}
.empty-state h3{font-size:22px;font-weight:600;margin-bottom:8px;}
.empty-state p{font-size:15px;color:var(--ink-soft);max-width:380px;margin:0 auto 22px;}
.empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:36px;}
.empty-suggest h4{font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:16px;text-align:left;}
/* Footer (minimal reuse) */
.site-footer{background:var(--ink);color:rgba(255,255,255,0.72);padding:48px 0 28px;margin-top:20px;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:13.5px;color:rgba(255,255,255,0.48);}
.footer-brand{font-family:'Fraunces',serif;color:var(--white);font-size:18px;font-weight:600;margin-bottom:8px;}
.hidden{display:none !important;}
