/* =========================
   GLOBAL RESET & BEHAVIOR
   ========================= */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  scroll-behavior: smooth;
}

/* =========================
   HERO ANIMATION
   ========================= */
.hero {
  animation: landing 1.5s forwards;
}

@keyframes landing {
  0% {
    opacity: 0;
    transform: translateY(0px);
  }
  100% {
    opacity: 1;
    transform: translateY(10px);
  }
}

/* =========================
   BACKGROUND OVERLAY
   ========================= */
div.kosong2 {
  position: absolute;
  height: 500px;
  width: 100%;
  background: linear-gradient(
    0deg,
    rgba(255, 255, 255, 0),
    rgba(17, 0, 255, 0)
  );
}

div.kosong3 {
  position: absolute;
  left: 0;
  margin-top: -40px;
  height: 200px;
  width: 100%;
  background: linear-gradient(0deg, rgba(0, 60, 255, 0), rgba(17, 0, 255, 0));
}

/* =========================
   IMAGE FILTERS
   ========================= */
img.wedding {
  filter: contrast(80%);
  filter: brightness(80%);
}

/* =========================
   ICONS & NAV
   ========================= */
.bi {
  fill: #475569;
}

.bi.putih {
  fill: #ff1010;
}

.nav {
  box-shadow: 1px -2px 27px -11px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 1px -2px 27px -11px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 1px -2px 27px -11px rgba(0, 0, 0, 0.3);
}

/* nav label text */
.nav-title {
  color: #475569;
}

.nav-title.putih {
  color: #f87171;
}

/* =========================
   SECTION TITLES & FLOWERS
   ========================= */
.flower,
.flower2,
.flower3,
.flower4,
.flower5 {
  transform: scale(0);
  transition: 0.5s;
  opacity: 0;
}

.flower.muncul,
.flower2.muncul,
.flower3.muncul,
.flower4.muncul,
.flower5.muncul {
  transform: scale(1);
  opacity: 1;
}

.title,
.title2,
.title3,
.title4,
.title5 {
  transform: scale(1, 0);
  transition: 0.5s;
}

.title.muncul,
.title2.muncul,
.title3.muncul,
.title4.muncul,
.title5.muncul {
  transform: scale(1);
}

/* =========================
   OPENING TEXT & PROFILES
   (disesuaikan dengan HTML: .profile1 & .profile2)
   ========================= */
.opening,
.profiles,
.profile1,
.profile2,
.btn-map {
  transform: translateY(100px);
  opacity: 0;
  transition: 0.5s;
}

.profiles,
.profile1,
.profile2 {
  transition: 1s;
}

.opening.muncul,
.profiles.muncul,
.profile1.muncul,
.profile2.muncul,
.btn-map.muncul {
  opacity: 1;
  transform: translateY(0);
}

/* kalau di JS kamu pakai .dan / .dan2, tetap dipertahankan */
.dan,
.dan2 {
  transform: translateY(100px);
  opacity: 0;
  transition: 2s;
}

.dan.muncul,
.dan2.muncul {
  opacity: 1;
  transform: translateY(0);
}

/* =========================
   EVENT CARDS
   ========================= */
.card1,
.card2 {
  transform: translateY(100px);
  opacity: 0;
  width: 400px;
}

.card1 {
  transition: 0.5s;
}

.card2 {
  transition: 0.9s;
}

.card1.muncul,
.card2.muncul {
  opacity: 0.85;
  transform: translateY(0);
}

/* Responsive width cards */
@media screen and (max-width: 418px) {
  .card1,
  .card2 {
    width: 300px;
    height: 230px;
  }
}

@media screen and (max-width: 315px) {
  .card1,
  .card2 {
    width: 245px;
    height: 230px;
  }
}

@media screen and (max-width: 250px) {
  .card1,
  .card2 {
    width: 230px;
    height: 230px;
  }
}

/* =========================
   GALLERY
   ========================= */
.gallery img {
  transition: 0.3s ease-in-out;
}

.gallery img:hover {
  filter: brightness(130%);
}

/* animasi gambar gallery muncul */
#img1,
#img2,
#img3,
#img4,
#img5,
#img6 {
  transform: scale(0);
  opacity: 0;
}

#img1 {
  transition: 0.7s;
}
#img2 {
  transition: 1s;
}
#img3 {
  transition: 1.3s;
}
#img4 {
  transition: 0.7s;
}
#img5 {
  transition: 1s;
}
#img6 {
  transition: 1.3s;
}

#img1.muncul,
#img2.muncul,
#img3.muncul,
#img4.muncul,
#img5.muncul,
#img6.muncul {
  transform: scale(1);
  opacity: 1;
}

/* grid gallery tambahan untuk layar kecil */
@media screen and (max-width: 375px) {
  .gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    grid-gap: 15px;
  }
}

/* =========================
   COUNTDOWN CIRCLES
   ========================= */
.circle1,
.circle2,
.circle3,
.circle4 {
  transform: translateX(-100px);
  opacity: 0;
}

.circle1 {
  transition: 0.5s;
}
.circle2 {
  transition: 1s;
}
.circle3 {
  transition: 2s;
}
.circle4 {
  transform: translateX(-190px);
  transition: 2.4s;
}

.circle1.muncul,
.circle2.muncul,
.circle3.muncul,
.circle4.muncul {
  transform: translateX(0);
  opacity: 1;
}

/* =========================
   NAV ACTIVE STATE
   (dibatasi ke .nav supaya tidak ganggu ul lain)
   ========================= */
.nav ul li a {
  width: 120px;
  height: 70px;
  padding: 10px;
  transition: 0.5s;
  display: block;
}

.nav ul li a.active {
  background-color: rgb(9, 0, 139);
}

.nav ul li a.active span {
  color: #ffffff;
}

.nav ul li a.active svg {
  fill: #fff;
}

@media screen and (max-width: 639px) {
  .nav ul li a.active {
    background-color: rgb(8, 5, 46);
  }
  .nav ul li a {
    width: 55px;
    height: 70px;
  }
}

/* =========================
   AUDIO PLAYER
   ========================= */
.audio-player {
  --player-button-width: 3em;
  --sound-button-width: 2em;
  --space: 0.5em;
  width: 15rem;
  height: 3rem;
}

.controls {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 70%;
  margin-top: 10px;
}

.player-button {
  background-color: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
  width: 40px;
  margin-right: 5px;
}

/* =========================
   LAYOUT / RESPONSIVE
   ========================= */

/* wrapper event cards */
.acara {
  display: flex;
  justify-content: center;
  gap: 1.75rem; /* serasi dengan Tailwind gap-7 */
}

@media screen and (max-width: 855px) {
  .acara {
    display: grid;
    justify-items: center;
  }

  .card2 {
    margin-top: 20px;
  }
}

/* Event height responsive */
@media screen and (max-height: 850px),
  screen and (max-height: 815px),
  screen and (max-height: 670px),
  screen and (max-height: 555px) {
  section#event {
    height: 100%;
  }
}

@media screen and (max-height: 445px) {
  .surah {
    height: 100%;
  }
}

/* =========================
   WAVE ANIMATION
   ========================= */
.waves1 {
  position: relative;
  width: 100%;
  height: 15vh;
  bottom: 0;
  min-height: 100px;
  max-height: 100px;
}

.waves {
  position: relative;
  width: 100%;
  height: 15vh;
  margin-bottom: -50px;
  min-height: 100px;
  max-height: 100px;
}

.parallax > use {
  -webkit-animation: moveForever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
  animation: moveForever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;
}

.parallax > use:nth-child(1) {
  -webkit-animation-delay: -2s;
  animation-delay: -2s;
  -webkit-animation-duration: 7s;
  animation-duration: 7s;
}

.parallax > use:nth-child(2) {
  -webkit-animation-delay: -3s;
  animation-delay: -3s;
  -webkit-animation-duration: 10s;
  animation-duration: 10s;
}

.parallax > use:nth-child(3) {
  -webkit-animation-delay: -4s;
  animation-delay: -4s;
  -webkit-animation-duration: 13s;
  animation-duration: 13s;
}

.parallax > use:nth-child(4) {
  -webkit-animation-delay: -5s;
  animation-delay: -5s;
  -webkit-animation-duration: 20s;
  animation-duration: 20s;
}

@-webkit-keyframes moveForever {
  0% {
    -webkit-transform: translate3d(-90px, 0, 0);
    transform: translate3d(-90px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(85px, 0, 0);
    transform: translate3d(85px, 0, 0);
  }
}

@keyframes moveForever {
  0% {
    -webkit-transform: translate3d(-90px, 0, 0);
    transform: translate3d(-90px, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(85px, 0, 0);
    transform: translate3d(85px, 0, 0);
  }
}

/* =========================
   EXTRA RESPONSIVE
   ========================= */
@media (max-width: 768px) {
  h1 {
    font-size: 24px;
  }

  .content {
    height: 30vh;
  }

  .waves {
    height: 40px;
    min-height: 40px;
  }
}
