/* =====================================================
   Forms — 5th Ave
   WPForms brand overrides only. Loaded conditionally on
   pages that display a form. All values use CSS custom
   properties only (RULE 24).

   WPForms ships its own high-specificity stylesheet
   (div.wpforms-container-full .wpforms-form ...), so every
   selector here uses the same prefix to win the cascade.
   The container block also maps our design tokens onto
   WPForms' own CSS variables (used by its modern markup).
   ===================================================== */

/* ---- Map brand tokens onto WPForms CSS variables ---- */

div.wpforms-container-full {
    margin: 0;

    --wpforms-field-border-radius: var(--radius-md);
    --wpforms-field-border-color: var(--color-border);
    --wpforms-field-border-color-spare: var(--color-border);
    --wpforms-field-background-color: var(--color-white);
    --wpforms-field-text-color: var(--color-text);
    --wpforms-field-menu-color: var(--color-white);

    --wpforms-label-color: var(--color-text);
    --wpforms-label-sublabel-color: var(--color-muted);
    --wpforms-label-error-color: var(--color-error);

    --wpforms-button-border-radius: var(--radius-full);
    --wpforms-button-background-color: var(--color-primary);
    --wpforms-button-background-color-alt: var(--color-primary-dark);
    --wpforms-button-text-color: var(--color-white);

    --wpforms-field-size-font-size: var(--text-body);
    --wpforms-label-size-font-size: var(--text-sm);
}

/* ---- Field spacing (RULE 18 — WPForms adds excess padding) ---- */

div.wpforms-container-full .wpforms-form .wpforms-field {
    margin-bottom: var(--space-4) !important;
    padding-bottom: 0 !important;
    padding-top: 0 !important;
}

/* ---- Labels ---- */

div.wpforms-container-full .wpforms-form .wpforms-field-label {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    color: var(--color-text);
    margin-bottom: var(--space-2);
}

div.wpforms-container-full .wpforms-form .wpforms-required-label {
    color: var(--color-error);
}

div.wpforms-container-full .wpforms-form .wpforms-field-sublabel,
div.wpforms-container-full .wpforms-form .wpforms-field-description {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    color: var(--color-muted);
}

/* ---- Inputs, textareas, selects ---- */

div.wpforms-container-full .wpforms-form input[type="text"],
div.wpforms-container-full .wpforms-form input[type="email"],
div.wpforms-container-full .wpforms-form input[type="tel"],
div.wpforms-container-full .wpforms-form input[type="url"],
div.wpforms-container-full .wpforms-form input[type="number"],
div.wpforms-container-full .wpforms-form textarea,
div.wpforms-container-full .wpforms-form select {
    width: 100%;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: 1.4;
    color: var(--color-text);
    background-color: var(--color-white);
    padding: var(--space-3) var(--space-4);
    box-shadow: none;
    transition: border-color var(--ease-base), box-shadow var(--ease-base);
}

div.wpforms-container-full .wpforms-form textarea {
    min-height: 130px;
    resize: vertical;
}

div.wpforms-container-full .wpforms-form input:focus,
div.wpforms-container-full .wpforms-form textarea:focus,
div.wpforms-container-full .wpforms-form select:focus {
    border-color: var(--color-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.15);
}

div.wpforms-container-full .wpforms-form input::placeholder,
div.wpforms-container-full .wpforms-form textarea::placeholder {
    color: var(--color-muted);
    opacity: 0.7;
}

/* ---- Validation errors ---- */

div.wpforms-container-full .wpforms-form label.wpforms-error {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    color: var(--color-error);
    margin-top: var(--space-1);
}

div.wpforms-container-full .wpforms-form input.wpforms-error,
div.wpforms-container-full .wpforms-form textarea.wpforms-error,
div.wpforms-container-full .wpforms-form select.wpforms-error {
    border-color: var(--color-error);
}

/* ---- Submit button — matches the global btn-primary look ---- */

div.wpforms-container-full .wpforms-form button[type="submit"],
div.wpforms-container-full .wpforms-form .wpforms-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-8);
    height: auto;
    border-radius: var(--radius-full);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--fw-semibold);
    line-height: 1;
    border: 2px solid var(--color-primary);
    background-color: var(--color-primary);
    color: var(--color-white);
    cursor: pointer;
    box-shadow: none;
    transition: background-color var(--ease-base), border-color var(--ease-base);
}

div.wpforms-container-full .wpforms-form button[type="submit"]:hover,
div.wpforms-container-full .wpforms-form .wpforms-submit:hover {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}

div.wpforms-container-full .wpforms-form button[type="submit"]:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
}

div.wpforms-container-full .wpforms-form .wpforms-submit-container {
    padding-top: var(--space-2);
}

/* ---- Confirmation message ---- */

div.wpforms-container-full .wpforms-confirmation-container-full {
    background-color: rgba(var(--color-primary-rgb), 0.06);
    border: 1px solid rgba(var(--color-primary-rgb), 0.25);
    border-radius: var(--radius-md);
    color: var(--color-text);
    padding: var(--space-4) var(--space-5);
}

div.wpforms-container-full .wpforms-confirmation-container-full p {
    color: var(--color-text);
    margin: 0;
}
