/* =====================================================================
   Unit, project and company pages.
   ===================================================================== */
.uhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-block:22px 18px}
.uhead__title{max-width:26ch}
.uhead__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:10px 0 0;color:var(--mut);font-size:14.5px}
.uhead__meta a{color:var(--navy);font-weight:600}
.uhead__meta a:hover{text-decoration:underline}
.uhead__sep{margin-inline:2px}
.uhead__ref{margin-inline-start:10px;padding:4px 8px;border-radius:6px;background:var(--paper-warm);font-size:12px;color:var(--mut)}
.uhead__actions{display:flex;gap:8px}

/* ---------- Collage ---------- */
.collage{position:relative;display:grid;gap:8px;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));height:clamp(320px,44vw,540px)}
.collage__cell{position:relative;padding:0;border:0;overflow:hidden;background:var(--paper-warm);cursor:zoom-in}
.collage__cell img{width:100%;height:100%;object-fit:cover;transition:filter .3s}
.collage__cell:hover img{filter:brightness(.92)}
.collage__cell:first-child{grid-row:1/3;border-radius:var(--r-lg) 0 0 var(--r-lg)}
.collage.n5 .collage__cell:nth-child(3){border-top-right-radius:var(--r-lg)}
.collage.n5 .collage__cell:nth-child(5){border-bottom-right-radius:var(--r-lg)}
.collage.n1{grid-template-columns:1fr}.collage.n1 .collage__cell:first-child{border-radius:var(--r-lg)}
.collage.n2,.collage.n3,.collage.n4{grid-template-columns:2fr 1fr}
.collage.n2 .collage__cell:nth-child(2){grid-row:1/3;border-radius:0 var(--r-lg) var(--r-lg) 0}
.collage.n3 .collage__cell:nth-child(2){border-top-right-radius:var(--r-lg)}.collage.n3 .collage__cell:nth-child(3){border-bottom-right-radius:var(--r-lg)}
.collage.n4 .collage__cell:nth-child(n+4){display:none}.collage.n4 .collage__cell:nth-child(2){border-top-right-radius:var(--r-lg)}.collage.n4 .collage__cell:nth-child(3){border-bottom-right-radius:var(--r-lg)}
.collage__all{position:absolute;right:calc(var(--gut) + 14px);bottom:14px}
@media (max-width:760px){
  .collage{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;height:auto;padding:0;gap:0;scrollbar-width:none}
  .collage::-webkit-scrollbar{display:none}
  .collage__cell{flex:0 0 100%;aspect-ratio:4/3;border-radius:0!important;scroll-snap-align:start;display:block!important}
  .collage__all{right:14px}
}

/* ---------- Layout ---------- */
.ulay{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(28px,5vw,72px);align-items:start;padding-top:32px}
.umain{min-width:0}
.uside{position:sticky;top:calc(var(--hdr) + 20px)}
@media (max-width:1000px){.ulay{grid-template-columns:1fr}.uside{position:static;order:-1}}
.usec{padding-block:30px;border-top:1px solid var(--line)}
.usec .h-card{margin-bottom:12px}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:0;margin:0 0 8px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.facts div{padding:16px 18px;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line);margin:-1px -1px 0 0}
.facts dt{font-size:12.5px;font-weight:600;color:var(--mut)}
.facts dd{margin:4px 0 0;font:700 19px/1.2 var(--serif);color:var(--navy)}
.facts dd .price{font:600 15px/1.2 var(--sans)}
.highlights{list-style:none;margin:22px 0;padding:0;display:grid;gap:16px}
.highlights li{display:flex;gap:14px;align-items:flex-start}
.highlights .i{color:var(--navy);margin-top:2px}
.highlights b{display:block;color:var(--ink)}
.highlights span{color:var(--mut);font-size:14.5px}
.amen{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 24px}
.amen li{display:flex;gap:10px;align-items:center}
.amen .i{color:var(--navy)}
.steps{list-style:none;margin:16px 0 20px;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.steps li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px}
.steps li+li{border-top:1px solid var(--line)}
.steps span{color:var(--mut);font-weight:600;font-size:14.5px}
.steps b{font-weight:700;color:var(--ink)}
.plan__from{font-size:15px;color:var(--mut);margin:4px 0 6px}
.price--lg{font:700 26px/1.1 var(--sans);color:var(--ink)}
.umap{position:relative;height:320px;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-warm);margin-top:12px}
.by{display:flex;align-items:center;gap:14px}
.by .dev__logo{margin:0;display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-md);background:var(--paper-warm);overflow:hidden}
.by .dev__logo span{font:700 24px/1 var(--serif);color:var(--navy)}
.by b{display:block;color:var(--ink)}
.by b a:hover{color:var(--red)}
.by small{color:var(--mut)}
.masterplan img{border-radius:var(--r-lg);border:1px solid var(--line)}

/* ---------- Price card ---------- */
.pcard{padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.pcard__mode{margin:0;font-weight:700;font-size:13px;color:var(--red)}
.pcard__price{margin:6px 0 4px}
.pcard__price small{font-size:14px;color:var(--mut);font-weight:600}
.price--xl{font:700 30px/1.1 var(--sans);color:var(--ink);letter-spacing:-.01em}
.price--xl .price__c{font-size:16px}
.pcard__note{margin:0;font-size:13.5px;color:var(--mut)}
.pcard__ctas{display:grid;gap:10px;margin-top:18px}
.pcard__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pcard__calc{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:none;border:0;padding:8px;font-weight:700;font-size:14px;color:var(--navy)}
.pcard__calc:hover{color:var(--red)}

/* ---------- Mobile action bar ---------- */
.mbar{display:none}
@media (max-width:1000px){
  .mbar{position:fixed;inset:auto 0 0 0;z-index:50;display:flex;align-items:center;gap:10px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -12px 30px -18px rgba(20,43,77,.35);transform:translateY(110%);transition:transform .3s var(--ease)}
  .mbar.is-on{transform:none}
  .mbar__price{flex:1;min-width:0;font:700 16px/1.2 var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbar__wa{color:#1F9D55;border-color:#1F9D55}
  .kind-unit .ftr{padding-bottom:80px}
}

/* ---------- Project hero ---------- */
.phero{position:relative;isolation:isolate;min-height:clamp(380px,52vw,600px);display:flex;align-items:flex-end;background:var(--tone,var(--navy));color:#fff}
.phero__img{position:absolute;inset:0;z-index:-1}
.phero__img img{width:100%;height:100%;object-fit:cover}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,18,40,.82),rgba(8,18,40,.1) 65%)}
.phero__in{padding-block:24px 44px;width:100%}
.phero h1{color:#fff}
.phero__type{margin:0 0 10px;font-weight:700;font-size:13px;color:var(--gold)}
.phero__meta{margin:12px 0 20px;font-size:16px;color:rgba(255,255,255,.88)}
.phero__meta a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.chead{display:flex;gap:28px;align-items:flex-start}
.dev__logo--lg{flex:0 0 auto;display:grid;place-items:center;width:112px;height:112px;border-radius:var(--r-lg);background:var(--paper-warm);overflow:hidden}
.dev__logo--lg span{font:700 48px/1 var(--serif);color:var(--navy)}
@media (max-width:640px){.chead{flex-direction:column}}
.sec-sm{padding-top:clamp(40px,6vw,72px)}

/* ---------- Lightbox + calculator ---------- */
.lb{width:100vw;height:100svh;margin:0;background:#0b1224;color:#fff}
.lb[open]{display:flex;flex-direction:column}
.lb::backdrop{background:#0b1224}
.lb__top{display:flex;justify-content:space-between;align-items:center;padding:14px 18px}
.lb__top .dlg__close{position:static}
.lb__count{font-size:13px;color:rgba(255,255,255,.75)}
.lb__stage{position:relative;flex:1;display:grid;place-items:center;min-height:0;padding:0 64px}
.lb__img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center}
.lb__nav:hover{background:rgba(255,255,255,.22)}
.lb__prev{left:10px}.lb__next{right:10px}
.lb__thumbs{display:flex;gap:6px;overflow-x:auto;padding:12px 18px 18px;scrollbar-width:none}
.lb__thumbs button{flex:0 0 auto;width:84px;height:56px;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;background:none;opacity:.6}
.lb__thumbs button.is-on{border-color:#fff;opacity:1}
.lb__thumbs img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.lb__stage{padding:0}.lb__nav{display:none}}
.dlg--wide{width:min(620px,calc(100vw - 24px))}
.calc__tabs{margin-bottom:18px}
.calc__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 12px}
.calc__out{margin:6px 0 18px;padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.calc__out div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 18px}
.calc__out div+div{border-top:1px solid var(--line)}
.calc__out dt{color:var(--mut);font-weight:600;font-size:14px}
.calc__out dd{margin:0;font-size:15px;color:var(--ink);text-align:end}
.calc__big{background:var(--navy-tint);border-radius:var(--r-lg) var(--r-lg) 0 0}
.calc__big dd{font-size:22px;color:var(--navy)}
.calc__warn{margin:0 0 12px;padding:10px 14px;border-radius:var(--r-md);background:#FDECEF;color:var(--red-deep);font-size:13.5px;font-weight:600}
.rate{display:flex;align-items:center;gap:10px}
.rate input[type=range]{flex:1;accent-color:var(--navy)}
.rate .icon-btn{width:40px;height:40px;font-size:20px;font-weight:600}
.rate__v{min-width:64px;text-align:end;font-size:18px;color:var(--navy)}
.adj{border:0;padding:0;margin:4px 0 16px;display:grid;gap:8px}
.adj label{display:flex;gap:10px;align-items:center;font-size:14.5px}
.adj input{width:18px;height:18px;accent-color:var(--navy)}
.phero .crumbs{padding:0 0 22px}

/* =====================================================================
   Developer / company profile
   ===================================================================== */
.dvh{position:relative;isolation:isolate;min-height:clamp(440px,58vw,640px);display:flex;align-items:flex-end;margin:10px var(--gut) 0;border-radius:var(--r-xl);overflow:hidden;background:var(--tone,#16284C);color:#fff}
.dvh__img{position:absolute;inset:0;z-index:-2;overflow:hidden}
.dvh__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.dvh__img.is-soft img{filter:blur(6px) saturate(115%);transform:scale(1.1)}
.dvh::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,color-mix(in srgb,var(--tone) 96%,#000) 0%,color-mix(in srgb,var(--tone) 70%,transparent) 38%,rgba(8,18,40,.15) 75%,rgba(8,18,40,.35) 100%)}
.dvh__in{width:100%;padding-block:24px clamp(28px,4vw,48px)}
.dvh .crumbs{padding:0 0 clamp(60px,10vw,140px)}
.dvh__id{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:clamp(16px,2.4vw,28px)}
.dvh__logo{display:grid;place-items:center;width:clamp(88px,10vw,128px);aspect-ratio:1;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 30px 60px -24px rgba(0,0,0,.6),0 0 0 6px rgba(255,255,255,.16)}
.dvh__logo img{width:100%;height:100%;object-fit:cover}
.dvh__logo>span{font:700 clamp(40px,5vw,56px)/1 var(--serif);color:var(--navy)}
.dvh__txt{min-width:0}
.dvh__kind{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.dvh__kind>span{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);font-size:12px;font-weight:700;letter-spacing:.02em}
.dvh__ver{color:var(--gold)}
.dvh__name{margin:0;font:600 clamp(38px,5.6vw,72px)/1 var(--serif);letter-spacing:-.03em;color:#fff;text-wrap:balance}
.dvh__tag{margin:12px 0 0;max-width:52ch;font:600 italic clamp(16px,1.6vw,20px)/1.5 var(--serif);color:rgba(255,255,255,.88)}
.dvh__meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:16px 0 0;font-size:13.5px;color:rgba(255,255,255,.8)}
.dvh__meta>*{display:inline-flex;align-items:center;gap:6px}
.dvh__meta a:hover{color:#fff;text-decoration:underline}
.dvh__acts{display:flex;flex-wrap:wrap;gap:10px}
.btn--glass{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn--glass:hover{background:#25D366;border-color:#25D366}
.dvs{margin-top:-1px}
.dvs__in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:18px;border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 24px 44px -34px rgba(20,43,77,.5)}
.dvs__s{display:grid;gap:4px;padding:22px 24px;border-inline-start:1px solid var(--line)}
.dvs__s:first-child{border-inline-start:0}
.dvs__s b{font:600 clamp(30px,3.2vw,42px)/1 var(--serif);color:var(--navy);letter-spacing:-.02em}
.dvs__s:nth-child(2) b{color:var(--red)}
.dvs__s small{font-size:12.5px;font-weight:600;color:var(--mut)}
.dvnav{position:sticky;top:var(--hdr);z-index:30;margin-top:22px;background:rgba(250,250,247,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-block:1px solid var(--line)}
.dvnav__in{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.dvnav__in::-webkit-scrollbar{display:none}
.dvnav a{flex:none;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 14px;border-bottom:2px solid transparent;font-weight:700;font-size:14px;color:var(--mut)}
.dvnav a:hover,.dvnav a.is-on{color:var(--navy);border-color:var(--red)}
.dvb{display:grid;gap:clamp(40px,5vw,64px);padding-block:clamp(36px,5vw,56px)}
.dvb section{scroll-margin-top:calc(var(--hdr) + 70px)}
.dvo{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.dvo .h-section{margin:0 0 16px}
.dvo__prose{font-size:16px;line-height:1.8;color:var(--text);max-width:64ch}
.dvo__hl{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dvo__hl li{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;font-size:14px;line-height:1.5}
.dvo__hl .i{flex:none;margin-top:2px;padding:3px;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff}
.dvo__facts{position:sticky;top:calc(var(--hdr) + 72px);padding:24px;border-radius:22px;background:linear-gradient(160deg,#fff,var(--paper-warm));border:1px solid var(--line)}
.dvo__facts dl{margin:14px 0 0;display:grid}
.dvo__facts dl div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.dvo__facts dt{font-size:13px;color:var(--mut)}
.dvo__facts dd{margin:0;font-weight:700;font-size:14px;text-align:end}
.dvo__ver{display:flex;gap:12px;margin:16px 0 0;padding:14px;border-radius:14px;background:var(--navy);color:rgba(255,255,255,.8);font-size:12.5px;line-height:1.5}
.dvo__ver .i{flex:none;color:var(--gold)}
.dvo__ver b{display:block;color:#fff;font-size:14px}
.dvp .h-card{margin-bottom:14px}
.dvp__rows{display:grid;gap:10px}
.dvp__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:#fff}
.dvp__mk{min-width:170px;font:700 17px var(--serif);color:var(--navy)}
.dvp__row .chip{display:inline-flex;align-items:center;gap:8px}
.dvpj .pcard-wrap[hidden]{display:none}
.dvpj .pcards{grid-template-columns:repeat(auto-fill,minmax(262px,1fr))}
.dvg__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:170px;gap:10px}
.dvg__i a{display:block;height:100%;border-radius:16px;overflow:hidden;background:var(--paper-warm)}
.dvg__i img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.dvg__i a:hover img{transform:scale(1.05)}
.dvg__i--0{grid-column:span 2;grid-row:span 2}
.dvg__i--3{grid-row:span 2}
.dvc{padding-block:0 clamp(56px,7vw,88px)}
.dvc__card{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);padding:clamp(28px,4vw,48px);border-radius:28px;background:linear-gradient(135deg,var(--navy-deep),var(--navy) 70%);color:rgba(255,255,255,.78)}
.dvc__card::before{content:"";position:absolute;z-index:-1;width:420px;height:420px;top:-160px;right:-80px;border-radius:50%;background:radial-gradient(circle,rgba(177,18,23,.28),transparent 70%)}
.dvc__l .h-section{color:#fff;margin:0 0 12px}
.dvc__l p:not(.eyebrow){max-width:46ch;margin:0 0 24px;line-height:1.65}
.dvc__r{list-style:none;margin:0;padding:0;display:grid;gap:10px;align-content:center}
.dvc__r a{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;transition:background .2s,border-color .2s}
.dvc__r a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3)}
.dvc__r a>.i{flex:none;width:38px;height:38px;padding:9px;border-radius:12px;background:rgba(255,255,255,.12);color:var(--gold)}
.dvc__r span{display:grid;gap:2px;min-width:0}
.dvc__r small{font-size:11.5px;color:rgba(255,255,255,.6)}
.dvc__r b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dvc__soc{display:flex;flex-wrap:wrap;gap:8px}
.dvc__soc a{padding:8px 14px!important;border-radius:999px!important;font-size:13px;font-weight:700}
.dvlb{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:rgba(8,18,40,.92)}
.dvlb img{max-width:min(1400px,100%);max-height:86vh;border-radius:14px;box-shadow:0 40px 80px -30px #000}
.dvlb button{position:absolute;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;cursor:pointer}
.dvlb__x{top:20px;right:20px}.dvlb__p{left:20px;top:50%}.dvlb__n{right:20px;top:50%}
@media (max-width:980px){.dvo{grid-template-columns:1fr}.dvo__facts{position:static}.dvc__card{grid-template-columns:1fr}}
@media (max-width:760px){
  .dvh{margin:0;border-radius:0 0 28px 28px;min-height:520px}
  .dvh__id{grid-template-columns:auto minmax(0,1fr)}
  .dvh__acts{grid-column:1/-1}
  .dvh__acts .btn{flex:1}
  .dvh__logo{border-radius:22px}
  .dvs__in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dvs__s{border-inline-start:0;border-top:1px solid var(--line)}
  .dvs__s:nth-child(-n+2){border-top:0}
  .dvs__s:nth-child(2n){border-inline-start:1px solid var(--line)}
  .dvo__hl{grid-template-columns:1fr}
  .dvg__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:130px}
  .dvg__i--3{grid-row:span 1}
  .dvp__mk{min-width:100%}
}
[dir=rtl] .dvlb__x{right:auto;left:20px}
@media (max-width:760px){.dvh__id{grid-template-columns:1fr;gap:14px}.dvh__logo{width:76px;border-radius:20px}.dvh .crumbs{padding-bottom:48px}}

/* =====================================================================
   Short stays: booking card + calendar (Airbnb-style)
   ===================================================================== */
.bk__price{margin:0 0 14px}.bk__price b{font:700 26px var(--sans);color:var(--ink)}.bk__price span{color:var(--mut)}
.bk__box{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:16px;overflow:hidden}
.bk__d{display:grid;gap:2px;padding:12px 14px;border:0;background:#fff;text-align:start;cursor:pointer}
.bk__d+.bk__d{border-inline-start:1px solid var(--line-2)}
.bk__d small,.bk__g small{font:700 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.bk__d b{font:500 14.5px var(--sans);color:var(--mut)}
.bk__d:hover{background:var(--paper-warm)}
.bk__g{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line-2)}
.bk__g .stp{display:flex;align-items:center;gap:10px}.bk__g .stp button{width:32px;height:32px;border:1px solid var(--line-2);border-radius:50%;background:#fff;font-size:18px;cursor:pointer}.bk__g output{min-width:18px;text-align:center;font-weight:700}
.bk__cal{margin-top:12px;padding:14px;border-radius:18px;background:#fff;box-shadow:0 20px 50px -24px rgba(20,43,77,.45),0 0 0 1px var(--line);position:relative}
@media (min-width:1101px){.bk__cal{position:absolute;inset-inline-end:0;width:640px;z-index:20}}
.cal__nav{position:absolute;inset:12px 12px auto;display:flex;justify-content:space-between;pointer-events:none}
.cal__nav button{pointer-events:auto;width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;background:#fff;font-size:18px;cursor:pointer}
.cal__ms{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:24px}
.cal__t{margin:6px 0 12px;text-align:center;font:600 15px var(--sans)}
.cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal__w{padding:4px 0;text-align:center;font:600 11px var(--sans);color:var(--dim)}
.cal__d{aspect-ratio:1;border:0;border-radius:50%;background:none;font:600 13.5px var(--sans);color:var(--ink);cursor:pointer}
.cal__d:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--ink)}
.cal__d.is-off{color:var(--dim);cursor:default}.cal__d.is-busy{text-decoration:line-through}
.cal__d.is-range{background:var(--paper-warm);border-radius:0}
.cal__d.is-in,.cal__d.is-out{background:var(--navy);color:#fff}
.cal__foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.bk__sum{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.bk__sum p{display:flex;justify-content:space-between;margin:0;font-size:14.5px}.bk__sum p span{text-decoration:underline dotted var(--dim)}
.bk__sum .is-off b{color:var(--navy)}
.bk__tot{margin-top:4px!important;padding-top:10px;border-top:1px solid var(--line);font-weight:800}.bk__tot span{text-decoration:none!important}
.bk [data-bk-go]{margin-top:14px}
.bk__min{margin:8px 0 0;text-align:center;font-size:12.5px;color:var(--mut)}
.bkdlg{width:min(460px,calc(100% - 24px));padding:0;border:0;border-radius:24px;box-shadow:0 40px 80px -30px rgba(10,24,52,.6)}
.bkdlg::backdrop{background:rgba(10,24,52,.55);backdrop-filter:blur(6px)}
.bkdlg__in{position:relative;display:grid;gap:12px;padding:28px}
.bkdlg__h{margin:0;font:700 26px var(--serif);color:var(--navy)}
.bkdlg__s{margin:-4px 0 4px;color:var(--mut);font-size:14px}
.bkdlg__ok{display:grid;justify-items:center;gap:10px;text-align:center;padding:10px 0}
.bkdlg__ok span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--gold);font-size:28px}
.rules{margin:26px 0;padding:20px 22px;border-radius:18px;background:var(--paper-warm)}
.rules__h{margin:0 0 10px;font:700 20px var(--serif);color:var(--navy)}
.rules ul{margin:0;padding-inline-start:18px;display:grid;gap:6px}

/* ---------- Short stays v2: Airbnb-style card, guests menu, checkout ---------- */
.bk{position:relative}
.bk__box{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
.bk__d,.bk__g{display:grid;gap:2px;padding:10px 14px;border:0;background:#fff;text-align:start;cursor:pointer}
.bk__d+.bk__d{border-inline-start:1px solid var(--line-2)}
.bk__g{grid-column:1/-1;grid-template-columns:1fr auto;align-items:center;border-top:1px solid var(--line-2)}
.bk__g small{grid-column:1}.bk__g b{grid-column:1}.bk__g svg{grid-column:2;grid-row:1/3}
.bk__d small,.bk__g small{font:700 10px var(--sans);letter-spacing:.06em;text-transform:uppercase}
.bk__d b,.bk__g b{font-weight:500;font-size:14px}
.bk__nc{margin:8px 0 0;text-align:center;font-size:13px;color:var(--mut)}
.bk__sum{display:grid;gap:10px;margin-top:16px}
.bk__sum p{display:flex;justify-content:space-between;margin:0;font-size:14.5px}
.bk__sum .u{text-decoration:underline;text-underline-offset:3px}
.bk__sum .is-off b{color:var(--navy)}
.bk__sum .is-t{padding-top:14px;border-top:1px solid var(--line);font-weight:700}
.bkg{position:absolute;z-index:20;left:0;right:0;margin-top:6px;padding:16px 18px;border-radius:16px;background:#fff;box-shadow:0 24px 50px -18px rgba(20,43,77,.45);display:grid;gap:14px}
.bkg[hidden]{display:none}
.bkg__r{display:flex;align-items:center;justify-content:space-between;gap:12px}
.bkg__r span{display:grid}.bkg__r b{font-size:15px}.bkg__r small{color:var(--mut);font-size:13px}
.bkg__n{margin:0;font-size:12.5px;color:var(--mut);line-height:1.5}
.bkg__x{justify-self:end;font-weight:700}
.stp button:disabled{opacity:.35;cursor:not-allowed}
.cal__two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cal__g button.is-taken{text-decoration:line-through;color:var(--dim)}
.cal__g button.is-in{background:var(--paper-warm);border-radius:0}
.cal__g button.is-edge{background:var(--navy);color:#fff;border-radius:50%}
@media (max-width:640px){.cal__two{grid-template-columns:1fr}.cal__two .cal__m+.cal__m{display:none}}
/* Request to book: full page over the listing */
body.bkx-open{overflow:hidden}
.bkx{position:fixed;inset:0;z-index:300;overflow-y:auto;background:#fff;animation:bkx-in .32s cubic-bezier(.2,.8,.2,1)}
@keyframes bkx-in{from{transform:translateY(24px)}}
.bkx[hidden]{display:none}
.bkx__top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:14px;max-width:1120px;margin:0 auto;padding:22px var(--gut) 14px;background:#fff}
.bkx__back{display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:none;cursor:pointer}
.bkx__back:hover{background:var(--paper-warm)}
.bkx__h{margin:0;font:600 32px/1.1 var(--serif);color:var(--ink)}
.bkx__grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:72px;max-width:1120px;margin:0 auto;padding:10px var(--gut) 80px}
.bkx__grid[hidden]{display:none}
.bkx__sec{padding:26px 0;border-bottom:1px solid var(--line)}
.bkx__sec:first-child{padding-top:8px}
.bkx__sec--last{border:0}
.bkx__sec h3{margin:0 0 16px;font:700 22px var(--serif)}
.bkx__row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.bkx__row span{display:grid;gap:3px}.bkx__row b{font-size:15px}.bkx__row small{color:var(--mut);font-size:14.5px}
.bkx__row .link{font-weight:700}
.bkx__hint{display:block;margin:-4px 0 8px;color:var(--mut);font-size:13.5px}
.bkx__p{margin:0 0 10px;color:var(--ink);font-size:14.5px;line-height:1.6}
.bkx__ul{margin:0 0 12px;padding-inline-start:20px;font-size:14.5px;line-height:1.8}
.bkx__legal{margin:0 0 16px;font-size:12.5px;line-height:1.6;color:var(--mut)}
.bkx__go{min-width:220px}
.bkx__card{position:sticky;top:90px;align-self:start;padding:24px;border:1px solid var(--line);border-radius:16px}
.bkx__card h3{margin:22px 0 14px;padding-top:22px;border-top:1px solid var(--line);font:700 20px var(--serif)}
.bkx__unit{display:flex;gap:14px;align-items:center}
.bkx__unit img{width:118px;height:100px;border-radius:12px;object-fit:cover}
.bkx__unit span{display:grid;gap:4px}.bkx__unit small{color:var(--mut);font-size:12.5px}.bkx__unit b{font-size:15px;line-height:1.35}
.bkx__card [data-bkx-price]{display:grid;gap:10px}
.bkx__card [data-bkx-price] p{display:flex;justify-content:space-between;margin:0;font-size:14.5px}
.bkx__card [data-bkx-price] .is-t{padding-top:14px;border-top:1px solid var(--line);font-weight:700}
.bkx__card [data-bkx-price] .is-off b{color:var(--navy)}
.bkx__done{max-width:620px;margin:0 auto;padding:40px var(--gut) 80px;display:grid;justify-items:center;gap:14px;text-align:center}
.bkx__done[hidden]{display:none}
.bkx__recap{width:100%;display:grid;gap:10px;padding:18px;border:1px solid var(--line);border-radius:16px;text-align:start}
.bkx__recap p{display:flex;justify-content:space-between;margin:0}
.bkx__next{width:100%;margin:6px 0;padding:0;list-style:none;counter-reset:n;display:grid;gap:12px;text-align:start}
.bkx__next li{position:relative;display:grid;gap:2px;padding-inline-start:42px;counter-increment:n}
.bkx__next li::before{content:counter(n);position:absolute;inset-inline-start:0;top:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:13px}
.bkx__next small{color:var(--mut)}
.bkx__acts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
@media (max-width:900px){.bkx__grid{grid-template-columns:1fr;gap:0}.bkx__card{position:static;order:-1;margin-bottom:8px}.bkx__h{font-size:26px}.bkx__go{width:100%}}
/* Calendar opens as a wide panel anchored to the card, like Airbnb (one month on small screens). */
.bk__cal{position:absolute;z-index:30;top:118px;inset-inline-end:0;width:min(680px,calc(100vw - 2 * var(--gut)));padding:20px 22px 16px;border-radius:22px;background:#fff;box-shadow:0 30px 70px -24px rgba(20,43,77,.45)}
.bk__cal[hidden]{display:none}
.cal__f{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:10px}
@media (max-width:1100px){.cal__two{grid-template-columns:1fr}.cal__two .cal__m+.cal__m{display:none}.bk__cal{width:min(380px,calc(100vw - 2 * var(--gut)))}}
@media (max-width:900px){.bk__cal{position:static;width:auto;margin-top:10px;box-shadow:none;border:1px solid var(--line);padding:14px}}
/* Booking calendar: header stays inside the calendar; clean Airbnb-style days. */
.bk__cal .cal__nav{position:static!important;inset:auto!important;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:0;background:none}
.bk__cal .cal__nav b{font-size:14.5px;font-weight:700;text-align:center}
.bk__cal .cal__nav button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line-2);border-radius:50%;background:#fff;font-size:18px;cursor:pointer}
.bk__cal .cal__t{margin:0 0 8px;text-align:center;font-weight:700}
.bk__cal .cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.bk__cal .cal__g i{display:grid;place-items:center;height:28px;font:600 11.5px var(--sans);font-style:normal;color:var(--mut)}
.bk__cal .cal__g button{aspect-ratio:1;width:100%;border:1.5px solid transparent;border-radius:50%;background:none;font:600 14px var(--sans);color:var(--ink);cursor:pointer}
.bk__cal .cal__g button:hover:not(:disabled){border-color:var(--ink)}
.bk__cal .cal__g button:disabled{color:var(--dim);cursor:default}
.bk__cal .cal__g button.is-taken{text-decoration:line-through;color:var(--dim)}
.bk__cal .cal__g button.is-in{background:var(--paper-warm);border-radius:0}
.bk__cal .cal__g button.is-edge{background:var(--navy);color:#fff;border-radius:50%}
/* Google Maps embed */
.gmap{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--paper-warm);aspect-ratio:16/9}
.gmap__f{position:absolute;inset:0;width:100%;height:100%;border:0}
.gmap__open{position:absolute;inset-inline-end:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 16px;border-radius:999px;background:#fff;color:var(--navy);font:700 13.5px var(--sans);box-shadow:0 10px 24px -10px rgba(20,43,77,.45)}
@media (max-width:640px){.gmap{aspect-ratio:4/3}}
.dvh__claim{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:8px 14px;border:1px dashed rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font:600 13px var(--sans);cursor:pointer}
.dvh__claim:hover{background:rgba(255,255,255,.2)}

/* ---------- Gallery widget (photos · master plan · floor plans) ---------- */
html.gal-open{overflow:hidden}
.gal{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#0A1222;color:#fff}
.gal[open]{display:grid;grid-template-rows:auto 1fr auto}
.gal::backdrop{background:#0A1222}
.gal__top{display:flex;align-items:center;gap:14px;padding:14px clamp(14px,3vw,28px);border-bottom:1px solid rgba(255,255,255,.08)}
.gal__tabs{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.gal__tabs button{flex:none;height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:none;color:rgba(255,255,255,.75);font:600 13.5px var(--sans);cursor:pointer}
.gal__tabs button em{font-style:normal;opacity:.6;margin-inline-start:4px}
.gal__tabs button.is-on{background:#fff;color:var(--navy);border-color:#fff}
.gal__count{font-size:13px;color:rgba(255,255,255,.7);white-space:nowrap}
.gal__zoom{display:none;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:none;color:#fff;cursor:pointer}
.gal.is-plan .gal__zoom{display:grid}
.gal__close{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px 0 14px;border:0;border-radius:999px;background:#fff;color:var(--navy);font:700 14px var(--sans);cursor:pointer;box-shadow:0 10px 30px -10px rgba(0,0,0,.6)}
.gal__close:hover{background:var(--paper-warm)}
.gal__stage{position:relative;display:grid;place-items:center;min-height:0;padding:clamp(10px,2vw,24px) clamp(60px,7vw,110px);overflow:hidden;cursor:zoom-out}
.gal__fig{display:grid;place-items:center;gap:10px;margin:0;max-width:100%;max-height:100%;min-height:0}
.gal__img{max-width:100%;max-height:calc(100dvh - 210px);object-fit:contain;border-radius:10px;cursor:default;user-select:none}
.gal.is-plan .gal__img{background:#fff;padding:10px;cursor:zoom-in}
.gal__fig figcaption{color:rgba(255,255,255,.8);font-size:14px;text-align:center}
.gal__nav{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:54px;height:54px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;transition:background .2s}
.gal__nav:hover{background:rgba(255,255,255,.25)}
.gal__prev{left:clamp(8px,2vw,28px)}.gal__next{right:clamp(8px,2vw,28px)}
[dir=rtl] .gal__prev{left:auto;right:clamp(8px,2vw,28px)}[dir=rtl] .gal__next{right:auto;left:clamp(8px,2vw,28px)}
[dir=rtl] .gal__nav svg{transform:scaleX(-1)}
.gal.is-single .gal__nav{display:none}
.gal__thumbs{display:flex;gap:8px;padding:12px clamp(14px,3vw,28px) calc(14px + env(safe-area-inset-bottom));overflow-x:auto;scrollbar-width:none}
.gal__thumbs[hidden]{display:none}
.gal__thumbs button{flex:none;width:92px;height:64px;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:none;opacity:.55;cursor:pointer;transition:opacity .2s,border-color .2s}
.gal__thumbs button.is-on{opacity:1;border-color:#fff}
.gal__thumbs img{width:100%;height:100%;object-fit:cover}
/* Zoom (plans): the image at full size, scroll to pan. */
.gal.is-zoom .gal__stage{overflow:auto;place-items:start;cursor:zoom-out}
.gal.is-zoom .gal__img{max-width:none;max-height:none;width:200%;cursor:zoom-out}
@media (max-width:700px){.gal__stage{padding:8px}.gal__nav{width:42px;height:42px;background:rgba(0,0,0,.35)}.gal__close span{display:none}.gal__close{padding:0 12px}.gal__thumbs button{width:70px;height:50px}}
/* Plan cards on the project page */
.fplans{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.fplan{position:relative;display:block;padding:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;cursor:zoom-in;text-align:start}
.fplan img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#fff;padding:8px}
.fplan span{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font:600 13.5px var(--sans);color:var(--navy)}
.pcard__mt{display:grid;margin:-2px 0 10px;font-weight:700;font-size:13.5px;color:var(--navy)}.pcard__mt small{font-weight:500;color:var(--mut);font-size:12px}.dev__logo--you span{background:var(--navy);color:#fff}

/* Payment plan, portal style: down payments, then installments */
.pplan{margin:14px 0;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:#F7F9FC}
.pplan__total{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pplan__total span{font-weight:700;font-size:16px}.pplan__total b .price,.pplan__total b{color:var(--navy);font-weight:700}
.pplan__bar{display:flex;height:6px;margin:12px 0 4px;border-radius:6px;overflow:hidden;background:var(--line)}
.pplan__bar i{display:block;height:100%}.pplan__bar .is-dp{background:#F08A6B}.pplan__bar .is-in{background:#2F80ED}
.pplan__grp{padding:14px 0 6px;border-top:1px solid var(--line);margin-top:10px}
.pplan__h{display:flex;align-items:center;gap:8px;margin:0 0 10px;font:700 16px var(--sans);color:var(--ink)}
.pplan__h i{width:8px;height:8px;border-radius:50%}.pplan__h .is-dp{background:#F08A6B}.pplan__h .is-in{background:#2F80ED}
.pplan__row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:6px 0}
.pplan__row span{display:grid;gap:3px}.pplan__row b{font-weight:600;font-size:15px}.pplan__row small{color:var(--mut);font-size:13.5px}
.pplan__row em{font-style:normal;font-weight:600;white-space:nowrap}
.pplan__foot{margin:6px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:13.5px;color:var(--mut)}
.pplan__row em .price,.pplan__total .price{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}.pplan__row em .price *,.pplan__total .price *{display:inline;font-size:inherit}
.dev__logo--you span{background:var(--navy)!important;color:#fff!important}
/* Columns may shrink to the screen (Montserrat bold is wider than the old serif) */
.umain,.uside,.dvo > *,.dvo__main,.dvo__side,.unit > .wrap > *,main > .wrap > *{min-width:0}
.usec,.h-card,.h-section{overflow-wrap:anywhere}
.ucmp + .icon-btn,.ucmp{flex-shrink:0}
.ucmp:is(:hover,:focus){z-index:1}
@media (max-width:420px){.ucmp span{display:none}.ucmp{padding:0 10px}}
.uhead__actions{flex-wrap:wrap;justify-content:flex-start;row-gap:8px;min-width:0}@media (max-width:520px){.uhead{flex-wrap:wrap}.uhead__actions{width:100%}}
