.gallery-page{padding-top:0}

.gallery-hero{text-align:center;padding:clamp(120px,16vw,200px) var(--gutter) clamp(40px,6vw,70px);
  max-width:860px;margin:0 auto}
.gallery-hero h1{font-family:var(--serif);font-weight:500;
  font-size:clamp(2.2rem,5vw,4rem);margin:.4rem 0 1.2rem}
.gallery-hero__sub{color:var(--muted);font-size:1.05rem;max-width:620px;margin:0 auto}

/* masonry via CSS columns */
.gallery{padding:0 var(--gutter) clamp(50px,7vw,90px);max-width:1500px;margin:0 auto}
.gallery__grid{column-count:3;column-gap:16px}
.gtile{display:block;margin-bottom:16px;break-inside:avoid;border-radius:10px;overflow:hidden;
  position:relative;background:var(--bg-2);cursor:zoom-in}
.gtile img{width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .6s;
  opacity:0}
.gtile img.is-loaded{opacity:1}
.gtile::after{content:"";position:absolute;inset:0;background:rgba(13,13,15,.18);opacity:0;transition:.3s}
.gtile:hover img{transform:scale(1.06)}
.gtile:hover::after{opacity:1}

@media(max-width:900px){.gallery__grid{column-count:2}}
@media(max-width:560px){.gallery__grid{column-count:1}}

.gallery-cta{text-align:center;padding:clamp(60px,9vw,110px) var(--gutter);
  border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:22px}
.gallery-cta h2{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:400}
.gallery-cta__back{color:var(--muted);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.gallery-cta__back:hover{color:var(--accent)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,8,10,.95);
  display:none;align-items:center;justify-content:center;padding:4vw}
.lightbox.is-open{display:flex}
.lightbox__img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:6px;
  box-shadow:0 30px 90px -20px rgba(0,0,0,.8)}
.lightbox__close{position:absolute;top:22px;right:28px;background:none;border:none;color:var(--ink);
  font-size:2.4rem;line-height:1;cursor:pointer;opacity:.8}
.lightbox__close:hover{opacity:1;color:var(--accent)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.06);
  border:1px solid var(--line);color:var(--ink);width:54px;height:54px;border-radius:50%;
  font-size:1.8rem;cursor:pointer;transition:.25s}
.lightbox__nav:hover{background:rgba(255,255,255,.14);border-color:var(--accent)}
.lightbox__prev{left:18px}
.lightbox__next{right:18px}
@media(max-width:560px){.lightbox__nav{width:44px;height:44px;font-size:1.4rem}}

/* gallery sub-section heading (Resorts: Culinary / Events) */
.gallery-subhead{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.2rem);text-align:center;
  font-weight:500;letter-spacing:.01em;margin:clamp(34px,5vw,56px) 0 clamp(18px,3vw,28px)}
.gallery .gallery-subhead:first-child{margin-top:0}

/* preview carousel + gated full gallery */
.gallery.is-hidden{display:none}
.gallery-page .carousel-section{padding-top:0}
.pv-videos{padding:clamp(40px,6vw,80px) var(--gutter) clamp(50px,7vw,90px)}
.pv-videos__row{display:flex;justify-content:center;gap:clamp(28px,5vw,70px);flex-wrap:wrap;
  margin-top:clamp(24px,4vw,40px)}

/* video page header (construction) */
.hero--page{height:70vh;min-height:420px;max-height:760px}
.hero--page .hero__title{font-size:clamp(2.2rem,4.6vw,3.8rem)}
.hero--page .gallery-hero__sub{margin-top:6px}
.gallery-page .hero--page + .carousel-section{padding-top:clamp(50px,7vw,90px)}

/* ================= V3 — catalog pages ================= */
.gallery-page .overline{font-size:.9rem}
.gallery-hero__sub{font-size:1.25rem;max-width:760px}
.gallery-subhead{font-size:clamp(1.9rem,3.4vw,2.6rem)}
.gallery-cta h2{font-size:clamp(2rem,4vw,3.1rem)}
.gallery-cta__back{font-size:.95rem}
.hero--page .gallery-hero__sub{font-size:1.25rem}

/* section copy + inline video embeds (construction) */
.pv-copy{max-width:1080px;margin:clamp(14px,2vw,22px) auto 0;text-align:center;color:var(--muted);
  font-size:1.2rem;padding:0 var(--gutter)}
.vid-embed{max-width:1140px;margin:clamp(26px,4vw,44px) auto 0;padding:0 var(--gutter)}
.vid-embed video{width:100%;border-radius:22px;display:block}
.sect-head{text-align:center;padding:clamp(50px,7vw,90px) var(--gutter) clamp(36px,5vw,64px)}

/* minimize gallery — floats at the screen bottom while scrolling the open gallery,
   then docks at the gallery's end (sticky keeps it inside the gallery bounds) */
.gal-min{position:sticky;bottom:18px;z-index:20;text-align:center;
  padding:clamp(22px,4vw,36px) 0 6px;pointer-events:none}
.gal-min .btn{pointer-events:auto;background:rgba(13,13,15,.85);backdrop-filter:blur(10px)}
.is-hidden{display:none!important}
.gal-wrap{margin-top:clamp(28px,4vw,46px)}
.gallery-hero__sub--wide{max-width:1100px}
.gallery-page .gallery-hero{max-width:1200px}

/* 404 recovery links */
.notfound__links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;
  padding:0 var(--gutter) clamp(40px,6vw,80px)}
