.villa-card{cursor:pointer;outline:none;transition:transform .25s,box-shadow .25s}
.villa-card-image{position:relative}
.villa-card:hover,.villa-card:focus-visible{transform:translateY(-5px);box-shadow:0 18px 45px rgba(4,17,31,.18)}
.photo-count{position:absolute;right:14px;bottom:14px;padding:7px 10px;border-radius:100px;background:rgba(5,20,38,.78);color:#fff;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.villa-view{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--royal)}
.villa-bottom{justify-content:flex-end}
.villa-modal{position:fixed;z-index:650;inset:0;display:none;align-items:center;justify-content:center;padding:28px;background:rgba(3,13,25,.86);backdrop-filter:blur(10px)}
.villa-modal.open{display:flex}
.villa-modal-shell{position:relative;width:min(1180px,100%);max-height:calc(100vh - 56px);overflow:auto;background:#f7f5f0;box-shadow:0 30px 100px rgba(0,0,0,.4)}
.villa-modal-close{position:absolute;z-index:5;top:14px;right:14px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(8,25,46,.86);color:#fff;font-size:27px;cursor:pointer}
#villa-profile{display:grid;grid-template-columns:1.25fr .75fr;min-height:650px}
.villa-profile-gallery{min-width:0;background:#0a1f39;padding:22px;display:flex;flex-direction:column;gap:12px}
.villa-main-photo{position:relative;min-height:0;flex:1;overflow:hidden;background:#061426}
.villa-main-photo>img{width:100%;height:100%;min-height:515px;object-fit:cover}
.villa-main-photo>span{position:absolute;left:18px;bottom:18px;padding:7px 10px;background:rgba(3,13,25,.72);color:#fff;font-size:9px;letter-spacing:.1em}
.profile-prev,.profile-next{position:absolute;top:50%;width:44px;height:44px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(3,13,25,.64);color:#fff;font-size:18px;cursor:pointer}
.profile-prev{left:16px}.profile-next{right:16px}
.villa-thumbnails{display:grid;grid-auto-flow:column;grid-auto-columns:90px;gap:9px;overflow:auto}
.villa-thumbnails button{height:66px;border:2px solid transparent;padding:0;background:none;opacity:.58;cursor:pointer}
.villa-thumbnails button.active{border-color:#fff;opacity:1}.villa-thumbnails img{width:100%;height:100%;object-fit:cover}
.villa-profile-copy{position:relative;padding:70px 48px 45px;display:flex;flex-direction:column}
.villa-profile-copy h2{font:400 48px/1.03 var(--serif);margin:12px 0 20px}
.profile-status{position:static;align-self:flex-start;display:inline-block;margin-bottom:24px;background:#e8efe9}
.profile-description{color:#606c78;font-size:14px;line-height:1.8;margin:0 0 28px}
.profile-specs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.profile-specs span{padding:18px 12px 18px 0;border-bottom:1px solid var(--line)}
.profile-specs small{display:block;color:#84909c;font-size:8px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.profile-specs b{font:400 17px var(--serif)}
.profile-footer{margin-top:auto;padding-top:34px;display:flex;align-items:center;justify-content:flex-end;gap:16px}
.profile-footer>strong{font:400 23px var(--serif)}
@media(max-width:800px){.villa-modal{padding:0}.villa-modal-shell{width:100%;height:100%;max-height:none}.villa-modal-close{position:fixed}#villa-profile{display:block;min-height:100%}.villa-profile-gallery{height:auto;padding:0}.villa-main-photo>img{min-height:0;height:42vh}.villa-thumbnails{padding:0 12px 12px;grid-auto-columns:75px}.villa-profile-copy{padding:38px 22px 45px}.villa-profile-copy h2{font-size:38px}.profile-footer{align-items:flex-start;flex-direction:column}.profile-footer .button{width:100%}}
