/* GALLERY PAGE */
.gallery-hero { background-image:url('https://images.unsplash.com/photo-1488085061387-422e29b40080?w=1600&q=80') !important; }
.page-hero { position:relative; height:380px; display:flex; align-items:center; background-size:cover; background-position:center; margin-top:68px; }
.page-hero__overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(10,30,55,.72),rgba(10,30,55,.45)); }
.page-hero__content { position:relative; z-index:1; color:#fff; text-align:center; width:100%; }
.page-hero__title { font-family:'Playfair Display',serif; font-size:clamp(34px,5vw,56px); font-weight:700; margin-bottom:14px; line-height:1.1; }
.page-hero__subtitle { font-size:16px; color:rgba(255,255,255,.82); max-width:480px; margin:0 auto; }

.pkg-filter-wrap { background:#fff; border-bottom:1px solid var(--border); padding:16px 0; position:sticky; top:68px; z-index:90; box-shadow:0 2px 12px rgba(0,0,0,.06); }
.pkg-filter { display:flex; gap:8px; flex-wrap:wrap; }
.filter-tab { border:1px solid var(--border); background:transparent; border-radius:20px; padding:7px 18px; font-size:13px; font-weight:500; cursor:pointer; color:var(--text-muted); font-family:inherit; transition:all .15s; }
.filter-tab:hover { border-color:var(--primary); color:var(--primary); }
.filter-tab.active { background:var(--primary); border-color:var(--primary); color:#fff; }
.navbar__nav a.active { color:var(--primary); border-bottom:2px solid var(--primary); padding-bottom:2px; }

.gallery-section { padding:48px 0 80px; }
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:220px;
  gap:16px;
}
.gitem {
  position:relative; border-radius:var(--radius); overflow:hidden;
  cursor:pointer; opacity:0; transform:scale(.97);
  transition:opacity .35s,transform .35s,box-shadow .2s;
}
.gitem.visible { opacity:1; transform:scale(1); }
.gitem--wide { grid-column:span 2; }
.gitem--tall { grid-row:span 2; }
.gitem__img { width:100%; height:100%; background-size:cover; background-position:center; transition:transform .4s; }
.gitem:hover .gitem__img { transform:scale(1.06); }
.gitem__overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,25,50,.7) 0%, transparent 55%);
  display:flex; align-items:flex-end; padding:16px;
  opacity:0; transition:opacity .25s;
}
.gitem:hover .gitem__overlay { opacity:1; }
.gitem__title { color:#fff; font-size:14px; font-weight:600; }

/* Lightbox */
.lightbox {
  position:fixed; inset:0; z-index:999;
  background:rgba(5,10,20,.93);
  display:none; align-items:center; justify-content:center;
  padding:20px;
}
.lightbox.open { display:flex; }
.lightbox__inner {
  display:grid; grid-template-columns:1fr 300px;
  gap:0; max-width:1000px; width:100%;
  background:#111820; border-radius:var(--radius);
  overflow:hidden; max-height:90vh;
}
.lightbox__img {
  background-size:cover; background-position:center;
  min-height:480px;
}
.lightbox__info {
  padding:40px 32px; display:flex; flex-direction:column; justify-content:center; gap:14px;
  background:#111820;
}
.lightbox__info h3 { font-family:'Playfair Display',serif; font-size:22px; color:#fff; }
.lightbox__info p { font-size:14px; color:rgba(255,255,255,.65); line-height:1.6; }
.lightbox__close {
  position:absolute; top:20px; right:24px;
  background:rgba(255,255,255,.12); border:none; color:#fff;
  width:40px; height:40px; border-radius:50%; font-size:18px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .15s;
}
.lightbox__close:hover { background:rgba(255,255,255,.25); }
.lightbox__nav {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,.12); border:none; color:#fff;
  width:48px; height:48px; border-radius:50%; font-size:28px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .15s; z-index:2;
}
.lightbox__nav:hover { background:rgba(255,255,255,.25); }
.lightbox__prev { left:16px; }
.lightbox__next { right:16px; }
.lightbox__counter { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.5); font-size:13px; }

@media(max-width:900px){
  .gallery-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
  .gitem--wide { grid-column:span 2; }
  .lightbox__inner { grid-template-columns:1fr; }
  .lightbox__img { min-height:260px; }
}
@media(max-width:540px){
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .gitem--wide { grid-column:span 2; }
  .gitem--tall { grid-row:span 1; }
}
