/* DACOP Lightbox - scoped styles to avoid layout shifts */
.dacop-lightbox-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.85); display: none; align-items: center; justify-content: center; z-index: 1100; opacity: 0; transition: opacity .25s ease; }
.dacop-lightbox-backdrop.is-open { display: flex; opacity: 1; }
.dacop-lightbox-container { position: relative; max-width: 90vw; max-height: 90vh; transform: translateY(4px) scale(.98); transition: transform .25s ease; }
.dacop-lightbox-backdrop.is-open .dacop-lightbox-container { transform: translateY(0) scale(1); }
.dacop-lightbox-img { max-width: 90vw; max-height: 80vh; border-radius: .5rem; box-shadow: 0 10px 40px rgba(0,0,0,.45); }
.dacop-lightbox-caption { margin-top: .75rem; color: #f8f9fa; text-align: center; font-size: .95rem; }
.dacop-lightbox-close, .dacop-lightbox-prev, .dacop-lightbox-next { position: absolute; background: rgba(33,37,41,.85); color: #fff; border: none; padding: .5rem .75rem; border-radius: .325rem; cursor: pointer; }
.dacop-lightbox-close { top: .75rem; right: .75rem; }
.dacop-lightbox-prev { top: 50%; left: .75rem; transform: translateY(-50%); }
.dacop-lightbox-next { top: 50%; right: .75rem; transform: translateY(-50%); }
.dacop-lightbox-error { color: #ffc107; text-align: center; margin-top: .5rem; }
.dacop-lightbox-close:focus, .dacop-lightbox-prev:focus, .dacop-lightbox-next:focus { outline: 2px solid #fff; outline-offset: 2px; }

@media (max-width: 576px) { 
  .dacop-lightbox-prev, .dacop-lightbox-next { padding: .4rem .6rem; }
  .dacop-lightbox-caption { font-size: .9rem; }
}