/* ==========================================================================
   LISTING SLIDER — built-in theme feature (see inc/listing-slider.php)
   Uses the theme's own variables, so palette changes in style.css :root apply here too.
   ========================================================================== */
.pfls{--pfls-gap:16px;position:relative;}

/* Header */
.pfls-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;}
.pfls-headtext h2{font-size:24px;margin:0 0 6px;}
.pfls-headtext p{margin:0;}
.pfls-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.pfls-all{font-size:13.5px;font-weight:700;color:var(--brass-600);white-space:nowrap;margin-right:6px;}
.pfls-btn{
  width:40px;height:40px;padding:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--white);color:var(--navy-950);
  border:1.5px solid var(--navy-950);cursor:pointer;
  transition:background .2s ease,color .2s ease,opacity .2s ease;
}
.pfls-btn:hover:not(:disabled){background:var(--navy-950);color:var(--accent-on-dark);}
.pfls-btn:disabled{opacity:.3;cursor:default;}
.pfls-btn:focus-visible,.pfls-track:focus-visible{outline:3px solid var(--brass-500);outline-offset:3px;}
.pfls.is-static .pfls-btn,.pfls.is-static .pfls-rail{display:none;}

/* Track. Padding gives the card shadow and hover lift room inside the scroll area. */
.pfls-track{
  display:flex;gap:var(--pfls-gap);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-left:14px;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  padding:10px 14px 32px;
  margin:-10px -14px 0;
}
.pfls-track::-webkit-scrollbar{display:none;}
.pfls-track.is-dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none;}

.pfls-slide{flex:0 0 100%;scroll-snap-align:start;display:flex;min-width:0;}
.pfls-slide .property-card{width:100%;}
.pfls-slide img{-webkit-user-drag:none;user-select:none;}

/* Progress rail: a blue fill that tracks how far through the listings you are */
.pfls-rail{height:3px;margin-top:-10px;background:var(--line);border-radius:2px;overflow:hidden;}
.pfls-bar{display:block;width:100%;height:100%;background:var(--brass-500);transform-origin:left center;transform:scaleX(.25);transition:transform .35s ease-out;}

@media(min-width:560px){ .pfls-slide{flex-basis:calc((100% - var(--pfls-gap)) / 2);} }
@media(min-width:820px){ .pfls-slide{flex-basis:calc((100% - var(--pfls-gap) * 2) / 3);} }
@media(min-width:1100px){ .pfls-slide{flex-basis:calc((100% - var(--pfls-gap) * 3) / 4);} }

/* Pause / play */
.pfls-toggle .pfls-ico-play{display:none;}
.pfls.is-paused .pfls-toggle .pfls-ico-play{display:block;}
.pfls.is-paused .pfls-toggle .pfls-ico-pause{display:none;}

/* Pagination dots (phones) */
.pfls-dots{display:none;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:-10px;}
.pfls-dot{
  width:22px;height:22px;padding:0;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.pfls-dot::before{
  content:"";display:block;width:8px;height:8px;border-radius:999px;
  background:rgba(2,42,102,.28);transition:width .25s ease,background .25s ease;
}
.pfls-dot[aria-current="true"]::before{width:22px;background:var(--brass-500);}
.pfls-dot:focus-visible{outline:2px solid var(--brass-500);outline-offset:1px;border-radius:6px;}
.pfls.is-static .pfls-dots,.pfls.is-static .pfls-toggle{display:none;}

/* Phones: one listing fills the width. Swipe, or let it slide on its own. */
@media(max-width:559px){
  .pfls-all,.pfls-prev,.pfls-next,.pfls-rail{display:none;}
  .pfls-toggle{width:36px;height:36px;}
  .pfls-headtext h2{font-size:21px;}
  .pfls-dots{display:flex;}
  .pfls-slide .pc-media{aspect-ratio:16/11;}
  .pfls-slide .pc-price{font-size:21px;}
  .pfls-slide .pc-title{font-size:15.5px;}
  .pfls-slide .pc-fav{width:40px;height:40px;}
}

@media(prefers-reduced-motion:reduce){
  .pfls-track{scroll-behavior:auto;}
  .pfls-btn,.pfls-bar{transition:none;}
}
