.legal_page {
  color: #243442;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.65;
  max-width: 820px;
}

.legal_page h2 {
  color: #243f58;
  font-size: 20px;
  line-height: 1.3;
  margin: 0 0 10px;
}

.legal_page p {
  margin: 0 0 14px;
}

.legal_page a {
  color: #255e84;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.legal_page a:focus-visible,
.legal_withdrawal input:focus-visible,
.legal_withdrawal textarea:focus-visible,
.legal_withdrawal button:focus-visible {
  outline: 3px solid #f0a229;
  outline-offset: 3px;
}

.legal_lead {
  color: #314b60;
  font-size: 17px;
  line-height: 1.55;
}

.legal_actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 22px 0 28px;
}

.legal_page .legal_primary_action,
.legal_withdrawal .legal_submit {
  background: #2f5877;
  border: 1px solid #2f5877;
  border-radius: 4px;
  color: #ffffff;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  text-decoration: none;
}

.legal_page .legal_primary_action:hover,
.legal_withdrawal .legal_submit:hover {
  background: #24445d;
}

.legal_sections {
  display: grid;
  gap: 18px;
}

.legal_sections section,
.legal_notice,
.legal_success,
.legal_error_summary,
.legal_email_fallback {
  background: #ffffff;
  border: 1px solid #d9e1e7;
  border-radius: 6px;
  padding: 20px;
}

.legal_updated,
.legal_privacy_note,
.legal_field small {
  color: #5e6d78;
  font-size: 13px;
}

.legal_notice {
  border-left: 4px solid #d49024;
  margin: 20px 0;
}

.legal_notice p,
.legal_success p,
.legal_error_summary p,
.legal_email_fallback p {
  margin-bottom: 0;
}

.legal_success {
  border-left: 4px solid #327448;
  margin-top: 22px;
}

.legal_error_summary {
  background: #fff6f4;
  border-color: #cc6758;
  margin: 20px 0;
}

.legal_form {
  background: #f6f8fa;
  border: 1px solid #d9e1e7;
  border-radius: 6px;
  display: grid;
  gap: 17px;
  margin-top: 24px;
  padding: 24px;
}

.legal_field {
  display: grid;
  gap: 6px;
}

.legal_field label {
  color: #243442;
  font-weight: 700;
}

.legal_field label span {
  font-weight: 400;
}

.legal_field input,
.legal_field textarea {
  background: #ffffff;
  border: 1px solid #9eabb4;
  border-radius: 4px;
  box-sizing: border-box;
  color: #17242e;
  font: inherit;
  min-height: 44px;
  padding: 10px 12px;
  width: 100%;
}

.legal_field textarea {
  min-height: 108px;
  resize: vertical;
}

.legal_field input[aria-invalid="true"],
.legal_field textarea[aria-invalid="true"] {
  border-color: #a63f31;
}

.legal_field_error {
  color: #983528;
  font-size: 13px;
  font-weight: 700;
}

.legal_honeypot {
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  top: auto;
  width: 1px;
}

.legal_withdrawal .legal_submit {
  cursor: pointer;
  font: inherit;
  justify-self: start;
}

.legal_email_fallback {
  margin-top: 20px;
}

@media screen and (max-width: 640px) {
  .legal_page {
    font-size: 14px;
  }

  .legal_actions {
    align-items: stretch;
    flex-direction: column;
  }

  .legal_page .legal_primary_action,
  .legal_withdrawal .legal_submit {
    box-sizing: border-box;
    width: 100%;
  }

  .legal_sections section,
  .legal_notice,
  .legal_success,
  .legal_error_summary,
  .legal_email_fallback,
  .legal_form {
    padding: 16px;
  }
}
