/* Platinum Property Phuket — compact Instagram-inspired listing cards + photo viewer */
#public-properties{
  max-width:1180px;margin:30px auto 0;text-align:left;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;
}
#public-properties:has(>.live-card:only-child){grid-template-columns:minmax(0,365px);justify-content:center}
.live-card{min-width:0;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 12px 36px #211a1020;transition:transform .2s ease,box-shadow .2s ease}
.live-card:hover{transform:translateY(-3px);box-shadow:0 18px 44px #211a1030}
.live-card .card-media{position:relative;display:block;width:100%;padding:0;border:0;background:#292b2f;cursor:pointer;overflow:hidden}
.live-card .card-media>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .3s ease}
.live-card .card-media:hover>img{transform:scale(1.035)}
.live-card .card-photo-count{position:absolute;right:12px;bottom:12px;padding:6px 11px;background:#161a1bcc;color:white;border-radius:99px;font:600 12px Arial,sans-serif}
.live-card .card-body{padding:17px 18px 19px}
.live-card .card-purpose{font-size:11px;letter-spacing:.1em;color:#8d6e3d;font-weight:700}
.live-card h3{font:normal clamp(21px,2vw,25px)/1.2 Georgia,serif;color:#29231e;margin:9px 0 11px;overflow-wrap:anywhere}
.live-card .card-meta{color:#645c53;font-size:13px;line-height:1.5;margin:0 0 12px}
.live-card .card-price{display:block;color:#1c1b19;font-size:18px;margin-bottom:17px}
.live-card .card-details-button{display:block;width:100%;border:0;border-radius:12px;background:#e2c28b;color:#211b13;font-size:13px;font-weight:700;text-align:center;padding:13px 14px;cursor:pointer}
.live-card .card-details-button:hover{background:#d2b179}
.live-card button:focus-visible,.property-modal button:focus-visible,.property-modal a:focus-visible{outline:3px solid #a77a39;outline-offset:3px}
@media(max-width:900px){#public-properties{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){#public-properties{grid-template-columns:1fr;max-width:470px;gap:16px}.live-card .card-body{padding:17px}.live-card h3{font-size:23px}}

body.property-modal-open{overflow:hidden}
.property-modal{position:fixed;max-width:none;max-height:none;width:min(1180px,calc(100vw - 40px));height:min(780px,calc(100dvh - 50px));margin:auto;padding:0;border:0;border-radius:18px;background:#fff;color:#252320;box-shadow:0 30px 120px #000b;overflow:hidden}
.property-modal::backdrop{background:#11171bcc;backdrop-filter:blur(5px)}
.property-modal .viewer-layout{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(320px,.76fr);height:100%;min-height:0}
.viewer-photos{display:flex;flex-direction:column;min-width:0;min-height:0;background:#12171b;color:#fff;position:relative}
.viewer-photo-stage{position:relative;min-height:0;flex:1;overflow:hidden}
.viewer-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.viewer-track::-webkit-scrollbar{display:none}
.viewer-slide{flex:0 0 100%;min-width:0;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;background:#151a1d}
.viewer-slide img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;display:block}
.viewer-arrow{position:absolute;top:50%;transform:translateY(-50%);width:39px;height:39px;z-index:2;border-radius:50%;border:1px solid #fff5;background:#15181abf;color:#fff;font-size:25px;display:grid;place-content:center;cursor:pointer}
.viewer-arrow:hover{background:#131313e8}.viewer-arrow:disabled{opacity:.25;cursor:default}
.viewer-arrow.prev{left:14px}.viewer-arrow.next{right:14px}
.viewer-photo-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#14191c;padding:11px 15px;min-height:47px;color:#fff}
.viewer-counter{font-size:12px;color:#e1e4e6;white-space:nowrap;letter-spacing:.02em}
.viewer-dots{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;flex:1}
.viewer-dot{width:7px;height:7px;background:#667078;border:0;border-radius:50%;padding:0;cursor:pointer;transition:transform .2s}
.viewer-dot[aria-current="true"]{background:#e0be82;transform:scale(1.3)}
.viewer-hint{font-size:11px;color:#c0c4c8;white-space:nowrap}
.viewer-info{display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:28px 28px 38px;background:#fff;color:#28211a;scrollbar-width:thin}
.viewer-info .viewer-eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;color:#a07942}
.viewer-info h2{font:normal clamp(25px,2.6vw,34px)/1.14 Georgia,serif;margin:12px 44px 14px 0;overflow-wrap:anywhere}
.viewer-info .viewer-meta{color:#6b655d;font-size:13px;line-height:1.6;margin:0 0 14px}
.viewer-info .viewer-price{font-size:24px;color:#23201d;font-weight:700;margin:2px 0 14px}
.viewer-info .viewer-reference{font-size:12px;color:#80796e}
.viewer-info .viewer-features{display:flex;flex-wrap:wrap;gap:6px;margin:17px 0 8px}
.viewer-features span{font-size:11px;color:#453e35;background:#f5f0e7;border-radius:999px;padding:8px 10px}
.viewer-info .viewer-divider{border:0;border-top:1px solid #eee7de;width:100%;margin:15px 0}
.viewer-info .viewer-description-toggle{border:0;background:transparent;color:#6f4c1e;font-size:13px;font-weight:700;cursor:pointer;text-align:left;padding:11px 0;width:100%}
.viewer-info .viewer-description-toggle:hover{text-decoration:underline}
.viewer-info .viewer-description[hidden]{display:none}
.viewer-info .listing-description{overflow-wrap:anywhere;font:14px/1.7 Arial,Helvetica,sans-serif;color:#49433e;padding-bottom:14px}
.viewer-info .listing-description p{margin:0 0 13px;color:#49433e;max-width:none;text-align:left;line-height:1.7}
.viewer-info .listing-description h4{font:700 14px/1.5 Arial,sans-serif;color:#2c2419;margin:20px 0 9px}
.viewer-info .listing-description ul{list-style:disc outside;padding-left:22px;margin:10px 0 19px}
.viewer-info .listing-description li{margin-bottom:8px;padding-left:4px;line-height:1.65}
.viewer-info .listing-description li::marker{color:#b58d51}
.viewer-info .listing-description .listing-labelled strong{color:#292118}
.viewer-info .viewer-actions{display:flex;flex-direction:column;gap:9px;margin:14px 0 0}
.viewer-info .viewer-action{background:#cda969;color:#171410;text-align:center;border:0;border-radius:11px;padding:13px;text-decoration:none;font:700 13px Arial,sans-serif}
.viewer-info .viewer-action:hover{background:#bb9757}
.viewer-info .viewer-action.secondary{background:#f3eee6;color:#4e3820}
.property-modal .viewer-close{position:absolute;top:11px;right:11px;z-index:9;border:0;border-radius:50%;width:37px;height:37px;background:#222a2dd9;color:#fff;font-size:25px;display:grid;place-content:center;cursor:pointer;box-shadow:0 3px 16px #0005}
.property-modal .viewer-close:hover{background:#111}
@media(max-width:720px){
  .property-modal{inset:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  .property-modal .viewer-layout{display:flex;flex-direction:column;height:100%;overflow:hidden}
  .viewer-photos{flex:0 0 auto;height:min(54dvh,440px)}
  .viewer-photo-footer{min-height:40px;padding:9px 12px}
  .viewer-hint{display:none}
  .viewer-arrow{width:32px;height:32px;font-size:21px}
  .viewer-arrow.prev{left:10px}.viewer-arrow.next{right:10px}
  .viewer-info{flex:1;min-height:0;padding:23px 22px 60px}
  .viewer-info h2{font-size:27px;margin-right:20px}
  .viewer-info .viewer-price{font-size:22px}
  .property-modal .viewer-close{top:12px;right:12px}
}
@media(prefers-reduced-motion:reduce){.viewer-track{scroll-behavior:auto}.live-card,.live-card .card-media>img{transition:none}}
#property-modal-content{height:100%}

/* Version 3.3: shareable listing link */
.viewer-info .viewer-action.viewer-copy{cursor:pointer;width:100%;font:700 13px Arial,sans-serif;background:#282522;color:#fff}
.viewer-info .viewer-action.viewer-copy:hover{background:#443a2b}
.viewer-copy-status:empty{display:none}
.viewer-copy-status{font:12px/1.5 Arial,sans-serif;color:#5f533f;text-align:center}
.viewer-copy-fallback{display:block;width:100%;margin-top:8px;border:1px solid #cbbda8;border-radius:7px;padding:10px;font-size:12px}
