/* VGOLD premium gallery | joyeros.mx | 2026 */
.vgold-gallery{
  --vg-bg:#0a0a0b;
  --vg-panel:#111113;
  --vg-ink:#f7f3ea;
  --vg-muted:#b9b1a3;
  --vg-gold:#d4af37;
  --vg-line:rgba(212,175,55,.24);
  background:
    radial-gradient(circle at 8% 0%,rgba(212,175,55,.10),transparent 32rem),
    linear-gradient(180deg,#0a0a0b,#0e0e10);
  color:var(--vg-ink);
  padding:clamp(64px,8vw,118px) 20px;
  overflow:hidden;
}
.vgold-gallery__shell{max-width:1320px;margin:0 auto}
.vgold-gallery__header{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.7fr);
  gap:clamp(26px,5vw,90px);align-items:end;margin-bottom:clamp(34px,5vw,62px)
}
.vgold-gallery__eyebrow{
  margin:0 0 12px;color:var(--vg-gold);font-size:.76rem;font-weight:700;
  letter-spacing:.19em;text-transform:uppercase
}
.vgold-gallery h2{
  margin:0;max-width:760px;font-size:clamp(2.15rem,5vw,5.2rem);line-height:.97;
  letter-spacing:-.045em;font-weight:500;text-wrap:balance
}
.vgold-gallery__intro{
  margin:0;color:var(--vg-muted);font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.75
}
.vgold-gallery__grid{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;
  gap:clamp(8px,1.2vw,16px)
}
.vgold-gallery__item{
  grid-column:span 4;position:relative;display:block;aspect-ratio:4/5;overflow:hidden;
  border:1px solid rgba(255,255,255,.08);background:var(--vg-panel);border-radius:3px;
  isolation:isolate
}
.vgold-gallery__item:nth-child(5n+2){grid-column:span 5;aspect-ratio:5/4}
.vgold-gallery__item:nth-child(5n+3){grid-column:span 3}
.vgold-gallery__item--hero{grid-column:span 7!important;grid-row:span 2;aspect-ratio:7/8!important}
.vgold-gallery__item img{
  width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);
  transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .5s ease
}
.vgold-gallery__item:hover img,.vgold-gallery__item:focus-visible img{transform:scale(1.045);filter:contrast(1.03)}
.vgold-gallery__item::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.34));
  opacity:.68;transition:opacity .35s ease
}
.vgold-gallery__item:hover::after{opacity:.28}
.vgold-gallery__shine{
  position:absolute;inset:-70% -140%;z-index:2;pointer-events:none;
  background:linear-gradient(115deg,transparent 43%,rgba(255,244,205,.18) 50%,transparent 57%);
  transform:translateX(-35%);transition:transform .9s ease
}
.vgold-gallery__item:hover .vgold-gallery__shine{transform:translateX(35%)}
.vgold-gallery__zoom{
  position:absolute;right:16px;bottom:16px;z-index:3;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;background:rgba(10,10,11,.62);border:1px solid var(--vg-line);
  color:#fff;font-size:1.3rem;backdrop-filter:blur(10px);transform:translateY(5px);
  opacity:.78;transition:.25s ease
}
.vgold-gallery__item:hover .vgold-gallery__zoom{opacity:1;transform:none}
.vgold-gallery__item--extra{display:none}
.vgold-gallery.is-expanded .vgold-gallery__item--extra{display:block}
.vgold-gallery__actions{display:flex;justify-content:center;margin-top:28px}
.vgold-gallery__more,.vgold-gallery__cta{
  appearance:none;border:1px solid var(--vg-line);background:transparent;color:var(--vg-ink);
  border-radius:999px;padding:14px 20px;font:inherit;font-weight:650;letter-spacing:.01em;
  cursor:pointer;text-decoration:none;transition:background .25s,border-color .25s,transform .25s
}
.vgold-gallery__more:hover,.vgold-gallery__cta:hover{
  background:rgba(212,175,55,.10);border-color:rgba(212,175,55,.62);transform:translateY(-1px)
}
.vgold-gallery__more span{color:var(--vg-gold);margin-left:6px}
.vgold-gallery__footer{
  margin-top:clamp(34px,5vw,58px);padding-top:24px;border-top:1px solid var(--vg-line);
  display:flex;gap:24px;align-items:center;justify-content:space-between
}
.vgold-gallery__footer p{margin:0;color:var(--vg-muted);line-height:1.65}
.vgold-gallery__cta{white-space:nowrap}

/* Lightbox */
.vgold-lightbox{
  width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;
  background:rgba(4,4,5,.94);color:#fff;overflow:hidden
}
.vgold-lightbox::backdrop{background:rgba(0,0,0,.84);backdrop-filter:blur(9px)}
.vgold-lightbox[open]{display:grid;place-items:center}
.vgold-lightbox__figure{margin:0;width:min(88vw,1320px);height:min(82dvh,920px);display:grid;place-items:center}
.vgold-lightbox__figure img{max-width:100%;max-height:76dvh;width:auto;height:auto;object-fit:contain;box-shadow:0 28px 90px rgba(0,0,0,.35)}
.vgold-lightbox__figure figcaption{margin-top:14px;color:#c9c2b5;font-size:.9rem;min-height:1.3em}
.vgold-lightbox__close,.vgold-lightbox__nav{
  position:fixed;z-index:6;border:1px solid rgba(255,255,255,.18);background:rgba(10,10,12,.55);
  color:#fff;backdrop-filter:blur(12px);cursor:pointer
}
.vgold-lightbox__close{top:18px;right:18px;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1}
.vgold-lightbox__nav{top:50%;transform:translateY(-50%);width:54px;height:70px;border-radius:999px;font-size:2.3rem}
.vgold-lightbox__nav--prev{left:18px}.vgold-lightbox__nav--next{right:18px}
.vgold-lightbox__close:hover,.vgold-lightbox__nav:hover{border-color:rgba(212,175,55,.65);background:rgba(212,175,55,.12)}

@media(max-width:900px){
  .vgold-gallery__header{grid-template-columns:1fr}
  .vgold-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .vgold-gallery__item,.vgold-gallery__item:nth-child(n),.vgold-gallery__item--hero{
    grid-column:span 1!important;grid-row:auto;aspect-ratio:4/5!important
  }
  .vgold-gallery__item--hero{grid-column:span 2!important;aspect-ratio:16/13!important}
  .vgold-gallery__footer{align-items:flex-start;flex-direction:column}
  .vgold-lightbox__nav{width:44px;height:58px}
  .vgold-lightbox__nav--prev{left:8px}.vgold-lightbox__nav--next{right:8px}
}
@media(max-width:520px){
  .vgold-gallery{padding-left:12px;padding-right:12px}
  .vgold-gallery__grid{gap:6px}
  .vgold-gallery__item{border-radius:2px}
  .vgold-gallery__zoom{right:10px;bottom:10px;width:32px;height:32px}
}
@media(prefers-reduced-motion:reduce){
  .vgold-gallery *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}