.esl-gallery-page, .esl-gallery-page * { box-sizing: border-box; }
.esl-gallery-page { min-height: 60vh; padding: 52px 0 75px; background: #f5f6f8; }
.esl-gallery-container { width: min(calc(100% - 32px), 1500px); margin: 0 auto; }
.esl-gallery-header { margin-bottom: 32px; padding: 30px clamp(22px,4vw,48px); color: #fff; background: linear-gradient(125deg,#041438,#123568); border-left: 7px solid #d4c97a; border-radius: 7px; box-shadow: 0 10px 30px rgba(4,20,56,.16); }
.esl-gallery-eyebrow { color: #d4c97a; font-size: 12px; font-weight: 900; letter-spacing: 1.8px; text-transform: uppercase; }
.esl-gallery-header h1 { margin: 7px 0 24px; font-size: clamp(30px,4vw,52px); line-height: 1.05; }
.esl-gallery-meta { display: flex; gap: 14px 34px; flex-wrap: wrap; }
.esl-gallery-meta span { display: flex; color: #fff; font-size: 14px; gap: 5px; flex-direction: column; }
.esl-gallery-meta b { color: #d4c97a; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
.esl-photo-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.esl-photo-card { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; padding: 0; background: #dfe3e8; border: 0; border-radius: 5px; cursor: zoom-in; }
.esl-photo-card img { display: block; width: 100%; height: 100%; opacity: 0; object-fit: cover; transform: scale(1.025); transition: opacity .35s ease, transform .45s ease; }
.esl-photo-card.is-loaded img { opacity: 1; transform: scale(1); }
.esl-photo-card:hover img { transform: scale(1.055); }
.esl-photo-card::after { position: absolute; inset: auto 10px 10px auto; display: grid; width: 32px; height: 32px; color: #041438; content: "+"; background: rgba(212,201,122,.94); border-radius: 50%; opacity: 0; place-items: center; transform: translateY(5px); transition: .25s ease; }
.esl-photo-card:hover::after { opacity: 1; transform: translateY(0); }
.esl-photo-card .esl-gallery-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.esl-photo-card.is-loaded .esl-gallery-spinner { display: none; }
.esl-photo-skeleton { aspect-ratio: 1/1; background: linear-gradient(100deg,#e2e5e9 25%,#f3f4f6 40%,#e2e5e9 55%); background-size: 220% 100%; border-radius: 5px; animation: eslSkeleton 1.15s linear infinite; }
@keyframes eslSkeleton { to { background-position-x: -220%; } }
.esl-gallery-spinner { display: inline-block; width: 25px; height: 25px; border: 3px solid rgba(4,20,56,.2); border-top-color: #d4c97a; border-radius: 50%; animation: eslSpin .7s linear infinite; }
.esl-gallery-spinner[hidden] { display: none !important; }
@keyframes eslSpin { to { transform: rotate(360deg); } }
.esl-gallery-status { display: flex; padding: 32px; color: #596578; align-items: center; gap: 12px; justify-content: center; }
.esl-gallery-status[hidden] { display: none; }
.esl-gallery-actions { display: flex; margin-top: 35px; justify-content: center; }
.esl-gallery-actions button { padding: 14px 26px; color: #fff; background: #041438; border: 0; border-radius: 4px; cursor: pointer; font-weight: 800; text-transform: uppercase; }
.esl-gallery-actions button:hover { color: #041438; background: #d4c97a; }
.esl-gallery-actions button[hidden] { display: none; }
.esl-gallery-not-found { padding: 80px 20px; text-align:center; }
.esl-gallery-not-found a { display:inline-block; padding:12px 20px; color:#041438; background:#d4c97a; text-decoration:none; }
body.esl-lightbox-open { overflow: hidden; }
.esl-lightbox[hidden] { display: none; }
.esl-lightbox { position: fixed; z-index: 9999; inset: 0; display: grid; padding: 18px; place-items: center; }
.esl-lightbox__backdrop { position: absolute; inset: 0; background: rgba(1,8,24,.94); backdrop-filter: blur(5px); }
.esl-lightbox__panel { position: relative; display: flex; width: min(96vw,1500px); height: min(94vh,980px); flex-direction: column; }
.esl-lightbox__top { z-index: 2; display: flex; min-height: 54px; color: #fff; align-items: center; gap: 16px; justify-content: flex-end; }
.esl-lightbox__top > span { margin-right: auto; color: #d4c97a; font-weight: 800; }
.esl-lightbox__download { padding: 9px 14px; color: #041438; background: #d4c97a; border-radius: 4px; font-size: 13px; font-weight: 800; text-decoration: none; }
.esl-lightbox__close { width: 42px; height: 42px; color: #fff; background: transparent; border: 1px solid #ffffff55; border-radius: 50%; cursor: pointer; font-size: 30px; line-height: 1; }
.esl-lightbox__stage { position: relative; display: grid; min-height: 0; flex: 1; place-items: center; }
.esl-lightbox__stage img { display: block; max-width: 100%; max-height: 100%; opacity: 0; object-fit: contain; transition: opacity .25s ease; }
.esl-lightbox__stage img.is-loaded { opacity: 1; }
.esl-lightbox__stage .esl-gallery-spinner { position: absolute; width: 42px; height: 42px; }
.esl-lightbox__stage img.is-loaded + * { display:none; }
.esl-lightbox__nav { position: absolute; top: 52%; width: 52px; height: 72px; color: #041438; background: rgba(212,201,122,.94); border: 0; border-radius: 5px; cursor: pointer; font-size: 46px; line-height: 1; transform: translateY(-50%); }
.esl-lightbox__nav:disabled { cursor: default; opacity: .25; }
.esl-lightbox__prev { left: 8px; }.esl-lightbox__next { right: 8px; }
@media (max-width:1100px){.esl-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:700px){.esl-gallery-page{padding-top:28px}.esl-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.esl-lightbox{padding:8px}.esl-lightbox__nav{width:42px;height:60px;font-size:38px}.esl-lightbox__prev{left:2px}.esl-lightbox__next{right:2px}.esl-lightbox__download{font-size:11px}}
