/* =========================================================
   GALLERY — stable center-mode carousel
========================================================= */

.gallery{
  padding:100px 0;
  background:#F6F7F9;
  overflow:hidden;
  position:relative;
}

.gallery .btp-eyebrow{
  color:#FF2D7A;
  display:inline-block;
  font-weight:700;
  margin-bottom:10px;
}

.gallery__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:var(--space-4);
  margin-bottom:var(--space-5);
}

.gallery__head h2{
  color:#0E1116;
  font-size:48px;
  line-height:1.1;
  margin:15px 0 0;
}

.gallery__nav{display:flex;gap:10px;}

.gallery__arrow{
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid rgba(14,17,22,.15);
  background:rgba(14,17,22,.05);
  color:#0E1116;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out);
}
.gallery__arrow svg{width:18px;height:18px;}
.gallery__arrow:hover:not(:disabled),
.gallery__arrow:focus-visible{
  background:var(--color-accent);
  border-color:var(--color-accent);
  color:#fff;
  transform:translateY(-2px);
}
.gallery__arrow:disabled{opacity:.35;cursor:not-allowed;transform:none;}

.gallery__stage-wrap{width:100%;min-width:0;}
.gallery__stage{position:relative;width:100%;min-width:0;}

/* Constant card dimensions keep offsets stable. Only transform changes. */
.gallery__track{
  --gallery-card-w:300px;
  display:flex;
  align-items:center;
  gap:28px;
  width:100%;
  min-width:0;
  padding-block:46px;
  padding-inline:max(0px, calc(50% - (var(--gallery-card-w) / 2)));
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:50%;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  overflow-anchor:none;
}
.gallery__track::-webkit-scrollbar{display:none;}
.gallery__track.is-programmatic{scroll-snap-type:none;}

.gallery__card{
  position:relative;
  flex:0 0 var(--gallery-card-w);
  width:var(--gallery-card-w);
  height:420px;
  border-radius:var(--radius-xl);
  overflow:hidden;
  border:1px solid rgba(14,17,22,.08);
  background:#fff;
  cursor:pointer;
  padding:0;
  scroll-snap-align:center;
  scroll-snap-stop:always;
  transform:scale(.78);
  opacity:.42;
  filter:saturate(.72);
  transition:transform 360ms var(--ease-out),opacity 360ms var(--ease-out),filter 360ms var(--ease-out),box-shadow 360ms var(--ease-out);
  box-shadow:0 18px 42px rgba(14,17,22,.16);
  z-index:1;
  -webkit-tap-highlight-color:transparent;
}
.gallery__card:hover{opacity:.72;filter:saturate(.9);}
.gallery__card.is-center{
  transform:scale(1);
  opacity:1;
  filter:saturate(1);
  box-shadow:0 30px 70px rgba(147,51,234,.24),0 12px 34px rgba(14,17,22,.22);
  z-index:3;
}
.gallery__card:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px;}

.gallery__card-media{position:absolute;inset:0;display:block;}
.gallery__card-img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery__card-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,18,.03) 0%,rgba(10,8,18,.12) 48%,rgba(10,8,18,.92) 100%);}
.gallery__card-body{position:absolute;left:16px;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;text-align:left;}
.gallery__card-tag{align-self:flex-start;font-family:var(--font-heading);font-size:11px;font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(8px);padding:5px 12px;border-radius:var(--radius-pill);}
.gallery__card-title{font-family:var(--font-heading);font-weight:var(--fw-bold);font-size:1.05rem;line-height:1.25;color:#fff;}
.gallery__card-meta{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);color:rgba(255,255,255,.78);}
.gallery__card-meta-icon{width:14px;height:14px;flex-shrink:0;}

.gallery__dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:var(--space-3);}
.gallery__dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:rgba(14,17,22,.2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),width var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);}
.gallery__dot:hover{transform:scale(1.2);}
.gallery__dot.is-active{background:var(--color-accent);width:26px;border-radius:var(--radius-pill);}
.gallery__dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;}

/* Lightbox */
.btp-lightbox[hidden]{display:none !important;}
.btp-lightbox{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  background:rgba(10,8,18,.94);
  z-index:var(--z-modal);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:72px 84px;
}
.btp-lightbox-img{display:block;max-width:min(1100px,88vw);max-height:82vh;width:auto;height:auto;border-radius:var(--radius-md);object-fit:contain;box-shadow:0 24px 70px rgba(0,0,0,.45);}
.btp-lightbox-close,.btp-lightbox-prev,.btp-lightbox-next{position:absolute;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);}
.btp-lightbox-close:hover,.btp-lightbox-prev:hover,.btp-lightbox-next:hover{background:var(--color-accent);}
.btp-lightbox-close{top:24px;right:24px;width:44px;height:44px;}
.btp-lightbox-close svg{width:18px;height:18px;}
.btp-lightbox-prev,.btp-lightbox-next{top:50%;transform:translateY(-50%);width:52px;height:52px;}
.btp-lightbox-prev{left:24px;}.btp-lightbox-next{right:24px;}
.btp-lightbox-prev svg,.btp-lightbox-next svg{width:20px;height:20px;}
.btp-icon-flip{transform:rotate(180deg);}
body.no-scroll{overflow:hidden;}

@media (max-width:991px){
  .gallery__head h2{font-size:40px;}
  .gallery__track{--gallery-card-w:250px;gap:20px;padding-block:38px;}
  .gallery__card{height:350px;}
}

@media (max-width:767px){
  .gallery{padding:72px 0;}
  .gallery__head{align-items:center;text-align:center;justify-content:center;}
  .gallery__head>div:first-child{text-align:center;}
  .gallery__nav{display:none;}
  .gallery__head h2{font-size:34px;}
  .gallery__track{--gallery-card-w:min(78vw,280px);gap:14px;padding-block:32px;}
  .gallery__card{height:390px;transform:scale(.86);}
  .gallery__card.is-center{transform:scale(1);}
  .btp-lightbox{padding:70px 18px;}
  .btp-lightbox-prev,.btp-lightbox-next{width:42px;height:42px;}
  .btp-lightbox-prev{left:10px;}.btp-lightbox-next{right:10px;}
}

@media (prefers-reduced-motion:reduce){
  .gallery__track{scroll-behavior:auto;}
  .gallery__card{transition:none;}
}
