/* ===============================
   Global Reset
=============================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ===============================
   Slider Container
=============================== */
.slider {
  position: relative;
  width: 100%;
  height: 70vh;
  max-height: 800px;
  overflow: hidden;
  background: #000;
}

/* ===============================
   Individual Slides
=============================== */
.slide {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 0;
}

.slide.active {
  opacity: 1;
  z-index: 1;
}

.slide picture,
.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===============================
   Overlay Text
=============================== */
.overlay {
  position: absolute;
  bottom: 3%;
  left: 3%;
  color: orangered;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 35px 40px;
  max-width: 50%;
  border-radius: 8px;
  z-index: 2;
  backdrop-filter: blur(4px);
}

.overlay h2 {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  margin-bottom: 0.5rem;
}

.overlay p {
  font-size: clamp(1rem, 2vw, 1.3rem);
  margin-bottom: 1rem;
  font-weight: 700;
}

.overlay a {
  display: inline-block;
  background: #0067b8;
  color: white;
  padding: 10px 22px;
  text-decoration: none;
  border-radius: 6px;
  transition: background 0.3s ease;
}

.overlay a:hover {
  background: #004a82;
}

/* ===============================
   Navigation Arrows
=============================== */
.navigation span {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2rem;
  color: white;
  background-color: rgba(0,0,0,0.4);
  padding: 10px 15px;
  cursor: pointer;
  border-radius: 50%;
  z-index: 3;
  transition: background 0.3s ease;
  user-select: none;
}

.navigation span:hover {
  background-color: rgba(0,0,0,0.7);
}

.prev { left: 15px; }
.next { right: 15px; }

/* ===============================
   Dots Navigation
=============================== */
.dots {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
  z-index: 2;
}

.dots span {
  height: 12px;
  width: 12px;
  margin: 0 6px;
  display: inline-block;
  background-color: rgba(255,255,255,0.6);
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.3s ease;
}

.dots span.active {
  background-color: white;
}

/* ===============================
   Responsive Design
=============================== */
@media (max-width: 1024px) {
  .overlay {
    max-width: 70%;
    padding: 25px 30px;
  }
}

@media (max-width: 768px) {
  .slider {
    height: 55vh;
  }

  /* Consistent centered framing for all slides */
  .slide img {
    object-fit: cover;
    object-position: center center; /* perfect balanced crop */
    transform: scale(1.05); /* subtle zoom for visual polish */
  }

  /* Overlay adjustments for mobile */
  .overlay {
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 0;
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.95);
    text-align: center;
  }

  .overlay h2 {
    font-size: 1.6rem;
  }

  .overlay p {
    font-size: 1rem;
  }

  .navigation span {
    font-size: 1.5rem;
    padding: 8px 12px;
  }

  .dots {
    bottom: 10px;
  }
}

@media (max-width: 480px) {
  .slider {
    height: 50vh;
  }
  .overlay h2 { font-size: 1.4rem; }
  .overlay p { font-size: 0.9rem; }
}
