/* Custom font classes */
.font-playfair {
    font-family: 'Playfair Display', serif;
}

.font-merriweather {
    font-family: 'Merriweather', serif;
}

/* Custom animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
    animation: fadeIn 1s ease-out forwards;
}

/* Button hover effects */
.btn-hover-effect {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.btn-hover-effect:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: -100%;
    background: rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

.btn-hover-effect:hover:after {
    left: 0;
}

/* Image hover effects */
.img-hover-zoom {
    transition: transform 0.3s ease;
}

.img-hover-zoom:hover {
    transform: scale(1.03);
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #FAF0E6;
}

::-webkit-scrollbar-thumb {
    background: #E0B98A;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #D0A97A;
}

/* Section spacing */
section {
    scroll-margin-top: 80px;
}