/* Villa des Arts — Gallery page only */
.gallery-hero{padding-top:170px;padding-bottom:55px;display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:end}
.gallery-hero h1{font-family:Georgia,serif;font-size:clamp(4rem,7.5vw,8.2rem);line-height:.88;letter-spacing:-.055em;margin:16px 0 0;max-width:900px}
.gallery-intro{max-width:470px;padding-bottom:10px}
.gallery-intro p{font-size:1.08rem;line-height:1.75}
.gallery-hint{opacity:.6;font-size:.88rem!important}

.gallery-filter{padding-top:0!important;padding-bottom:34px!important;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.gallery-filter button{appearance:none;border:1px solid var(--line);background:transparent;padding:11px 17px;font:inherit;font-size:.84rem;cursor:pointer;border-radius:999px;color:var(--ink);transition:.2s}
.gallery-filter button:hover,.gallery-filter button.is-active{background:var(--ink);color:white;border-color:var(--ink)}

.editorial-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding-top:42px!important;overflow:hidden}
.gallery-item,.gallery-item.wide,.gallery-item.tall,.gallery-item.portrait,.gallery-item.hero-shot,.gallery-item.detail-shot{grid-column:auto;margin:0;min-width:0;width:100%;aspect-ratio:4 / 3;height:auto;overflow:hidden;background:#eee}
.gallery-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.gallery-open:hover img,.gallery-open:focus-visible img{transform:scale(1.025)}
.gallery-open:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}

.gallery-chapter{grid-column:1/-1;padding:95px 0 34px;max-width:760px}
.gallery-chapter h2{font-family:Georgia,serif;font-size:clamp(2.7rem,5vw,5.6rem);line-height:.95;letter-spacing:-.045em;margin:12px 0 0}

.gallery-item[hidden],.gallery-chapter[hidden]{display:none!important}

.gallery-cta{text-align:center;padding-top:120px!important;padding-bottom:130px!important}
.gallery-cta h2{font-family:Georgia,serif;font-size:clamp(3.2rem,6vw,6.5rem);letter-spacing:-.05em;margin:10px 0 32px}
.button-dark{display:inline-block;background:var(--ink);color:white;text-decoration:none;padding:18px 28px;border:1px solid var(--ink)}

.lightbox{position:fixed;inset:0;background:rgba(12,20,17,.97);z-index:20000;display:none;align-items:center;justify-content:center;color:white;padding:70px 90px}
.lightbox.is-open{display:flex}
.lightbox figure{margin:0;max-width:min(1200px,86vw);max-height:86vh;display:flex;flex-direction:column;align-items:center}
.lightbox-image{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain}
.lightbox-caption{font-size:.88rem;margin-top:13px;opacity:.72;text-align:center}
.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:transparent;color:white;cursor:pointer;z-index:2}
.lightbox-close{right:28px;top:20px;font-size:2.4rem;font-weight:200}
.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);font-size:2rem;padding:22px}
.lightbox-prev{left:18px}.lightbox-next{right:18px}
.lightbox-count{position:absolute;left:28px;bottom:24px;font-size:.8rem;letter-spacing:.12em;opacity:.65}
body.lightbox-open{overflow:hidden}

@media(max-width:900px){
.gallery-hero{padding-top:120px;grid-template-columns:1fr;gap:28px}
.gallery-hero h1{font-size:clamp(3.6rem,14vw,6.5rem)}
.gallery-intro{padding:0}
.gallery-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-right:6vw!important}
.gallery-filter::-webkit-scrollbar{display:none}
.gallery-filter button{white-space:nowrap}
.editorial-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-left:4vw!important;padding-right:4vw!important}
.gallery-item,.gallery-item.wide,.gallery-item.tall,.gallery-item.portrait,.gallery-item.hero-shot,.gallery-item.detail-shot{grid-column:auto;aspect-ratio:4 / 3;height:auto}
.gallery-chapter{grid-column:1/-1;padding:70px 2vw 24px}
.gallery-chapter h2{font-size:clamp(2.6rem,11vw,4.5rem)}
.lightbox{padding:65px 15px 75px}
.lightbox figure{max-width:100%;max-height:84vh}
.lightbox-image{max-height:72vh}
.lightbox-prev,.lightbox-next{top:auto;bottom:17px;transform:none;font-size:1.55rem;padding:12px 20px}
.lightbox-prev{left:calc(50% - 75px)}.lightbox-next{right:calc(50% - 75px)}
.lightbox-count{left:20px;bottom:28px}
}

@media(max-width:560px){
.editorial-gallery{grid-template-columns:1fr}
.gallery-item,.gallery-item.wide,.gallery-item.tall,.gallery-item.portrait,.gallery-item.hero-shot,.gallery-item.detail-shot{grid-column:auto;aspect-ratio:4 / 3;height:auto}
.gallery-chapter{padding-top:58px}
}
