/* PMPro retains markup and behaviour; these rules provide a bounded NZHL skin. */
.pmpro, .membership-checkout .pmpro, .membership-confirmation .pmpro { max-width: 100%; color: var(--nzhl-text); font-family: var(--nzhl-font-sans); overflow-wrap: anywhere; }
.membership-confirmation .pmpro_card { border: 0; box-shadow: none; }
.pmpro .pmpro_card, .pmpro .pmpro_section { max-width: 100%; }
.pmpro .pmpro_card_title { color: var(--nzhl-green-deep); }
.pmpro .pmpro_card_content { max-width: 100%; }
.pmpro .pmpro_form_label { display: block; margin: 0 0 .4rem; color: var(--nzhl-text); font-weight: 600; }
.pmpro .pmpro_form_input:not([type="checkbox"]):not([type="radio"]) { width: 100%; max-width: 100%; min-height: 46px; padding: .7rem .8rem; background: #fff; border: 1px solid var(--nzhl-border); border-radius: 8px; }
.pmpro .pmpro_form_input:focus-visible { outline: 3px solid var(--nzhl-action); outline-offset: 2px; }
.pmpro .pmpro_btn { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: .75rem 1.4rem; color: #fff; font: 600 1rem/1.2 var(--nzhl-font-sans); background: var(--nzhl-action); border: 2px solid var(--nzhl-action); border-radius: var(--nzhl-radius-action); cursor: pointer; }
.pmpro .pmpro_btn:hover { color: #fff; background: var(--nzhl-action-hover); border-color: var(--nzhl-action-hover); }
.pmpro .pmpro_actions_nav .pmpro_btn { color: var(--nzhl-action); background: transparent; }
.pmpro .pmpro_message { padding: var(--nzhl-space-3); color: var(--nzhl-text); background: #f6edda; border: 1px solid #9c6b1b; border-radius: 8px; }
.pmpro .pmpro_message.pmpro_success, .pmpro .pmpro_confirmation-level-message { background: #e8f3e9; border-color: var(--nzhl-action); }
.pmpro iframe { max-width: 100%; }
.pmpro .pmpro_actions_nav { display: flex; flex-wrap: wrap; gap: var(--nzhl-space-2); }
.membership-checkout #pmpro_pricing_fields { border: 1px solid black; border-radius: 12px; }

/* Shared shell for PMPro system Pages rendered by the normal Page template. */
.member-area-page { color: var(--nzhl-text); background: var(--nzhl-surface-soft); }
.member-area-hero { padding-block: clamp(3.5rem, 8vw, 6.5rem); color: var(--nzhl-white); background: var(--nzhl-green-dark); }
.member-area-hero .nzhl-kicker { color: #bce8c3; }
.member-area-hero .nzhl-page-title { max-width: 900px; color: var(--nzhl-white); }
.member-area-content { padding-block: clamp(3.5rem, 7vw, 6rem); }
.member-area-content__inner { width: 100%; max-width: 900px; }
.member-area-content__inner > :first-child { margin-top: 0; }
.member-area-content__inner > :last-child { margin-bottom: 0; }

/* PMPro owns the content and behaviour; the member-area scope owns only presentation. */
.member-area-page .pmpro .pmpro_card,
.member-area-page .pmpro .pmpro_section,
.member-area-page .pmpro > section { padding: clamp(1.25rem, 3vw, 2rem); background: var(--nzhl-surface); border: 1px solid var(--nzhl-border); border-radius: var(--nzhl-radius-card); box-shadow: var(--nzhl-shadow-card); }
.member-area-page .pmpro .pmpro_section + .pmpro_section { margin-top: var(--nzhl-space-5); }
.member-area-page .pmpro .pmpro_card .pmpro_card,
.member-area-page .pmpro .pmpro_section .pmpro_card { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.member-area-page .pmpro :is(h2, h3, .pmpro_card_title) { color: var(--nzhl-green-deep); }
.member-area-page .pmpro .pmpro_card_title > :first-child,
.member-area-page .pmpro .pmpro_section > :first-child { margin-top: 0; }
.member-area-page .pmpro .pmpro_card_content > :last-child,
.member-area-page .pmpro .pmpro_section > :last-child { margin-bottom: 0; }
.member-area-page .pmpro .pmpro_actions_nav { margin-top: var(--nzhl-space-4); padding-top: var(--nzhl-space-3); border-top: 1px solid var(--nzhl-border); }
.member-area-page .pmpro .pmpro_actions_nav a { font-weight: 600; }
.member-area-page .pmpro table { display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; overscroll-behavior-inline: contain; }
.member-area-page .pmpro :is(th, td) { padding: .8rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--nzhl-border); }
.member-area-page .pmpro th { color: var(--nzhl-green-deep); font-weight: 700; background: var(--nzhl-surface-soft); }
.member-area-page .pmpro_login_wrap { max-width: 560px; margin-inline: auto; padding: clamp(1.25rem, 4vw, 2.25rem); background: var(--nzhl-surface); border: 1px solid var(--nzhl-border); border-radius: var(--nzhl-radius-card); box-shadow: var(--nzhl-shadow-card); }
.member-area-page #pmpro_cancel_form .pmpro_btn-submit { color: var(--nzhl-white); background: #a3261d; border-color: #a3261d; }
.member-area-page #pmpro_cancel_form .pmpro_btn-submit:hover { background: #812018; border-color: #812018; }

@media (max-width: 390px) {
	.member-area-page .pmpro .pmpro_card,
	.member-area-page .pmpro .pmpro_section,
	.member-area-page .pmpro > section,
	.member-area-page .pmpro_login_wrap { padding: var(--nzhl-space-3); }
	.member-area-page .pmpro .pmpro_actions_nav .pmpro_btn { width: 100%; }
}

/* Checkout is one application card; PMPro continues to own its markup and behaviour. */
.membership-checkout .pmpro_card { margin: 0; padding: 0; overflow: visible; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.membership-checkout .pmpro_card_title { margin: 0; padding: 0; }
.membership-checkout .pmpro_card_content { padding: 0; }
.membership-checkout .pmpro_section + .pmpro_section { margin-top: 0; }
.membership-checkout #pmpro_pricing_fields,
.membership-checkout #pmpro_user_fields > .pmpro_card,
.membership-checkout #pmpro_billing_address_fields > .pmpro_card,
.membership-checkout #pmpro_payment_information_fields > .pmpro_card { padding: clamp(1.5rem, 4vw, 2.25rem) var(--membership-checkout-inline); }
.membership-checkout #pmpro_user_fields > .pmpro_card,
.membership-checkout #pmpro_billing_address_fields > .pmpro_card,
.membership-checkout #pmpro_payment_information_fields > .pmpro_card { border-top: 1px solid var(--nzhl-border); }
.membership-checkout #pmpro_pricing_fields { background: var(--nzhl-surface-soft); }
.membership-checkout .pmpro_card_title h2,
.membership-checkout #pmpro_pricing_fields h2 { margin: 0 0 1.25rem; padding: 0; color: var(--nzhl-green-deep); font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.2; }
.membership-checkout #pmpro_pricing_fields h2 { font-size: clamp(1rem, 2vw, 1.15rem); }
.membership-checkout .pmpro_level_name_text { display: block; color: var(--nzhl-green-deep); font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 700; line-height: 1.3; }
.membership-checkout #pmpro_level_cost { margin-top: .65rem; margin-bottom: 0; font-weight: 600; }
.membership-checkout #pmpro_account_loggedin { padding: 1rem 1.15rem; background: #f4f6f3; border-radius: 8px; line-height: 1.55; }
.membership-checkout #pmpro_account_loggedin > :first-child { margin-top: 0; }
.membership-checkout #pmpro_account_loggedin > :last-child { margin-bottom: 0; }
.membership-checkout .pmpro_form_fields { gap: 1rem 1.25rem; }
.membership-checkout .pmpro_form_field { min-width: 0; margin: 0; }
.membership-checkout .pmpro_form_field select { max-width: 100%; }
.membership-checkout #pmpro_billing_address_fields .pmpro_form_fields.pmpro_cols-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.membership-checkout #pmpro_billing_address_fields .pmpro_form_fields.pmpro_cols-2 > .pmpro_form_field { width: 100%; max-width: none; min-width: 0; flex: none; box-sizing: border-box; }
.membership-checkout #pmpro_billing_address_fields .pmpro_form_field > .pmpro_form_input:not([type="checkbox"]):not([type="radio"]) { width: 100%; max-width: 100%; box-sizing: border-box; }
.membership-checkout #pmpro_billing_address_fields .select2-container { width: 100% !important; max-width: 100%; }
.membership-checkout #pmpro_message,
.membership-checkout #pmpro_message_bottom { margin-inline: var(--membership-checkout-inline); }
.membership-checkout .pmpro_submit,
.membership-checkout .pmpro_form_submit { margin-top: 0; padding: 1.5rem var(--membership-checkout-inline) 1.75rem; border-top: 1px solid var(--nzhl-border); }
.membership-checkout #pmpro_btn-submit { min-height: 46px; }
@media (max-width: 700px) {
	.membership-checkout #pmpro_billing_address_fields .pmpro_form_fields.pmpro_cols-2 { grid-template-columns: minmax(0, 1fr); }
}
