html {
    scroll-behavior: smooth;
}

.reveal-section {
    opacity: 0;
    transform: translateY(38px);
    transition: opacity 1s ease, transform 1s ease;
}

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

.contact-hero-slide {
    opacity: 0;
    transform: translateX(34px);
    transition: opacity 0.9s ease, transform 0.9s ease;
    pointer-events: none;
}

.contact-hero-slide.is-active {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.contact-dot {
    background-color: #c5c9cf;
    transition: transform 0.35s ease, background-color 0.35s ease;
}

.contact-dot.is-active {
    transform: scale(1.25);
    background-color: #fd583e;
}

.contact-office-card {
    display: block;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.contact-office-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(22, 26, 31, 0.12);
}

@media (prefers-reduced-motion: reduce) {
    .reveal-section,
    .contact-hero-slide,
    .contact-dot,
    .contact-office-card {
        transition: none;
    }
}
