/* Scoped lightbox controls; page, gallery HTML and theme remain unchanged. */
#pc-lightbox[hidden], #pc-lightbox [hidden] { display: none !important; }
#pc-lightbox {
  --pc-lightbox-height: 100vh;
  --pc-lightbox-control: calc(44px * var(--pc-lightbox-ui, 1));
  --pc-lightbox-gap: calc(8px * var(--pc-lightbox-ui, 1));
  position: fixed; inset: 0; right: auto; bottom: auto; z-index: 10000;
  box-sizing: border-box; width: 100%; height: 100%; height: 100dvh;
  display: grid; grid-template-rows: minmax(0, 1fr) min(calc(88px * var(--pc-lightbox-ui, 1)), calc(var(--pc-lightbox-height) * .28));
  gap: var(--pc-lightbox-gap);
  padding: calc(56px * var(--pc-lightbox-ui, 1)) var(--pc-lightbox-gap) var(--pc-lightbox-gap);
  background: rgba(0,0,0,.92); color: #fff;
  font: calc(16px * var(--pc-lightbox-ui, 1))/1.4 Arial, sans-serif; text-align: center;
}
@supports (height: 100dvh) { #pc-lightbox { --pc-lightbox-height: 100dvh; } }
#pc-lightbox button {
  box-sizing: border-box; width: var(--pc-lightbox-control); height: var(--pc-lightbox-control);
  min-width: var(--pc-lightbox-control); min-height: var(--pc-lightbox-control);
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0; padding: 0; border: 1px solid #ceb077; border-radius: 3px;
  background: #28120b; color: #fff; font: inherit; cursor: pointer;
}
#pc-lightbox .pc-lightbox-symbol { display: block; position: relative; width: 100%; height: 100%; }
#pc-lightbox .pc-lightbox-symbol::before, #pc-lightbox .pc-lightbox-symbol::after { content: ''; position: absolute; top: 50%; left: 50%; box-sizing: border-box; }
#pc-lightbox .pc-lightbox-close .pc-lightbox-symbol::before, #pc-lightbox .pc-lightbox-close .pc-lightbox-symbol::after { width: calc(22px * var(--pc-lightbox-ui, 1)); height: calc(2px * var(--pc-lightbox-ui, 1)); background: currentColor; transform: translate(-50%, -50%) rotate(45deg); }
#pc-lightbox .pc-lightbox-close .pc-lightbox-symbol::after { transform: translate(-50%, -50%) rotate(-45deg); }
#pc-lightbox .pc-lightbox-prev .pc-lightbox-symbol::before, #pc-lightbox .pc-lightbox-next .pc-lightbox-symbol::before { width: calc(14px * var(--pc-lightbox-ui, 1)); height: calc(14px * var(--pc-lightbox-ui, 1)); border: solid currentColor; border-width: 0 0 calc(3px * var(--pc-lightbox-ui, 1)) calc(3px * var(--pc-lightbox-ui, 1)); transform: translate(-30%, -50%) rotate(45deg); }
#pc-lightbox .pc-lightbox-next .pc-lightbox-symbol::before { transform: translate(-70%, -50%) rotate(225deg); }
#pc-lightbox .pc-lightbox-close { position: absolute; top: var(--pc-lightbox-gap); right: var(--pc-lightbox-gap); }
#pc-lightbox button:focus-visible, #pc-lightbox a:focus-visible, #pc-lightbox-caption:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
#pc-lightbox .pc-lightbox-stage { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
#pc-lightbox .pc-lightbox-stage.pc-lightbox-group { grid-template-columns: var(--pc-lightbox-control) minmax(0, 1fr) var(--pc-lightbox-control); column-gap: var(--pc-lightbox-gap); }
#pc-lightbox .pc-lightbox-image { position: relative; min-width: 0; min-height: 0; height: 100%; overflow: hidden; }
#pc-lightbox .pc-lightbox-image img.pc-lightbox-layer { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; margin: 0; padding: 0; border: 0; }
#pc-lightbox .pc-lightbox-footer { min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: calc(3px * var(--pc-lightbox-ui, 1)); overflow-wrap: anywhere; }
#pc-lightbox p { margin: 0; padding: 0; }
#pc-lightbox-caption { min-height: 1.4em; max-height: 100%; align-self: center; overflow: auto; overscroll-behavior: contain; }
#pc-lightbox-counter { font-weight: bold; }
#pc-lightbox a { color: #ceb077; text-decoration: underline; }

/* Status and feedback never participate in the stage/footer grid. */
#pc-lightbox .pc-lightbox-status { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
#pc-lightbox .pc-lightbox-spinner { position: absolute; z-index: 2; top: 50%; left: 50%; width: calc(28px * var(--pc-lightbox-ui, 1)); height: calc(28px * var(--pc-lightbox-ui, 1)); box-sizing: border-box; margin-top: calc(-14px * var(--pc-lightbox-ui, 1)); margin-left: calc(-14px * var(--pc-lightbox-ui, 1)); border: calc(3px * var(--pc-lightbox-ui, 1)) solid #666; border-top-color: #fff; border-radius: 50%; background: rgba(0,0,0,.4); animation: pc-lightbox-spin .8s linear infinite; pointer-events: none; }
#pc-lightbox .pc-lightbox-error { position: absolute; z-index: 3; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: var(--pc-lightbox-gap); padding: var(--pc-lightbox-gap); box-sizing: border-box; overflow: auto; overflow-wrap: anywhere; background: rgba(0,0,0,.8); }
@keyframes pc-lightbox-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #pc-lightbox .pc-lightbox-layer { transition: none !important; }
  #pc-lightbox .pc-lightbox-spinner { animation: none; }
}
