/* Fade-in animation */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Scale animation */
@keyframes scaleIn {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* Slide in from left */
@keyframes slideInLeft {
    from { transform: translateX(-50px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* Slide in from right */
@keyframes slideInRight {
    from { transform: translateX(50px); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

/* Animation classes */
.fade-in {
    opacity: 0;
    animation: fadeIn 1s ease-out forwards;
}

.scale-in {
    opacity: 0;
    animation: scaleIn 0.8s ease-out forwards;
}

.slide-left {
    opacity: 0;
    animation: slideInLeft 1s ease-out forwards;
}

.slide-right {
    opacity: 0;
    animation: slideInRight 1s ease-out forwards;
}

/* Delay classes */
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
.delay-4 { animation-delay: 0.8s; }

/* Hover effects */
.gallery img {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hero-photo {
  text-align: center;
  margin: 50px auto;
}

.large-photo {
  width: 80%;
  max-width: 900px;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

.gallery img:hover {
    transform: translateY(-10px) scale(1.03);
    box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}

/* Button hover effect */
.button {
    position: relative;
    overflow: hidden;
    z-index: 1;
    transition: all 0.3s ease;
}

.button::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #3d6b35;
    z-index: -1;
    transition: transform 0.3s ease;
    transform: scaleY(0);
    transform-origin: bottom;
    border-radius: 30px;
}

.button:hover::after {
    transform: scaleY(1);
}

/* Scroll reveal animations */
.reveal {
    opacity: 0;
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0) !important;
}

