/* [gev_event_carousel] — colours come from list.css .gev-item.gev-cat-<slug> variables */
.gev-carousel{
  --gev-carousel-ink:#1b6fd0;
  --gev-carousel-ease:cubic-bezier(.65,0,.35,1);
  position:relative;
  max-width:560px;
  margin:0 auto 24px;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(16,52,96,.18);
  isolation:isolate;
}
.gev-carousel__track{display:grid}

/* Override the generic article.gev-item / .gev-item card rules from list.css */
.gev-carousel a.gev-carousel__card.gev-item{
  grid-area:1/1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
  min-height:220px;
  margin:0 !important;
  padding:22px 0 18px !important;
  border:0 !important;
  border-radius:0 !important;
  /* accent tint over a light base: matches the list card colour, but solid */
  background:linear-gradient(var(--gev-cat-accent,rgba(90,230,215,.55)),var(--gev-cat-accent,rgba(90,230,215,.55))),#eef6ff !important;
  color:var(--gev-carousel-ink);
  text-decoration:none !important;
  text-align:center;
  line-height:1.1;
  transform:translateX(100%);
  visibility:hidden;
}
.gev-carousel a.gev-carousel__card.is-active{transform:translateX(0);visibility:visible;z-index:2}
.gev-carousel a.gev-carousel__card.is-entering,
.gev-carousel a.gev-carousel__card.is-leaving{visibility:visible;transition:transform var(--gev-carousel-dur,.6s) var(--gev-carousel-ease)}
.gev-carousel a.gev-carousel__card.is-entering{transform:translateX(0);z-index:3}
.gev-carousel a.gev-carousel__card.is-leaving{transform:translateX(-100%);z-index:1}
.gev-carousel a.gev-carousel__card.no-anim{transition:none}

.gev-carousel__top{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 20px}
.gev-carousel__cat{
  padding:4px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.gev-carousel__city{
  display:block;
  width:100%;
  font-size:clamp(34px,9vw,58px);
  font-weight:900;
  letter-spacing:.01em;
  text-transform:uppercase;
  white-space:nowrap;   /* carousel.js shrinks long names to fit one row */
  overflow:hidden;
  text-overflow:clip;
}
.gev-carousel__title{
  display:block;
  padding:12px 20px;
  background:#fff;
  box-shadow:0 1px 0 rgba(27,111,208,.08),0 -1px 0 rgba(27,111,208,.08);
  font-size:clamp(18px,4.6vw,26px);
  font-weight:800;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.gev-carousel__bottom{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 20px}
.gev-carousel__date{font-size:clamp(17px,4vw,22px);font-weight:800}
.gev-carousel__more{
  display:inline-block;
  padding:7px 16px;
  border-radius:999px;
  background:var(--gev-carousel-ink);
  color:#fff;
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:background .2s;
}
.gev-carousel a.gev-carousel__card:hover .gev-carousel__more,
.gev-carousel a.gev-carousel__card:focus-visible .gev-carousel__more{background:#124f97}
.gev-carousel a.gev-carousel__card:focus-visible{outline:3px solid var(--gev-carousel-ink);outline-offset:-3px}

/* Instagram card */
.gev-carousel a.gev-carousel__card.gev-carousel__card--ig{
  background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%) !important;
  color:#fff;
}
.gev-carousel__ig-icon{font-size:52px;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.gev-carousel__ig-icon i{font-family:"Font Awesome 6 Brands","Font Awesome 7 Brands" !important;font-weight:400}
.gev-carousel__card--ig .gev-carousel__city{text-transform:none;text-shadow:0 2px 10px rgba(0,0,0,.18)}
.gev-carousel__card--ig .gev-carousel__title{color:#c13584}
.gev-carousel__card--ig .gev-carousel__date{font-size:clamp(14px,3.4vw,17px);font-weight:700}
.gev-carousel__card--ig .gev-carousel__more{background:#fff;color:#c13584}
.gev-carousel a.gev-carousel__card--ig:hover .gev-carousel__more,
.gev-carousel a.gev-carousel__card--ig:focus-visible .gev-carousel__more{background:#ffe9f4}

/* Time-to-next indicator */
.gev-carousel__progress{position:absolute;left:0;right:0;bottom:0;height:4px;z-index:4;background:rgba(27,111,208,.12)}
.gev-carousel__progress span{display:block;height:100%;background:var(--gev-carousel-ink);transform-origin:left;transform:scaleX(0);animation:gev-carousel-progress 2s linear forwards}
.gev-carousel.is-paused .gev-carousel__progress span{animation-play-state:paused}
@keyframes gev-carousel-progress{to{transform:scaleX(1)}}

@media (prefers-reduced-motion:reduce){
  .gev-carousel a.gev-carousel__card.is-entering,
  .gev-carousel a.gev-carousel__card.is-leaving{transition:none}
  .gev-carousel__progress{display:none}
}
