/* Galleria ordinata delle case history + lightbox.
   Le pagine definiscono i propri colori; qui solo struttura e comportamento. */

.case-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.case-gallery figure{position:relative;margin:0;overflow:hidden;border-radius:16px;background:#0b1a2e;border:1px solid var(--line, rgba(255,255,255,.14))}
.case-gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,17,31,0) 55%,rgba(6,17,31,.55));opacity:0;transition:opacity .35s ease;pointer-events:none}
.case-gallery figure:hover::after{opacity:1}
.case-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.case-gallery figure:hover img{transform:scale(1.035)}
.case-gallery figcaption{position:absolute;left:14px;right:14px;bottom:12px;font-size:12.5px;line-height:1.4;color:#eaf4ff;text-shadow:0 1px 8px rgba(0,0,0,.55);opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease}
.case-gallery figure:hover figcaption,.case-gallery figure:focus-within figcaption{opacity:1;transform:none}
/* Tasselli: larghezza e proporzione decise dal contenuto, non casuali */
.case-gallery .t6{grid-column:span 6}
.case-gallery .t4{grid-column:span 4}
.case-gallery .t3{grid-column:span 3}
.case-gallery .t2{grid-column:span 2}
.case-gallery .r169{aspect-ratio:16/9}
.case-gallery .r32{aspect-ratio:3/2}
.case-gallery .r43{aspect-ratio:4/3}
.case-gallery .r11{aspect-ratio:1/1}
.case-gallery .r34{aspect-ratio:3/4}
.case-gallery .apri{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(6,17,31,.62);color:#eaf4ff;font-size:11.5px;letter-spacing:.02em;opacity:0;transition:opacity .3s ease}
.case-gallery figure:hover .apri,.case-gallery figure:focus-within .apri{opacity:1}
@media (max-width:900px){
  .case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .case-gallery .t6,.case-gallery .t4,.case-gallery .t3,.case-gallery .t2{grid-column:span 2}
  .case-gallery .r34{aspect-ratio:4/3}
  .case-gallery figcaption{opacity:1;transform:none}
}

/* --- Lightbox --- */
body.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;z-index:90;display:none;place-items:center;padding:24px;background:rgba(4,10,18,.95);backdrop-filter:blur(6px)}
.lb[data-open]{display:grid}
.lb-fig{margin:0;display:flex;flex-direction:column;gap:12px;align-items:center;max-width:min(1240px,94vw)}
.lb img{max-width:100%;max-height:76vh;width:auto;height:auto;border-radius:14px;box-shadow:0 34px 90px rgba(0,0,0,.65);background:#0b1a2e}
.lb-cap{max-width:760px;text-align:center;font-size:13.5px;line-height:1.55;color:rgba(244,248,255,.82)}
.lb-btn{position:absolute;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.26);background:rgba(6,17,31,.72);color:#fff;font-size:19px;line-height:1;cursor:pointer;transition:background .25s ease,border-color .25s ease}
.lb-btn:hover{background:rgba(98,223,255,.2);border-color:rgba(98,223,255,.6)}
.lb-btn:focus-visible{outline:2px solid var(--cyan,#62dfff);outline-offset:2px}
.lb-prev{left:20px;top:50%;transform:translateY(-50%)}
.lb-next{right:20px;top:50%;transform:translateY(-50%)}
.lb-close{top:18px;right:18px}
.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:12.5px;color:rgba(244,248,255,.6);letter-spacing:.06em}
@media (max-width:720px){
  .lb{padding:12px}
  .lb img{max-height:68vh}
  .lb-btn{width:40px;height:40px;font-size:17px}
  .lb-prev{left:10px}.lb-next{right:10px}
}
