/* Carousel structure & layout */
.psl-carousel-wrapper {
  position: relative;
  margin: var(--psl-events-spacing-lg) 0;
  padding: 0 18px; /* Minimal padding just for arrow spacing */
  overflow-x: hidden; /* Clip horizontal overflow (partial slides) */
  overflow-y: visible; /* Allow vertical overflow (shadows) */
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.psl-carousel-wrapper.loaded {
  opacity: 1;
}

.psl-carousel.swiper {
  overflow: visible; /* Allow shadows to render outside container */
}

/* Slides track & slides */
.psl-carousel .swiper-wrapper { 
  align-items: stretch; 
  padding: 2em 0; /* Vertical padding for shadows */
}

.psl-carousel .swiper-slide {
  height: auto;
  display: flex;
  padding: 0;
}

/* Card styling in carousel context - unified with grid cards */
.psl-carousel .psl-card-body { padding: var(--psl-events-spacing-md); }
.psl-carousel .psl-card-title { font-size: 1.2rem; }
.psl-carousel .psl-card-excerpt { font-size: inherit; }
/* .psl-carousel .psl-card-link { font-size: inherit; } */
.psl-carousel .psl-card .psl-icon { width: 1.2rem; height: 1.2rem; }

/* Navigation arrows */
.psl-carousel-prev,
.psl-carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: var(--psl-events-bg-light);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  box-shadow: var(--shadow-elevation-low);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--psl-events-dark-text);
  padding: 0;
  cursor: pointer;
  opacity: .5;
  transition: transform .2s ease, opacity .2s ease;
}

.psl-carousel-prev:hover,
.psl-carousel-next:hover,
.psl-carousel-prev:focus-visible,
.psl-carousel-next:focus-visible {
  transform: translateY(-50%) scale(1.08);
  box-shadow: var(--shadow-elevation-high);
  opacity: 1;
}

/* Position arrows precisely at wrapper edges */
.psl-carousel-prev { left: 0; }
.psl-carousel-next { right: 0; }

/* Hide default Swiper arrow contents */
.psl-carousel-prev::after,
.psl-carousel-next::after,
.psl-carousel .swiper-navigation-icon { 
  display: none; 
}