/* CIPUC Premium Gallery + Sports */
.gs-hero{
  position:relative;
  overflow:hidden;
  padding:88px 0 72px;
  color:#fff;
  text-align:center;
  background:
    radial-gradient(circle at 82% 15%,rgba(247,179,19,.20),transparent 28%),
    linear-gradient(135deg,#052b5c 0%,#0b4b91 58%,#0a3568 100%);
}
.gs-hero::after{
  content:"";
  position:absolute;
  width:460px;height:460px;border-radius:50%;
  background:rgba(255,255,255,.04);
  right:-160px;bottom:-260px;
}
.gs-hero .container{position:relative;z-index:2}
.gs-kicker{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:999px;
  background:#f7b313;color:#071a38;font-size:12px;font-weight:950;
  letter-spacing:.08em;
}
.gs-hero h1{
  margin:17px 0 10px;font-size:clamp(44px,6vw,72px);
  line-height:.95;font-weight:950;
}
.gs-hero p{max-width:760px;margin:auto;font-size:18px;opacity:.9}

.gs-section{padding:65px 0 85px;background:#f7f9fc}
.gs-toolbar{
  display:flex;justify-content:space-between;align-items:flex-end;gap:25px;
  margin-bottom:30px;
}
.gs-toolbar h2{margin:0;color:#073a78;font-size:36px;font-weight:950}
.gs-toolbar p{margin:6px 0 0;color:#718096}
.gs-filter-wrap{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.gs-filter{
  border:1px solid #dbe5f0;background:#fff;color:#0a376d;
  border-radius:999px;padding:9px 15px;font-weight:800;font-size:13px;
  transition:.2s;
}
.gs-filter:hover,.gs-filter.active{background:#073a78;color:#fff;border-color:#073a78}

.gs-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;
}
.gs-card{
  background:#fff;border:1px solid #e8eef5;border-radius:24px;overflow:hidden;
  box-shadow:0 16px 44px rgba(6,43,92,.09);
  transition:transform .3s ease,box-shadow .3s ease;
}
.gs-card:hover{transform:translateY(-6px);box-shadow:0 25px 60px rgba(6,43,92,.14)}
.gs-card.hidden{display:none}
.gs-card.featured{outline:2px solid rgba(247,179,19,.28)}

.gs-image-wrap{
  position:relative;overflow:hidden;aspect-ratio:4/3;background:#e9eff6;
}
.gs-image{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:.42s}
.gs-card:hover .gs-image{transform:scale(1.045)}
.gs-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:60px;color:#0b4b91;background:linear-gradient(135deg,#eaf3ff,#f8fbff)}

.featured-badge{
  position:absolute;left:14px;top:14px;z-index:3;
  background:#f7b313;color:#071a38;border-radius:999px;padding:8px 12px;
  font-size:12px;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.12)
}
.ig-float,.zoom-btn{
  position:absolute;top:14px;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;color:#fff;border:0;text-decoration:none;
  box-shadow:0 8px 18px rgba(0,0,0,.20);z-index:4
}
.ig-float{right:14px;background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045)}
.zoom-btn{right:64px;background:rgba(6,43,92,.88)}

.gs-body{padding:21px}
.gs-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#77859a;font-size:12px;margin-bottom:10px}
.gs-pill{background:#eef5ff;color:#073a78;padding:6px 10px;border-radius:999px;font-weight:850}
.gs-body h3{font-size:22px;color:#073a78;font-weight:950;margin:0 0 8px}
.gs-body p{color:#667085;line-height:1.65;margin:0}
.gs-link{display:inline-flex;align-items:center;gap:7px;margin-top:15px;text-decoration:none;font-weight:850;color:#c98500}

.gs-empty{background:#fff;border:1px solid #e8eef5;border-radius:24px;padding:60px 25px;text-align:center;box-shadow:0 16px 44px rgba(6,43,92,.08)}
.gs-empty i{font-size:50px;color:#0b4b91;margin-bottom:12px}

.gs-lightbox{
  position:fixed;inset:0;z-index:99999;background:rgba(0,10,25,.92);
  display:none;align-items:center;justify-content:center;padding:30px;
}
.gs-lightbox.open{display:flex}
.gs-lightbox-content{max-width:min(1100px,94vw);text-align:center;color:#fff}
.gs-lightbox-content img{max-width:100%;max-height:80vh;border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.5)}
.gs-lightbox-title{margin-top:14px;font-size:18px;font-weight:800}
.gs-lightbox-close{
  position:absolute;right:24px;top:20px;width:46px;height:46px;border-radius:50%;
  border:0;background:#fff;color:#082f63;font-size:20px;
}

@media(max-width:1100px){.gs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){
  .gs-toolbar{align-items:flex-start;flex-direction:column}
  .gs-filter-wrap{justify-content:flex-start}
}
@media(max-width:600px){
  .gs-section{padding:45px 0 65px}
  .gs-grid{grid-template-columns:1fr}
  .gs-toolbar h2{font-size:30px}
  .gs-hero{padding:68px 0 55px}
}