/* Product details layout (Views/Products/Details.cshtml), the shared media gallery (Views/Shared/_MediaGallery.cshtml)
   and the full-screen lightbox of wwwroot/js/project-gallery.js. Loaded by _Layout-inner on every inner page. */
.project-detail-page{--pd-blue:#123957;--pd-red:#c32c35;padding:2rem 0 6rem;background:linear-gradient(180deg,#f6f9fc,#fff);color:#203b54}.project-detail-hero{max-width:900px;margin:1rem auto 2.2rem;text-align:center}.project-detail-hero>span,.project-description>span{color:var(--pd-red);font-size:.8rem;font-weight:900}.project-detail-hero h1{margin:.5rem 0;color:var(--pd-blue);font-size:clamp(1.7rem,4vw,2.8rem);font-weight:900;line-height:1.55}.project-detail-hero p{color:#6a7f91}.project-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:1.4rem}.project-facts,.project-description{border:1px solid rgba(11,58,104,.09);border-radius:22px;background:#fff;box-shadow:0 18px 45px rgba(15,49,79,.08)}.project-facts{position:sticky;top:90px;padding:1.35rem}.project-facts h2{margin:0 0 1rem;color:var(--pd-blue);font-size:1.25rem;font-weight:900}.project-facts dl{margin:0}.project-facts dl>div{display:grid;grid-template-columns:90px 1fr;gap:.75rem;padding:.8rem 0;border-bottom:1px solid #edf1f4}.project-facts dt{color:#75889a;font-size:.75rem}.project-facts dd{margin:0;color:#263f56;font-size:.82rem;font-weight:800}.project-status{display:inline-block;padding:.25rem .55rem;border-radius:999px;color:#157148;background:#e5f6ed}.project-facts>a{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.2rem;padding:.8rem;border-radius:12px;color:#fff;background:var(--pd-red);font-weight:800;text-decoration:none}.project-description{margin-top:1.5rem;padding:clamp(1.4rem,4vw,2.6rem)}.project-description h2{margin:.4rem 0 1rem;color:var(--pd-blue);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:900}.project-description__content{color:#536b80;line-height:2.15}.project-description__content img,.project-description__content video{max-width:100%;height:auto;border-radius:14px}
@media(max-width:991.98px){.project-detail-layout{grid-template-columns:1fr}.project-facts{position:static}}
@media(max-width:575.98px){.project-detail-page{padding-top:1rem}.project-facts dl>div{grid-template-columns:80px 1fr}}
.card-img{position:relative}.project-list-video{position:absolute;left:.7rem;bottom:.7rem;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;color:#fff;background:rgba(11,58,104,.88);font-size:.72rem;font-weight:800}

/* ---------- Media gallery ---------- */
.project-gallery{--pg-navy:#123957;--pg-red:#c32c35;min-width:0;padding:1rem;border:1px solid rgba(11,58,104,.09);border-radius:22px;background:#fff;box-shadow:0 18px 45px rgba(15,49,79,.08)}
.project-gallery__stage{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;border-radius:16px;background:#e9eff4;outline:none}
.project-gallery__stage::-webkit-scrollbar{display:none}
.project-gallery__stage:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 6px var(--pg-red)}
.project-gallery__slide{position:relative;flex:0 0 100%;aspect-ratio:16/10;margin:0;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:#0d2436}
.project-gallery__slide img,.project-gallery__slide video{display:block;width:100%;height:100%;object-fit:cover}
.project-gallery__slide img{cursor:zoom-in}
.project-gallery__slide video{object-fit:contain;background:#0d2436}
.project-gallery__slide figcaption{position:absolute;right:1rem;bottom:1rem;left:4.2rem;padding:.6rem .85rem;border-radius:12px;color:#fff;background:rgba(7,35,60,.78);font-size:.8rem;line-height:1.9;backdrop-filter:blur(6px)}
.project-gallery__zoom{position:absolute;left:.9rem;bottom:.9rem;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;color:var(--pg-navy);background:rgba(255,255,255,.92);box-shadow:0 8px 20px rgba(4,24,40,.25);transition:transform .2s,background-color .2s}
.project-gallery__zoom:hover{background:#fff;transform:scale(1.06)}
.project-gallery__zoom:focus-visible{outline:3px solid var(--pg-red);outline-offset:2px}
.project-gallery__controls{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0}
.project-gallery__controls button{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;color:#fff;background:var(--pg-navy);transition:background-color .2s}
.project-gallery__controls button:hover:not(:disabled){background:#0d4167}
.project-gallery__controls button:disabled{opacity:.35;cursor:default}
.project-gallery__controls span{min-width:4.5rem;color:#5a6b7b;font-size:.85rem;text-align:center}
.project-gallery__thumbs{display:flex;gap:.6rem;padding:.2rem .1rem .4rem;overflow-x:auto;scrollbar-width:thin}
.project-gallery__thumbs button{position:relative;flex:0 0 92px;aspect-ratio:3/2;padding:0;border:2px solid transparent;border-radius:11px;background:#123957;overflow:hidden;opacity:.72;transition:opacity .2s,border-color .2s}
.project-gallery__thumbs button:hover,.project-gallery__thumbs button.is-active{opacity:1}
.project-gallery__thumbs button.is-active{border-color:var(--pg-red)}
.project-gallery__thumbs button:focus-visible{outline:3px solid var(--pg-red);outline-offset:2px}
.project-gallery__thumbs img{width:100%;height:100%;object-fit:cover}
.project-gallery__play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:rgba(7,35,60,.35)}
@media(max-width:991.98px){.project-gallery__slide{aspect-ratio:4/3}}
@media(max-width:575.98px){.project-gallery{padding:.6rem;border-radius:17px}.project-gallery__slide{aspect-ratio:1/1}.project-gallery__thumbs button{flex-basis:72px}.project-gallery__slide figcaption{font-size:.74rem}}
@media(prefers-reduced-motion:reduce){.project-gallery__stage{scroll-behavior:auto!important}.project-gallery__zoom{transition:none}}

/* ---------- Lightbox ---------- */
.media-lightbox-open{overflow:hidden}
.media-lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:#fff;background:rgba(4,17,28,.94);overflow:hidden}
.media-lightbox::backdrop{background:rgba(4,17,28,.6)}
.media-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.media-lightbox__bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.media-lightbox__counter{font-size:.95rem;opacity:.85}
.media-lightbox__close{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.25);border-radius:14px;color:#fff;background:rgba(255,255,255,.08);font-size:1.9rem;line-height:1}
.media-lightbox__stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 72px;overflow:hidden}
.media-lightbox__stage img,.media-lightbox__stage video{max-width:100%;max-height:calc(100dvh - 150px);object-fit:contain;border-radius:10px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.media-lightbox__caption{margin:0;padding:12px 20px 18px;color:rgba(255,255,255,.88);font-size:.9rem;line-height:1.9;text-align:center}
.media-lightbox__nav{position:absolute;top:50%;display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:#fff;background:rgba(255,255,255,.1);font-size:2.2rem;line-height:1;transform:translateY(-50%);transition:background-color .2s}
.media-lightbox__nav:hover,.media-lightbox__close:hover{background:rgba(255,255,255,.2)}
.media-lightbox__nav--prev{right:14px}
.media-lightbox__nav--next{left:14px}
.media-lightbox button:focus-visible{outline:3px solid #ff7b83;outline-offset:2px}
.media-lightbox [hidden]{display:none!important}
@media(max-width:767.98px){.media-lightbox__stage{padding:0 8px}.media-lightbox__nav{top:auto;bottom:14px;transform:none;width:46px;height:46px}.media-lightbox__caption{padding-bottom:74px}}
