/* Rotary Carousel */
.rotary-carousel{ position:relative; margin:32px 0; }
.rotary-carousel-track{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  border-radius:var(--rotary-radius);
}
.rotary-carousel-track::-webkit-scrollbar{ display:none; }
.rotary-carousel-slide{
  flex:0 0 100%;
  scroll-snap-align:start;
  position:relative;
  min-height:320px;
  display:flex;
  align-items:flex-end;
  background:var(--rotary-bg-alt);
}
.rotary-carousel-image{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.rotary-carousel-caption{
  position:relative;
  z-index:1;
  width:100%;
  padding:32px 28px;
  color:#fff;
  background:linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.15) 70%, transparent 100%);
}
.rotary-carousel-caption h3{ color:#fff; font-size:1.5rem; margin:0 0 8px; }
.rotary-carousel-caption p{ margin:0 0 14px; opacity:.92; max-width:60ch; }
.rotary-carousel-prev, .rotary-carousel-next{
  position:absolute; top:50%; transform:translateY(-50%);
  width:42px; height:42px; border-radius:50%; border:0;
  background:rgba(255,255,255,.9); color:var(--rotary-text);
  cursor:pointer; z-index:2; font-size:16px;
}
.rotary-carousel-prev{ left:12px; }
.rotary-carousel-next{ right:12px; }
.rotary-carousel-prev:hover, .rotary-carousel-next:hover{ background:#fff; }
.rotary-carousel-dots{
  display:flex; justify-content:center; gap:8px;
  margin-top:14px;
}
.rotary-carousel-dots button{
  width:9px; height:9px; border-radius:50%; border:0;
  background:var(--rotary-border); padding:0; cursor:pointer;
}
.rotary-carousel-dots button.is-active{ background:var(--rotary-primary); }
