.contact form {
    display: flex;
    flex-direction: column;
    max-width: 500px;
    margin: 0 auto;
    gap: 15px;
}

.contact input, textarea {
    background-color: var(--pico-background-color);
    border: 1px solid var(--pico-contrast-border);
    border-radius: 8px;
    resize: vertical;
    font-size: 16px;
    padding: 15px;
}

.contact .errors {
    color: var(--pico-form-element-invalid-focus-color);
}

.contact .error {
    border-color: var(--pico-form-element-invalid-border-color);
}

.contact button {
    border: 1px solid var(--pico-primary-inverse);
    background-color: var(--pico-primary);
    color: var(--pico-primary-inverse);
    border-radius: 8px;
    font-size: 16px;
    padding: 15px;
}

.contact button:disabled {
    border: 1px solid var(--pico-muted-border-color);
    background-color: var(--pico-background-color);
    color: var(--pico-muted-color);
}

.contact button:focus-visible,
.contact button:hover {
    background-color: var(--pico-primary-background);
    color: var(--pico-primary-inverse);
}

.contact button:has(.success:not(.hidden)) {
    background-color: var(--pico-form-element-valid-focus-color);
    border: 1px solid var(--pico-form-element-valid-focus-color);
    color: var(--pico-primary-inverse);
}

.contact button:has(.failure:not(.hidden)) {
    background-color: var(--pico-form-element-invalid-focus-color);
    border: 1px solid var(--pico-form-element-invalid-focus-color);
    color: var(--pico-primary-inverse);
}
