html {
    scroll-behavior: smooth;
}

a, button {
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .reveal {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 999;
    padding: 0.5rem 1rem;
    background: #03873C;
    color: #fff;
    font-weight: 600;
}

.skip-link:focus {
    left: 0;
}

.hero-gradient {
    background: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(3, 135, 60, 0.08) 0%, transparent 70%);
}

.phone-glow {
    box-shadow: 0 0 0 1px rgba(3, 135, 60, 0.08),
    0 4px 16px rgba(3, 135, 60, 0.10),
    0 12px 40px rgba(3, 135, 60, 0.08),
    0 24px 80px rgba(0, 0, 0, 0.06);
}

.card-elevated {
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.03),
    0 2px 4px rgba(0, 0, 0, 0.04),
    0 8px 24px rgba(0, 0, 0, 0.06),
    0 24px 48px rgba(0, 0, 0, 0.04);
}

.cta-gradient {
    background: linear-gradient(180deg, #F0FDF4 0%, #F4F4F7 100%);
}

.connector-line {
    position: relative;
}

.connector-line::after {
    content: '';
    position: absolute;
    top: 24px;
    left: calc(50% + 40px);
    width: calc(100% - 40px);
    height: 2px;
    background: linear-gradient(90deg, #03873C, rgba(3, 135, 60, 0.2));
    z-index: 0;
}

@media (max-width: 639px) {
    .connector-line::after {
        display: none;
    }
}

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 {
    transition-delay: 0.1s;
}

.reveal-delay-2 {
    transition-delay: 0.2s;
}

.reveal-delay-3 {
    transition-delay: 0.3s;
}

@media (max-width: 1023px) {
    footer {
        padding-bottom: 72px;
    }
}

.sticky-cta-safe {
    padding-bottom: env(safe-area-inset-bottom);
}
