/* General Body & Typography */
body { 
    background-color: #f8f9fa; 
    font-family: 'Poppins', sans-serif; 
    overflow-x: hidden; 
}

h1, h2, h3, h4, h5, h6 { 
    font-family: 'Poppins', sans-serif !important; 
}

/* Floating Action Buttons (WhatsApp & Phone) */
.fab-container { 
    position: fixed; 
    bottom: 30px; 
    right: 20px; 
    z-index: 1000; 
    display: flex; 
    flex-direction: column; 
    gap: 15px; 
}

.fab { 
    width: 55px; 
    height: 55px; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    color: white; 
    font-size: 24px; 
    box-shadow: 0 4px 10px rgba(0,0,0,0.3); 
    transition: transform 0.3s ease; 
}

.fab:hover { transform: scale(1.1); }
.fab-whatsapp { background-color: #25D366; }
.fab-call { background-color: #ca8a04; }

/* Loader (Optional) */
#page-loader { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    z-index: 9999; 
    background-color: #ffffff; 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    transition: opacity 1s ease-out; 
}

/* Custom Gradients */
.text-gold-gradient { 
    background: linear-gradient(to right, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c); 
    -webkit-background-clip: text; 
    background-clip: text; 
    color: transparent; 
}

.text-royal-gradient { 
    background: linear-gradient(to right, #ca8a04, #dc2626, #ca8a04); 
    -webkit-background-clip: text; 
    background-clip: text; 
    color: transparent; 
}

/* Gold Border Accent */
.gold-border-bottom { position: relative; }
.gold-border-bottom::after { 
    content: ''; 
    position: absolute; 
    bottom: -10px; 
    left: 50%; 
    transform: translateX(-50%); 
    width: 60px; 
    height: 3px; 
    background-color: #fbbf24; 
}

/* Marble Texture Overlay */
.marble-overlay { 
    background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7z' fill='%239C92AC' fill-opacity='0.05'/%3E%3C/svg%3E"); 
}

/* Reviews Section Styling */
#reviews .group:hover {
    transform: translateY(-5px);
    transition: transform 0.3s ease;
}

#reviews i.fa-star, #reviews i.fa-star-half-stroke {
    margin-right: 2px;
    font-size: 0.875rem;
}

/* Line Clamping for Descriptions */
.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;  
    overflow: hidden;
}

/* =========================================
   NEW: SMOOTH SCROLL REVEAL ANIMATION 
   ========================================= */
.reveal-up {
    opacity: 0;
    transform: translateY(50px); /* Move down 50px initially */
    transition: all 1s cubic-bezier(0.5, 0, 0, 1); /* Smooth 'ease-out' transition */
    will-change: opacity, transform;
}

.reveal-up.active {
    opacity: 1;
    transform: translateY(0); /* Move to original position */
}

/* Staggered Delays for Grid Items */
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }