/* =========================================================
   Public gallery + lightbox (business pages)
   ========================================================= */

.gallery-section{padding-block:clamp(60px,8vw,104px)}
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:14px;
}
.gallery-item{
  position:relative;margin:0;
  border-radius:var(--radius-sm);overflow:hidden;
  background:var(--white);
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s;
}
.gallery-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.gallery-item__btn{
  position:relative;display:block;width:100%;padding:0;border:0;background:#0a0d0b;cursor:zoom-in;
  aspect-ratio:4/3;overflow:hidden;
}
.gallery-item__btn img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s var(--ease);
}
.gallery-item:hover .gallery-item__btn img{transform:scale(1.05)}
.gallery-item__btn:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.gallery-item__play{
  position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
}
.gallery-item__play svg{
  width:52px;height:52px;padding:13px;border-radius:50%;
  background:rgba(6,24,19,.62);color:var(--ivory);
  border:1px solid rgba(247,243,233,.38);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 12px 28px -12px rgba(0,0,0,.7);
  fill:currentColor;
  transition:transform .3s var(--ease),background .3s;
}
.gallery-item:hover .gallery-item__play svg{transform:scale(1.08);background:rgba(201,162,39,.92);color:var(--forest);border-color:transparent}
.gallery-item__kind{
  position:absolute;top:10px;left:10px;z-index:2;
  padding:4px 9px;border-radius:999px;
  background:rgba(6,24,19,.7);color:var(--ivory);
  border:1px solid rgba(247,243,233,.22);
  font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
}
.gallery-item__cap{padding:12px 15px 14px;display:grid;gap:3px}
.gallery-item__cap strong{font-family:var(--serif);font-size:15px;font-weight:500;line-height:1.3;color:var(--ink)}
.gallery-item__cap span{font-size:12px;line-height:1.5;color:var(--muted)}

.gallery-owner-note{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  margin-top:22px;padding:14px 18px;border-radius:14px;
  background:color-mix(in srgb,var(--accent) 8%,var(--white));
  border:1px dashed color-mix(in srgb,var(--accent) 34%,var(--line));
  font-size:12.5px;color:var(--ink-soft);
}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:200;display:grid;place-items:center}
.lightbox[hidden]{display:none}
.lightbox.is-open{animation:lb-in .22s var(--ease)}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
.lightbox__backdrop{position:absolute;inset:0;background:rgba(4,14,11,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:zoom-out}
.lightbox__dialog{
  position:relative;z-index:1;
  width:min(94vw,1100px);max-height:92vh;
  display:flex;flex-direction:column;
  color:var(--ivory);
}
.lightbox__stage{
  position:relative;flex:1;min-height:0;
  display:grid;place-items:center;
  background:#000;border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid rgba(227,197,107,.22);
  box-shadow:0 50px 100px -40px rgba(0,0,0,.85);
}
.lightbox__stage img{max-width:100%;max-height:76vh;width:auto;height:auto;display:block;object-fit:contain}
.lightbox__stage video{max-width:100%;max-height:76vh;width:auto;height:auto;display:block;background:#000}
.lightbox__meta{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;
  padding:14px 4px 0;
}
.lightbox__meta strong{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--ivory)}
.lightbox__meta span{font-size:12.5px;color:rgba(247,243,233,.68);line-height:1.5}
.lightbox__count{margin-left:auto;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.lightbox__close{
  position:absolute;right:-6px;top:-48px;z-index:3;
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(247,243,233,.3);background:rgba(6,24,19,.6);color:var(--ivory);
  font-size:22px;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background .2s,color .2s;
}
.lightbox__close:hover{background:var(--gold);color:var(--forest);border-color:var(--gold)}
.lightbox__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(247,243,233,.28);background:rgba(6,24,19,.6);color:var(--ivory);
  font-size:26px;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background .2s,color .2s;
}
.lightbox__nav:hover{background:var(--gold);color:var(--forest);border-color:var(--gold)}
.lightbox__nav--prev{left:-60px}
.lightbox__nav--next{right:-60px}
.lightbox__nav[disabled]{opacity:0;pointer-events:none}
body.lb-open{overflow:hidden}

@media (max-width:900px){
  .lightbox__nav--prev{left:6px}
  .lightbox__nav--next{right:6px}
  .lightbox__nav{width:40px;height:40px;font-size:22px}
  .lightbox__close{right:6px;top:-46px}
}
@media (max-width:640px){
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .gallery-item__cap{padding:10px 12px 12px}
  .gallery-item__cap strong{font-size:13.5px}
  .lightbox__stage img,.lightbox__stage video{max-height:64vh}
}
