.place-gallery-v2 {
  max-width: 1540px;
  margin: 0 auto;
  padding: 0 clamp(1.4rem, 4vw, 4rem) clamp(7rem, 11vw, 11rem);
}

.place-gallery-heading {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: clamp(2rem, 8vw, 9rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}

.place-gallery-heading h2 {
  font-family: var(--font-serif);
  font-size: clamp(3rem, 5vw, 5.4rem);
  font-weight: 300;
  line-height: .94;
  color: var(--white);
}

.place-gallery-heading > p {
  max-width: 460px;
  padding-left: 1.5rem;
  border-left: 1px solid rgba(201, 168, 76, .42);
  color: rgba(212, 201, 176, .68);
  font-size: .78rem;
  line-height: 1.9;
}

.place-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: clamp(230px, 24vw, 390px);
  gap: .8rem;
}

.place-gallery-grid figure {
  position: relative;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(201, 168, 76, .18);
  background: #0d0b08;
}

.place-gallery-grid .gallery-wide { grid-column: span 2; }
.place-gallery-grid .gallery-tall { grid-row: span 2; }

.place-gallery-grid img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.78) brightness(.78);
  transition: transform .8s ease, filter .8s ease;
}

.place-gallery-grid figure:hover img {
  transform: scale(1.025);
  filter: saturate(.96) brightness(.88);
}

.place-gallery-grid figcaption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: 2.5rem 1.1rem 1rem;
  background: linear-gradient(transparent, rgba(4, 4, 3, .88));
  color: rgba(245, 240, 232, .88);
  font-family: var(--font-serif);
  font-size: 1.05rem;
}

.place-gallery-grid figcaption span {
  color: var(--gold);
  font-family: var(--font-sans);
  font-size: .55rem;
  letter-spacing: .12em;
}

@media (max-width: 1050px) {
  .place-gallery-heading { grid-template-columns: 1fr; gap: 1.8rem; }
  .place-gallery-heading > p { max-width: 680px; }
  .place-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(260px, 43vw, 430px); }
}

@media (max-width: 640px) {
  #cursor-dot,
  #cursor-ring { display: none !important; }
  html,
  body,
  body * { cursor: auto !important; }
  .place-gallery-v2 { padding-bottom: 7rem; }
  .place-gallery-heading h2 { font-size: clamp(2.8rem, 14vw, 4rem); }
  .place-gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 410px; }
  .place-gallery-grid .gallery-wide { grid-column: auto; }
  .place-gallery-grid .gallery-tall { grid-row: auto; }
  .place-gallery-grid figure:nth-child(n+7) { display: none; }
}

@media (hover: none), (pointer: coarse) {
  #cursor-dot,
  #cursor-ring { display: none !important; }
  html,
  body,
  body * { cursor: auto !important; }
  .place-gallery-grid figure:hover img { transform: none; }
}

/* picture wrapper (WebP) se comporta como la img que envuelve */
.place-gallery-grid figure picture{display:block;width:100%;height:100%}
.place-gallery-grid figure picture img{width:100%;height:100%;object-fit:cover}
