/* FDWOS photo-first gallery. No cards, no decorative image frames. */
.photo-hero{background:linear-gradient(125deg,#20252a,#272d33);border-bottom:1px solid #3a424a;padding:78px 0 52px}
.gallery-wrap{width:min(94vw,1860px);margin-inline:auto}
.photo-hero h1{font-size:clamp(3.3rem,7vw,6.5rem);letter-spacing:-.055em;line-height:1.04;margin:0;color:#f7f7f5}
.photo-hero p{color:#bbc5d0;font-size:clamp(1rem,1.4vw,1.2rem);margin:15px 0 0}
.photo-section{padding:42px 0 100px;min-height:360px}
.photo-grid{columns:3 310px;column-gap:10px}
.photo-item{position:relative;display:block;width:100%;break-inside:avoid;margin:0 0 10px;padding:0;border:0;border-radius:0;overflow:hidden;background:#272d33;cursor:zoom-in;text-align:left;line-height:0}
.photo-item img{display:block;width:100%;height:auto;transition:transform .3s ease}
.photo-item:hover img,.photo-item:focus-visible img{transform:scale(1.015)}
.photo-overlay{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:7px;line-height:1.4;color:white;background:linear-gradient(transparent,rgba(9,14,19,.9));padding:55px 22px 20px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}
.photo-overlay strong{font-size:1.06rem;font-weight:700}.photo-overlay span{font-size:.87rem;color:#e0e5eb}
.photo-item:hover .photo-overlay,.photo-item:focus-visible .photo-overlay{opacity:1;transform:none}
.photo-item:focus-visible{outline:3px solid #d7ab57;outline-offset:-3px}
.gallery-empty{display:flex;min-height:280px;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;color:#aeb8c4}
.gallery-empty p{margin:0;line-height:1.6}.gallery-empty .empty-heading{color:#eef1f4;font-size:clamp(1.35rem,2.5vw,1.8rem);font-weight:700}
.photo-viewer{position:fixed;inset:0;box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:16px 20px 28px;border:0;background:#101418;color:#f3f6f8;overflow:auto}
.photo-viewer::backdrop{background:#000e}
.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;color:#aeb8c4;font-size:.9rem;max-width:1700px;margin:0 auto 8px}
.viewer-close,.viewer-step{border:0;background:transparent;color:#f4f4f4;cursor:pointer}
.viewer-close{font-size:1.4rem;padding:8px 14px}.viewer-step{font-size:3.1rem;min-width:48px;min-height:48px}
.viewer-image-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;max-width:1700px;margin:auto;min-height:0}
.viewer-image-row img{display:block;max-width:100%;max-height:min(72dvh,950px);height:auto;width:auto;object-fit:contain;margin:auto}
.viewer-details{text-align:center;max-width:850px;margin:20px auto 0;line-height:1.5}.viewer-details strong{font-size:1.12rem}.viewer-details p{color:#bbc4ce;margin:7px 0 0}
@media (hover:none){.photo-overlay{opacity:1;transform:none;padding:35px 16px 12px}.photo-overlay strong{font-size:.94rem}.photo-overlay span{display:none}}
@media (max-width:650px){.gallery-wrap{width:94vw}.photo-hero{padding:55px 0 35px}.photo-section{padding:20px 0 60px}.photo-grid{columns:2 145px;column-gap:6px}.photo-item{margin-bottom:6px}.viewer-image-row{grid-template-columns:34px minmax(0,1fr) 34px;gap:0}.viewer-step{min-width:34px;font-size:2rem}.photo-viewer{padding:8px}}
@media (prefers-reduced-motion:reduce){.photo-item img,.photo-overlay{transition:none}}
