html { scroll-behavior: smooth; }

/* Navigation active state */
.nav-link.active { color: #3ba1da; }

/* Hover effects */
.product-card:hover { transform: translateY(-5px); }
input::placeholder, textarea::placeholder { color: #9ca3af; }

/* --- NEW: Professional Preloader --- */
#preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background-color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}
.spinner-border {
    width: 40px;
    height: 40px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #52b946;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* --- NEW: Smooth Scroll Reveal Animations --- */
.fade-in-section {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform;
}
.fade-in-section.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Typography styles for the injected raw content on product details */
.product-long-content h3 { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; color: #111827; margin-top: 2rem; margin-bottom: 1rem; border-left: 4px solid #52b946; padding-left: 1rem; }
.product-long-content h4 { font-weight: 700; color: #3ba1da; margin-top: 1.5rem; margin-bottom: 0.5rem; font-size: 1.125rem; }
.product-long-content p { color: #4b5563; font-size: 1.125rem; line-height: 1.8; margin-bottom: 1.5rem; }
.product-long-content ul { margin-bottom: 1.5rem; padding-left: 1rem; }
.product-long-content li { color: #4b5563; font-size: 1.125rem; line-height: 1.8; margin-bottom: 0.5rem; list-style-type: disc; margin-left: 1.5rem; }
.product-long-content strong { color: #111827; }