/*--------------------------------------------------------------------------------------

General Pages

--------------------------------------------------------------------------------------*/

form.pmpro_form {
  width: 100%;
  max-width: 100%;
}
.pmpro_form hr {
  display: none;
}
.pmpro_hidden {
  display: none;
}
.pmpro_btn,
.pmpro_btn:link,
.pmpro_content_message a,
.pmpro_content_message a:link {
  border: 0;
  background: var(--gp-button-bg-color, var(--gp-primary-color));
  color: var(--gp-button-text-color);
  font-weight: var(--gp-strong-font-weight);
}

/* Messages - Success, Error, Alert ************************************/

.pmpro_message {
  background-color: #d9edf7;
  border: 1px solid #bce8f1;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  color: #31708f;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5em;
  margin: 0 0 20px 0;
  padding: 10px 15px;
  text-align: left;
}
.pmpro_success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.pmpro_error,
input[type="text"].pmpro_error,
input[type="email"].pmpro_error,
input[type="url"].pmpro_error,
input[type="password"].pmpro_error,
input[type="number"].pmpro_error,
input[type="tel"].pmpro_error,
input[type="range"].pmpro_error,
input[type="date"].pmpro_error,
input[type="month"].pmpro_error,
input[type="week"].pmpro_error,
input[type="time"].pmpro_error,
input[type="datetime"].pmpro_error,
input[type="datetime-local"].pmpro_error,
input[type="color"].pmpro_error,
textarea.pmpro_error {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.pmpro_alert {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.pmpro_content_message a,
.pmpro_content_message a:link {
  margin: 0 10px 0 10px;
}
.gp-theme .pmpro_message a {
  color: #245269;
  text-decoration: underline;
}
.gp-theme .pmpro_message a:hover {
  color: inherit;
  text-decoration: none;
}
.gp-theme .pmpro_success a {
  color: #2b542c;
}
.gp-theme .pmpro_error a {
  color: #843534;
}
.gp-theme .pmpro_alert a {
  color: #66512c;
}
input.pmpro_error {
  background-image: none;
}
select.pmpro_error {
  background-image: none;
}
.pmpro_message p:last-child {
  margin-bottom: 0;
}
#pmpro_message_bottom {
  margin-bottom: 1em;
}

/* Membership Levels Page ************************************/

.pmpro_levels_table th {
  border-top: 0;
}
.pmpro_levels_table th,
.pmpro_levels_table td {
  border-left: 0;
  border-right: 0;
}

/* Membership Account Page ************************************/

.pmpro-account .pmpro_section h2 {
  margin: 0 0 15px 0;
}
.pmpro-account .pmpro_section h3 {
  display: flex;
  align-items: center;
  margin: 0 0 15px 0;
  font-size: 20px;
  line-height: 26px;
  font-weight: var(--gp-strong-font-weight);
  gap: 20px;
}
.pmpro-account .pmpro_section {
  border: 0;
  margin: 0 0 20px 0;
  padding: 0;
}
.pmpro-account .pmpro_table th,
.pmpro-account .pmpro_table td {
  padding: 5px 0;
  border: 0;
}
.pmpro-account .pmpro_table th {
  display: none;
  line-height: 1;
  font-weight: var(--gp-strong-font-weight);
  text-align: left;
  border-bottom: 1px solid var(--gp-misc-border-color);
}
.pmpro-account .pmpro_table td {
  display: block;
  width: 100%;
}
.pmpro-account .pmpro_table tr td:first-child {
  padding-top: 15px;
}
.pmpro-account .pmpro_table tr:last-child td:last-child {
  padding-bottom: 15px;
}
.pmpro-account .pmpro_table strong {
  font-weight: var(--gp-strong-font-weight);
}
.pmpro_card_action,
.pmpro_card_action_separator {
  font-size: small;
}
.gp-theme.pmpro-account .pmpro_card_action {
  margin-top: 15px;
  line-height: 1;
}
.pmpro-account .pmpro_section p {
  margin-top: 0;
  margin-bottom: 0;
  font-weight: var(--gp-strong-font-weight);
}
.pmpro-account .pmpro_section ul {
  margin: 0;
  list-style: none;
}
.pmpro-account .pmpro_section ul strong {
  font-weight: var(--gp-strong-font-weight);
}

/* Membership Billing Page ************************************/

.pmpro_billing_wrap strong {
  font-weight: var(--gp-strong-font-weight);
}
.pmpro_billing_wrap small {
  font-size: 14px;
}
.pmpro_billing_wrap ul {
  margin: 0;
  list-style: none;
}

/* Membership Cancel Page ************************************/

.pmpro_cancel_wrap h2 {
  margin: 0 0 20px 0;
  font-size: 20px;
  line-height: 26px;
  font-weight: var(--gp-strong-font-weight);
}

/* Membership Your Profile Page ************************************/

.pmpro_checkout_section-user {
  margin: 0 0 30px 0;
}
.pmpro_checkout_section-profile_details {
  margin: 0 0 30px 0;
}
.pmpro_checkout_section-profile_details h3 {
  margin: 0 0 20px 0;
  font-size: 20px;
  line-height: 26px;
  font-weight: var(--gp-strong-font-weight);
}
form.pmpro_form label {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--gp-strong-font-weight);
}
form.pmpro_form label.pmpro_label-inline {
  display: inline-block;
}
form.pmpro_form label.pmpro_clickable {
  cursor: pointer;
}
form.pmpro_form .pmpro_form_field {
  margin-bottom: 20px;
}
form.pmpro_form .pmpro_member_profile_edit-fields div {
  margin: 0 0 30px 0;
}
form.pmpro_form .pmpro_member_profile_edit-fields div:last-child {
  margin-bottom: 0;
}
form.pmpro_form .pmpro_form_hint {
  margin: 20px 0;
  font-size: 14px;
  line-height: 20px;
  opacity: 0.8;
  color: var(--gp-tertiary-color);
}
.gp-theme .pmpro_btn.pmpro_btn-cancel,
.gp-theme .pmpro_btn.pmpro_btn-cancel:link,
.gp-theme .pmpro_btn.pmpro_btn-cancel:focus,
.gp-theme .pmpro_btn.pmpro_btn-cancel:hover {
  background: none;
  border: none;
  box-shadow: none;
  color: inherit;
  text-decoration: underline;
}
.gp-theme .pmpro_btn.pmpro_btn-cancel:hover {
  text-decoration: none;
}

/* Change Password Page ************************************/

form.pmpro_form .pmpro_change_password-fields #pass-strength-result.empty {
  display: none;
}
form.pmpro_form .pmpro_change_password-fields #pass-strength-result {
  margin-top: 20px;
}
.gp-theme .pmpro_btn-password-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
}
.gp-theme .pmpro_btn-password-toggle .pmpro_icon-eye * {
  fill: none;
}

/* Membership Confirmation Page ************************************/

.pmpro_confirmation_wrap ul {
  margin: 0;
  list-style: none;
}
.pmpro_confirmation_wrap ul strong {
  font-weight: var(--gp-strong-font-weight);
}
.pmpro_confirmation_wrap .pmpro_invoice_details {
  font-size: 14px;
  line-height: 24px;
}
.gp-theme .pmpro_confirmation_wrap hr {
  margin: 20px 0;
}
.pmpro_invoice_details .pmpro_invoice-billing-address,
.pmpro_invoice_details .pmpro_invoice-payment-method {
  margin: 0 0 20px 0;
}
.gp-theme .pmpro_actions_nav,
.gp-theme .pmpro_actions_nav:last-child {
  margin-top: 20px;
}

/* Membership Invoices Page ************************************/

/* Restricted Content Message ************************************/

.pmpro_content_message {
  padding: 20px;
  background: var(--gp-misc-bg-color);
  border-radius: var(--gp-section-border-radius);
  text-align: center;
}

/*--------------------------------------------------------------------------------------

Element - PMPro Levels

--------------------------------------------------------------------------------------*/

/* Columns ************************************/

.gp-element-pmpro-levels {
  display: flex;
  flex-wrap: wrap;
  column-gap: 30px;
  row-gap: 30px;
}
.gp-level {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  padding: 30px;
  border: 1px solid var(--gp-misc-border-color);
  border-radius: var(--gp-section-border-radius);
}
.gp-level > .gp-level-inner:nth-last-child(2) {
  flex-grow: 1;
}

/* Level Name ************************************/

.gp-level .gp-level-name {
  margin-bottom: 10px;
}
.gp-level .gp-level-name-text {
  font-size: 20px;
  line-height: 26px;
  font-weight: var(--gp-strong-font-weight);
}

/* Level Price ************************************/

.gp-level .gp-level-price {
  margin-bottom: 20px;
  font-size: 32px;
  line-height: 38px;
  font-weight: var(--gp-strong-font-weight);
  color: var(--gp-primary-color);
}
.gp-level .gp-payment-cycle {
  display: block;
  font-size: 14px;
  line-height: 20px;
  font-weight: var(--gp-strong-font-weight);
}
.gp-level .gp-trial-amount {
  display: block;
}
.gp-level-expiration {
  margin-bottom: 20px;
}

/* Level Badge ************************************/

.gp-level-badge .gp-level-td {
  align-self: flex-start;
  margin-bottom: 20px;
  padding: 8px 10px;
  color: var(--gp-button-text-color);
  background: var(--gp-secondary-color);
  font-size: 16px;
  line-height: 1;
  border-radius: 10px;
}
.gp-level-badge.gp-full-width .gp-level-td {
  width: 100%;
}

/* Level Descripton ************************************/

.gp-level .gp-level-description {
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 24px;
}

/* Level Comparison Items ************************************/

.gp-level-comparison-lists {
  display: inline-block;
  position: relative;
  margin-bottom: 40px;
}
.gp-level-comparison-list .gp-level-td {
  display: flex;
  margin-bottom: 10px;
  position: relative;
  padding-left: 25px;
  font-size: 16px;
  line-height: 26px;
  text-align: left;
}
.gp-level-comparison-list .gp-element-icon {
  position: absolute;
  top: 3px;
  left: 0;
  color: var(--gp-primary-color);
}
.gp-level-comparison-list .gp-element-icon svg:not([fill="none"]),
.gp-level-comparison-list .gp-element-icon path:not([stroke]) {
  fill: var(--gp-primary-color);
}
.gp-level-comparison-list .gp-element-icon svg[stroke],
.gp-level-comparison-list .gp-element-icon path[stroke] {
  stroke: var(--gp-primary-color);
}

/* Level Button ************************************/

.gp-level-checkout-button .gp-button {
  text-align: center;
}
.gp-level-checkout-button.gp-button-full-width {
  width: 100%;
}
.gp-level-checkout-button.gp-button-full-width .gp-button {
  display: block;
}

/*--------------------------------------------------------------------------------------

Checkout/Register Form

--------------------------------------------------------------------------------------*/

/* General ************************************/

form.pmpro_form input[type="text"],
form.pmpro_form input[type="password"],
form.pmpro_form input[type="email"],
form.pmpro_form input[type="number"],
form.pmpro_form textarea,
form.pmpro_form select,
#loginform input[type="text"],
#loginform input[type="password"] {
  max-width: 100%;
  font-size: inherit;
}
form.pmpro_form input[type="text"].input,
form.pmpro_form input[type="password"].input,
.pmpro_login_wrap form#loginform input[type="text"].input,
.pmpro_login_wrap form#loginform input[type="password"].input,
.pmpro_form .input[type="email"],
.pmpro_form .input[type="search"],
.pmpro_form .input[type="url"],
.pmpro_form #pmpro_billing_address_fields .input,
.pmpro_form #pmpro_payment_information_fields .input {
  width: 100%;
}
form.pmpro_form .pmpro_asterisk {
  display: none;
}
.pmpro_checkout {
  margin-bottom: 30px;
}
.pmpro_form_fields {
  overflow: hidden;
}

/* Levels box ************************************/

form.pmpro_form #pmpro_pricing_fields .pmpro_form_fields {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Section header ************************************/

#pmpro_form .pmpro_checkout h2,
#pmpro_form .pmpro_checkout h3 {
  margin: 0 0 20px 0;
}
form.pmpro_form .pmpro_checkout h2 span.pmpro_checkout-h2-name,
form.pmpro_form .pmpro_checkout h3 span.pmpro_checkout-h3-name {
  margin: 0;
}
form.pmpro_form .pmpro_checkout h2 span.pmpro_checkout-h2-msg,
form.pmpro_form .pmpro_checkout h3 span.pmpro_checkout-h3-msg {
  display: block;
  font-size: 11px;
  line-height: 17px;
  font-weight: normal;
  font-style: normal;
}
form.pmpro_form .pmpro_checkout_decription {
  margin: 0 0 20px 0;
}
.pmpro_level_description_text {
  color: var(--gp-tertiary-color);
}

/* Field box ************************************/

form.pmpro_form .pmpro_form_fields div {
  margin: 0 0 20px 0;
}
form.pmpro_form .pmpro_form_fields div:last-child {
  margin: 0;
}

/* Field Labels ************************************/

form.pmpro_form .pmpro_form_field-checkbox label:not(.pmprorh_checkbox_label) {
  display: block;
}

/* Field Description ************************************/

small.pmpro_form_hint {
  display: block;
  font-size: small;
}

/* Date field ************************************/

.pmpro_form .pmpro_form_field-date select,
.pmpro_form .pmpro_form_field-date input {
  display: inline-block;
}
.pmpro_form .pmpro_form_field-date select,
.pmpro_form .pmpro_form_field-date input {
  margin-right: 5px;
}
.pmpro_form .pmpro_form_field-date input:last-child {
  margin-right: 0;
}

/* Checkbox field ************************************/

.pmpro_form .pmpro_form_fields .pmprorh_grouped_checkboxes ul {
  margin: 0;
}
.pmpro_form .pmpro_form_fields input[type="checkbox"] {
  min-height: 0;
}

/* Checkbox group field ************************************/

.pmpro_form .pmprorh_grouped_checkboxes li {
  margin-bottom: 10px;
  line-height: 20px;
}
.pmpro_form .pmprorh_grouped_checkboxes li:last-child {
  margin-bottom: 0;
}
.pmpro_form .pmprorh_grouped_checkboxes li label {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
}

/* Location field ************************************/

.pmpro_form .pmpro_form_fields input[type="text"].pac-target-input {
  width: calc(100% - 35px);
}
.pmpro_form .pmpro_form_fields .dashicons-location {
  margin: 10px 0 0 10px;
  cursor: pointer;
}

/* Radio field ************************************/

form.pmpro_form .pmpro_form_fields div.pmpro_form_field-radio-item {
  display: block;
  margin-bottom: 10px;
  line-height: 1;
}
form.pmpro_form .pmpro_form_fields div.pmpro_form_field-radio-item:last-child {
  margin-bottom: 0;
}
form.pmpro_form .pmpro_form_field-radio-item label,
form.pmpro_form
  .pmpro_member_profile_edit-fields
  .pmpro_form_field-radio-item
  label {
  display: inline-block;
  margin: 0;
  font-size: 14px;
  line-height: 1;
}
form.pmpro_form .pmpro_form_field-radio-item input[type="radio"] {
  min-height: 0;
}

/* Select2 field ************************************/

form.pmpro_form
  .select2-container--default
  .select2-search--inline
  .select2-search__field,
form.pmpro_form
  .select2-container--default
  .select2-search--inline
  .select2-search__field:focus {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
form.pmpro_form
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__rendered {
  padding: 0 !important;
}

/* Terms of service ************************************/

#pmpro_form #pmpro_tos_fields h2 {
  margin: 0 0 10px 0;
}
#pmpro_license {
  padding: 20px;
  border-color: var(--gp-misc-border-color);
  border-radius: var(--gp-section-border-radius);
}
form.pmpro_form .pmpro_label-inline {
  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
}

/* Captcha ************************************/

.pmpro_form_field.pmpro_captcha {
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}

/* Payment fields ************************************/

form.pmpro_form #pmpro_payment_information_fields .pmpro_form_fields label {
  text-align: left;
}
form.pmpro_form #ExpirationMonth {
  margin-right: 5px;
}
form.pmpro_form #ExpirationYear {
  margin-left: 5px;
}
form.pmpro_form input[type="image"] {
  width: auto;
  border: 0;
  padding: 0;
  margin: 0;
}

/* Button ************************************/

form.pmpro_form .pmpro_submit {
  margin-top: 0;
}
.pmpro_btn,
.pmpro_btn:link {
  font-weight: inherit;
  border: 0;
}
.pmpro_btn:focus {
  outline: none;
}

/*--------------------------------------------------------------------------------------

Login/Lost Password Forms

--------------------------------------------------------------------------------------*/

.pmpro-login.gp-show-only-content {
  height: 100%;
}
.pmpro-login.gp-show-only-content .gp-page-wrapper {
  align-items: center;
  height: 100%;
}
.pmpro-login.gp-show-only-content .gp-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.pmpro-login.gp-show-only-content .gp-section-style {
  width: 520px;
  max-width: 100%;
  padding: 30px;
}
.pmpro_login_wrap,
.pmpro_lost_password_wrap,
.pmpro_reset_password_wrap {
  margin: 0;
}

#loginform label {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  line-height: 22px;
  font-weight: var(--gp-strong-font-weight);
}
#loginform input[type="text"],
#loginform input[type="password"] {
  max-width: 100%;
  width: 100%;
  font-size: inherit;
}
#loginform .login-remember label {
  font-weight: normal;
  color: var(--gp-tertiary-color);
  font-size: 14px;
}
.pmpro_login_wrap .login-submit input,
.pmpro_lost_password_wrap .pmpro_submit input,
.pmpro_reset_password_wrap .pmpro_submit input {
  width: 100%;
}

.pmpro_lost_password-instructions {
  color: var(--gp-tertiary-color);
  font-size: 14px;
  line-height: 20px;
}

.pmpro-login .pmpro_actions_nav,
.pmpro-login .pmpro_actions_nav:last-child {
  display: flex;
  margin-top: 30px;
  justify-content: space-around;
  padding: 0;
  color: var(--gp-tertiary-color);
  font-size: 13px;
}
.pmpro-login .pmpro_actions_nav a {
  color: var(--gp-body-text-color);
}
.pmpro-login .pmpro_actions_nav a:hover {
  color: var(--gp-primary-color);
}

.pmpro_login_wrap hr,
.pmpro_lost_password_wrap hr,
.pmpro_reset_password_wrap hr {
  display: none;
}

/*--------------------------------------------------------------------------------------

Media queries

--------------------------------------------------------------------------------------*/

/* Tablet (768px and above) */
@media only screen and (min-width: 768px) {
  .pmpro_table th,
  .pmpro_table td {
    display: table-cell;
    width: auto;
    padding: 15px 0;
  }
  .pmpro_form_field-password,
  .pmpro_form_field-password2,
  .pmpro_form_field-bemail,
  .pmpro_form_field-bconfirmemail,
  .pmpro_form_field-bfirstname,
  .pmpro_form_field-blastname {
    float: left;
    width: 50%;
  }
  form.pmpro_form .pmpro_form_field.pmpro_form_field-password {
    padding-right: 10px;
  }
  form.pmpro_form .pmpro_form_field.pmpro_form_field-password2 {
    padding-left: 10px;
  }
  form.pmpro_form .pmpro_form_field.pmpro_form_field-bemail {
    padding-right: 10px;
  }
  form.pmpro_form .pmpro_form_field.pmpro_form_field-bconfirmemail {
    padding-left: 10px;
  }
  form.pmpro_form .pmpro_form_field-bfirstname {
    padding-right: 10px;
  }
  form.pmpro_form .pmpro_form_field-blastname {
    padding-left: 10px;
  }
  .pmpro_form .pmpro_form_field-bzipcode #bzipcode,
  .pmpro_form .pmpro_payment-cvv #CVV {
    width: auto;
  }
  .pmpro_form #pmpro_billing_address_fields #bfirstname,
  .pmpro_form #pmpro_billing_address_fields #blastname,
  .pmpro_form #pmpro_billing_address_fields #bemail,
  .pmpro_form #pmpro_billing_address_fields #bconfirmemail {
    width: 100%;
  }
  .pmpro_form_field-baddress1 {
    clear: left;
  }
  .pmpro_invoice_details .pmpro_invoice-billing-address,
  .pmpro_invoice_details .pmpro_invoice-payment-method {
    margin: 0 20px 0 0;
  }
  .pmpro_form .pmpro_payment-discount-code #discount_code,
  .pmpro_form #other_discount_code {
    max-width: 40%;
  }
}
