/* Fade-in on scroll */
.reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Subtle hover lift for cards */
.lift {
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.lift:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -18px rgba(46, 125, 50, 0.25);
}

/* Smooth scrolling with offset for sticky nav */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
}

/* Soft gradient for hero backdrop */
.hero-gradient {
    background:
        radial-gradient(1100px 520px at 85% -10%, rgba(46, 125, 50, 0.18) 0%, rgba(46, 125, 50, 0) 60%),
        radial-gradient(900px 480px at 5% 20%, rgba(169, 197, 168, 0.35) 0%, rgba(169, 197, 168, 0) 55%),
        linear-gradient(180deg, #EAF3EA 0%, #FFFFFF 100%);
}

/* Input focus ring using brand color */
.input {
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.input:focus {
    outline: none;
    border-color: #2E7D32;
    box-shadow: 0 0 0 4px rgba(46, 125, 50, 0.15);
    background: #ffffff;
}

/* Mock phone frame subtle shadow */
.phone-shadow {
    box-shadow:
        0 30px 60px -30px rgba(26, 26, 26, 0.35),
        0 12px 32px -12px rgba(46, 125, 50, 0.25);
}
