.villa-photos{margin:40px 0 42px}
.villa-photos-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}
.villa-photos-heading h3{font-size:30px;margin-bottom:8px}
.villa-photos-heading p{font-size:15px;color:var(--muted);margin:0}
.villa-photos-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}
.villa-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 16px}
.villa-photo{display:block;min-width:0;border-radius:6px}
.villa-photo figure{margin:0}
.villa-photo-frame{position:relative;overflow:hidden;aspect-ratio:4/3;border-radius:6px;background:var(--line)}
.villa-photo img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.villa-photo:hover img{transform:scale(1.035)}
.villa-zoom{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--cream);color:var(--dark);font-size:20px;line-height:1}
.villa-photo figcaption{font-size:13px;font-weight:500;padding-top:9px;line-height:1.4}
.villa-photo-note{font-size:12px;color:var(--muted);max-width:800px;margin:20px 0 0}
.villa-dialog{width:min(1100px,calc(100% - 32px));max-height:94svh;background:var(--darker);color:var(--sand)}
.villa-dialog-header{position:relative;padding:22px 74px 18px 24px}
.villa-dialog-header h2{font-family:inherit;font-size:18px;letter-spacing:0;line-height:1.4;margin:0}
.villa-dialog .dialog-close{color:var(--text)}
.villa-dialog-figure{margin:0}
.villa-dialog-figure img{width:100%;height:min(60svh,680px);object-fit:contain;background:#021015}
.villa-dialog-figure figcaption{font-size:15px;padding:16px 24px 0;min-height:42px}
.villa-dialog-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px 22px}
.villa-dialog-controls button{display:flex;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:8px 16px;border:1px solid #f4efe560;border-radius:4px;background:transparent;color:var(--sand)}
.villa-dialog-controls button:hover{background:var(--sand);color:var(--dark)}
.villa-dialog-controls>span{font-size:13px;color:#c1cec8}
@media(max-width:900px){.villa-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.villa-photos-heading{display:block}.villa-photos-heading>span{display:block;margin-top:12px}}
@media(max-width:480px){.villa-gallery{gap:18px 12px}.villa-photos-heading h3{font-size:27px}.villa-photo figcaption{font-size:12px}.villa-photo-note{font-size:12px}.villa-zoom{right:7px;bottom:7px;width:26px;height:26px;font-size:18px}.villa-dialog-header{padding-left:18px}.villa-dialog-figure figcaption{padding-left:18px;padding-right:18px;font-size:14px}.villa-dialog-controls{padding:14px 18px 18px}.villa-dialog-controls button{padding:8px 12px}}
