/* ==========================================================================
   CATCH Theme — Forms (Contact Form 7 + WPForms)
   ==========================================================================
   Styles override CF7 and WPForms defaults to match the CATCH design system.
*/

/* ---------- Contact Form 7 ---------- */
.wpcf7 .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.wpcf7 .wpcf7-form p {
    margin: 0;
}

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

.wpcf7 label {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--catch-gold);
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="datetime-local"],
.wpcf7 input[type="time"],
.wpcf7 input[type="password"],
.wpcf7 select,
.wpcf7 textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    background: var(--catch-graphite);
    color: var(--catch-ivory);
    border: 1px solid var(--catch-border-strong);
    border-radius: var(--catch-radius-sm);
    font-family: var(--catch-font-body);
    font-size: 1rem;
    line-height: 1.5;
    transition: border-color 180ms var(--catch-ease), background 180ms var(--catch-ease);
    appearance: none;
}

.wpcf7 textarea {
    min-height: 140px;
    resize: vertical;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
    outline: none;
    border-color: var(--catch-gold);
    background: var(--catch-charcoal);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
    color: var(--catch-muted);
}

.wpcf7 select {
    background-image: linear-gradient(45deg, transparent 50%, var(--catch-gold) 50%),
                      linear-gradient(135deg, var(--catch-gold) 50%, transparent 50%);
    background-position: calc(100% - 18px) center, calc(100% - 12px) center;
    background-size: 6px 6px;
    background-repeat: no-repeat;
    padding-right: 2.5rem;
}

.wpcf7 .wpcf7-list-item {
    margin: 0 1rem 0.5rem 0;
}

.wpcf7 .wpcf7-list-item-label {
    color: var(--catch-ivory);
    font-size: 0.875rem;
    letter-spacing: 0;
    text-transform: none;
    margin-left: 0.5rem;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
    accent-color: var(--catch-gold);
}

.wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--catch-gold);
    color: var(--catch-black);
    border: none;
    padding: 0.875rem 2rem;
    font-family: var(--catch-font-body);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border-radius: var(--catch-radius-sm);
    cursor: pointer;
    transition: background 180ms var(--catch-ease), transform 180ms var(--catch-ease);
    align-self: flex-start;
}

.wpcf7-submit:hover {
    background: var(--catch-gold-soft);
    transform: translateY(-1px);
}

.wpcf7-submit:disabled {
    opacity: 0.6;
    cursor: wait;
}

.wpcf7-not-valid-tip {
    color: #E07A5F;
    font-size: 0.8125rem;
    margin-top: 0.5rem;
    font-style: italic;
}

.wpcf7-response-output {
    padding: 1rem 1.25rem;
    border-radius: var(--catch-radius-sm);
    margin-top: 1.5rem;
    border: 1px solid var(--catch-gold);
    background: var(--catch-charcoal);
    color: var(--catch-ivory);
    font-size: 0.875rem;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
    border-color: #E07A5F;
}

.wpcf7 form.sent .wpcf7-response-output {
    border-color: #6BBF8A;
}

.wpcf7-spinner {
    background-color: var(--catch-gold);
}

/* ---------- WPForms ---------- */
div.wpforms-container-full .wpforms-form,
div.wpforms-container-full .wpforms-form * {
    font-family: var(--catch-font-body);
}

div.wpforms-container-full .wpforms-form .wpforms-field-label {
    color: var(--catch-gold);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 0.5rem;
}

div.wpforms-container-full .wpforms-form .wpforms-field input[type="text"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="email"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="tel"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="url"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="number"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="password"],
div.wpforms-container-full .wpforms-form .wpforms-field select,
div.wpforms-container-full .wpforms-form .wpforms-field textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    background: var(--catch-graphite);
    color: var(--catch-ivory);
    border: 1px solid var(--catch-border-strong);
    border-radius: var(--catch-radius-sm);
    font-size: 1rem;
    line-height: 1.5;
    transition: border-color 180ms var(--catch-ease);
}

div.wpforms-container-full .wpforms-form input:focus,
div.wpforms-container-full .wpforms-form select:focus,
div.wpforms-container-full .wpforms-form textarea:focus {
    outline: none;
    border-color: var(--catch-gold);
    background: var(--catch-charcoal);
}

div.wpforms-container-full .wpforms-form .wpforms-field-description {
    color: var(--catch-muted);
    font-size: 0.8125rem;
    margin-top: 0.5rem;
}

div.wpforms-container-full .wpforms-form .wpforms-submit-container {
    margin-top: 1.5rem;
}

div.wpforms-container-full .wpforms-form button[type="submit"],
.wpforms-submit {
    background: var(--catch-gold);
    color: var(--catch-black);
    border: none;
    padding: 0.875rem 2rem;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border-radius: var(--catch-radius-sm);
    cursor: pointer;
    transition: background 180ms var(--catch-ease);
}

div.wpforms-container-full .wpforms-form button[type="submit"]:hover {
    background: var(--catch-gold-soft);
    color: var(--catch-black);
}

div.wpforms-container-full .wpforms-form .wpforms-error {
    color: #E07A5F;
    font-size: 0.8125rem;
    margin-top: 0.5rem;
}

div.wpforms-container-full .wpforms-confirmation-container-full {
    padding: 1.25rem;
    background: var(--catch-charcoal);
    border: 1px solid var(--catch-gold);
    border-radius: var(--catch-radius-sm);
    color: var(--catch-ivory);
}

/* ---------- Light-background contexts ---------- */
.section-ivory .wpcf7 input,
.section-ivory .wpcf7 select,
.section-ivory .wpcf7 textarea,
.section-ivory .wpforms-form input,
.section-ivory .wpforms-form select,
.section-ivory .wpforms-form textarea {
    background: var(--catch-white);
    color: var(--catch-black);
    border-color: rgba(10, 10, 10, 0.15);
}

.section-ivory .wpcf7 input:focus,
.section-ivory .wpforms-form input:focus {
    border-color: var(--catch-gold-deep);
    background: var(--catch-white);
}

.section-ivory .wpcf7 label,
.section-ivory .wpforms-field-label {
    color: var(--catch-gold-deep);
}
