/* Gallery — interactive rebuild */
.fs-gal{
  --ink:#121314;
  --paper:#f2efe9;
  --paper-2:#e7e2d8;
  --ember:#d85a2a;
  --sage:#2f5d4a;
  --muted:#5f5a54;
  --line:rgba(18,19,20,.1);
  font-family:Outfit,Montserrat,system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  overflow-x:hidden;
}
.fs-gal *{box-sizing:border-box}
.fs-gal img,.fs-gal video{max-width:100%;display:block}
.fs-gal a{color:inherit;text-decoration:none}
.fs-gal__wrap{width:min(1180px,92%);margin:0 auto}

.fs-gal h1,.fs-gal h2{
  font-family:"Barlow Condensed",Outfit,sans-serif;
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:.98;
  font-weight:800;
  margin:0;
}

/* Hero */
.fs-gal-hero{
  position:relative;
  min-height:min(58vh,520px);
  display:grid;
  align-items:end;
  color:#fff;
  overflow:hidden;
  background:#111;
}
.fs-gal-hero__media{position:absolute;inset:0}
.fs-gal-hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.fs-gal-hero__shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(8,10,9,.25) 0%, rgba(8,10,9,.55) 45%, rgba(8,10,9,.88) 100%),
    linear-gradient(90deg, rgba(8,10,9,.45), transparent 60%);
}
.fs-gal-hero__copy{
  position:relative;z-index:2;
  padding:clamp(4.5rem,10vw,7rem) 0 clamp(2rem,4vw,2.8rem);
}
.fs-gal-hero__kicker{
  margin:0 0 .5rem;
  font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:#e0b36a;
}
.fs-gal-hero h1{
  color:#fff;
  font-size:clamp(2.8rem,7.5vw,5rem);
  max-width:12ch;
}
.fs-gal-hero__lead{
  margin:.85rem 0 0;
  max-width:40ch;
  color:rgba(255,255,255,.78);
  line-height:1.6;
  font-size:1.05rem;
}

/* Filters */
.fs-gal-bar{
  position:sticky;top:0;z-index:20;
  background:rgba(242,239,233,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:.85rem 0;
}
.fs-gal-bar__row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;
}
.fs-gal-filters{display:flex;flex-wrap:wrap;gap:.45rem}
.fs-gal-filter{
  appearance:none;border:0;cursor:pointer;
  min-height:40px;padding:.45rem 1rem;border-radius:8px;
  background:transparent;color:var(--muted);
  font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  box-shadow:inset 0 0 0 1.5px rgba(18,19,20,.14);
  transition:background .2s,color .2s,transform .2s;
}
.fs-gal-filter:hover{transform:translateY(-1px);color:var(--ink)}
.fs-gal-filter.is-active{
  background:var(--ink);color:#fff;
  box-shadow:none;
}
.fs-gal-bar__hint{margin:0;color:var(--muted);font-size:.85rem}

/* Video carousel */
.fs-gal-videos{
  padding:clamp(2.4rem,5vw,3.6rem) 0 clamp(1.2rem,3vw,1.8rem);
  background:
    linear-gradient(180deg, #16181a 0%, #1c201e 100%);
  color:#fff;
}
.fs-gal-videos[hidden]{display:none !important}
.fs-gal-videos__head{
  display:flex;align-items:end;justify-content:space-between;gap:1rem;
  margin-bottom:1.25rem;
}
.fs-gal-videos__eyebrow{
  margin:0 0 .4rem;
  font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#e0b36a;
}
.fs-gal-videos h2{color:#fff;font-size:clamp(1.8rem,4vw,2.6rem)}
.fs-gal-videos__nav{display:flex;gap:.45rem}
.fs-gal-videos__btn{
  width:44px;height:44px;border-radius:50%;
  border:0;cursor:pointer;
  background:rgba(255,255,255,.1);color:#fff;
  display:grid;place-items:center;
  transition:background .2s,transform .2s;
}
.fs-gal-videos__btn:hover{background:rgba(255,255,255,.2);transform:translateY(-1px)}
.fs-gal-videos__btn:disabled{opacity:.35;cursor:default;transform:none}

.fs-gal-carousel{
  position:relative;
  overflow:hidden;
  border-radius:6px;
  touch-action:pan-y;
}
.fs-gal-carousel__track{
  display:flex;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.fs-gal-slide{
  flex:0 0 100%;
  position:relative;
  aspect-ratio:16/9;
  background:#0a0a0b;
  overflow:hidden;
}
@media(min-width:820px){
  .fs-gal-slide{flex:0 0 78%;margin-right:1.1rem}
}
.fs-gal-slide__media{
  position:absolute;inset:0;
  width:100% !important;height:100% !important;
  max-width:none !important;max-height:none !important;
  object-fit:cover !important;
}
.fs-gal-slide__shade{
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.72));
  pointer-events:none;
}
.fs-gal-slide__play{
  position:absolute;inset:0;
  display:grid;place-items:center;
  border:0;background:transparent;cursor:pointer;color:#fff;
}
.fs-gal-slide__play span{
  width:72px;height:72px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(216,90,42,.92);
  box-shadow:0 12px 30px rgba(0,0,0,.35);
  transition:transform .25s ease, background .25s;
}
.fs-gal-slide__play:hover span{transform:scale(1.06);background:var(--ember)}
.fs-gal-slide__play svg{width:28px;height:28px;margin-left:3px}
.fs-gal-slide__meta{
  position:absolute;left:1rem;right:1rem;bottom:1rem;
  display:flex;justify-content:space-between;align-items:end;gap:1rem;
  pointer-events:none;
}
.fs-gal-slide__meta p{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.fs-gal-slide__meta small{opacity:.7;font-weight:500}
.fs-gal-dots{
  display:flex;justify-content:center;gap:.4rem;margin-top:1rem;
}
.fs-gal-dot{
  width:8px;height:8px;border-radius:50%;border:0;padding:0;cursor:pointer;
  background:rgba(255,255,255,.28);
}
.fs-gal-dot.is-active{background:#e0b36a;transform:scale(1.2)}

/* Photo grid */
.fs-gal-photos{
  padding:clamp(2.2rem,5vw,3.4rem) 0 clamp(3.4rem,7vw,5rem);
}
.fs-gal-photos[hidden]{display:none !important}
.fs-gal-photos__head{margin-bottom:1.2rem}
.fs-gal-photos__eyebrow{
  margin:0 0 .35rem;
  font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ember);
}
.fs-gal-photos h2{font-size:clamp(1.8rem,4vw,2.6rem)}
.fs-gal-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}
.fs-gal-card{
  position:relative;
  display:block;
  overflow:hidden;
  /* Rectangular photo tile — light corners only (beat theme button pill radius) */
  border-radius:12px !important;
  background:#1a1a1c;
  aspect-ratio:4/3;
  width:100%;
  cursor:zoom-in;
  border:1px solid rgba(17,17,17,.18);
  padding:0 !important;
  margin:0;
  color:inherit;
  appearance:none;
  -webkit-appearance:none;
  -webkit-border-radius:12px !important;
}
.fs-gal-card img{
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center;
  display:block;
  border-radius:0 !important; /* clip via card overflow, not pill on img */
  transition:transform .6s cubic-bezier(.22,.61,.36,1), filter .35s;
}
.fs-gal-card:hover img{transform:scale(1.05);filter:brightness(1.05)}
.fs-gal-card__overlay{
  position:absolute;inset:0;
  background:linear-gradient(transparent 55%, rgba(0,0,0,.55));
  opacity:0;transition:opacity .3s;
  display:flex;align-items:end;justify-content:space-between;
  padding:.85rem;
  color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  pointer-events:none;
}
.fs-gal-card:hover .fs-gal-card__overlay{opacity:1}

/* Lightbox */
.fs-gal-lb{
  position:fixed;inset:0;z-index:1000;
  background:rgba(8,10,9,.92);
  display:none;align-items:center;justify-content:center;
  padding:1.2rem;
}
.fs-gal-lb.is-open{display:flex}
.fs-gal-lb__inner{
  position:relative;
  width:min(1100px,96vw);
  max-height:88vh;
}
.fs-gal-lb__stage{
  position:relative;
  background:#000;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:16/10;
  max-height:88vh;
}
.fs-gal-lb__stage img,
.fs-gal-lb__stage iframe,
.fs-gal-lb__stage video{
  position:absolute;inset:0;width:100%;height:100% !important;
  object-fit:contain;border:0;background:#000;
}
.fs-gal-lb__close,
.fs-gal-lb__prev,
.fs-gal-lb__next{
  position:absolute;border:0;cursor:pointer;color:#fff;
  background:rgba(255,255,255,.12);
  width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;
  transition:background .2s;
}
.fs-gal-lb__close{top:-.2rem;right:-.2rem;z-index:2}
.fs-gal-lb__prev{left:.6rem;top:50%;transform:translateY(-50%);z-index:2}
.fs-gal-lb__next{right:.6rem;top:50%;transform:translateY(-50%);z-index:2}
.fs-gal-lb__close:hover,
.fs-gal-lb__prev:hover,
.fs-gal-lb__next:hover{background:rgba(255,255,255,.22)}
.fs-gal-lb__cap{
  margin:.75rem 0 0;color:rgba(255,255,255,.7);text-align:center;font-size:.9rem;
}

@media(max-width:900px){
  .fs-gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fs-gal-videos__head{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .fs-gal-grid{grid-template-columns:1fr}
  .fs-gal-card{aspect-ratio:4/3}
  .fs-gal-lb__prev{left:.25rem}
  .fs-gal-lb__next{right:.25rem}
}

@media (prefers-reduced-motion: reduce){
  .fs-gal-carousel__track,
  .fs-gal-card img{transition:none}
}
