/* Carousel & Image Showcase – shared styles */

.carousel {
  position: relative;
  width: 100%;
  margin: 1.5em 0;
}
.carousel input[type="radio"] {
  display: none;
}
.carousel-body {
  display: grid;
  grid-template-columns: 2.5em 1fr 2.5em;
  border: 1px solid rgba(128, 128, 128, 0.3);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(128, 128, 128, 0.05);
}
.carousel-inner {
  grid-column: 2;
  grid-row: 1;
  display: grid;
}
.carousel-slide {
  grid-row: 1;
  grid-column: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  padding: 1em;
  min-height: 0;
}
.carousel-slide img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Arrow areas */
.carousel-arrow-area {
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: rgba(128, 128, 128, 0.08);
  transition: background 0.2s;
}
.carousel-arrow-area:hover {
  background: rgba(128, 128, 128, 0.2);
}
.carousel-arrow-area.carousel-prev-area { grid-column: 1; }
.carousel-arrow-area.carousel-next-area { grid-column: 3; }
.carousel-arrow-area .arrow-symbol {
  color: rgba(128, 128, 128, 0.5);
  font-size: 1.5em;
  line-height: 1;
  user-select: none;
  pointer-events: none;
}
.carousel-arrow-area:hover .arrow-symbol {
  color: rgba(128, 128, 128, 0.9);
}

/* Invisible label overlays – only the correct one receives clicks */
.carousel-arrow {
  position: absolute;
  inset: 0;
  cursor: pointer;
  z-index: 1;
  opacity: 0;
  pointer-events: none;
}

/* Dot indicators */
.carousel-dots {
  text-align: center;
  padding: 0.6em 0 0.4em;
}
.carousel-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(128, 128, 128, 0.35);
  margin: 0 5px;
  cursor: pointer;
  transition: background 0.2s;
}
.carousel-dot:hover {
  background: rgba(128, 128, 128, 0.6);
}

/* ── Carousel (carousel-s1 … carousel-s7) ── */

#carousel-s1:checked ~ .carousel-body .carousel-slide-1,
#carousel-s2:checked ~ .carousel-body .carousel-slide-2,
#carousel-s3:checked ~ .carousel-body .carousel-slide-3,
#carousel-s4:checked ~ .carousel-body .carousel-slide-4,
#carousel-s5:checked ~ .carousel-body .carousel-slide-5,
#carousel-s6:checked ~ .carousel-body .carousel-slide-6,
#carousel-s7:checked ~ .carousel-body .carousel-slide-7,
#carousel-s8:checked ~ .carousel-body .carousel-slide-8 {
  opacity: 1;
  visibility: visible;
}
#carousel-s1:checked ~ .carousel-body .ctrl-1,
#carousel-s2:checked ~ .carousel-body .ctrl-2,
#carousel-s3:checked ~ .carousel-body .ctrl-3,
#carousel-s4:checked ~ .carousel-body .ctrl-4,
#carousel-s5:checked ~ .carousel-body .ctrl-5,
#carousel-s6:checked ~ .carousel-body .ctrl-6,
#carousel-s7:checked ~ .carousel-body .ctrl-7,
#carousel-s8:checked ~ .carousel-body .ctrl-8 {
  pointer-events: auto;
  z-index: 3;
}
#carousel-s1:checked ~ .carousel-dots label[for="carousel-s1"],
#carousel-s2:checked ~ .carousel-dots label[for="carousel-s2"],
#carousel-s3:checked ~ .carousel-dots label[for="carousel-s3"],
#carousel-s4:checked ~ .carousel-dots label[for="carousel-s4"],
#carousel-s5:checked ~ .carousel-dots label[for="carousel-s5"],
#carousel-s6:checked ~ .carousel-dots label[for="carousel-s6"],
#carousel-s7:checked ~ .carousel-dots label[for="carousel-s7"],
#carousel-s8:checked ~ .carousel-dots label[for="carousel-s8"] {
  background: rgba(128, 128, 128, 0.8);
}

/* ── Single-image showcase container ── */

.image-showcase {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1em;
  border: 1px solid rgba(128, 128, 128, 0.3);
  border-radius: 8px;
  background: rgba(128, 128, 128, 0.05);
  margin: 1.5em 0;
}
.image-showcase img {
  max-width: 100%;
  height: auto;
  display: block;
}
