/* ============================================
   BEFORE & AFTER GALLERY
   ============================================ */
.ba-hero {
  padding: 120px var(--gutter) 48px;
  text-align: center;
  background: linear-gradient(160deg, var(--bg) 60%, var(--soft) 100%);
}
.ba-hero__eyebrow {
  font-family: var(--font-ui); font-size: 11px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 14px;
}
.ba-hero__title {
  font-family: var(--font-disp); font-weight: 600;
  font-size: clamp(2rem, 4.5vw, 3.2rem); letter-spacing: -0.02em; color: var(--ink);
}
.ba-hero__title em { font-family: var(--font-serif); font-style: italic; font-weight: 500; color: var(--accent); }
.ba-hero__sub {
  max-width: 52ch; margin: 14px auto 0; font-size: 14.5px; line-height: 1.7; color: var(--muted);
}

/* Filter chips */
.ba-chips {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
  padding: 28px var(--gutter) 8px; max-width: 1080px; margin: 0 auto;
}
.ba-chip {
  font-family: var(--font-ui); font-size: 12.5px; font-weight: 600;
  padding: 9px 18px; border-radius: 999px; cursor: pointer;
  background: var(--white); color: var(--muted);
  border: 1px solid #e8e2e6;
  transition: all 0.2s;
}
.ba-chip:hover { border-color: var(--accent); color: var(--accent); }
.ba-chip.is-active { background: var(--accent); border-color: var(--accent); color: var(--white); }
.ba-chip:focus-visible { outline: 2px solid var(--accent2); outline-offset: 2px; }
.ba-chip .n { opacity: .65; font-weight: 500; margin-left: 4px; }

/* Masonry grid */
.ba-grid {
  columns: 3 320px; column-gap: 20px;
  max-width: 1180px; margin: 0 auto; padding: 26px var(--gutter) 70px;
}
.ba-card {
  break-inside: avoid; margin: 0 0 20px; cursor: zoom-in;
  background: var(--white); border: 1px solid #eee; border-radius: 14px;
  overflow: hidden; box-shadow: 0 10px 28px -18px rgba(30,27,34,0.18);
  transition: transform 0.25s, box-shadow 0.25s;
}
.ba-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px -20px rgba(30,27,34,0.28); }
.ba-card img { width: 100%; height: auto; display: block; }
.ba-card figcaption {
  padding: 12px 16px 14px; font-family: var(--font-ui);
  font-size: 13px; font-weight: 600; color: var(--ink); letter-spacing: .01em;
}
.ba-card.is-hidden { display: none; }
.ba-empty { text-align: center; color: var(--muted); padding: 40px 0 60px; display: none; }

/* Lightbox */
.ba-lb {
  position: fixed; inset: 0; z-index: 2000; display: none;
  background: rgba(20,16,22,0.92);
  align-items: center; justify-content: center; flex-direction: column;
  padding: 4vh 4vw;
}
.ba-lb.is-open { display: flex; }
.ba-lb img {
  max-width: min(92vw, 900px); max-height: 78vh; object-fit: contain;
  border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,0.5);
}
.ba-lb__cap { color: #fff; font-family: var(--font-ui); font-size: 14px; margin-top: 16px; text-align: center; }
.ba-lb__count { color: rgba(255,255,255,0.55); font-size: 12px; margin-top: 4px; }
.ba-lb__btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.3);
  background: rgba(255,255,255,0.08); color: #fff; font-size: 19px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
}
.ba-lb__btn:hover { background: rgba(255,255,255,0.22); }
.ba-lb__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ba-lb__prev { left: max(12px, 2vw); }
.ba-lb__next { right: max(12px, 2vw); }
.ba-lb__close { position: absolute; top: 18px; right: 18px; transform: none; }
@media (max-width: 640px) {
  .ba-grid { columns: 2 160px; column-gap: 12px; padding-bottom: 50px; }
  .ba-card { margin-bottom: 12px; border-radius: 10px; }
  .ba-card figcaption { padding: 9px 11px 11px; font-size: 11.5px; }
  .ba-lb__btn { width: 40px; height: 40px; }
}
