* {
    scroll-behavior: smooth;
}

html {
    scroll-padding-top: 2rem;
}

body {
    min-height: 100vh;
}

.faq-question[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.error-message:not(.hidden) {
    display: block;
    margin-top: 0.5rem;
}

input:invalid:not(:placeholder-shown),
select:invalid:not(:placeholder-shown) {
    border-color: #ef4444;
}

input:valid:not(:placeholder-shown),
select:valid:not(:placeholder-shown) {
    border-color: #10b981;
}

input:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible {
    outline: 2px solid #0EA5E9;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}