/*
 * Pixxi Featured Properties — standalone homepage carousel.
 * Fully self-contained: card styling is NOT shared with the Pixxi Off-Plan
 * Listings plugin (different class prefix, .pfp- instead of .pol-), so this
 * plugin keeps rendering correctly even if that plugin is deactivated.
 * Card visual design intentionally matches it (same layout/spacing/colors).
 */
.pfp{
  --pfp-navy:#0a1128;
  --pfp-price:#0b1836;
  --pfp-ink:#111;
  --pfp-border:#cfcfcf;
  --pfp-card-border:#dedede;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--pfp-ink);
  width:100%;
  margin:0;
  padding:0;
  line-height:1.2;
  -webkit-font-smoothing:antialiased;
  color-scheme:light;
}
.pfp *,.pfp *::before,.pfp *::after{box-sizing:border-box}
.pfp a{text-decoration:none;box-shadow:none;color:inherit}
.pfp h1,.pfp h2,.pfp h3,.pfp p{font-family:inherit}
.pfp button{font-family:inherit}

.pfp .pfp-wrap{
  /* Capped well below full-screen width so cards stay a normal, human card
     size even on very wide monitors or a full-bleed theme section — this is
     the fix for cards "occupying almost full screen". */
  max-width:1200px;
  margin:0 auto;
  padding:clamp(24px,3vw,48px) 20px;
}

/* No heading / "View All" — this section is just the carousel of cards. */

/* ---------- Carousel ---------- */
.pfp .pfp-carousel{position:relative;display:flex;align-items:center;gap:12px}
.pfp .pfp-track{
  flex:1;
  display:flex;
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  padding:2px 2px 6px;
  min-height:200px;
}
.pfp .pfp-track::-webkit-scrollbar{display:none}
.pfp .pfp-track{scrollbar-width:none}
.pfp .pfp-item{
  flex:0 0 calc(33.333% - 16px);
  min-width:0;
  scroll-snap-align:start;
  display:flex; /* stretch the single .pfp-card child to a uniform height */
}
.pfp .pfp-item > .pfp-card{
  width:100%;
  display:flex;
  flex-direction:column;
}
.pfp .pfp-item > .pfp-card .pfp-body{flex:1;display:flex;flex-direction:column}
.pfp .pfp-item > .pfp-card .pfp-actions{margin-top:auto}

.pfp .pfp-nav{
  flex:none;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--pfp-border);
  background:#fff;
  color:var(--pfp-navy);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  box-shadow:none;
}
.pfp .pfp-nav:hover{border-color:var(--pfp-navy)}
.pfp .pfp-nav:focus-visible{outline:2px solid var(--pfp-navy);outline-offset:2px}

.pfp .pfp-status{text-align:center;color:#666;font-size:15px;padding:16px 0 0}

/* ---------- Card (visually matches the off-plan listing page's card) ---------- */
.pfp .pfp-card{
  min-width:0;
  background:#fff;
  border:1px solid var(--pfp-card-border);
  border-radius:12px;
  overflow:hidden;
  color:inherit;
  box-shadow:0 2px 10px rgba(10,17,40,.05);
  cursor:pointer;
  transition:box-shadow .2s,transform .2s;
}
.pfp .pfp-card:hover{box-shadow:0 8px 22px rgba(10,17,40,.14)}
.pfp .pfp-card:focus-visible{outline:2px solid var(--pfp-navy);outline-offset:2px}

.pfp .pfp-image{position:relative;aspect-ratio:4/3;background:#e9e9e9;overflow:hidden}
.pfp .pfp-image img{display:block;width:100%;height:100%;object-fit:cover;max-width:none;margin:0;border:0}
.pfp .pfp-noimg{display:grid;place-items:center;width:100%;height:100%;color:#9a9a9a;font-size:14px}
.pfp .pfp-badges-left{position:absolute;left:13px;top:13px;right:13px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;z-index:2}
.pfp .pfp-badge-payment{
  display:inline-block;max-width:100%;height:32px;padding:0 14px;border-radius:5px;
  background:var(--pfp-navy);color:#fff;font-size:12px;font-weight:700;
  line-height:32px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;
}
.pfp .pfp-badge-dev{
  display:inline-block;max-width:100%;
  padding:8px 16px;
  color:#333;font-size:13px;font-weight:600;line-height:15px;
  background-color:#fff;border-radius:5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;
  box-shadow:0 1px 4px rgba(0,0,0,.12);
}

.pfp .pfp-body{padding:22px 24px 24px}
.pfp .pfp-price{margin:0 0 12px;font-size:20px;line-height:26px;font-weight:700;color:var(--pfp-price)}
.pfp .pfp-price .pfp-price-from{font-size:13px;font-weight:400;color:#777;text-transform:uppercase;margin-right:4px}
.pfp .pfp-price-alt{display:none}
.pfp .pfp-title{
  margin:0 0 14px;
  font-size:18px;
  font-weight:600;
  line-height:25px;
  color:var(--pfp-ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:50px;
}
.pfp .pfp-location{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:14.5px;color:#444}
.pfp .pfp-location svg{width:14px;height:14px;flex:none;fill:var(--pfp-navy)}
.pfp .pfp-facts{display:flex;flex-direction:column;gap:6px;margin:0 0 20px;padding-top:14px;border-top:1px solid #ececec}
.pfp .pfp-fact{font-size:14.5px;line-height:20px;color:var(--pfp-ink)}
.pfp .pfp-fact .pfp-fact-label{color:#959595;font-weight:400;margin-right:6px}
.pfp .pfp-fact .pfp-fact-val{font-weight:600}

.pfp .pfp-actions{display:flex;flex-wrap:wrap;gap:10px;max-width:100%}
.pfp .pfp-discover-btn{
  flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;
  height:48px;min-height:48px;border-radius:6px;border:1px solid var(--pfp-navy);
  background:#fff;color:var(--pfp-navy);font-size:14.5px;font-weight:700;cursor:pointer;
  white-space:nowrap;padding:0 10px;box-sizing:border-box;
}
.pfp .pfp-discover-btn[disabled]{opacity:.45;cursor:default}
.pfp .pfp-discover-btn:hover{background:var(--pfp-navy);color:#fff}

/* ---------- Responsive: 3 desktop / 2 tablet / 1 full-width mobile ---------- */
@media (max-width:900px){
  .pfp .pfp-item{flex-basis:calc(50% - 10px)}
  .pfp .pfp-track{gap:20px}
}
@media (max-width:640px){
  .pfp .pfp-wrap{padding:24px 16px 32px}
  .pfp .pfp-body{padding:18px 18px 20px}
  .pfp .pfp-title{font-size:17px;line-height:23px;min-height:46px}
  /* One clean full card per view — no partial "peek" of the next card. */
  .pfp .pfp-track{gap:0}
  .pfp .pfp-item{flex-basis:100%}
  .pfp .pfp-carousel{gap:6px}
  .pfp .pfp-nav{width:34px;height:34px;font-size:18px}
}
@media (max-width:400px){
  .pfp .pfp-discover-btn{font-size:14px}
}
