/* Nestor rehydration shim — restores JS behaviors stripped during site import.
   Scoped with nl- prefixes so it can't collide with the captured theme. */

/* Lightbox */
.nl-lb{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,.9);opacity:0;transition:opacity .2s ease;}
.nl-lb.open{display:flex;opacity:1;}
.nl-lb-fig{margin:0;max-width:92vw;max-height:88vh;display:flex;align-items:center;justify-content:center;}
.nl-lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:4px;box-shadow:0 6px 40px rgba(0,0,0,.5);}
.nl-lb button{position:absolute;background:rgba(0,0,0,.35);color:#fff;border:0;cursor:pointer;line-height:1;
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:34px;transition:background .2s;}
.nl-lb button:hover{background:rgba(255,255,255,.22);}
.nl-lb-close{top:18px;right:18px;font-size:30px;}
.nl-lb-prev{left:18px;top:50%;transform:translateY(-50%);}
.nl-lb-next{right:18px;top:50%;transform:translateY(-50%);}
.nl-lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:none;color:#fff;
  width:auto;height:auto;font-size:14px;opacity:.8;border-radius:0;}
@media(max-width:640px){.nl-lb button{width:44px;height:44px;font-size:26px;}}

/* Defensive sticky header (only applied when the captured header lost its fixed CSS) */
.nl-fixed-header{position:sticky;top:0;z-index:1000;background:var(--nl-header-bg,#fff);
  box-shadow:0 2px 12px rgba(0,0,0,.08);}

/* Carousel arrows we may need to reveal */
.nl-car-arrow-shown{opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
