/* Gallery and frontend polish */
.gallery-hero{position:relative;min-height:clamp(260px,38vw,430px);display:flex;align-items:flex-end;overflow:hidden;background:#0f172a;color:#fff}
.gallery-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.18),rgba(15,23,42,.88))}
.gallery-hero__content{position:relative;z-index:1;padding:72px 0 54px;max-width:760px}
.gallery-hero h1{font-size:clamp(2rem,5vw,4rem);font-weight:800;letter-spacing:-.04em;color:#fff;margin-bottom:12px}
.gallery-hero p{font-size:clamp(1rem,2vw,1.15rem);color:rgba(255,255,255,.82);max-width:680px}
.gallery-section{padding:72px 0;background:linear-gradient(180deg,#f8fafc 0,#fff 100%)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.gallery-album{display:block;height:100%;border:1px solid rgba(148,163,184,.22);border-radius:22px;overflow:hidden;background:#fff;color:#0f172a;box-shadow:0 12px 35px rgba(15,23,42,.07);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.gallery-album:hover{transform:translateY(-7px);box-shadow:0 22px 50px rgba(15,23,42,.13);border-color:rgba(37,99,235,.3);color:#0f172a}
.gallery-album__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#e2e8f0}
.gallery-album__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-album:hover .gallery-album__media img{transform:scale(1.06)}
.gallery-album__count{position:absolute;right:14px;bottom:14px;padding:7px 11px;border-radius:999px;background:rgba(15,23,42,.78);backdrop-filter:blur(8px);color:#fff;font-size:.78rem;font-weight:700}
.gallery-album__body{padding:24px}.gallery-album__body h2{font-size:1.2rem;font-weight:750;margin:0 0 8px;color:#0f172a}.gallery-album__body p{color:#64748b;margin:0;line-height:1.65}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.gallery-back{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border:1px solid #dbe3ef;border-radius:12px;background:#fff;color:#334155;font-weight:650;box-shadow:0 5px 18px rgba(15,23,42,.05)}.gallery-back:hover{border-color:var(--primary);color:var(--primary);transform:translateX(-2px)}
.gallery-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.gallery-photo{position:relative;display:block;aspect-ratio:1/1;border-radius:18px;overflow:hidden;background:#e2e8f0;box-shadow:0 8px 26px rgba(15,23,42,.08);cursor:zoom-in}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}.gallery-photo:hover img{transform:scale(1.055);filter:brightness(.78)}
.gallery-photo::after{content:"\f00e";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);color:#0f172a;opacity:0;transform:scale(.75);transition:.25s ease}.gallery-photo:hover::after{opacity:1;transform:scale(1)}
.gallery-empty{padding:64px 24px;border:1px dashed #cbd5e1;border-radius:20px;text-align:center;color:#64748b;background:#fff}
/* Custom lightbox */
.glb{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;background:rgba(2,6,23,.94);backdrop-filter:blur(10px);padding:28px}.glb.is-open{display:flex}.glb__stage{position:relative;max-width:min(1180px,92vw);max-height:88vh}.glb__image{display:block;max-width:100%;max-height:82vh;object-fit:contain;border-radius:12px;box-shadow:0 25px 80px rgba(0,0,0,.5)}.glb__caption{color:rgba(255,255,255,.86);text-align:center;margin:14px auto 0;max-width:760px;font-size:.95rem}.glb__button{position:fixed;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:20px;cursor:pointer;transition:.2s}.glb__button:hover{background:#fff;color:#0f172a}.glb__close{top:22px;right:22px}.glb__prev{left:22px;top:50%;transform:translateY(-50%)}.glb__next{right:22px;top:50%;transform:translateY(-50%)}.glb__counter{position:fixed;top:28px;left:50%;transform:translateX(-50%);color:#fff;font-size:.85rem;font-weight:700;background:rgba(255,255,255,.1);padding:7px 12px;border-radius:999px}
body.glb-lock{overflow:hidden}
/* Header icon alignment: contact icons only receive spacing */
.header-top .header-contact-link>i{margin-right:6px;color:var(--primary)}
.header-top .social-icon-header{margin:0 3px!important;padding:0!important;flex:0 0 28px;line-height:1}
.header-top .social-icon-header i{margin:0!important;color:inherit!important;display:block;line-height:1}
.header-top .social-icon-header svg{display:block;margin:0}
@media(max-width:991px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){.gallery-section{padding:48px 0}.gallery-hero__content{padding:54px 0 38px}.gallery-grid{grid-template-columns:1fr}.gallery-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-photo{border-radius:13px}.glb{padding:12px}.glb__prev,.glb__next{top:auto;bottom:20px;transform:none}.glb__prev{left:calc(50% - 58px)}.glb__next{right:calc(50% - 58px)}.glb__close{top:14px;right:14px}.glb__counter{top:18px}}
/* Subtle global modernization */
:root{--ui-radius:18px;--ui-shadow:0 16px 45px rgba(15,23,42,.08)}
.btn{border-radius:11px;font-weight:650;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-1px)}
.card{border-radius:var(--ui-radius);overflow:hidden}.form-control,.form-select{border-radius:11px;min-height:44px;border-color:#dbe3ef}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .22rem color-mix(in srgb,var(--primary) 15%,transparent)}
.header-main{backdrop-filter:saturate(150%) blur(14px)}
.navbar-brand img{width:auto;object-fit:contain}.dropdown-menu{border:1px solid rgba(148,163,184,.16)!important;box-shadow:0 18px 55px rgba(15,23,42,.14)!important}
@media(max-width:767px){.header-top .container>.d-flex{align-items:flex-start!important;gap:8px}.header-top .header-contact-link{margin-right:8px;font-size:12px}.header-top .d-flex.gap-3{gap:.35rem!important}}

/* Header social colors: prevent generic .header-top a rules from overriding admin colors */
.header-top a.social-icon-header{
  color:var(--social-icon,#64748b)!important;
  background-color:var(--social-bg,#e2e8f0)!important;
  margin:0 3px!important;
}
.header-top a.social-icon-header:hover{
  color:var(--social-hover-icon,#fff)!important;
  background-color:var(--social-hover-bg,var(--primary))!important;
}
.header-top a.social-icon-header i,
.header-top a.social-icon-header svg{
  color:currentColor!important;
  fill:currentColor!important;
  margin:0!important;
}
