/* ===== Preloader ===== */
#preloader {
    transition: opacity 0.5s ease, visibility 0.5s ease;
}
#preloader.hide {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* ===== Scroll to Top Button ===== */
#scrollToTop {
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}
#scrollToTop.show {
    opacity: 1;
    visibility: visible;
}

/* ===== Navbar ===== */
#navbar {
    transition: background-color 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}
#navbar.scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
#navbar.scrolled .nav-link {
    color: #3D3D3D;
}
#navbar.scrolled .nav-link:hover {
    color: #C9A96E;
}
/* Active navigation link styling (set via JS) */
.nav-link.active {
    color: #C9A96E !important;
    font-weight: 600;
}

/* ===== Mobile Menu ===== */
#mobileMenu {
    transition: transform 0.4s ease;
    transform: translateX(100%);
}
#mobileMenu.active {
    transform: translateX(0);
}

/* ===== Hero Slider ===== */
.slide {
    transition: opacity 1s ease-in-out;
}
.slide.active {
    opacity: 1;
}
.dot.active {
    background-color: #C9A96E !important;
    width: 1.5rem;
    border-radius: 9999px;
}

/* ===== Scroll Reveal ===== */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ===== Testimonial Slider ===== */
.testimonial-dot.active {
    background-color: #C9A96E !important;
    width: 1.5rem;
    border-radius: 9999px;
}

/* ===== Gallery Filter Buttons ===== */
.filter-btn.active {
    background-color: #C9A96E;
    color: white;
}

/* ===== Lightbox ===== */
.lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 9998;
    justify-content: center;
    align-items: center;
}
.lightbox.active {
    display: flex;
}
.lightbox img {
    max-height: 85vh;
    max-width: 90vw;
    object-fit: contain;
    border-radius: 1rem;
}

/* ===== Toast Notification ===== */
.toast {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    gap: 0.75rem;
    animation: slideInRight 0.4s ease;
    max-width: 350px;
}
.toast.success { border-left: 4px solid #C9A96E; }
.toast.error { border-left: 4px solid #B76E79; }
.toast.info { border-left: 4px solid #3D3D3D; }

@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* ===== Keyframes ===== */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes pulseGold {
    0% { box-shadow: 0 0 0 0 rgba(201, 169, 110, 0.4); }
    70% { box-shadow: 0 0 0 10px rgba(201, 169, 110, 0); }
    100% { box-shadow: 0 0 0 0 rgba(201, 169, 110, 0); }
}

/* ===== Custom Scrollbar ===== */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #FFFDF7; }
::-webkit-scrollbar-thumb { background: #C9A96E; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #B76E79; }

/* ===== FAQ Accordion ===== */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
}
.faq-answer.open {
    max-height: 200px; /* adjust as needed */
}