/* ===== LV8 Health — Gallery page styles ===== */
/* Brand tokens (mirrors site palette) */
.lv8-gallery{
  --g-ink:#000;
  --g-cream:rgba(244,239,224,1);
  --g-ivory:rgba(255,251,238,1);
  --g-taupe:rgba(195,184,157,1);
  --g-bronze:rgba(160,136,77,1);
  --g-olive:rgba(81,74,56,1);
  --g-serif:'SangBleuSunrise-Regular-WebXL','SangBleuSunrise-Medium-WebXL',Georgia,'Times New Roman',serif;
  --g-sans:'NeueHaasDisplay-Roman','NeueHaasDisplay-Light',Inter,system-ui,-apple-system,sans-serif;
  background:var(--g-ivory);
  padding:130px 24px 96px;
  font-family:var(--g-sans);
  color:var(--g-ink);
  -webkit-font-smoothing:antialiased;
}
.lv8-gallery *{box-sizing:border-box;}

.lv8-gallery__head{
  max-width:760px;margin:0 auto 56px;text-align:center;
}
.lv8-gallery__eyebrow{
  font-family:var(--g-sans);
  text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:500;
  color:var(--g-bronze);margin:0 0 18px;
}
.lv8-gallery__title{
  font-family:var(--g-serif);font-weight:400;line-height:1.04;
  font-size:clamp(40px,6vw,68px);margin:0 0 20px;color:var(--g-ink);
}
.lv8-gallery__subtitle{
  font-family:var(--g-sans);font-size:17px;line-height:1.6;
  color:var(--g-olive);margin:0;
}

/* Masonry via CSS columns — handles mixed portrait heights gracefully */
.lv8-gallery__grid{
  max-width:1280px;margin:0 auto;
  column-count:4;column-gap:18px;
}
@media (max-width:1100px){.lv8-gallery__grid{column-count:3;}}
@media (max-width:760px){.lv8-gallery__grid{column-count:2;column-gap:12px;}.lv8-gallery{padding:110px 16px 72px;}}
@media (max-width:420px){.lv8-gallery__grid{column-count:1;}}

.g-tile{
  display:block;width:100%;padding:0;margin:0 0 18px;border:0;
  background:var(--g-cream);cursor:pointer;position:relative;overflow:hidden;
  border-radius:14px;break-inside:avoid;-webkit-column-break-inside:avoid;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease;
  appearance:none;-webkit-appearance:none;
}
@media (max-width:760px){.g-tile{margin-bottom:12px;border-radius:10px;}}
.g-tile img{
  display:block;width:100%;height:auto;border-radius:inherit;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.g-tile:hover,.g-tile:focus-visible{
  transform:translateY(-4px);
  box-shadow:0 18px 40px -16px rgba(81,74,56,.55);
  outline:none;
}
.g-tile:hover img{transform:scale(1.04);}
.g-tile:focus-visible{box-shadow:0 0 0 3px var(--g-bronze),0 18px 40px -16px rgba(81,74,56,.55);}

/* Play badge for video tiles */
.g-tile__play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.g-tile__play::before{
  content:"";width:58px;height:58px;border-radius:50%;
  background:rgba(255,251,238,.92);
  box-shadow:0 6px 22px rgba(0,0,0,.28);
  transition:transform .35s ease,background .35s ease;
}
.g-tile__play::after{
  content:"";position:absolute;
  width:0;height:0;border-style:solid;
  border-width:11px 0 11px 18px;border-color:transparent transparent transparent var(--g-olive);
  margin-left:4px;
}
.g-tile:hover .g-tile__play::before{transform:scale(1.08);background:#fff;}

/* ===== Lightbox ===== */
.g-lightbox{
  position:fixed;inset:0;z-index:99999;display:none;
  align-items:center;justify-content:center;
  background:rgba(20,18,12,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;transition:opacity .28s ease;padding:40px;
}
.g-lightbox.is-open{display:flex;opacity:1;}
.g-lightbox__stage{
  max-width:92vw;max-height:86vh;display:flex;align-items:center;justify-content:center;
}
.g-lightbox__stage img,.g-lightbox__stage video{
  max-width:92vw;max-height:86vh;width:auto;height:auto;
  border-radius:10px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
  background:#000;
}
.g-lb-btn{
  position:absolute;border:0;background:rgba(255,251,238,.1);color:var(--g-ivory);
  width:52px;height:52px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,transform .2s ease;
  font-family:var(--g-sans);
}
.g-lb-btn:hover{background:rgba(255,251,238,.22);}
.g-lb-btn svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;}
.g-lb-close{top:24px;right:24px;}
.g-lb-prev{left:24px;top:50%;transform:translateY(-50%);}
.g-lb-next{right:24px;top:50%;transform:translateY(-50%);}
.g-lb-prev:hover{transform:translateY(-50%) scale(1.08);}
.g-lb-next:hover{transform:translateY(-50%) scale(1.08);}
.g-lb-counter{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  color:rgba(255,251,238,.75);font-family:var(--g-sans);font-size:13px;
  letter-spacing:.12em;
}
@media (max-width:760px){
  .g-lightbox{padding:16px;}
  .g-lb-close{top:12px;right:12px;}
  .g-lb-prev{left:8px;}.g-lb-next{right:8px;}
  .g-lb-btn{width:44px;height:44px;}
}
