.events-carousel{position:relative}
.carousel-viewport{overflow:hidden;border-radius:var(--radius-lg,12px)}
.carousel-track{
  display:flex;
  list-style:none;
  margin:0;padding:0;
  transition:transform .55s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}
.carousel-slide{
  position:relative;
  flex:0 0 100%;
  aspect-ratio:16/9;
  overflow:hidden;
  cursor:pointer;
  outline:0;
  background:#0b0f13;
}
.carousel-slide img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.carousel-slide:hover img,
.carousel-slide:focus-visible img{transform:scale(1.06)}

.carousel-fog{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(6,9,12,.92) 0%, rgba(6,9,12,.45) 38%, transparent 68%);
  transition:background .35s ease;
}
.carousel-slide:hover .carousel-fog,
.carousel-slide:focus-visible .carousel-fog{
  background:linear-gradient(to top, rgba(6,9,12,.96) 0%, rgba(6,9,12,.6) 45%, rgba(6,9,12,.15) 75%);
}

.carousel-caption{
  position:absolute;left:0;right:0;bottom:0;
  padding:22px 26px;
  display:flex;flex-direction:column;gap:6px;
}
.carousel-caption-date{
  font-size:.76rem;color:var(--brand);font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
}
.carousel-caption-title{
  font-size:1.35rem;font-weight:800;color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}
.carousel-caption-hint{
  font-size:.76rem;color:rgba(255,255,255,.72);
  opacity:0;transform:translateY(6px);
  transition:opacity .3s ease,transform .3s ease;
}
.carousel-slide:hover .carousel-caption-hint,
.carousel-slide:focus-visible .carousel-caption-hint{opacity:1;transform:translateY(0)}

.carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;
  background:rgba(11,15,19,.72);border:1px solid var(--line);color:var(--text);
  font-size:1.4rem;line-height:1;cursor:pointer;
  display:grid;place-items:center;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
.carousel-arrow:hover{background:var(--brand);color:#111;border-color:var(--brand)}
.carousel-arrow:active{transform:translateY(-50%) scale(.94)}
.carousel-arrow-prev{left:14px}
.carousel-arrow-next{right:14px}

.carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
.carousel-dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--line);border:0;cursor:pointer;padding:0;
  transition:background .2s ease,transform .2s ease;
}
.carousel-dot.active{background:var(--brand);transform:scale(1.25)}

/* Lightbox de evento (clique no slide) */
.event-lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.event-lightbox[hidden]{display:none}
.event-lightbox-backdrop{position:absolute;inset:0;background:rgba(5,7,9,.86);backdrop-filter:blur(3px)}
.event-lightbox-content{
  position:relative;z-index:1;
  max-width:820px;width:100%;max-height:88vh;overflow:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg,12px);
  animation:lightbox-in .25s ease;
}
@keyframes lightbox-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.event-lightbox-content img{width:100%;max-height:420px;object-fit:cover;display:block}
.event-lightbox-body{padding:24px 28px 28px;display:flex;flex-direction:column;gap:8px}
.event-lightbox-body h3{margin:0;font-size:1.4rem}
.event-lightbox-close{
  position:absolute;top:12px;right:12px;z-index:2;
  width:36px;height:36px;border-radius:50%;
  background:rgba(11,15,19,.7);border:1px solid rgba(255,255,255,.22);color:#fff;
  font-size:1.3rem;cursor:pointer;display:grid;place-items:center;
}
.event-lightbox-close:hover{background:var(--brand);color:#111}

@media(max-width:620px){
  .carousel-caption{padding:16px 18px}
  .carousel-caption-title{font-size:1.1rem}
  .carousel-arrow{width:36px;height:36px;font-size:1.1rem}
  .event-lightbox-content img{max-height:260px}
}
