/* ==========================================================================
   Lark + Fir — Houzez-style listing card for Estatik  (.lfc)
   Look ported from Houzez item-v1 (incl. real Houzez icon font);
   behavior stays native Estatik (favorite / compare / agent links).
   ========================================================================== */

@font-face{
  font-family:houzez-iconfont;
  src:url(fonts/houzez-iconfont.woff) format('woff'),
      url(fonts/houzez-iconfont.ttf) format('truetype');
  font-weight:400;font-style:normal;font-display:block;
}

/* icon glyphs (exact Houzez font) */
.lfc__ficon{
  font-family:houzez-iconfont !important;font-style:normal;font-weight:400;
  font-variant:normal;text-transform:none;line-height:1;speak:none;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  display:inline-block;
}
.lfc__ficon--bed::before{content:"\e91f";}
.lfc__ficon--bath::before{content:"\e915";}
.lfc__ficon--area::before{content:"\e936";}
.lfc__ficon--user::before{content:"\e93a";}
.lfc__ficon--clip::before{content:"\e914";}
.lfc__ficon--expand::before{content:"\e91e";}
.lfc__ficon--year::before{content:"\e94d";}
.lfc__ficon--fav::before{content:"\e928";}

/* ---- force single-column, full-width cards (override Estatik --list layout) ---- */
.es-listings.es-listings--list,
.es-listings__wrap-inner{
  display:block !important;grid-template-columns:none !important;
  column-count:auto !important;column-gap:0 !important;height:auto !important;overflow:visible !important;
}
.es-listings__wrap-inner > .es-post-entity,
.es-listings__wrap-inner > [id^="post-"],
.es-post-entity.properties{
  width:100% !important;max-width:100% !important;
  display:block !important;float:none !important;margin:0 0 20px !important;
}
/* Estatik sets .es-listing{display:flex;flex-wrap:wrap}; neutralise so the inner fills 100% */
.es-listings--list .es-listing.lfc,
.es-listing.lfc{display:block !important;width:100% !important;max-width:100% !important;}
.lfc.lfc--v1{margin-bottom:20px;width:100%;}
.lfc .lfc__inner{width:100% !important;}

/* ---- card shell ---- */
.lfc .lfc__inner{
  display:flex;align-items:stretch;
  background:#fff;border:1px solid #ececec;border-radius:8px;overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .2s ease;
}
.lfc .lfc__inner:hover{box-shadow:0 6px 20px rgba(0,0,0,.10);}

/* ---- media (left) ---- */
.lfc__media{flex:0 0 260px;max-width:260px;position:relative;align-self:stretch;}
.lfc__image{position:relative;width:100%;height:100%;min-height:190px;}
.lfc__image-link{display:block;position:absolute;inset:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#eef0f2;}
/* gradient overlay so buttons stay visible over light photos (like Houzez .hover-effect) */
.lfc__image::after{content:"";position:absolute;left:0;right:0;bottom:0;height:55%;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.55) 100%);
  pointer-events:none;z-index:1;}
.lfc__tools{position:absolute;left:12px;bottom:12px;display:flex;gap:6px;align-items:center;z-index:2;margin:0;padding:0;list-style:none;}
/* flatten Estatik's nested span/ul so all 3 buttons are direct flex siblings */
.lfc__tool--native,.lfc__tools .es-control{display:contents !important;}
.lfc__tool,.lfc__tools .es-control__item{margin:0;padding:0;list-style:none;}
/* Estatik puts a margin on .es-control li with high specificity — kill it (per user) */
.es-listings.es-listings--list .es-control li,
.es-listings.es-listings--list-sm .es-control li,
.lfc__tools .es-control li{margin:0 !important;padding:0 !important;}
.lfc__tools .es-tooltip{display:none !important;} /* hidden tooltip was reserving width */
.lfc__tool--expand{order:0;}
.lfc__tools .es-control__item--wishlist{order:1;} /* heart */
.lfc__tools .es-control__item--compare{order:2;}  /* + / compare */
.lfc__tool-btn,
.lfc__tools .es-btn{
  display:flex;align-items:center;justify-content:center;position:relative;
  flex:0 0 34px;width:34px;height:34px;min-width:34px;max-width:34px;padding:0;
  box-sizing:border-box;-webkit-appearance:none;appearance:none;
  border-radius:50%;
  background:rgba(34,34,34,.55);color:#fff;text-decoration:none;
  transition:background .15s ease;border:0;cursor:pointer;
}
.lfc__tool-btn:hover,.lfc__tools .es-btn:hover{background:rgba(34,34,34,.85);}
.lfc__tools .es-btn__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.lfc__tools .es-btn--active{background:#e0464e;}
.lfc__ficon--expand{font-size:15px;color:#fff;}
/* swap Estatik control glyphs for Houzez heart / add-circle */
.lfc__tools .es-icon{font-size:15px;color:#fff;line-height:1;}
.lfc__tools .es-icon_heart::before{font-family:houzez-iconfont !important;content:"\e928" !important;}
.lfc__tools .es-icon_scales::before{font-family:houzez-iconfont !important;content:"\e901" !important;}
/* guest-favorite active state (no login) */
.lfc__tools .es-btn__wishlist.is-fav{background:#e0464e;}
.lfc__tools .es-btn__wishlist.is-fav .es-icon{color:#fff;}
.lfc-pv__fav.is-fav,.lfc-pv__fav.is-fav .lfc__ficon{color:#e0464e !important;}

/* ---- body (right) ---- */
.lfc__body{flex:1 1 auto;min-width:0;padding:18px 20px;display:flex;flex-direction:column;}
.lfc__badges{display:flex;gap:6px;flex-wrap:wrap;}
.lfc__badges:not(:empty){margin-bottom:8px;}
.lfc__titlerow{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 5px;}
.lfc__badges .es-badge,.lfc__badges .es-label{
  display:inline-block;background:#3a3a3a;color:#fff;
  font-size:11px;line-height:1;letter-spacing:.04em;text-transform:uppercase;
  padding:5px 9px;border-radius:3px;font-weight:600;white-space:nowrap;
}
.lfc__price{font-size:20px;font-weight:600;color:#222;white-space:nowrap;}
.lfc__price .es-price{color:#222;}

.lfc__title{margin:0;font-size:18px;line-height:1.25;font-weight:700;min-width:0;}
.lfc__price{flex:0 0 auto;}
.lfc__title a{color:#232323;text-decoration:none;}
.lfc__title a:hover{color:#000;}
.lfc__address{color:#9aa0a6;font-size:14px;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:14px;}

/* features row: number + icon on top, label below, divided */
.lfc__features{display:flex;align-items:stretch;gap:0;margin:0 0 16px;padding:0;list-style:none;}
.lfc__feature{padding:0 18px;border-left:1px solid #ececec;color:#232323;}
.lfc__feature:first-child{padding-left:0;border-left:0;}
.lfc__fnum{font-size:17px;font-weight:600;color:#232323;}
.lfc__feature .lfc__ficon{margin-left:6px;font-size:15px;color:#7a7f86;vertical-align:-2px;}
.lfc__flabel{display:block;font-size:12px;color:#9aa0a6;margin-top:2px;}

/* footer: agent + date */
.lfc__foot{margin-top:auto;display:flex;align-items:center;gap:22px;font-size:13px;color:#9aa0a6;}
.lfc__agent,.lfc__date{display:inline-flex;align-items:center;gap:7px;}
.lfc__agent a{color:#8a8f95;text-decoration:none;}
.lfc__agent a:hover{color:#232323;}
.lfc__agent .lfc__ficon,.lfc__date .lfc__ficon{font-size:13px;color:#b7bcc2;}

/* ---------- overflow guards (flex items must be allowed to shrink) ---------- */
.elementor-widget-es-listings-widget{overflow-x:clip;}
.elementor-widget-es-listings-widget *{max-width:100%;box-sizing:border-box;}
.es-listings,.es-listings__wrap,.es-listings__wrap-inner,.es-listings-filter,.es-listings-filter__selects{max-width:100% !important;box-sizing:border-box;}
.es-listings-filter{flex-wrap:wrap !important;gap:8px 14px;}

/* Search bar: Estatik's own .es-search-nav sets flex-wrap:wrap, which is
   self-constraining -- the row settles at just-narrow-enough to force
   "More filters" onto its own line, even though the full search bar has
   plenty of unused width on desktop. Force one line there instead. */
@media (min-width:960px){
  .es-search-nav.es-search-nav--dropdowns{
    flex-wrap:nowrap !important;
  }
  .es-search-nav .js-es-search-nav__item{
    flex:0 0 auto;
    white-space:nowrap;
  }
}

/* "More filters" removed per request -- everything worth filtering by
   (price/beds/baths) is already a top-level pill; this saved-for-later
   dropdown just added an extra step. */
.es-search-nav .js-es-search-nav__item--more{
  display:none !important;
}

/* Let the search input actually fill the freed-up width instead of sitting
   at Estatik's fixed 290px cap -- form already spans the full container, the
   input just wasn't allowed to grow into it. */
.es-search__address{
  max-width:none !important;
  flex:1 1 auto !important;
}
.lfc,.lfc__inner,.lfc__media,.lfc__image,.lfc__body,.lfc__features,.lfc__titlerow,.lfc__foot{max-width:100% !important;box-sizing:border-box;min-width:0;}
.lfc__body{overflow:hidden;}

/* ---------- responsive ---------- */
/* tablet: narrower image column, wrap price under title if tight */
@media (max-width:1024px){
  .lfc__media{flex:0 0 220px;max-width:220px;}
  .lfc__body{padding:16px;}
}
@media (max-width:820px){
  .lfc__media{flex:0 0 190px;max-width:190px;}
  .lfc__titlerow{flex-wrap:wrap;gap:4px 14px;}
  .lfc__title{flex:1 1 100%;}
  .lfc__price{font-size:18px;}
  .lfc__features{flex-wrap:wrap;gap:8px 0;}
}
/* phone: stack image on top, full width */
@media (max-width:600px){
  .lfc .lfc__inner{flex-direction:column;}
  .lfc__media{flex:0 0 auto;max-width:none;width:100%;}
  .lfc__image{min-height:210px;}
  .lfc__body{padding:16px;}
  .lfc__feature{padding:0 14px;}
  .lfc__foot{gap:16px;flex-wrap:wrap;}
  /* let the long address wrap to 2 lines instead of forcing width */
  .lfc__address{white-space:normal;text-overflow:clip;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
}
@media (max-width:400px){
  .lfc__feature{padding:0 10px;}
  .lfc__fnum{font-size:16px;}
}

/* ---------- preview modal (Houzez-style: gallery + details) ---------- */
.lfc-pv{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;}
.lfc-pv.is-open{display:flex;}
.lfc-pv__backdrop{position:absolute;inset:0;background:rgba(20,20,20,.9);}

.lfc-pv__dialog{position:relative;z-index:1;width:100%;max-width:1180px;height:min(88vh,780px);
  display:flex;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);margin:0 12px;}

/* favorite + close, inside the white info panel */
.lfc-pv__info-head{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-bottom:14px;}
/* strip Estatik's .es-btn box off our text button (it carries es-btn__wishlist for wiring) */
.lfc-pv__fav,
.lfc-pv__fav.es-btn,
.lfc-pv__fav.es-btn__wishlist,
.lfc-pv__fav:hover,
.lfc-pv__fav.es-btn:hover{
  display:inline-flex;align-items:center;gap:8px;
  background:none !important;border:0 !important;box-shadow:none !important;
  padding:0 !important;width:auto !important;height:auto !important;
  min-width:0 !important;max-width:none !important;border-radius:0 !important;
  color:#5f6368;font-size:15px;cursor:pointer;
}
.lfc-pv__fav:hover{color:#232323;}
.lfc-pv__fav .lfc__ficon{font-size:17px;}
.lfc-pv__fav.es-btn--active .lfc__ficon,.lfc-pv__fav.es-wishlist-link--active .lfc__ficon{color:#ff5a5f;}
.lfc-pv__close,
.lfc-pv__close:hover,
.lfc-pv__close:focus{background:none !important;border:0 !important;box-shadow:none !important;
  color:#5f6368;font-size:32px;line-height:1;cursor:pointer;padding:0 !important;width:auto !important;height:auto !important;min-width:0 !important;outline:none;}
.lfc-pv__close:hover{color:#111;}
/* gallery (left) */
.lfc-pv__gallery{position:relative;flex:1 1 62%;min-width:0;background:#111;overflow:hidden;}
.lfc-pv__img{width:100%;height:100%;object-fit:cover;display:block;}
.lfc-pv__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:64px;
  background:rgba(30,30,30,.55);border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;}
.lfc-pv__nav:hover{background:rgba(30,30,30,.85);}
.lfc-pv__prev{left:14px;}
.lfc-pv__next{right:14px;}
.lfc-pv__counter{position:absolute;bottom:12px;right:16px;z-index:2;color:#fff;font-size:13px;
  background:rgba(0,0,0,.45);padding:3px 9px;border-radius:3px;}
/* info (right) */
.lfc-pv__info{flex:0 0 38%;max-width:38%;padding:22px 28px 26px;overflow-y:auto;display:flex;flex-direction:column;}
.lfc-pv__info-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;}
.lfc-pv__badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.lfc-pv__badge{display:inline-block;background:#3a3a3a;color:#fff;font-size:11px;line-height:1;
  letter-spacing:.04em;text-transform:uppercase;padding:5px 9px;border-radius:3px;font-weight:600;}
.lfc-pv__title{margin:0 0 6px;font-size:22px;font-weight:700;color:#232323;line-height:1.2;}
.lfc-pv__addr{color:#9aa0a6;font-size:14px;margin-bottom:16px;}
.lfc-pv__price{font-size:22px;font-weight:600;color:#232323;padding-bottom:18px;border-bottom:1px solid #ececec;margin-bottom:18px;}
.lfc-pv__desc{color:#5f6368;font-size:14px;line-height:1.6;margin:0 0 20px;}
.lfc-pv__feats{display:flex;flex-wrap:wrap;gap:18px 26px;padding-top:6px;border-top:1px solid #ececec;margin-bottom:24px;}
.lfc-pv__feat{display:flex;flex-direction:column;gap:2px;}
.lfc-pv__feat-top{display:inline-flex;align-items:center;gap:8px;font-size:17px;color:#232323;}
.lfc-pv__feat-top .lfc__ficon{font-size:16px;color:#7a7f86;}
.lfc-pv__feat-top b{font-weight:600;}
.lfc-pv__feat-label{font-size:12px;color:#9aa0a6;}
.lfc-pv__details{margin-top:auto;display:block;text-align:center;background:#2f2f2f;color:#fff;
  text-decoration:none;padding:13px 16px;border-radius:4px;font-weight:600;font-size:15px;}
.lfc-pv__details:hover{background:#1c1c1c;color:#fff;}

@media (max-width:820px){
  .lfc-pv__dialog{flex-direction:column;height:calc(100vh - 80px);}
  .lfc-pv__gallery{flex:0 0 46%;}
  .lfc-pv__info{flex:1 1 auto;max-width:none;}
}


/* ---------- Load More button ---------- */
.lfc-loadmore{
  display:block;margin:10px auto 30px;padding:13px 40px;
  background:#2f2f2f;color:#fff;border:0;border-radius:4px;
  font-size:15px;font-weight:600;cursor:pointer;transition:background .15s ease;
}
.lfc-loadmore:hover{background:#1c1c1c;}
.lfc-loadmore:disabled{opacity:.6;cursor:default;}

/* single property (details) page: remove entry-header margin */
.single-properties .entry-header{margin:0 !important;}
