/* Zala Springs MAIN — reusable property explorer + property list */
.zs-pfx,
.zs-plist{
  --zsp-ink:var(--zs-brand-midnight,#26352c);
  --zsp-forest:var(--zs-brand-forest,#394a40);
  --zsp-sage:var(--zs-brand-viridian,#6b887c);
  --zsp-gold:var(--zs-brand-gold,#c2a22f);
  --zsp-bg:var(--zs-bg,#f5f3ed);
  --zsp-surface:var(--zs-surface,#fbfaf7);
  --zsp-white:#fff;
  --zsp-text:var(--zs-text,#26312b);
  --zsp-muted:var(--zs-text-soft,#68716c);
  --zsp-line:var(--zs-line,rgba(38,53,44,.12));
  --zsp-shadow:var(--zs-shadow-md,0 22px 56px rgba(38,53,44,.12));
  font-family:"Brandon book",Arial,Helvetica,sans-serif!important;
  color:var(--zsp-text);
  box-sizing:border-box;
}
.zs-pfx *, .zs-plist *, .zs-pfx *:before, .zs-pfx *:after, .zs-plist *:before, .zs-plist *:after{box-sizing:border-box;font-family:inherit}

/* Explorer */
.zs-pfx{width:100%;padding:clamp(30px,4vw,64px) clamp(16px,3vw,34px);background:var(--zsp-bg);border-radius:clamp(18px,2vw,30px)}
.zs-pfx__shell{width:min(100%,1500px);margin:0 auto}
.zs-pfx__topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.zs-pfx__eyebrow,.zs-plist__eyebrow{display:block;margin-bottom:8px;color:var(--zsp-gold);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.zs-pfx__topbar h2,.zs-plist__intro h2{margin:0;color:var(--zsp-ink);font-size:clamp(34px,4.5vw,64px);font-weight:400;line-height:1.02;letter-spacing:-.025em}
.zs-pfx__root{appearance:none;border:1px solid rgba(38,53,44,.18);border-radius:999px;background:rgba(255,255,255,.72);color:var(--zsp-ink);padding:11px 17px;font-size:14px;cursor:pointer;transition:.18s ease}
.zs-pfx__root:hover{background:#fff;border-color:rgba(194,162,47,.55);transform:translateY(-1px)}
.zs-pfx__breadcrumbs{display:flex;align-items:center;gap:8px;min-height:34px;margin:0 0 18px;color:var(--zsp-muted);font-size:13px;overflow:auto;white-space:nowrap}
.zs-pfx__breadcrumbs button{appearance:none;border:0;background:none;padding:0;color:var(--zsp-muted);cursor:pointer}
.zs-pfx__breadcrumbs button:hover{color:var(--zsp-gold)}
.zs-pfx__breadcrumbs span{color:var(--zsp-ink);font-weight:600}
.zs-pfx__breadcrumbs i{font-style:normal;opacity:.45}
.zs-pfx__layout{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(330px,.72fr);gap:22px;align-items:stretch}
.zs-pfx__visual,.zs-pfx__panel{min-width:0;border:1px solid var(--zsp-line);border-radius:24px;background:var(--zsp-white);box-shadow:var(--zsp-shadow);overflow:hidden}
.zs-pfx__visual{min-height:620px;position:relative}
.zs-pfx__canvas{position:relative;width:100%;height:100%;min-height:620px;background:linear-gradient(145deg,#f8f7f1,#efede4);overflow:hidden}
.zs-pfx__scene-image{display:block;width:100%;height:100%;min-height:620px;object-fit:cover}
.zs-pfx__visual-empty{display:grid;place-items:center;min-height:620px;padding:40px;background:radial-gradient(circle at 50% 40%,rgba(194,162,47,.12),transparent 30%),linear-gradient(135deg,#f9f8f3,#ece9df);color:var(--zsp-ink);font-size:clamp(28px,4vw,50px);text-align:center}
.zs-pfx__marker{position:absolute;z-index:3;transform:translate(-50%,-50%);max-width:190px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;border:none;cursor:pointer}
.zs-pfx__marker:hover{transform:translate(-50%,-50%) scale(1.045)}
.zs-pfx__marker--scene{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 13px;border-radius:13px;background:rgba(38,53,44,.92);color:#fff;box-shadow:0 10px 28px rgba(25,36,30,.26);backdrop-filter:blur(8px);text-align:left}
.zs-pfx__marker--scene:after{content:"";position:absolute;width:8px;height:8px;left:50%;bottom:-4px;transform:translateX(-50%) rotate(45deg);background:inherit}
.zs-pfx__marker--scene span{font-size:14px;font-weight:600;line-height:1.15}
.zs-pfx__marker--scene small{font-size:10px;line-height:1.2;opacity:.72}
.zs-pfx__marker--property{display:grid;place-items:center;min-width:54px;min-height:36px;padding:8px 10px;border:2px solid #fff;border-radius:999px;background:var(--zsp-forest);color:#fff;box-shadow:0 7px 18px rgba(38,53,44,.25);font-size:12px;font-weight:700;white-space:nowrap}
.zs-pfx__marker--property.is-available{background:#355f49}.zs-pfx__marker--property.is-reserved{background:#9b7d19}.zs-pfx__marker--property.is-sold{background:#6e7470;opacity:.86}
.zs-pfx__panel{padding:clamp(24px,2.8vw,38px);background:linear-gradient(180deg,#fff 0%,#fbfaf7 100%);overflow:auto;max-height:760px}
.zs-pfx__panel-kicker{display:block;margin-bottom:7px;color:var(--zsp-gold);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.zs-pfx__panel-head h3{margin:0;color:var(--zsp-ink);font-size:clamp(28px,2.6vw,42px);font-weight:400;line-height:1.08}
.zs-pfx__panel-head p{margin:8px 0 0;color:var(--zsp-muted);font-size:15px}
.zs-pfx__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}
.zs-pfx__stats>div{padding:12px 10px;border:1px solid var(--zsp-line);border-radius:14px;background:#fff;text-align:center}
.zs-pfx__stats strong{display:block;color:var(--zsp-ink);font-size:22px;line-height:1}
.zs-pfx__stats span{display:block;margin-top:5px;color:var(--zsp-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}
.zs-pfx__nav-list{display:grid;gap:9px;margin:0 0 24px}
.zs-pfx__nav-list button{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:14px 15px;border:1px solid var(--zsp-line);border-radius:14px;background:#fff;color:var(--zsp-text);text-align:left;cursor:pointer;transition:.18s ease}
.zs-pfx__nav-list button:hover{border-color:rgba(194,162,47,.55);box-shadow:0 8px 22px rgba(38,53,44,.07);transform:translateY(-1px)}
.zs-pfx__nav-list b{display:block;color:var(--zsp-ink);font-size:15px;font-weight:600}.zs-pfx__nav-list small{display:block;margin-top:4px;color:var(--zsp-muted);font-size:11px}.zs-pfx__nav-list i{font-style:normal;color:var(--zsp-gold);font-size:20px}
.zs-pfx__section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;padding-top:18px;border-top:1px solid var(--zsp-line);color:var(--zsp-ink);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.zs-pfx__section-title strong{display:grid;place-items:center;min-width:27px;height:27px;border-radius:999px;background:var(--zsp-gold);color:#fff;font-size:12px}
.zs-pfx__properties{display:grid;gap:8px}
.zs-pfx__property-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--zsp-line);border-radius:14px;background:#fff;color:inherit;text-decoration:none;transition:.18s ease}
.zs-pfx__property-card:hover{border-color:rgba(194,162,47,.58);transform:translateY(-1px);box-shadow:0 8px 20px rgba(38,53,44,.06)}
.zs-pfx__property-code{display:block;margin-bottom:2px;color:var(--zsp-gold);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.zs-pfx__property-card strong{display:block;color:var(--zsp-ink);font-size:15px;font-weight:600}.zs-pfx__property-card small{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;color:var(--zsp-muted);font-size:10px}
.zs-pfx__property-card small span+span:before{content:"·";margin-right:8px}.zs-pfx__status{padding:5px 8px;border-radius:999px;background:#eef2ef;color:#4d5c53;font-size:10px;white-space:nowrap}.zs-pfx__property-card.is-available .zs-pfx__status{background:#e7f1eb;color:#315d45}.zs-pfx__property-card.is-reserved .zs-pfx__status{background:#f5eed2;color:#7d651b}.zs-pfx__property-card.is-sold .zs-pfx__status{background:#eceeed;color:#696f6b}.zs-pfx__property-card>i{font-style:normal;color:var(--zsp-gold);font-size:18px}
.zs-pfx__nothing,.zs-pfx__error{display:grid;place-items:center;min-height:180px;padding:28px;color:var(--zsp-muted);text-align:center}.zs-pfx__loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--zsp-muted)}.zs-pfx__loading span{width:22px;height:22px;border:2px solid rgba(38,53,44,.15);border-top-color:var(--zsp-gold);border-radius:50%;animation:zsp-spin .75s linear infinite}.zs-pfx__panel-loading{height:24px;margin:10px 0;border-radius:8px;background:linear-gradient(90deg,#f0f1ee,#fafaf8,#f0f1ee);background-size:200% 100%;animation:zsp-shimmer 1.1s linear infinite}.zs-pfx__panel-loading.is-short{width:65%}
@keyframes zsp-spin{to{transform:rotate(360deg)}}@keyframes zsp-shimmer{to{background-position:-200% 0}}

/* Property list */
.zs-plist{width:100%;padding:clamp(42px,6vw,86px) clamp(18px,4vw,48px);background:var(--zsp-bg);border-radius:clamp(18px,2vw,30px)}
.zs-plist__intro{width:min(100%,780px);margin:0 auto 34px;text-align:center}.zs-plist__intro p{margin:14px auto 0;color:var(--zsp-muted);font-size:clamp(16px,1.4vw,19px);line-height:1.6}
.zs-plist__filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,.7fr));gap:12px;width:min(100%,1400px);margin:0 auto 16px;padding:18px;border:1px solid var(--zsp-line);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:0 10px 30px rgba(38,53,44,.06)}
.zs-plist__filters label{display:block}.zs-plist__filters label>span{display:block;margin:0 0 6px;color:var(--zsp-ink);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.zs-plist__filters input,.zs-plist__filters select{width:100%;min-height:46px;padding:10px 12px;border:1px solid rgba(38,53,44,.17);border-radius:12px;background:#fff;color:var(--zsp-text);font-size:15px;outline:none;box-shadow:none}.zs-plist__filters input:focus,.zs-plist__filters select:focus{border-color:rgba(194,162,47,.8);box-shadow:0 0 0 3px rgba(194,162,47,.12)}
.zs-plist__summary{width:min(100%,1400px);margin:0 auto 16px;color:var(--zsp-muted);font-size:13px}.zs-plist__summary strong{color:var(--zsp-ink);font-size:16px}
.zs-plist__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:min(100%,1400px);margin:0 auto}
.zs-plist__card{overflow:hidden;border:1px solid var(--zsp-line);border-radius:20px;background:#fff;box-shadow:0 14px 36px rgba(38,53,44,.07);transition:.2s ease}.zs-plist__card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(38,53,44,.11)}
.zs-plist__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#e9e8e2}.zs-plist__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.zs-plist__card:hover .zs-plist__media img{transform:scale(1.035)}.zs-plist__media-empty{display:block;width:100%;height:100%;background:radial-gradient(circle at 30% 20%,rgba(194,162,47,.16),transparent 30%),linear-gradient(135deg,#f4f1e7,#e6e6df)}
.zs-plist__status{position:absolute;top:14px;left:14px;padding:7px 10px;border-radius:999px;background:rgba(38,53,44,.9);color:#fff;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;backdrop-filter:blur(7px)}.zs-plist__status--available{background:rgba(53,95,73,.92)}.zs-plist__status--reserved{background:rgba(155,125,25,.92)}.zs-plist__status--sold{background:rgba(85,91,87,.88)}
.zs-plist__body{padding:18px 18px 20px}.zs-plist__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.zs-plist__heading>div>span{display:block;margin-bottom:3px;color:var(--zsp-gold);font-size:10px;font-weight:700;letter-spacing:.08em}.zs-plist__heading h3{margin:0;color:var(--zsp-ink);font-size:24px;font-weight:400;line-height:1.1}.zs-plist__heading>a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--zsp-bg);color:var(--zsp-ink);text-decoration:none;transition:.18s ease}.zs-plist__heading>a:hover{background:var(--zsp-gold);color:#fff}
.zs-plist dl{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:18px 0 0;border-top:1px solid var(--zsp-line)}.zs-plist dl>div{display:flex;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--zsp-line)}.zs-plist dl>div:nth-child(odd){padding-right:14px}.zs-plist dl>div:nth-child(even){padding-left:14px;border-left:1px solid var(--zsp-line)}.zs-plist dt{color:var(--zsp-muted);font-size:11px}.zs-plist dd{margin:0;color:var(--zsp-ink);font-size:12px;font-weight:600;text-align:right}
.zs-plist__cta{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--zsp-ink);color:#fff;text-decoration:none;font-size:13px;transition:.18s ease}.zs-plist__cta:hover{background:var(--zsp-forest);transform:translateY(-1px)}.zs-plist__cta span{color:var(--zsp-gold);font-size:18px}.zs-plist__empty{width:min(100%,1400px);margin:24px auto 0;padding:28px;border:1px dashed rgba(38,53,44,.2);border-radius:18px;color:var(--zsp-muted);text-align:center}

@media(max-width:1200px){.zs-pfx__layout{grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr)}.zs-plist__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zs-plist__filters{grid-template-columns:1fr 1fr}}
@media(max-width:1024px){.zs-pfx__layout{grid-template-columns:1fr}.zs-pfx__visual,.zs-pfx__canvas,.zs-pfx__scene-image,.zs-pfx__visual-empty{min-height:560px}.zs-pfx__panel{max-height:none}.zs-pfx__root{align-self:flex-start}}
@media(max-width:880px){.zs-pfx__topbar{align-items:flex-start}.zs-pfx__visual,.zs-pfx__canvas,.zs-pfx__scene-image,.zs-pfx__visual-empty{min-height:500px}.zs-pfx__marker--scene{max-width:145px;padding:8px 10px}.zs-pfx__marker--scene small{display:none}.zs-plist__filters{grid-template-columns:1fr 1fr}}
@media(max-width:767px){.zs-pfx,.zs-plist{padding:28px 14px;border-radius:18px}.zs-pfx__topbar{display:block}.zs-pfx__root{margin-top:14px}.zs-pfx__visual,.zs-pfx__canvas,.zs-pfx__scene-image,.zs-pfx__visual-empty{min-height:430px}.zs-pfx__visual,.zs-pfx__panel{border-radius:18px}.zs-pfx__panel{padding:22px 16px}.zs-pfx__marker--scene{max-width:120px}.zs-pfx__marker--property{min-width:42px;min-height:30px;padding:6px 8px;font-size:10px}.zs-pfx__stats{gap:6px}.zs-pfx__stats>div{padding:10px 6px}.zs-pfx__property-card{grid-template-columns:minmax(0,1fr) auto}.zs-pfx__property-card>i{display:none}.zs-plist__filters{grid-template-columns:1fr;padding:14px}.zs-plist__grid{grid-template-columns:1fr}.zs-plist dl{grid-template-columns:1fr}.zs-plist dl>div:nth-child(odd),.zs-plist dl>div:nth-child(even){padding-left:0;padding-right:0;border-left:0}}
@media(prefers-reduced-motion:reduce){.zs-pfx *, .zs-plist *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* 0.18.2 — availability interaction rules */
.zs-pfx__marker--property.is-disabled{
  cursor:default;
  pointer-events:none;
  box-shadow:0 5px 14px rgba(38,53,44,.14);
}
.zs-pfx__property-card.is-disabled{
  cursor:default;
  transform:none!important;
  box-shadow:none!important;
}
.zs-pfx__property-card.is-disabled:hover{
  border-color:var(--zsp-line);
}
.zs-plist__card.is-unavailable{
  cursor:default;
  box-shadow:0 10px 28px rgba(38,53,44,.045);
}
.zs-plist__card.is-unavailable:hover{
  transform:none;
  box-shadow:0 10px 28px rgba(38,53,44,.045);
}
.zs-plist__card.is-unavailable .zs-plist__media img{
  filter:saturate(.72);
  opacity:.86;
}
.zs-plist__card.is-unavailable:hover .zs-plist__media img{
  transform:none;
}
.zs-plist__media--disabled{
  cursor:default;
}

/* =====================================================================
   Property Explorer coordinate-safe scene rendering — v0.18.5
   ---------------------------------------------------------------------
   Marker coordinates are stored as percentages of the source scene image.
   The previous frontend forced every scene into a tall 620px cover box,
   which cropped wide floor plans and made otherwise correct markers drift.
   Keep the canvas at the attachment's real aspect ratio instead so the same
   X/Y percentages address the same visual point at every frontend width.
   ===================================================================== */
.zs-pfx__visual{
  min-height:0!important;
  height:auto!important;
  align-self:start;
}
.zs-pfx__canvas.has-image{
  width:100%;
  height:auto!important;
  min-height:0!important;
  background:#fff;
}
.zs-pfx__canvas.has-image.has-image-ratio{
  position:relative;
}
.zs-pfx__canvas.has-image .zs-pfx__scene-image{
  display:block;
  width:100%;
  max-width:100%;
  min-height:0!important;
  object-fit:contain!important;
  object-position:50% 50%;
}
.zs-pfx__canvas.has-image.has-image-ratio .zs-pfx__scene-image{
  width:100%;
  height:100%!important;
}
.zs-pfx__canvas.has-image:not(.has-image-ratio) .zs-pfx__scene-image{
  height:auto!important;
}


/* =====================================================================
   v0.18.6 — compact floor-plan markers, matching Content Manager
   ===================================================================== */
.zs-pfx__visual{
  border-radius:18px;
}

.zs-pfx__marker--property{
  min-width:0!important;
  min-height:25px!important;
  padding:3px 7px!important;
  border:1px solid rgba(94,105,99,.46)!important;
  border-radius:8px!important;
  background:rgba(250,251,250,.96)!important;
  color:#34423a!important;
  box-shadow:0 2px 7px rgba(26,43,33,.14),0 1px 2px rgba(26,43,33,.07)!important;
  -webkit-backdrop-filter:blur(6px) saturate(1.04);
  backdrop-filter:blur(6px) saturate(1.04);
  font-size:10px!important;
  font-weight:650!important;
  line-height:1!important;
  letter-spacing:.005em!important;
}

.zs-pfx__marker--property.is-available{
  border-color:rgba(47,138,87,.88)!important;
  background:rgba(250,251,250,.97)!important;
  color:#245b3d!important;
}

.zs-pfx__marker--property.is-reserved{
  border-color:rgba(197,139,43,.70)!important;
  background:rgba(250,251,250,.95)!important;
  color:#695020!important;
}

.zs-pfx__marker--property.is-sold,
.zs-pfx__marker--property.is-unknown{
  border-color:rgba(108,119,113,.48)!important;
  background:rgba(250,251,250,.93)!important;
  color:#48544e!important;
  opacity:.9;
}

.zs-pfx__marker--property:not(.is-disabled):hover{
  transform:translate(-50%,-50%) translateY(-1px) scale(1.025)!important;
  background:#fff!important;
  box-shadow:0 5px 13px rgba(26,43,33,.19),0 0 0 2px rgba(38,53,44,.06)!important;
}

.zs-pfx__marker--property.is-available:not(.is-disabled):hover{
  border-color:rgba(47,138,87,1)!important;
}

@media(max-width:767px){
  .zs-pfx__marker--property{
    min-width:0!important;
    min-height:23px!important;
    padding:3px 6px!important;
    font-size:10px!important;
  }
}

/* =====================================================================
   v0.18.7 — invariant image geometry + proportional marker typography
   ---------------------------------------------------------------------
   The source scene must always be visible in full on every viewport. The
   canvas follows the source image aspect ratio and the image is contained,
   never cropped or stretched. Marker boxes (including their text) scale as
   one unit with the rendered canvas width, so dense floor-plan labels keep
   the same proportions instead of colliding on phones/tablets.
   ===================================================================== */
.zs-pfx__visual{
  height:auto!important;
  min-height:0!important;
  align-self:start!important;
  overflow:hidden;
}
.zs-pfx__canvas.has-image{
  position:relative;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow:hidden;
  background:#fff;
  container-type:inline-size;
}
.zs-pfx__canvas.has-image.has-image-ratio{
  height:auto!important;
}
.zs-pfx__canvas.has-image.has-image-ratio .zs-pfx__scene-image{
  position:absolute;
  inset:0;
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
}
.zs-pfx__canvas.has-image:not(.has-image-ratio) .zs-pfx__scene-image{
  position:relative;
  display:block;
  width:100%!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  min-height:0!important;
  object-fit:contain!important;
}

/* Scale the complete marker, typography included, from the image centre. */
.zs-pfx__canvas.has-image .zs-pfx__marker{
  transform:translate(-50%,-50%) scale(var(--zsp-marker-scale,1))!important;
  transform-origin:50% 50%!important;
}
.zs-pfx__canvas.has-image .zs-pfx__marker:hover,
.zs-pfx__canvas.has-image .zs-pfx__marker--property:not(.is-disabled):hover{
  transform:translate(-50%,-50%) scale(var(--zsp-marker-scale,1))!important;
}


/* =====================================================================
   v0.18.8 — mobile marker readability floor
   ---------------------------------------------------------------------
   Geometry remains proportional to the full source image, but very small
   canvases no longer reduce labels below a practical reading size. The JS
   scaling floor keeps the complete marker together, so text, padding and
   border continue to scale as one visual unit.
   ===================================================================== */
@media(max-width:520px){
  .zs-pfx__marker--property{
    font-size:10px!important;
    min-height:24px!important;
    padding:3px 7px!important;
  }
  .zs-pfx__marker--scene{
    font-size:12px;
  }
}


/* =====================================================================
   v0.18.9 — property-list CTA below the virtual explorer
   ===================================================================== */
.zs-pfx__list-link-wrap{
  display:flex;
  justify-content:center;
  margin-top:24px;
}
.zs-pfx__list-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  min-height:50px;
  padding:13px 22px;
  border:1px solid var(--zsp-ink);
  border-radius:999px;
  background:var(--zsp-ink);
  color:#fff!important;
  text-decoration:none!important;
  font-size:14px;
  font-weight:600;
  line-height:1;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.zs-pfx__list-link span:last-child{
  color:var(--zsp-gold);
  font-size:20px;
  line-height:1;
}
.zs-pfx__list-link:hover{
  background:var(--zsp-forest);
  border-color:var(--zsp-forest);
  transform:translateY(-1px);
  box-shadow:0 10px 26px rgba(38,53,44,.14);
}
@media(max-width:767px){
  .zs-pfx__list-link-wrap{margin-top:18px}
  .zs-pfx__list-link{width:100%;min-height:48px;padding:12px 18px}
}


/* =====================================================================
   v0.18.11 — property-list photographic hero
   ---------------------------------------------------------------------
   Turns the existing translated property-list intro into the same framed,
   image-led hero language used across the MAIN site. The media path is
   site-root relative so it survives staging -> production domain changes.
   ===================================================================== */
.zs-plist{
  padding:28px 28px clamp(60px,6vw,86px)!important;
  border-radius:0!important;
  background:var(--zsp-bg)!important;
}

.zs-plist__intro{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%!important;
  max-width:none!important;
  min-height:clamp(460px,45vw,620px);
  margin:0 auto 38px!important;
  padding:clamp(110px,11vw,175px) clamp(32px,7vw,110px);
  border-radius:28px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(18,29,23,.34) 0%,rgba(18,29,23,.68) 100%),
    url('/wp-content/uploads/2026/09/header-1.jpg') center center / cover no-repeat;
  box-shadow:0 22px 56px rgba(38,53,44,.14);
  text-align:center;
}

.zs-plist__intro .zs-plist__eyebrow{
  margin-bottom:14px;
  color:var(--zsp-gold)!important;
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  text-shadow:0 1px 8px rgba(0,0,0,.18);
}

.zs-plist__intro h2{
  max-width:1000px;
  margin:0!important;
  color:#fff!important;
  font-size:clamp(46px,5.5vw,78px)!important;
  font-weight:400!important;
  line-height:.98!important;
  letter-spacing:-.025em!important;
  text-shadow:0 4px 24px rgba(0,0,0,.20);
}

.zs-plist__intro p{
  width:min(100%,860px);
  margin:20px auto 0!important;
  color:rgba(255,255,255,.90)!important;
  font-size:clamp(17px,1.45vw,21px)!important;
  font-weight:400;
  line-height:1.55!important;
  text-shadow:0 2px 14px rgba(0,0,0,.20);
}

@media(max-width:1366px){
  .zs-plist{padding-left:22px!important;padding-right:22px!important}
}

@media(max-width:1200px){
  .zs-plist{padding-left:18px!important;padding-right:18px!important}
  .zs-plist__intro{border-radius:24px}
}

@media(max-width:1024px){
  .zs-plist{padding-left:16px!important;padding-right:16px!important}
  .zs-plist__intro{
    min-height:500px;
    border-radius:22px;
    padding:105px 44px;
  }
}

@media(max-width:880px){
  .zs-plist{padding-left:12px!important;padding-right:12px!important}
  .zs-plist__intro{
    min-height:450px;
    border-radius:19px;
    padding:92px 30px;
  }
}

@media(max-width:767px){
  .zs-plist{
    padding:10px 10px 38px!important;
    border-radius:0!important;
  }
  .zs-plist__intro{
    min-height:410px;
    margin-bottom:28px!important;
    padding:78px 22px;
    border-radius:18px;
    background-position:center center;
  }
  .zs-plist__intro .zs-plist__eyebrow{
    margin-bottom:11px;
    font-size:10px;
  }
  .zs-plist__intro h2{
    font-size:clamp(38px,12vw,54px)!important;
  }
  .zs-plist__intro p{
    margin-top:16px!important;
    font-size:16px!important;
    line-height:1.5!important;
  }
}

/* 0.30.3 — stronger visual emphasis for AVAILABLE properties on the floorplan only. */
.zs-pfx__marker--property.is-available{
  z-index:8;
  background:#2f6b4d;
  color:#fff;
  border:3px solid #fff;
  box-shadow:
    0 0 0 4px rgba(194,162,47,.96),
    0 0 0 9px rgba(255,255,255,.88),
    0 12px 30px rgba(38,53,44,.34);
  transform:translate(-50%,-50%) scale(1.12);
}
.zs-pfx__marker--property.is-available::before{
  content:"";
  position:absolute;
  inset:-13px;
  border:2px solid rgba(194,162,47,.68);
  border-radius:999px;
  pointer-events:none;
  animation:zsp-available-pulse 1.9s ease-out infinite;
}
.zs-pfx__marker--property.is-available:hover{
  transform:translate(-50%,-50%) scale(1.18);
}
@keyframes zsp-available-pulse{
  0%{opacity:.95;transform:scale(.88)}
  70%{opacity:0;transform:scale(1.28)}
  100%{opacity:0;transform:scale(1.28)}
}
@media (prefers-reduced-motion:reduce){
  .zs-pfx__marker--property.is-available::before{animation:none;opacity:.8;transform:none}
}
