/* VPSE-MOBILE-001: the single authoritative mobile layout layer. */
.mobile-filter-header,.mobile-filter-footer,.mobile-results-actions,.mobile-favourites-toggle,.mobile-map-list{display:none}

/* Keep portrait tablets in the deliberate phone layout.  The desktop header
   starts at 851px, so this prevents the former 761–850px collision zone. */
@media(max-width:850.99px){
  :root{--mobile-header:64px;--mobile-toolbar:96px}
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-sheet-open{overflow:hidden}

  .site-header{min-height:var(--mobile-header);height:var(--mobile-header);padding:7px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;flex-wrap:nowrap;z-index:800}
  .site-header .brand{min-width:0;position:static}
  .site-header .brand .brand-logo{width:min(176px,46vw)!important;height:46px!important;max-height:46px!important;object-fit:contain;object-position:left center}
  .mode-switch{justify-self:center;padding:2px}
  .mode-switch button{min-height:40px;padding:.38rem .68rem;font-size:.82rem}
  .header-actions{margin:0;display:block}
  .mobile-favourites-toggle{display:grid;grid-template-columns:20px auto;align-items:center;justify-content:center;gap:2px;min-width:44px;height:44px;border:1px solid #b9d5d6;border-radius:999px;background:#fff;color:var(--sea);font-weight:800}
  .mobile-favourites-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2}
  .mobile-favourites-toggle.has-favourites{background:var(--sea);color:#fff;border-color:var(--sea)}
  .mobile-favourites-toggle.has-favourites svg{fill:currentColor}

  .search-shell{margin:0;border:0;border-radius:0;box-shadow:none;overflow:visible}
  .filter-strip{display:none;position:fixed;inset:0;z-index:1200;background:#f7fbfa;padding:0;overflow:hidden;border:0;align-items:stretch}
  .filter-strip.mobile-open{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
  .mobile-filter-header{display:flex;order:0;justify-content:space-between;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 18px 13px;background:#fff;border-bottom:1px solid var(--line)}
  .mobile-filter-header p{margin:0;color:#548089;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
  .mobile-filter-header h2{margin:1px 0 0;font-size:1.55rem;letter-spacing:-.03em}
  .mobile-filter-header button{width:44px;height:44px;border:0;border-radius:999px;background:var(--mist);color:var(--ink);font-size:1.8rem;line-height:1}
  .advanced-filters{display:grid;order:1;align-content:start;gap:12px;width:auto!important;overflow-y:auto;padding:18px 16px 30px;overscroll-behavior:contain}
  .advanced-filters>label,.advanced-filters>.distribution-picker,.advanced-filters>.range-filter{width:100%;min-width:0;max-width:none;min-height:69px;display:grid;grid-template-rows:auto 50px!important;gap:5px;flex:none}
  .advanced-filters>.filter-field{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto 50px!important;gap:5px!important;height:auto!important;min-height:69px!important;line-height:normal!important;align-self:start}
  .advanced-filters>.filter-field>.filter-label,.advanced-filters>.filter-field>select{grid-column:1!important}
  .advanced-filters label,.advanced-filters .distribution-label,.advanced-filters .filter-label{font-size:.72rem!important;line-height:1.2;letter-spacing:.08em!important;color:var(--muted)!important;text-transform:uppercase;font-weight:800}
  .advanced-filters select,.distribution-trigger,.range-trigger{width:100%!important;max-width:none!important;height:50px!important;min-height:50px;border-radius:12px!important;padding:0 14px!important;font-size:.96rem!important;letter-spacing:0!important;text-transform:none!important;background-color:#fff!important;color:var(--ink)!important}
  .advanced-filters .check{grid-template-columns:1fr;grid-template-rows:auto 50px!important;min-height:69px!important;padding:0!important;border:0;border-radius:0;background:transparent;align-items:start!important;justify-items:stretch!important;text-align:left!important}
  .advanced-filters>.filter-checkbox-field>.checkbox-control{width:100%;height:50px!important;min-height:50px!important;display:flex!important;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:#fff;line-height:normal!important}
  .advanced-filters .check input{width:24px;height:24px;margin:0!important}
  .filter-status,.filter-signin{max-width:none;margin:0}
  .mobile-filter-footer{display:grid;order:2;align-self:end;grid-template-columns:1fr 2fr;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 24px #073d4b12}
  .mobile-filter-footer button{min-height:48px;border-radius:12px;font-weight:850}
  #mobile-filter-clear{border:1px solid #b9d5d6;background:#fff;color:var(--sea)}
  #mobile-filter-apply{border:1px solid var(--sea);background:var(--sea);color:#fff}

  .distribution-menu,.range-popover{position:fixed!important;inset:0!important;width:auto!important;max-width:none!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;z-index:1300!important;padding:calc(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom))!important;background:#f7fbfa!important;overflow:auto!important}
  .distribution-options{max-height:none!important;padding-bottom:76px}
  .distribution-actions,.range-popover-actions{position:sticky;bottom:0;margin:12px -2px -2px;padding:10px 2px 2px;background:linear-gradient(transparent,#f7fbfa 24%,#f7fbfa)}

  .market-layout{display:block;height:auto;min-height:0}
  .results-panel{height:auto;min-height:calc(100vh - var(--mobile-header));overflow:visible}
  .results-top{position:sticky;top:var(--mobile-header);z-index:700;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px 9px;min-height:0;padding:8px 10px;background:#fffdf9ee;backdrop-filter:blur(12px);box-shadow:0 5px 15px #073d4b0c}
  .results-top>.results-actions{display:none!important}
  .results-top>.clear-all{display:inline-flex!important;grid-column:1;order:2;min-height:30px;align-items:center;padding:0 3px;border:0;background:transparent;box-shadow:none;color:var(--sea);font-size:.7rem;font-weight:800;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
  .results-top #result-count{grid-column:2;order:2;margin:0;padding:0 3px;font-size:.78rem;color:var(--muted);font-weight:750;line-height:1.2}
  .mobile-results-actions{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr 1fr;gap:7px;order:1}
  .mobile-results-actions button,.mobile-results-actions label{height:44px;min-width:0;border:1px solid #b9d5d6;border-radius:11px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:7px;font-size:.82rem;font-weight:850;overflow:hidden}
  .mobile-results-actions button{padding:0 10px}
  .mobile-results-actions svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8}
  .mobile-results-actions label{position:relative}
  .mobile-results-actions select{width:100%;height:100%;border:0;background:transparent;color:var(--ink);font-weight:850;padding:0 8px;text-align:center}

  .cards{display:grid;grid-template-columns:1fr;gap:8px;padding:5px 8px 18px}
  .card-shell{border:1px solid #dce9e7;border-radius:13px;background:#fff;box-shadow:0 5px 15px #073d4b0a;overflow:hidden}
  .card-shell .card{display:grid;grid-template-columns:118px minmax(0,1fr);gap:11px;min-height:116px;padding:7px;border:0;border-radius:0}
  .card-photo{width:118px;height:102px;border-radius:9px}
  .card-body{padding:1px 38px 1px 0}
  .card h2{font-size:.94rem;line-height:1.18;margin:.2rem 0;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .card .price{font-size:.9rem;line-height:1.2}
  .card .facts,.card .agency{font-size:.72rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .card-favourite{top:8px!important;right:8px!important;width:44px!important;height:44px!important;min-width:44px;border-color:transparent!important;background:transparent!important;box-shadow:none!important}
  .card-favourite svg{width:18px;height:18px}
  .card-favourite.saved{border-color:#b9d5d6!important;background:#fff!important;color:var(--sea)!important}
  .card-favourite.saved svg{fill:currentColor!important}

  .details-dialog{inset:0;box-sizing:border-box;width:100%;max-width:100%;height:100dvh;max-height:none;margin:0;border-radius:0;overflow:auto}
  .details-dialog .close{position:sticky;top:10px;float:right;margin:10px 10px -50px 0;width:44px;height:44px}
  .details{display:block}
  .detail-photo{display:block;width:100%;height:290px;min-height:290px}
  .details .detail-photo img{width:100%;height:100%;min-height:0;object-fit:cover}
  .detail-content{padding:17px 18px calc(24px + env(safe-area-inset-bottom))}
  .detail-content .eyebrow{margin-bottom:3px}
  .detail-content h2{margin:.2rem 0;font-size:1.2rem;line-height:1.12}
  .detail-content .price{margin:.18rem 0;font-size:1rem}
  .detail-meta{display:grid;gap:2px;margin:5px 0 10px}
  .detail-meta p,.detail-added,.detail-location-note{margin:0;color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.25}
  .detail-facts{gap:8px;margin:12px 0;padding-top:12px}
  .detail-facts div{font-size:.72rem}
  .detail-facts strong{font-size:.86rem}

  .load-more{min-height:48px;margin:6px 0 12px;width:100%}

  .map-dialog{inset:0;box-sizing:border-box;width:100%;max-width:100%;height:100dvh;max-height:none;margin:0;padding:0;border-radius:0;overflow:hidden;background:#d7eceb}
  .map-dialog>.close{display:grid;position:absolute;z-index:1150;top:calc(12px + env(safe-area-inset-top));right:12px;width:38px;height:38px;place-items:center;padding:0;border:1px solid #b9d5d6;border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 7px 20px #073d4b25;font-size:1.65rem;line-height:1}
  .mobile-map-list{display:flex;position:absolute;top:calc(12px + env(safe-area-inset-top));left:12px;z-index:1100;min-width:76px;height:44px;padding:0 14px;align-items:center;justify-content:center;border:1px solid #b9d5d6;border-radius:999px;background:#fff;color:var(--ink);box-shadow:0 7px 20px #073d4b25;font-weight:850}
  .map-dialog-heading{position:absolute;z-index:1050;top:calc(12px + env(safe-area-inset-top));left:100px;right:58px;min-height:0;padding:8px 10px;border:0;border-radius:12px;background:#fffef3e8;box-shadow:0 7px 20px #073d4b16;backdrop-filter:blur(8px)}
  .map-dialog-heading h2,.map-heading-meta{display:none}
  .map-region-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;max-width:none;margin:0;align-items:center}.map-region-bar label{display:flex;min-width:0;align-items:center;gap:6px;font-size:.64rem}.map-region-bar select{flex:1;min-width:0;width:auto;height:36px;padding:.42rem .62rem;font-size:.86rem}.map-region-clear{justify-self:end;height:auto;padding:2px 0;font-size:.72rem}
  #results-map{height:100dvh;min-height:100%;width:100%}
  .map-dialog .leaflet-top.leaflet-left{top:calc(96px + env(safe-area-inset-top))}
  .map-dialog .leaflet-control-layers{margin-top:96px;border:0;border-radius:10px;box-shadow:0 6px 18px #073d4b22;font-size:.72rem}
  .map-dialog .leaflet-control-layers-expanded{padding:7px 9px}
  .vpse-map-cluster{display:grid!important;place-items:center;border-radius:999px;background:#075564d9;border:3px solid #fff;box-shadow:0 4px 14px #073d4b55;color:#fff;font:850 .78rem/1 inherit}
  .vpse-map-cluster span{display:grid;place-items:center;width:100%;height:100%}
  .mobile-map-listing{display:block;position:absolute;z-index:1100;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));border-radius:15px;background:#fff;box-shadow:0 14px 36px #073d4b44;overflow:hidden}
  .mobile-map-listing[hidden]{display:none}
  .mobile-map-card{display:grid;width:100%;grid-template-columns:86px minmax(0,1fr) 20px;gap:10px;align-items:center;padding:8px;border:0;background:#fff;color:var(--ink);text-align:left}
  .mobile-map-card-photo{position:relative;display:block;width:86px;height:72px;border-radius:10px;overflow:hidden;background:var(--sand)}
  .mobile-map-card-photo img{width:100%;height:100%;object-fit:cover}
  .mobile-map-card-copy{display:grid;min-width:0;gap:2px;font-size:.68rem;color:var(--muted)}
  .mobile-map-card-copy strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--ink);font-size:.82rem;line-height:1.14}
  .mobile-map-card-price{font-size:.78rem;font-weight:850;color:var(--sea)}
  .mobile-map-card-arrow{font-size:1.7rem;color:var(--sea)}
}

@media(max-width:350px){
  .site-header .brand .brand-logo{width:138px!important}
  .mode-switch button{padding:.35rem .5rem;font-size:.76rem}
  .card-shell .card{grid-template-columns:104px minmax(0,1fr)}
  .card-photo{width:104px;height:96px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.filter-strip,.details-dialog,.map-dialog,.favourites-dialog{transition:none!important}}
