/* =====================================================
   MONOCHROME GRAY THEME (clean & elegant wedding)
   ===================================================== */
:root {
  --bs-primary: #6c757d;      /* abu utama: medium gray */
  --bs-secondary: #adb5bd;    /* abu muda */
  --bs-dark: #343a40;         /* abu tua */
  --bs-light: #f8f9fa;        /* abu sangat muda */
  --bs-white: #ffffff;        /* putih bersih */
}

/* =====================================================
   Global text + background
   ===================================================== */
body {
  background-color: var(--bs-light);
  color: var(--bs-dark);
  font-family: 'Open Sans', sans-serif;
}

.text-primary {
  color: var(--bs-primary) !important;
}

.text-secondary {
  color: var(--bs-secondary) !important;
}

.bg-primary {
  background-color: var(--bs-primary) !important;
}

.bg-secondary {
  background-color: var(--bs-secondary) !important;
}

.border-secondary {
  border-color: var(--bs-secondary) !important;
}

/* =====================================================
   Buttons
   ===================================================== */
.btn-primary,
.btn-primary-outline-0 {
  background-color: var(--bs-primary) !important;
  border: 1px solid var(--bs-dark) !important;
  color: var(--bs-white) !important;
  font-weight: 600;
  transition: all 0.3s ease;
}

.btn-primary:hover,
.btn-primary-outline-0:hover {
  background-color: var(--bs-dark) !important;
  border-color: var(--bs-dark) !important;
  color: var(--bs-white) !important;
  transform: translateY(-2px);
}

.btn-light-outline-0 {
  background-color: var(--bs-white) !important;
  border: 1px solid var(--bs-secondary) !important;
  color: var(--bs-dark) !important;
}

.btn-light-outline-0:hover {
  background-color: var(--bs-secondary) !important;
  color: var(--bs-white) !important;
}

/* =====================================================
   Navbar
   ===================================================== */
.navbar {
  background-color: var(--bs-white) !important;
}

.navbar .nav-link {
  color: var(--bs-dark) !important;
}

.navbar .nav-link.active,
.navbar .nav-link:hover {
  color: var(--bs-primary) !important;
}

/* =====================================================
   Carousel / Header text
   ===================================================== */
.carousel-caption h4,
.carousel-caption h1 {
  color: var(--bs-light) !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}

.fa-heart.text-primary {
  color: var(--bs-primary) !important; /* ganti ikon hati jadi abu */
}

/* =====================================================
   Story, Timeline, Section borders
   ===================================================== */
.story .bg-secondary,
.wedding-timeline.bg-secondary {
  background-color: var(--bs-secondary) !important;
}

.story h4, .wedding-timeline h3 {
  color: var(--bs-dark) !important;
}

/* =====================================================
   RSVP form
   ===================================================== */
.RSVP-form {
  background: var(--bs-light);
}

.RSVP-form .form-control,
.RSVP-form select,
.RSVP-form textarea {
  color: var(--bs-dark) !important;
  background-color: var(--bs-white) !important;
  border: 1px solid var(--bs-secondary) !important;
  border-radius: 6px;
  transition: all 0.3s ease;
}

.RSVP-form .form-control:focus,
.RSVP-form select:focus,
.RSVP-form textarea:focus {
  border-color: var(--bs-primary) !important;
  box-shadow: 0 0 0 0.15rem rgba(108, 117, 125, 0.25);
}

.RSVP-form button.btn {
  background-color: var(--bs-primary) !important;
  border: none !important;
  color: var(--bs-white) !important;
}

.RSVP-form button.btn:hover {
  background-color: var(--bs-dark) !important;
}

/* =====================================================
   Countdown color
   ===================================================== */
.wedding-date .fs-2 div {
  color: var(--bs-primary) !important;
  font-weight: 700;
  font-family: 'Playfair Display', serif;
}

.wedding-date span {
  color: var(--bs-dark) !important;
}

/* =====================================================
   Footer
   ===================================================== */
.footer {
  background-color: var(--bs-dark) !important;
}

.footer .text-white {
  color: var(--bs-light) !important;
}

.footer a.btn-link:hover {
  color: var(--bs-secondary) !important;
  letter-spacing: 1px;
}

/* =====================================================
   Small details (icons, highlights)
   ===================================================== */
.fa, .fas, .fab, .bi {
  color: var(--bs-primary);
}

.fa:hover, .fab:hover, .bi:hover {
  color: var(--bs-dark);
}

/* =====================================================
   MONOCHROME GRAY THEME (Elegant + Original Layout)
   ===================================================== */
:root {
  --bs-primary: #6c757d;      /* abu medium */
  --bs-secondary: #adb5bd;    /* abu muda */
  --bs-dark: #343a40;         /* abu tua */
  --bs-light: #f8f9fa;        /* abu sangat muda */
  --bs-white: #ffffff;        /* putih */
}

/*** Spinner Start ***/
#spinner {
  opacity: 0;
  visibility: hidden;
  transition: opacity .8s ease-out, visibility 0s linear .5s;
  z-index: 99999;
}
#spinner.show {
  transition: opacity .8s ease-out, visibility 0s linear .0s;
  visibility: visible;
  opacity: 1;
}
/*** Spinner End ***/

/*** Back to Top ***/
.back-to-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  display: flex;
  width: 45px;
  height: 45px;
  align-items: center;
  justify-content: center;
  transition: 0.5s;
  z-index: 99;
}

/*** Button Start ***/
.btn {
  font-weight: 600;
  transition: .5s;
}
.btn-square,
.btn-sm-square,
.btn-md-square,
.btn-lg-square {
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: normal;
}
.btn-square { width: 32px; height: 32px; }
.btn-sm-square { width: 34px; height: 34px; }
.btn-md-square { width: 44px; height: 44px; }
.btn-lg-square { width: 56px; height: 56px; }

.btn-primary-outline-0 {
  color: var(--bs-white) !important;
  border: 1px solid var(--bs-primary);
}
.btn-light-outline-0 {
  color: var(--bs-primary) !important;
  border: 1px solid var(--bs-light);
}
.btn-primary-outline-0:hover {
  background: var(--bs-secondary) !important;
  color: var(--bs-white) !important;
  border: 1px solid var(--bs-primary);
}
.btn-light-outline-0:hover {
  background: var(--bs-primary) !important;
  color: var(--bs-white) !important;
  border: 1px solid var(--bs-secondary);
}

.btn-primary,
.btn-primary-outline-0 {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-dark) !important;
  color: var(--bs-white) !important;
}
.btn-primary:hover {
  background-color: var(--bs-dark) !important;
}
/*** Button End ***/

/*** Font headings ***/
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: 'Great Vibes', cursive;
  font-weight: 700;
}

/*** Navbar Start ***/
.sticky-top {
  transition: 0.5s;
  background: var(--bs-white);
}
.navbar .navbar-nav .nav-link {
  padding: 10px 15px;
  font-family: 'Petit Formal Script', cursive;
  font-weight: 600;
  font-size: 16px;
  transition: .5s;
  color: var(--bs-dark) !important;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
  color: var(--bs-primary) !important;
}
@media (min-width: 1200px) {
  .navbar .navbar-collapse .border-top {
    border-top: none !important;
  }
}
/*** Navbar End ***/

/*** Carousel Start ***/
.carousel-item {
  position: relative;
  min-height: 100vh;
}
.carousel-item img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.carousel-item .carousel-caption {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0; left: 0;
  display: flex;
  align-items: center;
  justify-content: end;
  text-align: center;
  background: linear-gradient(rgba(0, 0, 0, .4), rgba(0, 0, 0, .4));
}
.carousel-caption h4, .carousel-caption h1 {
  color: var(--bs-white) !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}
.fa-heart.text-primary {
  color: var(--bs-secondary) !important;
}
#carouselId .carousel-indicators {
  padding-bottom: 30px;
}
#carouselId .carousel-indicators li {
  border: 10px solid var(--bs-white);
  margin-right: 10px;
  transition: 0.5s;
}
#carouselId .carousel-indicators li.active {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
}
/*** Carousel End ***/

/*** Wedding Story Start ***/
.story .story-timeline, .story .story-timeline .row {
  position: relative;
}
.story .story-timeline::before,
.story .story-timeline::after {
  position: absolute;
  content: "";
  width: 15px; height: 15px;
  background: var(--bs-secondary);
  border-radius: 10px;
  left: 50%; transform: translateX(-50%);
}
.story .story-timeline::before { top: -7px; }
.story .story-timeline::after { bottom: -7px; }
.story .story-timeline .row::after {
  position: absolute;
  content: "\f004";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: 30px;
  color: var(--bs-secondary);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
  .story .story-timeline::before,
  .story .story-timeline::after,
  .story .story-timeline .row::after {
    display: none;
  }
}
/*** Wedding Story End ***/

/*** Wedding Date Start ***/
.wedding-date-bg .wedding-date {
  width: 100%;
  position: relative;
  overflow: hidden;
  background: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), url(../img/wedding-date-bg.jpg) center;
  object-fit: cover;
  background-repeat: no-repeat;
  border: 15px solid rgba(150,150,150,0.4) !important;
}
.wedding-date .fs-2 div {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--bs-primary);
  font-family: 'Playfair Display', serif;
}
.wedding-date span {
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--bs-dark);
}
/*** Wedding Date End ***/

/*** Gallery, Team, Timeline, Footer tetap seperti orisinal tapi abu ***/
.gallery .gallery-img:hover .hover-style {
  border: 600px solid rgba(255,255,255,0.2);
}

.team .team-item:hover .team-content {
  background: rgba(0,0,0,0.5);
}

/*** RSVP Form ***/
.RSVP-form {
  background: linear-gradient(rgba(255,255,255,0.08), rgba(0,0,0,0.2));
  object-fit: cover;
}
.RSVP-form .form-control,
.RSVP-form select,
.RSVP-form textarea {
  color: var(--bs-dark) !important;
  background-color: var(--bs-white) !important;
  border: 1px solid var(--bs-secondary) !important;
  border-radius: 6px;
}
.RSVP-form .form-check-input {
  accent-color: var(--bs-primary);
}
.RSVP-form button.btn {
  background-color: var(--bs-primary) !important;
  border: none !important;
  color: var(--bs-white) !important;
}
.RSVP-form button.btn:hover {
  background-color: var(--bs-dark) !important;
}

/*** Footer Start ***/
.footer {
  background: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url(../img/footer-bg.jpg) center center;
  background-size: cover;
  background-repeat: no-repeat;
}
.footer .footer-item a.btn-link, .footer .footer-item p {
  color: var(--bs-light);
}
.footer .footer-item a.btn-link:hover {
  color: var(--bs-secondary);
}
.copyright {
  border-top: 1px solid rgba(255,255,255,0.08);
  background: var(--bs-dark) !important;
}
.lock-scroll {
    overflow: hidden;
    height: 100vh;
}
.hide-navbar {
    opacity: 0 !important;
    pointer-events: none !important;
}
