.villa-compare{margin-top:48px;padding:32px;background:#eeeadd;border:1px solid var(--line)}.villa-compare h3{margin:10px 0 24px}.comparison-scroll{overflow-x:auto}.villa-compare table{width:100%;border-collapse:collapse;line-height:1.5}.villa-compare caption{text-align:left;margin-bottom:12px;font-size:12px;color:var(--muted)}.villa-compare th,.villa-compare td{text-align:left;padding:16px 12px;border-bottom:1px solid #cfd1c5}.villa-compare thead th{font-weight:600}.villa-compare tbody th{font-weight:400}.shared-note{margin-top:20px;color:var(--ink)}.compare-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}.review-grid article{padding:28px;border:1px solid var(--line);background:#f1eee6}.review-grid h3{font-size:30px;margin-bottom:14px}.review-grid .text-link{display:inline-block;margin-top:15px}.practical h2{margin-bottom:28px}.location-upgrade{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.location-upgrade h2{margin:12px 0 24px}.location-upgrade iframe{width:100%;height:370px;border:0;border-radius:3px}.location-upgrade ul{padding-left:20px;margin:20px 0}.location-upgrade .text-link{display:inline-block;margin-top:20px}.shared-photo-label{position:absolute;bottom:12px;left:12px;right:12px;background:#273d36e8;color:white;font:12px/1.5 Manrope,sans-serif;padding:8px}.gallery button{position:relative}#large-photo{touch-action:pan-y pinch-zoom}.mobile-booking{display:none}#villa-gallery{scroll-margin-top:24px}
@media(max-width:760px){body:has(.mobile-booking){padding-bottom:90px}.mobile-booking{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;background:#f7f4edf7;box-shadow:0 -4px 20px #273d3614;padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:12px;align-items:center}.mobile-booking .button{flex:1;justify-content:center;padding:12px}.mobile-wa{padding:10px;font-size:12px}.review-grid,.location-upgrade{grid-template-columns:1fr}.villa-compare{padding:20px 14px}.villa-compare th,.villa-compare td{padding:12px 8px;font-size:12px;vertical-align:top}.review-grid{gap:12px}.location-upgrade iframe{height:280px}.compare-actions .button{flex:1;padding:12px;font-size:12px}body:has(dialog[open]) .mobile-booking{display:none}}

/* Compact, bounded villa galleries on every screen. */
#villa-gallery{max-width:1280px;margin-inline:auto;padding:56px 5%;box-sizing:border-box}
#villa-gallery .section-heading{margin-bottom:28px}
#villa-gallery .gallery{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;grid-template-rows:none;gap:16px}
#villa-gallery .gallery>button,#villa-gallery .gallery-item:first-child,#villa-gallery .gallery-item:last-child{grid-column:auto;grid-row:auto;width:100%;min-width:0;height:auto;aspect-ratio:4/3;padding:0;border:0;overflow:hidden;position:relative}
#villa-gallery .gallery>button img{display:block;width:100%;height:100%;max-width:100%;object-fit:cover}
.gallery{min-width:0}.gallery>button{min-width:0}.gallery>button img{max-width:100%}
.detail-cover{max-width:1120px;height:clamp(240px,40vw,460px);overflow:hidden}
@media(max-width:760px){#villa-gallery{padding:36px 5%}#villa-gallery .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#villa-gallery .section-heading h2{font-size:38px}#villa-gallery .gallery-item>span{font-size:10px;padding:26px 9px 9px}.detail-cover{height:280px}}
@media(max-width:380px){#villa-gallery .gallery{grid-template-columns:minmax(0,1fr)}}
