/* Shared form controls. Form layout and business rules remain in their components. */
:root { --ds-field-height: 48px; --ds-field-radius: 8px; --ds-field-gap: 8px; --ds-form-gap: 20px; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) { gap: var(--ds-form-gap); }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(label, .ds-field-label) { font: 500 14px/1.5 var(--ds-text-font); letter-spacing: normal; text-transform: none; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) label > span:first-child { font: inherit; letter-spacing: normal; text-transform: none; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) .ds-field-label { display: block; margin-bottom: var(--ds-field-gap); }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, select, textarea):not(:where([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"])) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ds-field-height);
  min-height: var(--ds-field-height);
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--ds-field-radius);
  background: var(--color-surface);
  color: var(--color-text);
  font: 400 16px/1.4 var(--ds-text-font);
  letter-spacing: normal;
  text-transform: none;
  box-shadow: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) textarea { height: auto; min-height: 128px; resize: vertical; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) input[type="file"] { height: auto; min-height: 48px; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, textarea)::placeholder { color: var(--color-text-muted); opacity: 1; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, select, textarea):not(:where([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"])):focus { outline: 2px solid var(--color-accent); outline-offset: 2px; border-color: var(--color-accent); box-shadow: none; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, select, textarea):not(:where([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"])):disabled { color: var(--color-text-muted); background: var(--color-surface-soft); cursor: not-allowed; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, select, textarea):not(:where([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"]))[readonly] { background: var(--color-page); }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input[type="checkbox"], input[type="radio"]) { width: 20px; height: 20px; min-width: 20px; flex: 0 0 20px; margin: 2px 0 0; accent-color: var(--color-accent); vertical-align: middle; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input[type="checkbox"], input[type="radio"]):focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(small, .ds-field-hint) { display: block; margin-top: var(--ds-field-gap); font: 400 13px/1.5 var(--ds-text-font); color: var(--color-text-secondary); }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) [aria-invalid="true"] { border-color: var(--color-error); }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) .ds-field-error { display: block; margin: 8px 0 0; color: var(--color-error); font: 500 13px/1.5 var(--ds-text-font); text-transform: none; letter-spacing: normal; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) .ds-required { margin-left: 3px; color: var(--color-accent); }
.moto-design :is(.club-change-form, .calendar-hostcms-form, .calendar-application__form, .subscribe-form) :is(.ds-field-error, .ds-required) { color: var(--color-error-inverse); }
.moto-design :is(.club-change-form, .calendar-hostcms-form, .calendar-application__form, .subscribe-form) :is(small, .ds-field-hint) { color: var(--color-text-inverse-muted); }
/* Keep the password toggle clear of entered text. */
.moto-design :is(.moto-auth__input, .moto-auth__field:has(.moto-auth__password-toggle)) input { padding-right: 54px; }
.moto-design :is(.ds-form-message, .calendar-form-error, .calendar-form-success, .calendar-form-ajax-status, .club-form-error, .club-form-success, .profile-application-error, .profile-application-success, .moto-auth__message, .moto-cart-error, .moto-cart-auth__message, .manager-error, .moderation-notice) { box-sizing: border-box; grid-column: 1 / -1; margin: 0 0 20px; padding: 16px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-page); color: var(--color-text); font: 400 14px/1.5 var(--ds-text-font); }
.moto-design :is(.ds-form-message, .calendar-form-error, .calendar-form-success, .calendar-form-ajax-status, .club-form-error, .club-form-success, .profile-application-error, .profile-application-success, .moto-auth__message, .moto-cart-error, .moto-cart-auth__message, .manager-error, .moderation-notice) :is(h3, strong) { display: block; margin: 0 0 4px; font: 700 16px/1.4 var(--ds-text-font); }
.moto-design :is(.ds-form-message, .calendar-form-error, .calendar-form-success, .calendar-form-ajax-status, .club-form-error, .club-form-success, .profile-application-error, .profile-application-success, .moto-auth__message, .moto-cart-error, .moto-cart-auth__message, .manager-error, .moderation-notice) p { margin: 4px 0 0; font: inherit; color: inherit; }
.moto-design :is(.ds-form-message--error, .calendar-form-error, .club-form-error, .profile-application-error, .moto-auth__message--error, .moto-cart-error, .moto-cart-auth__message, .manager-error) { color: var(--color-error); background: var(--color-error-bg); border-color: var(--color-error); }
.moto-design :is(.ds-form-message--success, .calendar-form-success, .club-form-success, .profile-application-success, .moto-auth__message--success) { color: var(--color-success-text); background: var(--color-success-bg); border-color: var(--color-success); }
.moto-design :is(.ds-form-message, .calendar-form-error, .calendar-form-success, .calendar-form-ajax-status, .club-form-error, .club-form-success, .profile-application-error, .profile-application-success, .moto-auth__message, .moto-cart-error, .moto-cart-auth__message, .manager-error, .moderation-notice)[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) {
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) :is(input, select, textarea):not(:where([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="button"])) { transition: none; }
}

/* One spacing source for labels, including checkbox errors. */
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) label:not(:has(input[type="checkbox"], input[type="radio"])) { display: block; gap: 0; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) label:has(input[type="checkbox"], input[type="radio"]) { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px 10px; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) label:has(input[type="checkbox"], input[type="radio"]) > span:not(.ds-field-error) { flex: 1; }
.moto-design :is(.ds-form, .calendar-hostcms-form, .calendar-application__form, .club-change-form, .profile-application-form, .moto-auth__form, [data-motomag-auth-form], .moto-profile__form, .moto-profile__company-form, .moto-studio__form, .moto-checkout, .moto-cart-auth__form, .subscribe-form, .request-form, .moderation-filters, .moto-catalog__search, .moto-catalog__volume) label:has(input[type="checkbox"], input[type="radio"]) > .ds-field-error { flex: 0 0 100%; order: 3; margin-top: 0; }
