/* Container vs full-bleed */
.gp-contained { 
  max-width: 1200px; 
  margin: 0 auto; 
  padding: 0 16px; 
}
.gp-full-bleed { 
  width: 100vw; 
  margin-left: 50%; 
  transform: translateX(-50%); 
}

/* Slider wrapper */
.gp-slider { 
  position: relative; 
  width: 100%; 
  overflow: hidden; 
}

/* If no fixed height is set, use aspect ratio (padding-top trick) */
.gp-slider:not([style*="height"]) { 
  height: auto; 
}
.gp-slider:not([style*="height"])::before { 
  content: ""; 
  display: block; 
  padding-top: var(--gp-ratio, 56.25%); /* default 16:9 */ 
}

/* Make swiper-wrapper fill the slider box */
.gp-slider .swiper-wrapper { 
  position: absolute; 
  inset: 0; 
}

/* Slides should stack horizontally (default Swiper behavior) */
.gp-slider .swiper-slide { 
  width: 100%; 
  height: 100%; 
  display: flex; 
  justify-content: center; 
  align-items: center; 
}

/* Images fill each slide */
.gp-slider img { 
  display: block; 
  width: 100%; 
  height: 100%; 
  object-fit: contain; 
}

/* Ensure controls show above images */
.gp-slider .swiper-button-prev, 
.gp-slider .swiper-button-next, 
.gp-slider .swiper-pagination { 
  z-index: 2; 
}
