/* =========================================================
   Kilch Gallery - Photo viewer (lightbox carousel)
   ========================================================= */

.kg-lightbox {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(0, 0, 0, 0.72); /* translucent backdrop */
  z-index: 2147483000;            /* above SPPB / Helix layers */
}

.kg-lightbox[hidden] { display: none !important; }

.kg-lightbox-ui,
.kg-lightbox-ui * { pointer-events: auto; }

.kg-lightbox-ui{
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: 16px;
}

.kg-lightbox-topbar{
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto 12px;
  width: min(1100px, 96vw);
}

.kg-lightbox-tabs{
  display: inline-flex;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 999px;
  overflow: hidden;
}

.kg-lightbox-tab{
  border: 0;
  background: transparent;
  color: rgba(255,255,255,0.9);
  padding: 8px 12px;
  cursor: pointer;
  font-weight: 800;
}

.kg-lightbox-tab.is-active{
  background: rgba(255,255,255,0.92);
  color: #111827;
}

.kg-lightbox-controls{
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.kg-lightbox-play{
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.12);
  color: #fff;
  border-radius: 999px;
  padding: 8px 12px;
  cursor: pointer;
  font-weight: 800;
}

.kg-lightbox-play.is-on{
  background: rgba(13,110,253,0.85);
  border-color: rgba(13,110,253,0.85);
}

.kg-lightbox-counter{
  color: rgba(255,255,255,0.85);
  font-size: 13px;
  min-width: 72px;
  text-align: center;
}

.kg-lightbox-close{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 28px;
  line-height: 38px;
  cursor: pointer;
}

.kg-lightbox-inner{
  width: min(1100px, 96vw);
  margin: 0 auto;
  background: rgba(17,24,39,0.35);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 16px;
  padding: 12px;
  box-shadow: 0 24px 80px rgba(0,0,0,0.35);
}

.kg-lightbox-stage{
  position: relative;
  display: grid;
  place-items: center;
  min-height: 45vh;
}

#kg-lightbox-img{
  max-width: 100%;
  max-height: 100vh;
  display: block;
  border-radius: 12px;
}

.kg-lightbox-slide{
  display: none !important;
}

.kg-lightbox-slide h3{
  margin: 0 0 8px;
  font-size: 26px;
  font-weight: 900;
}

.kg-lightbox-slide p{
  margin: 0;
  opacity: 0.85;
  line-height: 1.45;
}

.kg-lightbox-caption{
  margin-top: 10px;
  text-align: center;
  color: rgba(255,255,255,0.88);
  font-size: 14px;
}

/* Nav buttons */
.kg-lightbox-nav{
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.12);
  color: #fff;
  font-size: 38px;
  line-height: 50px;
  cursor: pointer;
  user-select: none;
}

.kg-lightbox-prev{ left: 16px; }
.kg-lightbox-next{ right: 16px; }

@media (max-width: 700px){
  .kg-lightbox-nav{ width: 48px; height: 48px; font-size: 34px; line-height: 44px; }
}

/* Tablet: ensure arrows are above the canvas/image */
.kg-lightbox-nav,
.kg-lightbox-topbar,
.kg-lightbox-close {
  z-index: 50;
}

/* Ensure inner canvas doesn't create a higher stacking context than nav */
.kg-lightbox-inner,
.kg-lightbox-stage {
  position: relative;
  z-index: 10;
}

/* Center the lightbox content vertically a bit better on tablets */
@media (max-width: 1024px) {
  .kg-lightbox-ui {
    padding: 10px;
  }

  .kg-lightbox-inner {
    margin-top: 6px;
  }
}

/* Mobile: keep toggle + search in one row, not stacked */
@media (max-width: 600px) {
  .kilchgallery-toolbar {
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .kilchgallery-viewtoggle {
    flex: 0 0 auto !important;
    width: auto !important;
  }

  .kilchgallery-search {
    flex: 1 1 auto !important;
    min-width: 0;
  }

  #kg-search {
    width: 100%;
  }
}

/* Mobile grid: make cards wider / fewer columns */
@media (max-width: 600px) {
  .kilchgallery-landing #kg-container.kg-grid {
    grid-template-columns: 1fr !important;  /* one big card per row */
    gap: 16px !important;
  }
}

/* Mobile: scale down pills + actions so they don't feel oversized */
@media (max-width: 600px) {
  .kg-title {
    font-size: 17px;
    text-align: center !important;
  }

  .kg-meta {
    font-size: 11px;
  }

  .kg-counts,
  .kg-created {
    padding: 2px 8px;
  }

  .kg-share.kg-share-icon {
    width: 36px;
    height: 36px;
  }

  .kg-star { font-size: 20px; }

  .kg-ratingavg { font-size: 0.85rem; }
}

/* Mobile: stack gallery tools neatly */
@media (max-width: 600px) {
  .kg-gallery-tools {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .kg-gallery-tools-left {
    order: 1;
  }

  .kg-gallery-tools-controls {
    order: 2;
    margin-left: 0;
    justify-content: space-between;
    gap: 10px;
  }

  .kg-backlink {
    width: 100%;
    justify-content: center;
  }

  /* Make share/rating smaller so they fit */
  .kg-share.kg-share-icon {
    width: 38px;
    height: 38px;
  }

  .kg-ratingwrap {
    transform: scale(0.92);
    transform-origin: right center;
  }
}

/* Phone: keep controls visible and overlay nav closer to image */
@media (max-width: 600px) {
  .kg-lightbox-topbar {
    width: 100%;
    margin: 0 0 8px;
  }

  .kg-lightbox-inner {
    width: 100%;
    padding: 10px;
    border-radius: 14px;
  }

  .kg-lightbox-nav {
    top: 58%;
    width: 46px;
    height: 46px;
    font-size: 32px;
    line-height: 42px;
  }

  .kg-lightbox-prev { left: 8px; }
  .kg-lightbox-next { right: 8px; }

  /* Ensure nav overlays image */
  .kg-lightbox-nav { z-index: 80; }
}

/* Mobile: cap photo grid (never above ACP desktop value) */
@media (max-width: 800px) {
  .kg-photo-grid {
    grid-template-columns: repeat(min(2, var(--kg-photos-cols, 4)), minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .kg-photo-card img {
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
    width: 100% !important;
    object-fit: cover !important;
    border-radius: 12px;
  }
}

@media (max-width: 520px) {
  .kg-photo-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .kg-photo-card img {
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
  }
}

@media (max-width: 700px) {
  .kg-photo-grid,
  .kilch-gallery .kg-photo-grid {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   Lightbox: keep UI centered and safe under header (tablet/mobile)
   ========================================================= */

/* Always center the topbar and inner canvas */
.kg-lightbox-topbar,
.kg-lightbox-inner {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep everything centered within viewport */
.kg-lightbox-topbar {
  width: min(1100px, 96vw) !important;
  margin-top: 75px !important;
}

.kg-lightbox-inner {
  width: min(1100px, 96vw) !important;
}

/* Tablet tweaks — inner width is full-viewport on desktop (see min-width: 701px) */
@media (max-width: 1024px) {
  .kg-lightbox-topbar {
    width: min(900px, 96vw) !important;
  }
}

/* Prevent site header from covering lightbox controls */
:root { --kg-header-offset: 76px; }  /* adjust 64–92px if needed */

@media (max-width: 700px) {
  .kg-lightbox-ui {
    padding-top: calc(var(--kg-header-offset) + 8px) !important;
  }

  /* Put nav buttons slightly lower as well */
  .kg-lightbox-nav {
    top: calc(50% + (var(--kg-header-offset) / 2)) !important;
  }
}

.kg-lightbox-ui {
  position: relative;
  z-index: 1;
}

/* ===== Kilch Lightbox Backdrop + Visibility Fix ===== */
.kg-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.kg-lightbox[hidden] {
  display: none !important;
}

.kg-lightbox-ui {
  position: relative;
  z-index: 1;
}

/* ensure topbar/controls readable */
.kg-lightbox-topbar,
.kg-lightbox-caption,
.kg-lightbox-controls,
.kg-lightbox-tab,
.kg-lightbox-play,
.kg-lightbox-close,
.kg-lightbox-counter {
  color: #fff;
}

/* ===== Force Lightbox to overlay the page (fix template overrides) ===== */
#kg-lightbox.kg-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: rgba(0, 0, 0, 0.72) !important;
}

#kg-lightbox.kg-lightbox[hidden] {
  display: none !important;
}

/* =========================================================
   Lightbox: controls on the photo, no Play, full-viewport image
   ========================================================= */
html.kg-lightbox-open,
body.kg-lightbox-open{
  overflow: hidden !important;
}

body.kg-lightbox-open #sp-header,
body.kg-lightbox-open #sp-header-sticky-wrapper,
body.kg-lightbox-open #sp-top-bar,
body.kg-lightbox-open #sp-footer,
body.kg-lightbox-open .sticky-header{
  z-index: 1 !important;
}

body.kg-lightbox-open #kg-overlay-modal{
  z-index: 2147483646 !important;
}

#kg-lightbox,
#kg-lightbox.kg-lightbox,
body > #kg-lightbox,
#kg-overlay-modal #kg-lightbox{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  z-index: 2147483647 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0, 0, 0, 0.94) !important;
  padding: 0 !important;
  margin: 0 !important;
}

#kg-lightbox[hidden],
#kg-lightbox.kg-lightbox[hidden]{
  display: none !important;
}

#kg-lightbox .kg-lightbox-ui{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 1 !important;
}

#kg-lightbox .kg-lightbox-play{
  display: none !important;
}

#kg-lightbox .kg-lightbox-topbar{
  display: contents !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}

#kg-lightbox .kg-lightbox-controls{
  display: contents !important;
}

#kg-lightbox .kg-lightbox-inner{
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#kg-lightbox-stage,
#kg-lightbox .kg-lightbox-stage{
  position: relative !important;
  inset: auto !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  z-index: 1 !important;
}

#kg-lightbox .kg-lightbox-frame{
  position: relative !important;
  display: inline-block !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  line-height: 0 !important;
  margin: 0 !important;
}

#kg-lightbox-img{
  width: auto !important;
  height: auto !important;
  max-width: 100vw !important;
  max-height: 100dvh !important;
  object-fit: contain !important;
  object-position: center center !important;
  display: block !important;
  border-radius: 0 !important;
  margin: 0 !important;
  cursor: e-resize;
}

#kg-lightbox-stage::before{
  content: none !important;
  display: none !important;
}

#kg-lightbox .kg-lightbox-tabs,
#kg-lightbox .kg-lightbox-tab{
  display: none !important;
  pointer-events: none !important;
}

#kg-lightbox .kg-lightbox-section{
  display: inline-block !important;
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 3 !important;
  pointer-events: none !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  background: rgba(0, 0, 0, 0.45) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

#kg-lightbox .kg-lightbox-section[data-section="wip"]:empty,
#kg-lightbox .kg-lightbox-section[hidden]{
  display: none !important;
}

#kg-lightbox .kg-lightbox-close,
#kg-lightbox .kg-lightbox-frame .kg-lightbox-close,
#kg-lightbox-stage .kg-lightbox-close,
body.kg-lightbox-open .kg-lightbox-close{
  position: absolute !important;
  inset: unset !important;
  top: 12px !important;
  right: 12px !important;
  left: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  transform: none !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  background: rgba(0, 0, 0, 0.45) !important;
  color: #fff !important;
  font-size: 28px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 4 !important;
}

#kg-lightbox .kg-lightbox-counter{
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  bottom: 12px !important;
  top: auto !important;
  transform: translateX(-50%) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  min-width: 0 !important;
  text-align: center !important;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
  z-index: 3 !important;
  pointer-events: none !important;
}

#kg-lightbox .kg-lightbox-nav{
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 3 !important;
  width: 48px !important;
  height: 48px !important;
}

#kg-lightbox .kg-lightbox-prev{ left: 0 !important; right: auto !important; }
#kg-lightbox .kg-lightbox-next{ right: 0 !important; left: auto !important; }

#kg-lightbox .kg-lightbox-caption,
#kg-lightbox .kg-lightbox-slide,
#kg-lightbox-slide{
  display: none !important;
}

@media (max-width: 700px){
  #kg-lightbox .kg-lightbox-ui{
    padding: 0 !important;
  }
  #kg-lightbox .kg-lightbox-nav{
    width: 42px !important;
    height: 42px !important;
    font-size: 30px !important;
  }
}

/* Desktop lightbox: fill the viewport (do not cap at 900/1100) */
@media (min-width: 701px){
  .kg-lightbox-inner,
  #kg-lightbox .kg-lightbox-inner,
  #kg-lightbox-stage,
  #kg-lightbox .kg-lightbox-stage{
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
  }

  #kg-lightbox .kg-lightbox-frame{
    width: auto !important;
    height: auto !important;
    max-width: 100vw !important;
    max-height: 100dvh !important;
  }

  #kg-lightbox-img,
  #kg-lightbox #kg-lightbox-img{
    width: min(100vw, 100%) !important;
    max-width: 100vw !important;
    height: auto !important;
    max-height: 100dvh !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}