.contact-form {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.contact-form .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
}

/* Labels */
.contact-form label {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
    font: var(--font-text);
    color: var(--color-primary);
}

/* Inputs & textarea */
.contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-form textarea,
.contact-form select {
    width: 100%;
    padding: var(--space-12) var(--space-16);
    background: var(--color-secondary);
    border: 2px solid var(--color-primary);
    color: var(--color-primary);
    font: var(--font-text);
    font-size: var(--font-size-form);
    transition: border-color 0.3s ease;
}

.contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.contact-form textarea:focus,
.contact-form select:focus {
    outline: none;
    border-color: var(--color-accent);
}

.contact-form textarea {
    resize: vertical;
    min-height: 120px;
}

/* Placeholder */
.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: var(--color-primary);
    opacity: 0.5;
    font: var(--font-text);
}

/* Submit button */
.contact-form input[type="submit"],
.contact-form .wpcf7-submit {
    padding: var(--space-12) var(--space-24);
    background: var(--color-accent);
    border: 2px solid var(--color-accent);
    color: var(--color-primary);
    font: var(--font-btn);
    cursor: pointer;
    transition: opacity 0.3s ease;
    align-self: flex-start;
}

.contact-form input[type="submit"]:hover,
.contact-form .wpcf7-submit:hover {
    opacity: 0.8;
}

/* Checkbox & radio */
.contact-form .wpcf7-list-item {
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--space-8);
}

.contact-form input[type="checkbox"],
.contact-form input[type="radio"] {
    accent-color: var(--color-accent);
    width: var(--space-16);
    height: var(--space-16);
}

/* Validation errors */
.contact-form .wpcf7-not-valid-tip {
    font-size: var(--font-size-small);
    color: var(--color-accent);
    margin-top: var(--space-4);
}

/* Response output */
.contact-form .wpcf7-response-output {
    padding: var(--space-12) var(--space-16);
    border: 2px solid var(--color-primary);
    font: var(--font-text);
    color: var(--color-primary);
    margin-top: var(--space-16);
}

.contact-form .wpcf7-mail-sent-ok {
    border-color: var(--color-accent);
}

.contact-form .wpcf7-mail-sent-ng,
.contact-form .wpcf7-aborted {
    border-color: var(--color-accent);
    opacity: 0.7;
}

/* Spinner */
.contact-form .wpcf7-spinner {
    margin-left: var(--space-12);
}

/* Mobile */
[data-elementor-device-mode=mobile] .contact-form input[type="submit"],
[data-elementor-device-mode=mobile] .contact-form .wpcf7-submit {
    width: 100%;
    text-align: center;
}
