.appartme-privacy-select-all-row,
.appartme-privacy-consent {
  margin-bottom: 0.75rem;
}

.appartme-privacy-separator {
  margin: 0 0 1rem;
}

/*
 * The legacy production consent module rendered label text as a bare text
 * node. The PS9 adapter needs a span so that expandable legal descriptions
 * remain accessible. Neutralise the theme's broad `.custom-checkbox span`
 * rule for that text and retain the exact 20 px production control geometry.
 */
#authentication .appartme-privacy-select-all-row .custom-checkbox,
#authentication .appartme-privacy-consent .custom-checkbox,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row .custom-checkbox,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox {
  display: block;
  margin-top: 4px;
}

#authentication .appartme-privacy-select-all-row .custom-checkbox > label,
#authentication .appartme-privacy-consent .custom-checkbox > label,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row .custom-checkbox > label,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox > label {
  display: flex;
  align-items: flex-start;
  min-height: 20px;
  margin: 0;
  padding: 1px 0 0;
  font-size: 0.9375rem;
  line-height: 20px;
}

#authentication .appartme-privacy-select-all-row,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row {
  padding-top: 10px;
}

#authentication .appartme-privacy-select-all-row .custom-checkbox > label,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row .custom-checkbox > label {
  min-height: 22px;
}

#authentication .appartme-privacy-consent-last,
body#checkout #checkout-personal-information-step .appartme-privacy-consent-last {
  padding-bottom: 20px;
}

#authentication .appartme-privacy-select-all-row .custom-checkbox input[type="checkbox"] + span,
#authentication .appartme-privacy-consent .custom-checkbox input[type="checkbox"] + span,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row .custom-checkbox input[type="checkbox"] + span,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox input[type="checkbox"] + span {
  position: relative;
  flex: 0 0 20px;
  width: 20px;
  min-width: 20px;
  height: 20px;
  margin: 0 8px 0 0;
  border: 1px solid #b1b1b1;
  border-radius: 5px;
}

#authentication .appartme-privacy-select-all-row .checkbox-checked,
#authentication .appartme-privacy-consent .checkbox-checked,
body#checkout #checkout-personal-information-step .appartme-privacy-select-all-row .checkbox-checked,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .checkbox-checked {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0 !important;
  font-size: 1.4rem;
  line-height: 1;
  transform: translate(-50%, -50%);
}

#authentication .appartme-privacy-consent .custom-checkbox .appartme-privacy-definition-text,
#authentication .appartme-privacy-consent .custom-checkbox .appartme-privacy-summary,
#authentication .appartme-privacy-consent .custom-checkbox .appartme-privacy-details,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox .appartme-privacy-definition-text,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox .appartme-privacy-summary,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox .appartme-privacy-details {
  width: auto;
  min-width: 0;
  height: auto;
  margin: 0;
  border: 0;
  border-radius: 0;
  cursor: inherit;
  flex: 1 1 auto;
}

#authentication .appartme-privacy-consent .custom-checkbox .appartme-privacy-definition-text,
#authentication .appartme-privacy-consent .custom-checkbox .appartme-privacy-summary,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox .appartme-privacy-definition-text,
body#checkout #checkout-personal-information-step .appartme-privacy-consent .custom-checkbox .appartme-privacy-summary {
  display: inline;
  vertical-align: baseline;
}

.appartme-privacy-definition-text {
  white-space: normal;
}

.appartme-privacy-required-marker {
  position: static;
  top: auto;
  display: inline;
  margin-left: 0.125rem;
  color: inherit;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: super;
}

.appartme-privacy-definition-text a {
  text-decoration: underline;
}

.appartme-privacy-details {
  display: block;
  margin-top: 0.3125rem;
  line-height: 1.4;
}

.appartme-privacy-details[hidden] {
  display: none !important;
}

.appartme-privacy-consent.has-error .appartme-privacy-definition-text {
  color: #d02a2c;
}

.appartme-privacy-customer-validation-error {
  margin: 2px 0 18px;
  color: #e0211b;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.45;
}

.appartme-privacy-customer-validation-error p {
  margin: 0;
  color: inherit;
}

.appartme-privacy-customer-validation-error[hidden] {
  display: none !important;
}

/*
 * Registration/login errors must form their own row. The social button box is
 * a flex container in the Appartme theme, so an unscoped alert would otherwise
 * become a narrow third column next to Facebook and Google.
 */
#authentication .alternative-login,
body#checkout #checkout-personal-information-step .alternative-login {
  flex-wrap: wrap;
}

#authentication .alternative-login [data-pinta-error-container],
#authentication .alternative-login > .social-login-error,
body#checkout #checkout-personal-information-step .alternative-login [data-pinta-error-container],
body#checkout #checkout-personal-information-step .alternative-login > .social-login-error {
  flex: 0 0 100%;
  width: 100%;
  max-width: 100%;
}

#authentication .alternative-login [data-pinta-error-container]:empty,
body#checkout #checkout-personal-information-step .alternative-login [data-pinta-error-container]:empty {
  display: none;
}

#authentication .alternative-login .social-login-error,
body#checkout #checkout-personal-information-step .alternative-login .social-login-error {
  margin: 0 0 0.75rem;
  text-align: left;
}

.appartme-privacy-account {
  width: 100%;
}

.appartme-privacy-account-consent {
  padding: 0.875rem 0;
  border-bottom: 1px solid #e5e5e5;
}
