/*
 * Paid Memberships Pro pages (account, levels, checkout, billing, cancel) take the active theme's look:
 * its surface, line, text, accent and button style, through the theme's --lrn-* tokens.
 * Scoped to PMPro's own containers; nothing outside them changes.
 */

.pmpro {
	color: var(--lrn-text, inherit);
	font-family: inherit;
}

.pmpro .pmpro_card,
.pmpro .pmpro_checkout,
.pmpro .pmpro_levels .pmpro_level,
.pmpro .pmpro_table_wrapper,
.pmpro .pmpro_form {
	background: var(--lrn-panel, transparent);
	border: 1px solid var(--lrn-line, currentColor);
	border-radius: 16px;
	color: var(--lrn-text, inherit);
	box-shadow: none;
}

.pmpro .pmpro_card {
	margin: 0 0 20px;
	overflow: hidden;
}

.pmpro .pmpro_card_title,
.pmpro .pmpro_card h2,
.pmpro .pmpro_card h3 {
	background: none;
	color: var(--lrn-text, inherit);
	border-bottom: 1px solid var(--lrn-line, currentColor);
	font-weight: 700;
}

.pmpro .pmpro_card_content,
.pmpro .pmpro_card_actions {
	background: transparent;
	color: var(--lrn-text, inherit);
}

.pmpro .pmpro_card_actions {
	border-top: 1px solid var(--lrn-line, currentColor);
}

.pmpro a {
	color: var(--lrn-accent, inherit);
}

.pmpro a:hover {
	color: var(--lrn-text, inherit);
}

.pmpro table,
.pmpro th,
.pmpro td {
	border-color: var(--lrn-line, currentColor);
	color: var(--lrn-text, inherit);
	background: transparent;
}

.pmpro .pmpro_btn,
.pmpro input[type="submit"],
.pmpro button[type="submit"],
.pmpro .pmpro_btn-select {
	min-height: 44px;
	padding: 0 20px;
	border-radius: 10px;
	border: 0;
	background: var(--lrn-accent, currentColor);
	color: var(--lrn-on-accent, #111);
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	box-shadow: none;
}

.pmpro .pmpro_btn-cancel,
.pmpro .pmpro_btn-secondary {
	background: transparent;
	color: var(--lrn-text, inherit);
	border: 1px solid var(--lrn-line, currentColor);
}

.pmpro input[type="text"],
.pmpro input[type="email"],
.pmpro input[type="password"],
.pmpro input[type="tel"],
.pmpro input[type="number"],
.pmpro select,
.pmpro textarea {
	min-height: 44px;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid var(--lrn-line, currentColor);
	background: var(--lrn-bg, transparent);
	color: var(--lrn-text, inherit);
	font: inherit;
	box-sizing: border-box;
	max-width: 100%;
}

.pmpro input:focus,
.pmpro select:focus,
.pmpro textarea:focus,
.pmpro a:focus-visible,
.pmpro button:focus-visible {
	outline: 2px solid var(--lrn-accent, currentColor);
	outline-offset: 2px;
}

.pmpro .pmpro_message,
.pmpro .pmpro_error,
.pmpro .pmpro_success {
	border-radius: 12px;
	border: 1px solid var(--lrn-line, currentColor);
	background: var(--lrn-raised, transparent);
	color: var(--lrn-text, inherit);
}

.pmpro .pmpro_error {
	border-color: var(--lrn-fail, currentColor);
}

.pmpro .pmpro_price,
.pmpro .pmpro_level-price {
	color: var(--lrn-accent, inherit);
	font-weight: 700;
}

/* PMPro's own card rules win on background; the theme surface must win here. */
.pmpro .pmpro_card,
.pmpro .pmpro_checkout,
.pmpro .pmpro_table_wrapper,
.pmpro .pmpro_form {
	background-color: var(--lrn-panel, #18181a) !important;
}

/* Account page polish: no duplicate title, quiet links, a card header that holds the picture cleanly. */
.pmpro-account .pmpro_section:first-of-type > .pmpro_section_title {
	display: none;
}

.pmpro .pmpro_card_title {
	padding: 22px 26px 16px;
	border-bottom: 0;
	font-size: 22px;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.pmpro .pmpro_card_title.pmpro_heading-with-avatar {
	display: flex;
	align-items: center;
	gap: 14px;
}

.pmpro .pmpro_card_title img,
.pmpro .pmpro_card_title .avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 2px solid var(--lrn-accent, var(--lrn-line, currentColor));
	object-fit: cover;
	flex: none;
}

.pmpro .pmpro_card_content {
	padding: 4px 26px 18px;
}

.pmpro .pmpro_list_item {
	padding: 6px 0;
	font-size: 16px;
}

.pmpro .pmpro_card_actions {
	padding: 14px 26px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	align-items: center;
}

.pmpro .pmpro_card_actions a,
.pmpro .pmpro_card_actions .pmpro_btn {
	text-decoration: none;
	font-size: 15px;
	font-weight: 600;
}

.pmpro .pmpro_card_actions a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}

.pmpro .pmpro_card_content p,
.pmpro .pmpro_card_content .pmpro_list {
	margin: 0;
}

/* Cards match the site's card standard: 16px radius, 1px line, panel surface, 18/20px padding, 19px title. */
.pmpro .pmpro_card {
	border-radius: 16px;
	padding: 0;
}

.pmpro .pmpro_card_title {
	padding: 18px 20px 6px;
	font-size: 19px;
	line-height: 1.25;
	letter-spacing: -0.02em;
}

.pmpro .pmpro_card_content {
	padding: 6px 20px 14px;
}

.pmpro .pmpro_card_actions {
	padding: 12px 20px;
}

.pmpro .pmpro_card_title.pmpro_heading-with-avatar {
	padding-top: 18px;
}

/* Page title on membership pages: sized like the site's section titles, not like a hero. */
body.pmpro-account .wp-block-post-title,
body.pmpro-account h1.wp-block-post-title {
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.15;
	letter-spacing: -0.03em;
}

/* PMPro sets its own card radius; the site's 16px radius must win. */
.pmpro .pmpro_card {
	border-radius: 16px !important;
	border: 1px solid var(--lrn-line, currentColor) !important;
}

/* Site cards have no divider inside the header area. */
.pmpro .pmpro_card_title,
.pmpro .pmpro_card h2,
.pmpro .pmpro_card h3 {
	border-bottom: 0 !important;
}

/* Card header: the picture sits inside the header band with room, and the divider uses the theme's soft line. */
.pmpro .pmpro_card_title.pmpro_heading-with-avatar {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 96px;
	padding: 18px 20px;
	margin: 0;
	border-bottom: 1px solid var(--lrn-line-soft, var(--lrn-line, currentColor)) !important;
}

.pmpro .pmpro_card_title.pmpro_heading-with-avatar img,
.pmpro .pmpro_card_title.pmpro_heading-with-avatar .avatar {
	width: 56px !important;
	height: 56px !important;
	margin: 0 !important;
	flex: none;
}

/* Body and actions: one soft divider, no bright line, no extra empty space. */
.pmpro .pmpro_card_content {
	padding: 16px 20px 6px;
}

.pmpro .pmpro_card_actions {
	border-top: 1px solid var(--lrn-line-soft, var(--lrn-line, currentColor)) !important;
	padding: 14px 20px;
}

.pmpro .pmpro_card_actions a {
	color: var(--lrn-muted, inherit);
	font-weight: 600;
	font-size: 15px;
}

.pmpro .pmpro_card_actions a:hover {
	color: var(--lrn-accent, inherit);
}

.pmpro .pmpro_card_actions .pmpro_sep,
.pmpro .pmpro_card_actions span {
	color: var(--lrn-subtle, var(--lrn-muted, inherit));
}

/* Levels table and select buttons: the theme's surface, text and accent, over PMPro's own table colours. */
.pmpro .pmpro_table,
.pmpro table.pmpro_table,
.pmpro .pmpro_levels table {
	background: var(--lrn-panel, #18181a) !important;
	color: var(--lrn-text, inherit) !important;
	border: 1px solid var(--lrn-line, currentColor) !important;
	border-radius: 16px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.pmpro .pmpro_table th,
.pmpro .pmpro_table td,
.pmpro table.pmpro_table th,
.pmpro table.pmpro_table td {
	background: transparent !important;
	color: var(--lrn-text, inherit) !important;
	border-color: var(--lrn-line-soft, var(--lrn-line, currentColor)) !important;
	padding: 14px 18px;
}

.pmpro .pmpro_table th {
	color: var(--lrn-muted, inherit) !important;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 700;
}

.pmpro .pmpro_btn-select,
.pmpro a.pmpro_btn-select,
.pmpro .pmpro_btn.pmpro_btn-select {
	background: var(--lrn-accent, currentColor) !important;
	color: var(--lrn-on-accent, #111) !important;
	border: 0 !important;
	border-radius: 10px !important;
	min-height: 44px;
	padding: 0 20px !important;
	font-weight: 700;
	text-decoration: none !important;
}

/* Checkout and every other membership page: one card per block, no double border, theme button, site title size. */
.pmpro .pmpro_checkout,
.pmpro .pmpro_form.pmpro_checkout {
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.pmpro .pmpro_card h2,
.pmpro .pmpro_card h3,
.pmpro .pmpro_checkout h2,
.pmpro .pmpro_checkout h3 {
	font-size: 19px;
	line-height: 1.25;
	letter-spacing: -0.02em;
	margin: 0 0 10px;
}

.pmpro .pmpro_btn,
.pmpro .pmpro_btn-submit-checkout,
.pmpro .pmpro_btn-checkout,
.pmpro button.pmpro_btn,
.pmpro a.pmpro_btn {
	background: var(--lrn-accent, currentColor) !important;
	color: var(--lrn-on-accent, #111) !important;
	border: 0 !important;
	border-radius: 10px !important;
	min-height: 48px;
	padding: 0 24px !important;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.pmpro .pmpro_btn:hover,
.pmpro .pmpro_btn:focus {
	filter: brightness(1.06);
}

body:has(.pmpro) .wp-block-post-title,
body:has(.pmpro) h1.wp-block-post-title {
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.15;
	letter-spacing: -0.03em;
}

/* Levels page: one border only, select button centred on its own line. */
.pmpro .pmpro_levels,
.pmpro .pmpro_table_wrapper.pmpro_levels,
.pmpro .pmpro_levels .pmpro_card,
.pmpro .pmpro_levels .pmpro_table_wrapper {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.pmpro .pmpro_btn-select,
.pmpro a.pmpro_btn-select {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 44px !important;
	min-height: 44px !important;
	line-height: 1 !important;
	padding: 0 20px !important;
	margin: 0 !important;
	white-space: nowrap;
}

/* Levels table spans the same width as the guide cards below it. */
.pmpro .pmpro_card.pmpro_level_group > .pmpro_card_content {
	padding: 0 !important;
}

.pmpro .pmpro_card.pmpro_level_group table.pmpro_levels_table {
	width: 100%;
}

/* Checkout: no outer frame around the cards, cards separated evenly, the pay button inside the same padding as the cards. */
.pmpro .pmpro_checkout_box,
.pmpro #pmpro_form,
.pmpro .pmpro_form,
.pmpro .pmpro_checkout,
.pmpro .pmpro_section,
.pmpro .pmpro_checkout_fields {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.pmpro .pmpro_card + .pmpro_card,
.pmpro .pmpro_checkout_box .pmpro_card + .pmpro_card {
	margin-top: 16px;
}

.pmpro .pmpro_submit,
.pmpro .pmpro_checkout_buttons,
.pmpro .pmpro_actions_nav {
	padding: 8px 0 0 !important;
	margin: 0 !important;
	display: flex;
	justify-content: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}

.pmpro .pmpro_submit .pmpro_btn,
.pmpro .pmpro_submit button,
.pmpro .pmpro_submit input[type="submit"] {
	margin: 0 !important;
}

/* Levels page: one frame only; the intro and guide use the site's type and cards. */
.pmpro .pmpro_table_wrapper,
.pmpro .pmpro_levels,
.pmpro .pmpro_card.pmpro_level_group {
	border: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
}

.axvl-levels-intro {
	margin: 0 0 28px;
}

.axvl-levels-intro .axvl-lead {
	margin: 0 0 20px;
	color: var(--lrn-muted, inherit);
	font-size: 17px;
	line-height: 1.6;
	max-width: 60ch;
}

.axvl-levels-points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.axvl-levels-points li {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	border: 1px solid var(--lrn-line, currentColor);
	border-radius: 16px;
	background: var(--lrn-panel, transparent);
}

.axvl-levels-points strong {
	font-size: 16px;
	letter-spacing: -0.01em;
}

.axvl-levels-points span {
	color: var(--lrn-muted, inherit);
	font-size: 14px;
	line-height: 1.55;
}

.axvl-levels-guide {
	margin-top: 36px;
	padding: 24px;
	border: 1px solid var(--lrn-line, currentColor);
	border-radius: 16px;
	background: var(--lrn-panel, transparent);
}

.axvl-levels-guide h2 {
	margin: 0 0 12px;
	font-size: 19px;
	letter-spacing: -0.02em;
}

.axvl-levels-guide ol {
	margin: 0 0 12px;
	padding-inline-start: 22px;
	line-height: 1.7;
}

.axvl-levels-checks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.axvl-levels-checks li {
	position: relative;
	padding-inline-start: 26px;
	line-height: 1.6;
}

.axvl-levels-checks li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	top: 0.55em;
	width: 10px;
	height: 6px;
	border-inline-start: 2px solid var(--lrn-accent, currentColor);
	border-bottom: 2px solid var(--lrn-accent, currentColor);
	transform: rotate(-45deg);
}

/* Order and confirmation pages: readable text on the theme background, one frame per card, theme-coloured print button. */
.pmpro,
.pmpro section,
.pmpro p,
.pmpro li {
	color: inherit !important;
}

.pmpro .pmpro_card:not(.pmpro_level_group) table.pmpro_table {
	border: 0 !important;
	background: transparent !important;
	border-radius: 0 !important;
}

.pmpro .pmpro_btn-print {
	color: var(--lrn-accent, #5eead4) !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	font-family: inherit !important;
	font-size: 16px !important;
	line-height: 1.4;
	text-decoration: underline;
	text-underline-offset: 4px;
	cursor: pointer;
}

.pmpro .pmpro_card_actions a,
.pmpro .pmpro_card_actions .pmpro_btn-plain {
	text-underline-offset: 4px;
}

/* Navigation links and print action: buttons from the theme's own pill style instead of underlined text. */
.pmpro .pmpro_actions_nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 24px 0 0 !important;
	margin: 0 !important;
}

.pmpro .pmpro_actions_nav a,
.pmpro .pmpro_btn-print {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 20px !important;
	border: 1px solid var(--lrn-line, #3f3f46) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--lrn-text, #f8f9fa) !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600;
	line-height: 1 !important;
	text-decoration: none !important;
	cursor: pointer;
}

.pmpro .pmpro_actions_nav a:hover,
.pmpro .pmpro_btn-print:hover {
	border-color: var(--lrn-accent, #5eead4) !important;
	color: var(--lrn-accent, #5eead4) !important;
}

.pmpro .pmpro_actions_nav-right a {
	background: var(--lrn-accent, #5eead4) !important;
	border-color: var(--lrn-accent, #5eead4) !important;
	color: var(--lrn-on-accent, #0a0a0a) !important;
}

.pmpro .pmpro_card_actions {
	display: flex;
	justify-content: flex-end;
	padding-top: 8px;
}

/* One button language across Levels, Checkout, Account and Confirmation: pills with the same height, border and spacing. */
.pmpro .pmpro_card_actions .pmpro_card_action,
.pmpro .pmpro_card_actions .pmpro_btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px !important;
	border: 1px solid var(--lrn-line, #3f3f46) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--lrn-text, #f8f9fa) !important;
	font-size: 15px !important;
	font-weight: 600;
	line-height: 1 !important;
	text-decoration: none !important;
}

.pmpro .pmpro_card_actions .pmpro_card_action:hover {
	border-color: var(--lrn-accent, #5eead4) !important;
	color: var(--lrn-accent, #5eead4) !important;
}

.pmpro .pmpro_card_actions .pmpro_card_action a {
	color: inherit !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-decoration: none !important;
}

.pmpro .pmpro_card_actions .pmpro_sep,
.pmpro .pmpro_card_actions .pmpro_card_action_separator {
	display: none !important;
}

.pmpro .pmpro_card_actions {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: flex-end;
}

/* Call-to-action links inside a card paragraph: a pill on its own line, same as the card buttons. */
.pmpro .pmpro_card_content > p > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 44px;
	margin-top: 16px;
	padding: 0 20px;
	border: 1px solid var(--lrn-line, #3f3f46);
	border-radius: 999px;
	color: var(--lrn-text, #f8f9fa);
	font-weight: 600;
	text-decoration: none;
}

.pmpro .pmpro_card_content > p > a:hover {
	border-color: var(--lrn-accent, #5eead4);
	color: var(--lrn-accent, #5eead4);
}

/* Membership pages use the homepage block width (theme wide size) instead of the narrow reading column. */
.entry-content:has(.pmpro) > *,
.entry-content:has(.axvl-account) > * {
	max-width: none !important;
}

.pmpro,
.axvl-account {
	max-width: var(--wp--style--global--wide-size, 1320px) !important;
	width: 100%;
	margin-inline: auto !important;
}

.entry-content:has(.pmpro),
.entry-content:has(.axvl-account) {
	max-width: var(--wp--style--global--wide-size, 1320px);
}
