/* Only states reported by a validator. Never style untouched :invalid controls. */
body.promoakce-frontend .pa-invalid-control,
body.promoakce-frontend .pa-invalid-surface,
body.promoakce-frontend :is(input,textarea,select)[aria-invalid="true"] {
    border-color:var(--pa-color-error)!important;
}
body.promoakce-frontend .pa-invalid-label,
body.promoakce-frontend .pa-invalid-label :is(span,abbr,em,strong),
body.promoakce-frontend .pa-validation-message,
body.promoakce-frontend .pa-validation-message-color,
body.promoakce-frontend :is(.pa-auth-field-error,.pa-message-field-error,.field-error,.jobsearch-field-error,.wpcf7-not-valid-tip,.wc-block-components-validation-error,.checkout-inline-error-message) {
    color:var(--pa-color-error)!important;
}
body.promoakce-frontend :is(.alert-danger,.jobsearch-error-alert,.woocommerce-error,.wc-block-components-notice-banner.is-error),
body.promoakce-frontend .employer-access-msg,
body.promoakce-frontend .reset-password-errors > .alert-warning,
body.promoakce-frontend .wpcf7-form[data-status="invalid"] .wpcf7-response-output {
    color:var(--pa-color-error)!important;
    border-color:var(--pa-color-error)!important;
}
/* Vendor alerts also paint their paragraphs orange. Keep error text legible
   on a light surface derived from the same token, including AJAX alerts. */
body.promoakce-frontend :is(.alert-danger,.jobsearch-error-alert,.woocommerce-error,.wc-block-components-notice-banner.is-error,.employer-access-msg),
body.promoakce-frontend .reset-password-errors > .alert-warning {
    background-color:color-mix(in srgb,var(--pa-color-error) 6%,white)!important;
}
body.promoakce-frontend :is(.alert-danger,.jobsearch-error-alert,.employer-access-msg) p {
    background-color:transparent!important;
}
body.promoakce-frontend :is(.alert-danger,.jobsearch-error-alert,.woocommerce-error,.wc-block-components-notice-banner.is-error) > :is(i,svg),
body.promoakce-frontend .woocommerce-error::before,
body.promoakce-frontend .pa-save-error :is(.pa-notification-status,.opt-notific-lodr) {
    color:var(--pa-color-error)!important;
}
body.promoakce-frontend .pa-invalid-control:focus-visible,
body.promoakce-frontend .pa-invalid-surface:focus-within {
    outline:2px solid var(--pa-color-error)!important;
    outline-offset:2px;
    box-shadow:none!important;
}
/* Vendor focus rules and Woo's inset error shadows must not add a second hue. */
body.promoakce-frontend .pa-invalid-control:focus,
body.promoakce-frontend .pa-invalid-surface:focus-within {
    border-color:var(--pa-color-error)!important;
    box-shadow:none!important;
}
body.promoakce-frontend .woocommerce-invalid :is(input,textarea,select) {
    border-color:var(--pa-color-error)!important;
    box-shadow:none!important;
}
body.promoakce-frontend .woocommerce-invalid #terms {
    outline-color:var(--pa-color-error)!important;
}
/* Child declarations do not inherit their alert's color. Target message and
   glyph surfaces, preserving action buttons and ordinary warning/success UI. */
body.promoakce-frontend :is(.alert-danger,.jobsearch-error-alert,.woocommerce-error,.wc-block-components-notice-banner.is-error) :is(p,li,span,strong,em,b,.alrt-icon,.alrt-msg,i,svg),
body.promoakce-frontend :is(.pa-validation-message-color,.pa-invalid-label,.wc-block-components-validation-error) :is(span,strong,em,b,i,svg),
body.promoakce-frontend :is(.promoakce-media-status.is-error,.error-message,.jobsearch-error-msg),
body.promoakce-frontend .wc-block-components-checkbox.has-error :is(label,.wc-block-components-checkbox__label) {
    color:var(--pa-color-error)!important;
}
body.promoakce-frontend .wc-block-components-checkbox.has-error input {
    border-color:var(--pa-color-error)!important;
    outline-color:var(--pa-color-error)!important;
}
body.promoakce-frontend :is(.wc-block-components-notice-banner.is-error,.wc-block-components-validation-error) svg {
    fill:currentColor;
}
body.promoakce-frontend .wpcf7-form:is([data-status="failed"],[data-status="aborted"],[data-status="unaccepted"]) .wpcf7-response-output {
    color:var(--pa-color-error)!important;
    border-color:var(--pa-color-error)!important;
}
/* An inset outline also covers compounds whose original wrapper has no border.
   It occupies no space and leaves existing border widths and padding intact. */
body.promoakce-frontend .pa-invalid-surface {
    outline:1px solid var(--pa-color-error);
    outline-offset:-1px;
}
body.promoakce-frontend :is(.intl-tel-input,.iti).pa-invalid-surface input.pa-invalid-control {
    border-color:transparent!important;
}
body.promoakce-frontend .pa-validation-message {
    display:block; font-size:13px; line-height:20px; margin:4px 0 0;
}
body.promoakce-frontend .pa-validation-message[hidden] { display:none; }
/* Reserve the member modal's one-line explanations before the first validation. */
body.promoakce-frontend #addempmemb-account-form .pa-validation-message[hidden] {
    display:block; visibility:hidden;
}
body.promoakce-frontend #addempmemb-account-form .pa-validation-message { min-height:20px; }
