/* Trade public-form required markers, compact errors and validation motion. */
.pxab-trades-field-label{display:inline-flex;align-items:baseline;gap:3px;min-width:0;min-height:1.35em;line-height:1.35}
.pxab-trades-required{color:#b91c1c;font-weight:900;line-height:1}

/* Do not let a grid row with an error stretch the neighbouring field's label/control tracks. */
.pxab-trades-enquiry__grid,.pxab-trades-profile-report__grid{align-items:start}
.pxab-trades-enquiry__grid>label,.pxab-trades-profile-report__grid>label,.pxab-trades-enquiry__form [data-pxab-field-wrap],.pxab-trades-profile-report__form [data-pxab-field-wrap]{min-width:0;align-self:start;align-content:start;grid-auto-rows:max-content}
.pxab-trades-enquiry__form :is(input:not([type="checkbox"]):not([type="file"]):not([type="hidden"]),select),.pxab-trades-profile-report__form :is(input:not([type="checkbox"]):not([type="file"]):not([type="hidden"]),select){height:46px;min-height:46px}

/* Shared field-errors.css remains authoritative globally; Trades uses a denser local presentation. */
.pxab-trades-enquiry__form .pxab-field-error:not([hidden]),.pxab-trades-profile-report__form .pxab-field-error:not([hidden]){box-sizing:border-box;display:block;width:100%;min-width:0;min-height:0;margin:0!important;padding:4px 8px!important;border-radius:8px;color:var(--pxab-trades-danger,#b91c1c);font-size:.79rem;font-weight:700;line-height:1.3;white-space:normal;overflow-wrap:anywhere}

/* Consent follows the same checkbox/copy/error columns as the legal confirmation cards. */
.pxab-trades-enquiry__consent{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;column-gap:10px!important;row-gap:6px!important;align-items:start!important;width:100%;font-weight:500!important}
.pxab-trades-enquiry__consent>input{grid-column:1;grid-row:1;margin-top:1px!important}
.pxab-trades-enquiry__consent>span:not(.pxab-field-error){grid-column:2;grid-row:1;min-width:0;line-height:1.45}
.pxab-trades-enquiry__consent>.pxab-field-error{grid-column:2;grid-row:2}

.pxab-trades-validation-motion--fade{animation:pxabTradesValidationFade var(--pxab-trades-validation-duration,420ms) ease both}
.pxab-trades-validation-motion--slide{animation:pxabTradesValidationSlide var(--pxab-trades-validation-duration,420ms) ease both}
.pxab-trades-validation-motion--shake{animation:pxabTradesValidationShake var(--pxab-trades-validation-duration,420ms) ease both}
.pxab-trades-validation-motion--pulse{animation:pxabTradesValidationPulse var(--pxab-trades-validation-duration,420ms) ease both}
.pxab-trades-validation-motion--bounce{animation:pxabTradesValidationBounce var(--pxab-trades-validation-duration,420ms) cubic-bezier(.2,.8,.2,1) both}
.pxab-trades-validation-motion--glow{animation:pxabTradesValidationGlow var(--pxab-trades-validation-duration,420ms) ease both}
.pxab-trades-validation-motion--soft{animation:pxabTradesValidationSoft var(--pxab-trades-validation-duration,420ms) ease both}
@keyframes pxabTradesValidationFade{from{opacity:0}to{opacity:1}}
@keyframes pxabTradesValidationSlide{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes pxabTradesValidationShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@keyframes pxabTradesValidationPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
@keyframes pxabTradesValidationBounce{0%{opacity:.72;transform:translateY(7px)}62%{opacity:1;transform:translateY(-2px)}100%{opacity:1;transform:translateY(0)}}
@keyframes pxabTradesValidationGlow{0%,100%{box-shadow:0 0 0 rgba(185,28,28,0)}45%{box-shadow:0 0 0 4px rgba(185,28,28,.14)}}
@keyframes pxabTradesValidationSoft{0%{opacity:.82;transform:translateY(0)}45%{opacity:1;transform:translateY(-3px)}100%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.pxab-trades-validation-motion--fade,.pxab-trades-validation-motion--slide,.pxab-trades-validation-motion--shake,.pxab-trades-validation-motion--pulse,.pxab-trades-validation-motion--bounce,.pxab-trades-validation-motion--glow,.pxab-trades-validation-motion--soft{animation:none!important;transition:none!important;transform:none!important}}

/* v1.0.683: the shared phone renderer sits inside the Trade form label grid.
 * Keep its conditional required marker on the same baseline as the label text. */
.pxab-trades-enquiry__form .pxab-phone-field__label{
  display:inline-flex;
  width:fit-content;
  max-width:100%;
  align-items:baseline;
  gap:3px;
}
.pxab-trades-enquiry__form .pxab-phone-field__label>.pxab-trades-required{display:inline-block}
.pxab-trades-enquiry__form .pxab-phone-field__label>.pxab-trades-required[hidden]{display:none!important}
