
.gallery-section{background:linear-gradient(135deg,#effaff,#fff);padding:48px 0 72px;min-height:70vh}
.gallery-back{display:inline-block;color:var(--blue);font-weight:700;margin-bottom:24px;padding:8px 0}
.gallery-section h1{font-size:clamp(2rem,4vw,3rem);line-height:1.3;color:var(--navy);margin:0 0 12px}
.gallery-count{text-align:center;color:var(--muted);margin:0 0 24px}
.case-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.case-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(8,51,68,.06)}
.case-card img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#edf5f8;padding:10px}
.case-card span{display:block;text-align:center;font-size:1rem;font-weight:700;padding:12px 8px;color:var(--blue)}
.case-card:hover{border-color:var(--cyan)}
.case-card:focus-visible,.gallery-pagination a:focus-visible,.lightbox-close:focus-visible{outline:3px solid var(--warm);outline-offset:4px}
.gallery-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:32px}
.gallery-pagination a{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:1rem;font-weight:700}
.gallery-pagination a[aria-current="page"]{background:var(--blue);color:#fff;border-color:var(--blue)}
.case-lightbox{width:min(94vw,1100px);max-width:94vw;max-height:90dvh;padding:54px 16px 12px;border:0;border-radius:16px;background:#fff;color:var(--ink)}
.case-lightbox::backdrop{background:rgba(4,25,36,.85)}
.lightbox-close{position:absolute;right:16px;top:10px;min-height:36px;padding:5px 18px;border:0;border-radius:8px;background:var(--blue);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.lightbox-image{max-height:calc(90dvh - 116px);width:100%;object-fit:contain;margin:auto}
#lightbox-caption{text-align:center;margin:10px 0 0;font-size:1rem}
body.lightbox-open{overflow:hidden}
@media(max-width:600px){.case-gallery{gap:8px}.case-card{border-radius:10px}.case-card img{padding:4px}.case-card span{font-size:.875rem;padding:8px 4px;line-height:1.5}.gallery-section{padding-top:28px}.gallery-pagination{gap:6px}.gallery-pagination a{padding:8px 10px}.gallery-section .section-head p{font-size:1rem}}
