/* Photo galleries: local images, legible captions and a full-image viewer. */
.property-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.property-actions .button{min-height:48px;justify-content:center;text-align:center}
.property-actions .property-photos-button{background:#fff;color:var(--ink);border:2px solid var(--ink);padding:14px 22px}
.property-actions .property-photos-button:hover{background:var(--ink);color:#fff}
.property-actions .property-photos-button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:480px){.property-actions{align-items:stretch}.property-actions .button{flex:1 1 100%;width:100%}}
.chalet-gallery{border-top:1px solid var(--line);scroll-margin-top:100px}
.photos-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:40px}
.photos-heading h2{font-size:clamp(2.6rem,5.5vw,5.3rem)}
.photos-heading>p{max-width:320px;margin:0;color:#49615c}
.chalet-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.chalet-photo{display:block;position:relative;overflow:hidden;background:var(--sand);border-radius:10px;min-width:0;isolation:isolate}
.chalet-photo img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}
.chalet-photo:hover img{transform:scale(1.035)}
.chalet-photo:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.chalet-photo-grid>.chalet-photo:first-child{grid-column:span 2;grid-row:span 2}
.photo-caption{position:absolute;bottom:0;left:0;right:0;padding:40px 16px 14px;background:linear-gradient(transparent,rgba(5,24,22,.85));color:#fff;display:flex;align-items:end;justify-content:space-between;gap:8px;font-size:.88rem;line-height:1.4}
.photo-caption>span{font-size:1.2rem}
.photos-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:26px;font-size:.92rem}
.property-photo-preview{grid-column:1/-1;min-width:0;width:100%;margin-top:24px}
.preview-heading{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:16px;font-size:.9rem}
.preview-heading>span{font-weight:600}
.preview-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.preview-photo-grid .chalet-photo{aspect-ratio:4/3}
.photo-viewer{border:0;border-radius:16px;background:#102e2b;color:#fff;padding:20px;width:min(1120px,96vw);max-width:96vw;max-height:94dvh;overflow:auto}
.photo-viewer::backdrop{background:rgba(4,17,16,.9)}
.photo-viewer-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.photo-viewer button{background:#fff;color:var(--ink);border:0;border-radius:30px;min-width:44px;min-height:44px;padding:8px 16px;font:600 1rem var(--sans);cursor:pointer}
.photo-viewer button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.photo-viewer-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;align-items:center}
.photo-viewer-stage button{padding:8px}
#photo-full{width:100%;height:min(70dvh,740px);object-fit:contain}
#photo-description{text-align:center;margin:14px 0 0;font-size:.95rem}
body.photo-viewer-open{overflow:hidden}
@media(max-width:700px){.photos-heading{display:block}.photos-heading>p{margin-top:22px;max-width:none}.chalet-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chalet-photo-grid>.chalet-photo:first-child{grid-row:auto}.photo-caption{font-size:.76rem;padding:30px 10px 10px}.preview-photo-grid{gap:8px}.preview-photo-grid .photo-caption{position:static;background:var(--ink);font-size:.7rem;padding:8px;min-height:44px}.preview-photo-grid .chalet-photo{aspect-ratio:auto}.preview-photo-grid img{height:auto;aspect-ratio:1}.photo-viewer{padding:12px;border-radius:10px}.photo-viewer-stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:4px}.photo-viewer-stage button{min-width:40px;padding:4px}#photo-full{height:65dvh}.photos-footer{font-size:.83rem}}
@media(prefers-reduced-motion:reduce){.chalet-photo img{transition:none}}
.property-photo-preview{order:3;padding:0 22px 22px}
@media(max-width:700px){.property-photo-preview{padding:0 12px 16px}}

