.gallery-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin:2rem 0;padding:clamp(1.5rem,4vw,3.2rem);border-radius:22px;background:linear-gradient(125deg,#082f66,#0a5db8);color:#fff;box-shadow:0 18px 45px rgba(8,47,102,.18)}
.gallery-hero h1{max-width:750px;margin:.35rem 0;font-size:clamp(2rem,5vw,4rem);line-height:1.04}.gallery-hero p:not(.gallery-kicker){margin:0;color:#dcecff;font-size:1.05rem}.gallery-kicker{margin:0;color:#62b5ff;font-size:.7rem;font-weight:800;letter-spacing:.16em}.gallery-hero .gallery-kicker{color:#b9dcff}.gallery-back{flex:none;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.45);border-radius:9px;color:#fff;text-decoration:none;font-weight:700}
.gallery-album{margin:2.2rem 0}.gallery-album-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.gallery-album-heading h2{margin:.2rem 0 0;color:#0b2a53;font-size:1.5rem}.gallery-album-heading>span{color:#647b96;font-size:.82rem}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.gallery-item{overflow:hidden;border:1px solid #d8e5f4;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(11,42,83,.06)}.gallery-item img,.gallery-item video{display:block;width:100%;height:230px;object-fit:cover;background:#071b35}.gallery-image-button{display:block;width:100%;padding:0;border:0;cursor:zoom-in}.gallery-item-copy{padding:1rem 1.1rem}.gallery-item-copy h3{margin:0 0 .25rem;color:#0b2a53;font-size:1rem}.gallery-item-copy span{color:#6a8099;font-size:.76rem}.gallery-empty{margin:3rem 0;padding:4rem 1rem;border:1px dashed #bcd1e9;border-radius:18px;text-align:center;background:#f6faff;color:#55708f}.gallery-empty span{font-size:2.5rem;color:#0a5db8}.gallery-empty h2{color:#0b2a53}.gallery-empty.is-compact{margin:1rem 0;padding:2rem}
.gallery-lightbox{max-width:min(94vw,1200px);padding:0;border:0;border-radius:14px;background:#071729;color:#fff}.gallery-lightbox::backdrop{background:rgba(0,15,34,.88)}.gallery-lightbox img{display:block;max-width:92vw;max-height:82vh}.gallery-lightbox button{position:absolute;right:.6rem;top:.5rem;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-size:1.7rem}.gallery-lightbox p{margin:0;padding:.8rem 1rem}
.gallery-upload{display:grid;grid-template-columns:minmax(230px,.75fr) minmax(420px,1.25fr);gap:2rem;margin-bottom:1.4rem;padding:1.5rem}.gallery-upload h2{margin:.25rem 0}.gallery-upload>div>p:last-child{color:#5d7490}.gallery-admin-section{margin-bottom:2rem}.gallery-manage-grid{display:grid;gap:.8rem}.gallery-manage-item{display:grid;grid-template-columns:150px 1fr;overflow:hidden;border:1px solid #d8e5f4;border-radius:12px;background:#fff}.gallery-manage-item.is-hidden{opacity:.65}.gallery-manage-preview{display:grid;place-items:center;min-height:125px;background:#092d5c;color:#fff}.gallery-manage-preview img{width:100%;height:100%;min-height:125px;object-fit:cover}.gallery-manage-preview span{font-size:2rem}.gallery-manage-preview small{align-self:start;margin-top:-2rem}.gallery-manage-copy{padding:1rem 1.2rem}.gallery-manage-copy h3{margin:.1rem 0 .25rem;color:#0b2a53}.gallery-manage-copy>p:not(.gallery-item-album){margin:0 0 .8rem;color:#6a8099;font-size:.78rem}.gallery-item-album{margin:0;color:#0a5db8;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.gallery-actions{display:flex;flex-wrap:wrap;gap:.5rem}.gallery-actions form{margin:0}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-upload{grid-template-columns:1fr}}
@media(max-width:600px){.gallery-hero{align-items:flex-start;flex-direction:column;margin:1rem 0;padding:1.4rem}.gallery-grid{grid-template-columns:1fr}.gallery-item img,.gallery-item video{height:240px}.gallery-manage-item{grid-template-columns:95px 1fr}.gallery-manage-preview,.gallery-manage-preview img{min-height:145px}.gallery-actions{align-items:stretch;flex-direction:column}.gallery-actions a,.gallery-actions button{width:100%}.gallery-album-heading{align-items:flex-start;flex-direction:column;gap:.35rem}}
