/* Luxury gallery layer for Ravishing Beaute */

.page-shell .gallery-grid{
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
  align-items:stretch;
}

.gallery-item{
  min-height:360px;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  cursor:zoom-in;
  isolation:isolate;
}

.gallery-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.78));
  opacity:.72;
  z-index:1;
  pointer-events:none;
}

.gallery-item img{
  transition:transform .55s ease, filter .55s ease;
}

.gallery-item:hover img{
  transform:scale(1.06);
  filter:saturate(1.08) contrast(1.04);
}

.gallery-item .caption{
  z-index:2;
  backdrop-filter:blur(10px);
  background:rgba(4,10,12,.58);
}

.gallery-item:nth-child(1){grid-column:span 7;min-height:560px;}
.gallery-item:nth-child(2){grid-column:span 5;min-height:560px;}
.gallery-item:nth-child(3){grid-column:span 4;}
.gallery-item:nth-child(4){grid-column:span 4;}
.gallery-item:nth-child(5){grid-column:span 4;}
.gallery-item:nth-child(6){grid-column:span 5;}
.gallery-item:nth-child(7){grid-column:span 7;}
.gallery-item:nth-child(8){grid-column:span 4;}
.gallery-item:nth-child(9){grid-column:span 4;}
.gallery-item:nth-child(10){grid-column:span 4;}
.gallery-item:nth-child(11){grid-column:span 6;}
.gallery-item:nth-child(12){grid-column:span 6;}
.gallery-item:nth-child(13){grid-column:span 5;}
.gallery-item:nth-child(14){grid-column:span 7;}

.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  place-items:center;
  padding:1.25rem;
  background:rgba(0,0,0,.9);
  backdrop-filter:blur(12px);
}

.gallery-lightbox.is-open{
  display:grid;
}

.gallery-lightbox img{
  width:min(100%,980px);
  max-height:82vh;
  object-fit:contain;
  border-radius:24px;
  box-shadow:0 34px 90px rgba(0,0,0,.55);
}

.gallery-lightbox button{
  position:absolute;
  top:1rem;
  right:1rem;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(4,10,12,.74);
  color:#fff;
  font-size:1.45rem;
  cursor:pointer;
}

@media(max-width:900px){
  .page-shell .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-item,
  .gallery-item:nth-child(n){grid-column:span 1;min-height:360px;}
  .gallery-item:nth-child(1){grid-column:span 2;min-height:480px;}
}

@media(max-width:620px){
  .page-shell .gallery-grid{grid-template-columns:1fr;}
  .gallery-item,
  .gallery-item:nth-child(n){grid-column:span 1;min-height:340px;}
  .gallery-item:nth-child(1){min-height:420px;}
}
