@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&display=swap');

/* ============================================================
   Maxima – Membership Checkout
   Scoped only to body.mx-checkout-maxima.
   PMPro owns checkout data, validation and payment logic.
   ============================================================ */

body.mx-checkout-maxima {
  --mx-checkout-text: #26312f;
  --mx-checkout-muted: #64716d;
  --mx-checkout-line: rgba(56, 73, 68, 0.14);
  --mx-checkout-card: var(--mx-glass-bg, rgba(255, 255, 255, 0.50));
  --mx-checkout-field: rgba(255, 255, 255, 0.88);
  --mx-checkout-shadow: 0 18px 48px rgba(31, 43, 39, 0.16);
  color: var(--mx-checkout-text);
}

body.mx-checkout-life {
  --mx-plan: #8fae9f;
  --mx-plan-dark: #6f9182;
  --mx-plan-title: #789b8b;
  --mx-plan-link: #557568;
  --mx-plan-link-soft: rgba(85, 117, 104, 0.38);
  --mx-plan-focus: rgba(143, 174, 159, 0.20);
  --mx-plan-shadow: rgba(76, 110, 96, 0.20);
  --mx-plan-shadow-strong: rgba(76, 110, 96, 0.26);
}

body.mx-checkout-divine {
  --mx-plan: #d09a2d;
  --mx-plan-dark: #b98322;
  --mx-plan-title: #ca8f1c;
  --mx-plan-link: #9a6d17;
  --mx-plan-link-soft: rgba(154, 109, 23, 0.34);
  --mx-plan-focus: rgba(208, 154, 45, 0.20);
  --mx-plan-shadow: rgba(170, 117, 22, 0.20);
  --mx-plan-shadow-strong: rgba(170, 117, 22, 0.27);
}

body.mx-checkout-boss {
  --mx-plan: #8f3146;
  --mx-plan-dark: #72273a;
  --mx-plan-title: #8b2e43;
  --mx-plan-link: #7a293d;
  --mx-plan-link-soft: rgba(122, 41, 61, 0.34);
  --mx-plan-focus: rgba(143, 49, 70, 0.20);
  --mx-plan-shadow: rgba(113, 38, 56, 0.20);
  --mx-plan-shadow-strong: rgba(113, 38, 56, 0.28);
}

body.mx-checkout-maxima #mx-content {
  display: block;
  min-height: 100vh;
  padding: 116px 28px 56px;
}

body.mx-checkout-maxima #mx-content > .pmpro,
body.mx-checkout-maxima [id^="pmpro_level-"],
body.mx-checkout-maxima #pmpro_form {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

body.mx-checkout-maxima [id^="pmpro_level-"] {
  background: transparent;
}

body.mx-checkout-maxima #pmpro_form {
  padding: 0;
}

body.mx-checkout-maxima .mx-checkout-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.28fr);
  gap: 30px;
  align-items: start;
}

body.mx-checkout-maxima .mx-checkout-summary {
  position: sticky;
  top: 28px;
  min-width: 0;
}

body.mx-checkout-maxima .mx-checkout-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 20px;
}

/* ---------- Glass cards ---------- */
body.mx-checkout-maxima #pmpro_pricing_fields,
body.mx-checkout-maxima .mx-checkout-main .pmpro_card {
  margin: 0;
  overflow: hidden;
  background: var(--mx-checkout-card);
  border: 1px solid var(--mx-glass-brd, rgba(255, 255, 255, 0.46));
  border-radius: 26px;
  box-shadow: var(--mx-checkout-shadow);
  backdrop-filter: blur(var(--mx-glass-blur, 12px));
  -webkit-backdrop-filter: blur(var(--mx-glass-blur, 12px));
}

body.mx-checkout-maxima .mx-checkout-main fieldset,
body.mx-checkout-maxima .mx-checkout-main .pmpro_section {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

body.mx-checkout-maxima .mx-checkout-main .pmpro_card_title {
  margin: 0;
  padding: 24px 26px 0;
  color: var(--mx-checkout-text);
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 21px;
  line-height: 1.3;
  font-weight: 700;
}

body.mx-checkout-maxima .mx-checkout-main .pmpro_card_content {
  padding: 18px 26px 26px;
}

body.mx-checkout-maxima .mx-checkout-main .pmpro_card_actions {
  padding: 16px 26px 22px;
  background: transparent;
  border-top: 1px solid var(--mx-checkout-line);
}

/* ---------- Selected plan summary ---------- */
body.mx-checkout-maxima #pmpro_pricing_fields > .pmpro_card_title {
  margin: 0;
  padding: 27px 28px 0;
}

body.mx-checkout-maxima .mx-checkout-plan-heading {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

body.mx-checkout-maxima .mx-checkout-plan-kicker {
  color: var(--mx-plan-dark);
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 10px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.mx-checkout-maxima .mx-checkout-plan-title {
  color: var(--mx-plan-title);
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-size: clamp(42px, 4vw, 54px);
  line-height: 0.98;
  font-weight: 500;
  letter-spacing: -0.025em;
}

body.mx-checkout-maxima .mx-checkout-plan-image {
  margin: 20px 28px 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.4);
  box-shadow: 0 8px 22px rgba(26, 31, 30, 0.10);
}

body.mx-checkout-maxima .mx-checkout-plan-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.mx-checkout-boss .mx-checkout-plan-image img {
  object-position: 50% 10%;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_card_content {
  padding: 22px 28px 28px;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_name_text {
  display: none;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text {
  margin: 0;
  color: #35423e;
  font-size: 15px;
  line-height: 1.62;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text > :first-child {
  margin-top: 0;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text > :last-child {
  margin-bottom: 0;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text ul {
  margin: 12px 0 0;
  padding-left: 19px;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text li {
  margin: 0 0 7px;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_level_description_text li::marker {
  color: var(--mx-plan);
}

body.mx-checkout-maxima #pmpro_level_cost {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--mx-checkout-line);
}

body.mx-checkout-maxima .mx-checkout-price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin: 0;
  color: #171b1a;
}

body.mx-checkout-maxima .mx-checkout-price .mx-price-currency {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 18px;
  line-height: 1;
}

body.mx-checkout-maxima .mx-checkout-price .mx-price-amount {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 54px;
  line-height: 0.9;
  font-weight: 500;
  letter-spacing: -0.04em;
}

body.mx-checkout-maxima .mx-checkout-price .mx-price-period {
  margin-left: 2px;
  font-family: "Raleway", system-ui, sans-serif;
  font-size: 11px;
  line-height: 1;
  font-weight: 600;
}

body.mx-checkout-maxima .mx-checkout-cost-detail {
  display: block;
  margin: 9px 0 0;
  color: var(--mx-checkout-muted);
  font-size: 12px;
  line-height: 1.5;
}

body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_card_actions {
  padding: 17px 28px 24px;
  color: var(--mx-checkout-text);
  background: transparent;
  border-top: 1px solid var(--mx-checkout-line);
}

/* ---------- Payment amount, separate from the recurring price ---------- */
body.mx-checkout-maxima .mx-checkout-payment-summary {
  padding: 18px 20px;
  color: var(--mx-checkout-text);
  background: var(--mx-checkout-card);
  border: 1px solid var(--mx-checkout-line);
  border-radius: 14px;
  font-size: 15px;
  line-height: 1.6;
}

body.mx-checkout-maxima .mx-checkout-payment-summary p {
  margin: 0 0 8px;
}

body.mx-checkout-maxima .mx-checkout-payment-summary p:last-child {
  margin-bottom: 0;
}

body.mx-checkout-maxima .mx-checkout-payment-summary .mx-checkout-due {
  padding-top: 10px;
  border-top: 1px solid var(--mx-checkout-line);
  font-size: 18px;
}

/* ---------- Subscription flexibility note ---------- */
body.mx-checkout-maxima .mx-checkout-subscription-note {
  padding: 11px 13px 11px 14px;
  color: #38433f;
  background: rgba(255, 255, 255, 0.52);
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-left: 3px solid var(--mx-plan);
  border-radius: 12px;
  font-size: 13px;
  font-style: italic;
  line-height: 1.55;
}

body.mx-checkout-maxima .mx-checkout-subscription-note--price {
  margin-top: 16px;
}

body.mx-checkout-maxima .mx-checkout-change-level {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 11px;
  color: var(--mx-plan-link);
  font-size: 13px;
  line-height: 1.45;
  font-weight: 600;
  text-decoration: none;
  text-underline-offset: 3px;
}

body.mx-checkout-maxima .mx-checkout-change-level:hover,
body.mx-checkout-maxima .mx-checkout-change-level:focus-visible {
  color: var(--mx-plan);
  text-decoration: underline;
}

body.mx-checkout-maxima .mx-checkout-subscription-note--submit {
  margin: 0 0 14px;
}

/* ---------- Form text and fields ---------- */
body.mx-checkout-maxima .mx-checkout-main,
body.mx-checkout-maxima .mx-checkout-main p,
body.mx-checkout-maxima .mx-checkout-main span,
body.mx-checkout-maxima .mx-checkout-main label,
body.mx-checkout-maxima .mx-checkout-main legend {
  color: var(--mx-checkout-text);
}

body.mx-checkout-maxima .mx-checkout-main a {
  color: var(--mx-plan-link);
  text-decoration-color: var(--mx-plan-link-soft);
}

body.mx-checkout-maxima .pmpro_form_fields {
  gap: 16px;
}

body.mx-checkout-maxima .pmpro_form_field {
  gap: 7px;
}

body.mx-checkout-maxima .pmpro_form_label {
  color: #35423e;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 600;
}

body.mx-checkout-maxima :is(
  .pmpro_form_input-text,
  .pmpro_form_input-email,
  .pmpro_form_input-url,
  .pmpro_form_input-password,
  .pmpro_form_input-search,
  .pmpro_form_input-select,
  .pmpro_form_input-multiselect,
  .pmpro_form_input-number,
  .pmpro_form_input-date,
  .pmpro_form_input-textarea
) {
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 13px;
  color: #1f2926;
  background: var(--mx-checkout-field);
  border: 1px solid rgba(77, 100, 91, 0.22);
  border-radius: 12px;
  box-shadow: none;
  font-size: 16px;
  line-height: 1.45;
}

body.mx-checkout-maxima :is(
  .pmpro_form_input-text,
  .pmpro_form_input-email,
  .pmpro_form_input-url,
  .pmpro_form_input-password,
  .pmpro_form_input-search,
  .pmpro_form_input-select,
  .pmpro_form_input-multiselect,
  .pmpro_form_input-number,
  .pmpro_form_input-date,
  .pmpro_form_input-textarea
):focus {
  outline: none;
  background: #fff;
  border-color: var(--mx-plan);
  box-shadow: 0 0 0 3px var(--mx-plan-focus);
}

body.mx-checkout-maxima .pmpro_form_input::placeholder {
  color: #89948f;
}

body.mx-checkout-maxima .pmpro_cols-2 {
  gap: 14px;
}

body.mx-checkout-maxima #pmpro_payment_information_fields :is(#AccountNumber, #Expiry, #CVV) {
  min-height: 48px;
  padding: 13px;
  background: var(--mx-checkout-field);
  border: 1px solid rgba(77, 100, 91, 0.22);
  border-radius: 12px;
}

body.mx-checkout-maxima .pmpro_form_field-password-toggle button,
body.mx-checkout-maxima .pmpro_form_field-password-toggle button:hover,
body.mx-checkout-maxima .pmpro_form_field-password-toggle button:focus {
  padding: 0;
  color: var(--mx-plan-link);
  background: transparent;
  border: 0;
  box-shadow: none;
}

body.mx-checkout-maxima .pmpro_form_field-password-toggle svg {
  stroke: var(--mx-plan-link);
}

/* ---------- Messages ---------- */
body.mx-checkout-maxima .mx-checkout-main .pmpro_message {
  margin: 0;
  padding: 13px 16px;
  border-radius: 14px;
  box-shadow: none;
}

/* ---------- Checkout CTA ---------- */
body.mx-checkout-maxima .pmpro_form_submit {
  display: block;
  margin: 0;
  padding: 0;
}

body.mx-checkout-maxima #pmpro_submit_span {
  display: block;
}

body.mx-checkout-maxima #pmpro_btn-submit {
  display: block;
  width: 100%;
  min-height: 56px;
  padding: 15px 22px;
  color: #fff;
  background: var(--mx-plan);
  border: 0;
  border-radius: 14px;
  box-shadow: 0 9px 22px var(--mx-plan-shadow);
  font-size: 17px;
  line-height: 1.2;
  font-weight: 700;
  cursor: pointer;
  transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease;
}

body.mx-checkout-maxima #pmpro_btn-submit:hover,
body.mx-checkout-maxima #pmpro_btn-submit:focus-visible {
  background: var(--mx-plan-dark);
  box-shadow: 0 11px 26px var(--mx-plan-shadow-strong);
  transform: translateY(-1px);
}

body.mx-checkout-maxima #pmpro_processing_message {
  margin-top: 10px;
  color: var(--mx-checkout-muted);
  text-align: center;
  font-size: 13px;
}

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  body.mx-checkout-maxima #mx-content {
    padding: 108px 22px 48px;
  }

  body.mx-checkout-maxima .mx-checkout-layout {
    grid-template-columns: 1fr;
    gap: 22px;
    max-width: 760px;
    margin: 0 auto;
  }

  body.mx-checkout-maxima .mx-checkout-summary {
    position: static;
  }

  body.mx-checkout-maxima .mx-checkout-plan-image {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 767px) {
  body.mx-checkout-maxima #mx-content {
    padding: 98px 14px 36px;
  }

  body.mx-checkout-maxima .mx-checkout-layout {
    gap: 16px;
  }

  body.mx-checkout-maxima #pmpro_pricing_fields,
  body.mx-checkout-maxima .mx-checkout-main .pmpro_card {
    border-radius: 20px;
  }

  body.mx-checkout-maxima #pmpro_pricing_fields > .pmpro_card_title,
  body.mx-checkout-maxima .mx-checkout-main .pmpro_card_title {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.mx-checkout-maxima .mx-checkout-plan-image {
    margin: 16px 20px 0;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
  }

  body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_card_content,
  body.mx-checkout-maxima .mx-checkout-main .pmpro_card_content {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.mx-checkout-maxima .mx-checkout-main .pmpro_card_actions,
  body.mx-checkout-maxima #pmpro_pricing_fields .pmpro_card_actions {
    padding-left: 20px;
    padding-right: 20px;
  }

  body.mx-checkout-maxima .mx-checkout-plan-title {
    font-size: 42px;
  }

  body.mx-checkout-maxima .pmpro_cols-2 {
    flex-direction: column;
  }

  body.mx-checkout-maxima .pmpro_cols-2 > * {
    width: 100%;
  }
}


@media (max-width: 768px) {
  body.mx-checkout-boss .mx-checkout-plan-image img {
    object-position: 50% 8%;
  }
}
