/* ============================================================ B&A Construction — Lightbox partagé (galerie + pages haut de gamme) Nécessite base.css (variables --sand, --accent, --dark-brown, --brown) ============================================================ */
/* ── LIGHTBOX MODAL ── */
 #lightbox{
     position:fixed;
     inset:0;
     z-index:999;
     background:rgba(10,6,3,.92);
     backdrop-filter:blur(10px);
     display:flex;
     align-items:center;
     justify-content:center;
     opacity:0;
     pointer-events:none;
     transition:opacity .3s ease;
}
 #lightbox.open{
     opacity:1;
     pointer-events:all 
}
 .lb-stage{
     position:relative;
     width:100%;
     height:100%;
     display:flex;
     align-items:center;
     justify-content:center;
     overflow:hidden;
     cursor:zoom-in;
     touch-action:none;
}
 .lb-stage.zoomed{
     cursor:grab 
}
 .lb-stage.zoomed:active{
     cursor:grabbing 
}
 .lb-img{
     max-width:90vw;
     max-height:85vh;
     object-fit:contain;
     transform-origin:center center;
     transform:scale(1) translate(0,0);
     transition:transform .35s cubic-bezier(.25,.46,.45,.94);
     user-select:none;
     border:1px solid rgba(196,148,74,.15);
     box-shadow:0 30px 80px rgba(0,0,0,.7);
     display:block;
}
 .lb-stage.zoomed .lb-img{
     transition:none 
}
 .lb-placeholder{
     width:min(80vw,700px);
     height:min(70vh,500px);
     background:linear-gradient(135deg,var(--dark-brown),var(--brown));
     display:flex;
     flex-direction:column;
     align-items:center;
     justify-content:center;
     gap:14px;
     color:rgba(232,220,200,.35);
     font-size:.8rem;
     letter-spacing:.14em;
     text-transform:uppercase;
     border:1px solid rgba(196,148,74,.15);
     box-shadow:0 30px 80px rgba(0,0,0,.7);
}
 .lb-placeholder svg{
     width:52px;
     height:52px;
     opacity:.35;
     stroke:currentColor;
     fill:none;
     stroke-width:1.2 
}
 .lb-bar{
     position:fixed;
     bottom:0;
     left:0;
     right:0;
     padding:16px 5%;
     background:linear-gradient(0deg,rgba(10,6,3,.85) 0%,transparent 100%);
     display:flex;
     align-items:center;
     justify-content:space-between;
     z-index:1001;
     pointer-events:none;
     opacity:0;
     transition:opacity .3s;
}
 #lightbox.open .lb-bar{
     opacity:1;
     pointer-events:all 
}
 .lb-caption{
     display:flex;
     flex-direction:column;
     gap:3px 
}
 .lb-caption span{
     font-size:.8rem;
     letter-spacing:.14em;
     text-transform:uppercase;
     color:var(--sand);
     font-weight:500 
}
 .lb-caption em{
     font-style:normal;
     font-size:.68rem;
     letter-spacing:.1em;
     color:var(--sand);
     text-transform:uppercase;
     opacity:.75 
}
 .lb-hint{
     font-size:.65rem;
     letter-spacing:.12em;
     text-transform:uppercase;
     color:rgba(232,220,200,.3) 
}
 .lb-btn{
     position:fixed;
     top:50%;
     transform:translateY(-50%);
     z-index:1001;
     background:rgba(196,148,74,.12);
     border:1px solid rgba(196,148,74,.3);
     color:var(--sand);
     width:48px;
     height:48px;
     display:flex;
     align-items:center;
     justify-content:center;
     cursor:pointer;
     transition:background .2s,border-color .2s,transform .2s;
     font-size:1.2rem;
}
 .lb-btn:hover{
     background:rgba(196,148,74,.3);
     border-color:var(--accent);
     transform:translateY(-50%) scale(1.05) 
}
 #lb-prev{
     left:18px 
}
 #lb-next{
     right:18px 
}
 #lb-close{
     position:fixed;
     top:18px;
     right:22px;
     z-index:1001;
     background:rgba(196,148,74,.12);
     border:1px solid rgba(196,148,74,.3);
     color:var(--sand);
     width:42px;
     height:42px;
     display:flex;
     align-items:center;
     justify-content:center;
     cursor:pointer;
     font-size:1.1rem;
     transition:background .2s,border-color .2s;
}
 #lb-close:hover{
     background:rgba(196,148,74,.3);
     border-color:var(--accent) 
}
 #lb-counter{
     position:fixed;
     top:24px;
     left:50%;
     transform:translateX(-50%);
     z-index:1001;
     font-size:.68rem;
     letter-spacing:.18em;
     text-transform:uppercase;
     color:rgba(232,220,200,.4);
}
 .lb-zoom-hint{
     position:fixed;
     top:22px;
     left:22px;
     z-index:1001;
     font-size:.65rem;
     letter-spacing:.12em;
     text-transform:uppercase;
     color:rgba(232,220,200,.28);
     pointer-events:none;
     display:flex;
     align-items:center;
     gap:6px;
}
 @media(hover:none),(pointer:coarse){
     .lb-zoom-hint{
         display:none 
    }
     .lb-hint{
         display:none 
    }
}
