/* Gallery design; integrate with the original PHP only after source review. */
body{font-size:1rem;background:#f5f7fa;color:#172238}
body.gallery-viewing{overflow:hidden}
.wrap{width:min(1200px,calc(100% - 40px))}
.gallery-hero{padding:24px 0 0}
.gallery-hero .hero-shell{min-height:0;border-radius:20px;background:#0f203c;box-shadow:none}
.gallery-hero .hero-shell::before{display:none}
.gallery-hero .hero-grid{display:block;padding:clamp(24px,4vw,44px)}
.gallery-hero .hero-title{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.1;letter-spacing:-.035em;margin:12px 0 16px}
.gallery-hero .hero-title em{display:block;font-size:.7em;line-height:1.3;font-style:normal;color:#bed6fa;margin-top:8px}
.gallery-hero .hero-kicker{font-size:.875rem;letter-spacing:.09em;background:none;border:none;padding:0;box-shadow:none}
.gallery-hero .hero-kicker::before{display:none}
.gallery-hero .hero-text{max-width:48rem;font-size:1rem;line-height:1.6;color:#dae5f5;margin:0}
.gallery-hero .hero-actions{margin-top:22px;gap:12px;flex-wrap:wrap}
.gallery-hero .hero-actions .btn{min-height:48px;padding:12px 18px;border-radius:10px;font-size:1rem;line-height:1.4;white-space:normal}
main .section{padding:32px 0}
main .section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
main .section-title{font-size:clamp(1.6rem,3vw,2rem);line-height:1.2;margin:6px 0 0;letter-spacing:-.025em}
main .section-text{max-width:30rem;font-size:1rem;line-height:1.6;margin:0}
main .eyebrow{font-size:.875rem}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery-item{border-radius:12px;border:1px solid #dbe2ec;box-shadow:none;background:white}
.gallery-item:hover{transform:none;box-shadow:none;border-color:#3664a8}
.gallery-link{height:100%}
.gallery-media{height:auto;aspect-ratio:4/3;background:#e8edf3}
.gallery-media img{width:100%;height:100%;object-fit:contain;transform:none}
.gallery-item:hover .gallery-media img{transform:none}
.gallery-caption{padding:12px 14px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.gallery-caption h3{font-size:.9375rem;font-weight:700;line-height:1.4;margin:0}
.gallery-caption p{font-size:.875rem;margin:0;color:#46556b;line-height:1.4;font-weight:500}
.gallery-filters{margin-bottom:20px;display:flex;gap:10px;flex-wrap:wrap}
.gallery-filters button{min-height:44px;padding:10px 16px;border:1px solid #becbdf;background:white;border-radius:8px;font:inherit;color:#172238;cursor:pointer}
.gallery-filters button[aria-pressed=true]{background:#205bbe;color:white;border-color:#205bbe}
.gallery-more{display:block;margin:24px auto 0;border:1px solid #b9c8de;border-radius:10px;background:white;color:#174d9b;padding:12px 24px;min-height:48px;font:inherit;font-weight:700;cursor:pointer}
.gallery-count{font-size:.9375rem;color:#526179;margin:12px 0}
.gallery-empty{padding:24px;background:white;border-radius:12px;border:1px solid #dbe2ec}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible{outline:3px solid #2774df;outline-offset:4px}
.gallery-hero a:focus-visible{outline-color:white}
.gallery-viewer{width:min(1120px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;background:#101824;color:white;border:1px solid #6a788e;border-radius:14px;overflow:auto}
.gallery-viewer::backdrop{background:rgba(4,10,19,.88)}
.gallery-viewer[open]{display:flex;flex-direction:column}
.gallery-viewer-header,.gallery-viewer-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;flex-shrink:0}
.gallery-viewer-header h2{font-size:1rem;line-height:1.5;margin:0}
.gallery-viewer button,.gallery-viewer a{min-height:44px;border:1px solid #71829b;border-radius:8px;background:#172840;color:white;padding:10px 14px;font:inherit;line-height:1.4;cursor:pointer;text-decoration:none;text-align:center}
.gallery-viewer button:disabled{opacity:.4;cursor:default}
.gallery-viewer img{display:block;width:100%;height:min(65dvh,760px);min-height:160px;object-fit:contain;background:#080f19;touch-action:pan-y}
.gallery-viewer-footer p{margin:0;font-size:.9375rem;text-align:center}
.gallery-viewer-footer nav{display:flex;gap:8px}
.gallery-image-error{padding:12px 18px;margin:0;background:#172840;font-size:1rem}
.gallery-viewer-close{flex-shrink:0}
.brand small{font-size:.875rem;line-height:1.4}
.mobile-panel{max-height:calc(100dvh - 88px);overflow:auto}
.drop:focus-within .drop-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.footer{margin-top:24px}
.footer p,.footer a,.footer small{font-size:.9375rem;line-height:1.6}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}main .section-head{display:block}main .section-text{margin-top:12px}}
@media(max-width:600px){
 .wrap{width:calc(100% - 24px)}
 .gallery-hero{padding-top:12px}.gallery-hero .hero-grid{padding:24px 20px}.gallery-hero .hero-title{font-size:clamp(2rem,9vw,2.75rem)}
 .gallery-hero .hero-actions .btn{width:100%}
 .gallery-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 .gallery-caption{padding:10px 14px}.gallery-media{height:auto}
 main .section{padding:26px 0}.brand strong{font-size:1rem}.brand small{font-size:.875rem;max-width:15rem}
 .gallery-viewer{width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:10px}
 .gallery-viewer-header,.gallery-viewer-footer{padding:10px;flex-wrap:wrap}.gallery-viewer-header{flex-wrap:nowrap}
 .gallery-viewer-footer nav{width:100%;justify-content:space-between}.gallery-viewer-footer p{width:100%;order:-1}
 .gallery-viewer-footer a{width:100%}.gallery-viewer img{height:55dvh}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
