/**
 * Contact Form Section (Page Section).
 */

.contact-form-section {
    background: #000;
    color: #fff;
    padding-top: 3rem;
    padding-bottom: 4rem;
}

@media (min-width: 768px) {
    .contact-form-section {
        padding-top: 4rem;
        padding-bottom: 5rem;
    }
}

@media (min-width: 1024px) {
    .contact-form-section__container {
        max-width: 42rem !important;
    }
}

.contact-form-section__title {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 500;
    color: #fff;
    margin: 0 0 2rem;
}

.contact-form-section__form {
    margin-top: 0;
}

/* Contact Form 7 – scoped to this section */
.contact-form-section .wpcf7-form p {
    margin-bottom: 1.5rem;
}

.contact-form-section .wpcf7-form label {
    display: block;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
}

/* Required asterisk – wrapped by JS in .contact-form-section__required */
.contact-form-section .contact-form-section__required {
    color: #e53935;
    margin-left: 2px;
}

.contact-form-section .wpcf7-form-control-wrap {
    display: block;
}

.contact-form-section .wpcf7-form input[type="text"],
.contact-form-section .wpcf7-form input[type="email"],
.contact-form-section .wpcf7-form input[type="tel"],
.contact-form-section .wpcf7-form textarea {
    width: 100%;
    padding: 0.5rem 0 0.75rem;
    font-size: 1rem;
    color: #F65B1B;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0;
    transition: border-color 0.2s, color 0.2s;
}

.contact-form-section .wpcf7-form input::placeholder,
.contact-form-section .wpcf7-form textarea::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.contact-form-section .wpcf7-form input:focus,
.contact-form-section .wpcf7-form textarea:focus {
    outline: none;
    border-bottom-color: rgba(255, 255, 255, 0.7);
}

.contact-form-section .wpcf7-form textarea {
    min-height: 100px;
    resize: vertical;
}

/* Email and Phone in one row (2nd and 3rd form rows) */
@media (min-width: 600px) {
    .contact-form-section .wpcf7-form {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 1.5rem;
    }
    .contact-form-section .wpcf7-form p {
        grid-column: 1 / -1;
    }
    .contact-form-section .wpcf7-form p:nth-child(3),
    .contact-form-section .wpcf7-form p:nth-child(4) {
        grid-column: span 1;
    }
}

.contact-form-section .wpcf7-form input[type="submit"] {
    margin-top: 1.5rem;
    padding: 0.875rem 2rem;
    font-size: 1rem;
    font-weight: 500;
    color: #fff;
    background: #F65B1B;
    border: 1px solid #F65B1B;
    border-radius: 100px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
}

.contact-form-section .wpcf7-form input[type="submit"]:hover {
    border: 1px solid #F65B1B;
    background: var(--Primary-100, #0B0B0B);
    color: #F65B1B;
    box-shadow: 0 0 8px 4px rgba(246, 91, 27, 0.25);
    transform: none;


}

.contact-form-section .wpcf7-not-valid-tip {
    color: red;
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* Form response output – base (matches section: dark, white text, orange accent) */
.contact-form-section .wpcf7-response-output {
    margin: 1.25rem 0 0;
    padding: 1rem 1.25rem !important;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    font-size: 0.9375rem;
    color: #fff;
    min-width: 500px;
}

@media (max-width: 768px) {
    .contact-form-section .wpcf7-response-output {
        min-width: 100%;
    }
}

/* Success */
.contact-form-section .wpcf7 form.sent .wpcf7-response-output,
.contact-form-section .wpcf7-response-output.wpcf7-mail-sent-ok {
    border: 1px solid #4bf61b;
    color: #fff;
}

/* Validation errors (invalid fields) */
.contact-form-section .wpcf7 form.invalid .wpcf7-response-output {
    border: 1px solid #F65B1B;
    color: #fff;
}

/* Failed to send */
.contact-form-section .wpcf7 form.failed .wpcf7-response-output,
.contact-form-section .wpcf7-response-output.wpcf7-mail-sent-ng {
    border: 1px solid red;
    color: #fff;
}

/* Spam blocked */
.contact-form-section .wpcf7 form.spam .wpcf7-response-output,
.contact-form-section .wpcf7-response-output.wpcf7-spam-blocked {
    border-color: rgba(255, 255, 255, 0.4);
    color: rgba(255, 255, 255, 0.9);
}

/* Unaccepted (e.g. terms not accepted) */
.contact-form-section .wpcf7 form.unaccepted .wpcf7-response-output {
    border-color: rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.85);
}

/* Payment required */
.contact-form-section .wpcf7 form.payment-required .wpcf7-response-output,
.contact-form-section .wpcf7-response-output.wpcf7-payment-required {
    border-color: rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.85);
}

/* Aborted */
.contact-form-section .wpcf7 form.aborted .wpcf7-response-output {
    border-color: rgba(255, 255, 255, 0.3);
    color: rgba(255, 255, 255, 0.85);
}
