
/**
 * The primary style variation for Paid Memberships Pro.
 *
 * These styles can be unset on the Memberships > Settings > Design admin screen.
*/
:root {
	--pmpro--color--white: #fff;
	--pmpro--box-shadow: 2px 2px 7px rgba(0, 0, 0, .07);
}

/**
 * Main Container
*/
.pmpro {
	color: var(--pmpro--color--contrast);
}

.pmpro_card_actions {
	background-color: rgba(0, 0, 0, .04);
	border-bottom: 1px solid var(--pmpro--color--border--variation);
	padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--large);
}

.pmpro_card_content + .pmpro_card_actions {
	border-top: 1px solid var(--pmpro--color--border--variation);
	border-bottom: none;
}

.pmpro_card_actions button {}

.pmpro_card_action_separator {
	margin: 0 calc(var(--pmpro--base--spacing--small) / 2);
	opacity: .25;
}

/**
	 * Heading Styles
	 */
.pmpro_heading-with-avatar {
	align-items: center;
	display: flex;
	font-weight: 700;
	gap: var(--pmpro--base--spacing--small);
}

/**
	* Contextual Messages
	*/
.pmpro_message {
	box-shadow: var(--pmpro--box-shadow);
}

/**
	 * Buttons
	 */
.pmpro_btn {
	background-color: var(--pmpro--color--accent);
	border: 1px solid var(--pmpro--color--accent);
	border-radius: var(--pmpro--base--border-radius);
	box-shadow: 1px 2px 4px rgba(0, 0, 0, .1);
	box-sizing: border-box;
	color: var(--pmpro--color--base);
	cursor: pointer;
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.5;
	min-height: 40px;
	outline: 0;
	padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--medium);
	text-align: center;
	text-decoration: none;
	text-rendering: geometricprecision;
	text-transform: none;
	user-select: none;
	-webkit-user-select: none;
	touch-action: manipulation;
	vertical-align: middle;
	transition: background-color .2s, color .2s;
}

.pmpro_btn:hover, .pmpro_btn:focus {
	background-color: var(--pmpro--color--accent--variation);
	background-position: 0 0;
	border-color: var(--pmpro--color--accent--variation);
	color: var(--pmpro--color--base);
}

.pmpro_btn:active {
	opacity: .7;
}

.pmpro_btn-outline {
	background-color: transparent;
	color: var(--pmpro--color--accent);
}

.pmpro_btn-outline:hover, .pmpro_btn-outline:focus {
	background-color: transparent;
	border-color: var(--pmpro--color--accent--variation);
	color: var(--pmpro--color--accent--variation);
}

.pmpro_btn-delete {
	background-color: var(--pmpro--color--error-text);
	border-color: var(--pmpro--color--error-text);
}

.pmpro_btn-delete:hover, .pmpro_btn-delete:focus {
	background-color: var(--pmpro--color--error-link);
	border-color: var(--pmpro--color--error-link);
}

.pmpro_btn-cancel {
	background-color: transparent;
	border-color: var(--pmpro--color--border);
	box-shadow: 1px 2px 2px rgba(0, 0, 0, .1);
	color: var(--pmpro--color--contrast);
}

.pmpro_btn-cancel:hover, .pmpro_btn-cancel:focus {
	background-color: var(--pmpro--color--border--variation);
	border-color: var(--pmpro--color--border);
	color: var(--pmpro--color--contrast);
}

.pmpro_btn-plain, .pmpro_btn-plain:hover, .pmpro_btn-plain:focus, .pmpro_btn-plain:active {
	background: 0 0;
	border: 1px solid transparent;
	box-shadow: none;
	cursor: pointer;
	font-size: 14px;
	margin: 0;
	padding: 0;
}

.pmpro_btn-print {
	align-items: center;
	color: var(--pmpro--color--accent);
	display: inline-flex;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
	justify-content: space-between;
	text-decoration: underline;
}

.pmpro_btn-print:hover {
	color: var(--pmpro--color--accent--variation);
}

/**
	 * Form Styles
	 */
.pmpro_form {
	margin: 0;
}

.pmpro_section:has(.pmpro_form) .pmpro_card_content {
	padding-top: var(--pmpro--base--spacing--large);
}

.pmpro_section:has(.pmpro_form) .pmpro_card_title + .pmpro_card_content {
	padding-top: var(--pmpro--base--spacing--small);
}

.pmpro_form_fieldset {
	border: 0;
	margin: 0;
	padding: 0;
}

.pmpro_form_legend {
	border: none;
	margin: 0 0 var(--pmpro--base--spacing--medium);
	padding: 0;
}

.pmpro_form_heading {
	font-weight: 700;
	margin: var(--pmpro--base--spacing--large) 0 0;
	padding: 0;
}

.pmpro_card_content .pmpro_form_heading {
	margin-top: 0;
}

.pmpro_form_fields {
	display: flex;
	flex-direction: column;
	gap: var(--pmpro--base--spacing--medium);
}

.pmpro_form_fields-inline {
	align-items: center;
	display: flex;
	flex-direction: row;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
}

.pmpro_form_field {
	display: flex;
	flex-direction: column;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
}

.pmpro_form_label {
	margin: 0;
	padding: 0;
}

.pmpro_form_label:not(.pmpro_form_label-inline) {
	display: block;
	font-weight: 500;
}

.pmpro_form_input {
	background-color: var(--pmpro--color--base);
	border: 1px solid var(--pmpro--color--border);
	border-radius: var(--pmpro--base--border-radius);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--pmpro--color--contrast);
	font-size: 16px;
	height: auto;
	line-height: 1.5;
	margin: 0;
	min-height: auto;
	outline: none;
	padding: var(--pmpro--base--spacing--small);
}

.pmpro_form_input-textarea {
	font-family: inherit;
	width: 100%;
}

.pmpro_form_input-select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7 10l5 5 5-5z\"/></svg>");
	background-position: right var(--pmpro--base--spacing--small) center;
	background-repeat: no-repeat;
	background-size: 16px 16px;
	padding-right: calc(var(--pmpro--base--spacing--small) + 20px);
}

.pmpro_form_input-select.nitro-lazy {
	background-image: none !important;
}

.pmpro_form_input-text:focus, .pmpro_form_input-email:focus, .pmpro_form_input-url:focus, .pmpro_form_input-password:focus, .pmpro_form_input-search:focus, .pmpro_form_input-select:focus, .pmpro_form_input-checkbox:focus, .pmpro_form_input-radio:focus, .pmpro_form_input-multiselect:focus, .pmpro_form_input-number:focus, .pmpro_form_input-file:focus, .pmpro_form_input-date:focus, .pmpro_form_input-textarea:focus {
	background-color: var(--pmpro--color--base);
	border-color: #80bdff;
	box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25);
	outline: none;
	word-break: initial;
}

.pmpro_form_hint {
	display: block;
	font-size: 14px;
	margin: 0;
	opacity: .75;
	padding: 0;
}

.pmpro_form_field-checkbox {}

.pmpro_form_field-radio-item {
	align-items: baseline;
	flex-direction: row;
	flex-wrap: nowrap;
}

.pmpro_form_field-radio-item:not(:last-of-type) {
	margin-bottom: calc(var(--pmpro--base--spacing--small) / 2);
}

.pmpro_form_field-checkbox-grouped {}

.pmpro_form_input-multiselect {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.pmpro_form_input-file {
	border: 3px dashed var(--pmpro--color--border--variation);
	border-radius: var(--pmpro--base--border-radius);
	padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--medium);
	width: 100%;
}

/* Special Fields */
.pmpro_form_field-password-toggle {
	align-items: center;
	display: flex;
	font-weight: 500;
	justify-content: space-between;
	margin: 0;
	padding: 0;
}

.pmpro_form_field-password-toggle button, .pmpro_form_field-password-toggle button:hover, .pmpro_form_field-password-toggle button:focus, .pmpro_form_field-password-toggle button:active {
	align-items: center;
	background: transparent;
	border: none;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--pmpro--color--accent);
	display: flex;
	flex-direction: row;
	font-size: 16px;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
	line-height: 1;
	margin: 0;
	min-height: 1px;
	padding: 0;
}

.pmpro_form_field-password-toggle button:focus, .pmpro_form_field-password-toggle button:active {
	box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25);
	color: var(--pmpro--color--accent--variation);
	outline: none;
}

.pmpro_form_field-password-toggle .pmpro_icon-eye {
	display: block;
	height: 20px;
	width: 20px;
}

.pmpro_form_field-password-toggle button:focus .pmpro_icon-eye svg, .pmpro_form_field-password-toggle button:active .pmpro_icon-eye svg {
	stroke: var(--pmpro--color--accent--variation);
}

.pmpro_form_field-select2 {
	display: block;
}

.pmpro_form_field-select2 .pmpro_form_label {
	margin-bottom: calc(var(--pmpro--base--spacing--small) / 2);
}

.pmpro_form_field-select2 .pmpro_form_hint {
	margin-top: calc(var(--pmpro--base--spacing--small) / 2);
}

.pmpro_payment-expiration #ExpirationMonth, .pmpro_payment-expiration #ExpirationYear {
	flex-grow: 1;
}

.pmpro_payment-discount-code #pmpro_discount_code {
	flex-grow: 1;
}

#other_discount_code_fields {
	margin-bottom: var(--pmpro--base--spacing--small);
}

#pmpro_tos_fields {
	margin: var(--pmpro--base--spacing--medium) 0;
}

#pmpro_tos_fields #pmpro_license {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.pmpro_form_submit {
	align-items: center;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--pmpro--base--spacing--medium);
	margin-top: var(--pmpro--base--spacing--medium);
}

.pmpro_checkout_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#AccountNumber, .pmpro_checkout_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#Expiry, .pmpro_checkout_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#CVV, .pmpro_billing_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#AccountNumber, .pmpro_billing_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#Expiry, .pmpro_billing_gateway-stripe form.pmpro_form #pmpro_payment_information_fields div#CVV {
	background-color: var(--pmpro--color--white);
	border-radius: var(--pmpro--base--border-radius);
	padding: calc(var(--pmpro--base--spacing--small) + 3px);
}

[id^="pmpro_paypal"] .pmpro_btn-submit-checkout-paypal {
	align-items: center;
	background-color: #ffc439;
	border-color: #ffc439;
	color: #000;
	display: flex;
	flex-direction: row;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
	justify-content: center;
}

[id^="pmpro_paypal"] .pmpro_btn-submit-checkout-paypal:hover {
	background-color: #ffb60a;
	border-color: #ffb60a;
}

/* Login Form (WordPress default and our lost/reset password forms) */
#loginform {
	margin-bottom: 0;
}

#loginform input[type="submit"] {
	width: 100%;
}

.pmpro_section:has(#loginform) .pmpro_card_content:not(.widget .pmpro_section:has(#loginform) .pmpro_card_content) {
	padding-top: var(--pmpro--base--spacing--large);
}

.pmpro_section #loginform .login-username, .pmpro_section #loginform .login-password, .pmpro_section #loginform .login-remember {
	display: flex;
	flex-direction: column;
	gap: calc(var(--pmpro--base--spacing--small) / 2);
	margin: 0 0 var(--pmpro--base--spacing--medium);
	padding: 0;
}

.pmpro_section #loginform label:not(.pmpro_section #loginform .login-remember label) {
	align-items: center;
	display: flex;
	font-weight: 500;
	justify-content: space-between;
	margin: 0;
	padding: 0;
}

.pmpro_section #loginform .input {
	background-color: var(--pmpro--color--base);
	border: 1px solid var(--pmpro--color--border);
	border-radius: var(--pmpro--base--border-radius);
	box-shadow: none;
	box-sizing: border-box;
	color: var(--pmpro--color--contrast);
	font-size: 16px;
	line-height: 1.5;
	margin: 0;
	min-height: auto;
	outline: none;
	padding: var(--pmpro--base--spacing--small);
}

.pmpro_section #loginform .input:focus {
	background-color: var(--pmpro--color--base);
	border-color: #80bdff;
	box-shadow: 0 0 0 .2rem rgba(0, 123, 255, .25);
	outline: none;
	word-break: initial;
}

.pmpro_section #loginform .login-remember {
	align-items: baseline;
	flex-direction: row;
	flex-wrap: wrap;
}

.pmpro_section #loginform .login-submit {
	margin: var(--pmpro--base--spacing--medium) 0 0;
}

.pmpro_section #loginform .login-submit .button {
	background-color: var(--pmpro--color--accent);
	border: 1px solid var(--pmpro--color--accent);
	border-radius: var(--pmpro--base--border-radius);
	box-shadow: 1px 2px 4px rgba(0, 0, 0, .1);
	box-sizing: border-box;
	color: var(--pmpro--color--base);
	cursor: pointer;
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.5;
	min-height: 40px;
	outline: 0;
	padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--medium);
	text-align: center;
	text-decoration: none;
	text-rendering: geometricprecision;
	text-transform: none;
	user-select: none;
	-webkit-user-select: none;
	touch-action: manipulation;
	vertical-align: middle;
	transition: background-color .2s, color .2s;
}

.pmpro_section #loginform .login-submit .button:hover, .pmpro_section #loginform .login-submit .button:focus {
	background-color: initial;
	background-position: 0 0;
	border-color: var(--pmpro--color--accent);
	color: var(--pmpro--color--accent);
}

.pmpro_section #loginform .login-submit .button:active {
	opacity: .7;
}

/* Move password toggle before field visually but structurally after */
#pmpro_user_fields .pmpro_form_field-password:has(.pmpro_form_field-password-toggle), .pmpro_section #loginform .login-password {
	align-items: center;
	display: grid;
	grid-template-areas: "label toggle" "input input";
	grid-template-columns: 1fr auto;
}

#pmpro_user_fields .pmpro_form_field-password:has(.pmpro_form_field-password-toggle) label, .pmpro_section #loginform .login-password label {
	grid-area: label;
}

#pmpro_user_fields .pmpro_form_field-password:has(.pmpro_form_field-password-toggle) input, .pmpro_section #loginform .login-password input {
	grid-area: input;
}

#pmpro_user_fields .pmpro_form_field-password .pmpro_form_field-password-toggle, .pmpro_section #loginform .login-password .pmpro_form_field-password-toggle {
	grid-area: toggle;
	justify-self: end;
}

#resetpassform .pmpro_cols-2 {
	container: resetpassform/inline-size;
}

@container resetpassform (max-width: 620px) {}

/**
	* List Styles
	*/
.pmpro_list.pmpro_cols-3 {}

.pmpro_list_item_label {
	font-weight: 700;
}

.pmpro_list-with-labels {}

/**
	* Tables and Table Elements
	*/
.pmpro_table {
	background-color: var(--pmpro--color--base);
	border: none;
	text-align: left;
}

/**
	* Membership Account
	*/
#pmpro_account-membership-none {}

.pmpro_level td p:first-of-type {
	margin-top: 0;
}

.pmpro_level .pmpro_btn {
	display: block;
	text-decoration: none;
}

/**
	* Membership Billing
	*/
[id^="pmpro_billing-"] .pmpro_card .pmpro_card {
	background-color: transparent;
	border: none;
	border-radius: unset;
	box-shadow: none;
	margin: 0;
}

/**
	* Membership Orders
	*/
.pmpro_table_orders .pmpro_tag {
	display: block;
}

#pmpro_order_single {}

.pmpro_table {}

/**
	* Logged In Member Widget
	*/
.pmpro_logged_in_welcome_wrap .menu {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pmpro_logged_in_welcome_wrap .menu-item {
	display: block;
	margin: 0 0 calc(var(--pmpro--base--spacing--small) / 2);
}

/**
	* Protected Content Messages
	*/
.pmpro_content_message .pmpro_card_title {
	align-items: center;
	display: flex;
	gap: var(--pmpro--base--spacing--small);
}

.pmpro_content_message:has(.pmpro_card_title) .pmpro_card_content {
	padding-top: 0;
}

.pmpro_content_message .pmpro_card_content h2 {
	margin: 0;
	padding: 0;
}

.pmpro_content_message .pmpro_card_content p {
	margin: var(--pmpro--base--spacing--medium) 0;
	padding: 0;
}

.pmpro_content_message .pmpro_card_content p:last-of-type {
	margin-bottom: 0;
}

.pmpro_content_message .pmpro_card_content .pmpro_btn {
	text-decoration: none;
}

.pmpro_content_message .pmpro_card_actions {
	padding-right: var(--pmpro--base--spacing--large);
	padding-left: var(--pmpro--base--spacing--large);
}

/**
	 * Pagination
	 */
.pmpro_pagination {
	align-items: center;
	display: flex;
	gap: var(--pmpro--base--spacing--small);
	justify-content: center;
	margin: var(--pmpro--base--spacing--medium) 0;
}

span {
	background-color: var(--pmpro--color--base);
	border: 1px solid var(--pmpro--color--border--variation);
	border-radius: var(--pmpro--base--border-radius);
	color: var(--pmpro--color--contrast);
	padding: 2px var(--pmpro--base--spacing--small);
}

.pmpro_pagination-current {
	background-color: var(--pmpro--color--accent);
	color: var(--pmpro--color--base);
	cursor: default;
	font-weight: 700;
}

.pmpro_pagination-disabled {
	background-color: var(--pmpro--color--base--variation);
	border-color: var(--pmpro--color--border--variation);
	color: var(--pmpro--color--contrast--variation);
	cursor: not-allowed;
	opacity: .7;
}

.pmpro_pagination-dots {
	background: none;
	border: none;
	color: var(--pmpro--color--contrast--variation);
	padding: 0;
}

.pmpro_pagination-previous {
	margin-right: 0;
}

.pmpro_pagination-next {
	margin-left: 0;
}

.pmpro_cols-2, .pmpro_cols-3 {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--pmpro--base--spacing--medium);
}

.pmpro_cols-2 > * {
	width: calc(50% - calc(var(--pmpro--base--spacing--medium) / 2));
}

.pmpro_cols-3 > * {
	width: calc(33.333333% - calc(var(--pmpro--base--spacing--medium) * 2 / 3));
}

.pmpro_font-x-large {
	font-size: 32px;
	line-height: 1.4;
}

.pmpro_font-large {
	font-size: 24px;
	line-height: 1.5;
}

.pmpro_font-medium {
	font-size: 16px;
	line-height: 1.6;
}

.pmpro_font-small {
	font-size: 14px;
	line-height: 1.5;
}

.pmpro_tag-discount-code {
	border-style: dashed;
}

.pmpro_divider {
	background-color: var(--pmpro--color--border--variation);
	height: 1px;
	margin: var(--pmpro--base--spacing--medium) 0;
}

.pmpro_form .pmpro_divider {
	margin-top: var(--pmpro--base--spacing--large);
}

/**
 * Print Styles
 */
@media print {
	.pmpro_card_title {
		padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--small) 0;
	}
	
	.pmpro_card_content {
		padding: var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--small) var(--pmpro--base--spacing--small);
	}
	
	.pmpro_section:has(.pmpro_form) .pmpro_card_content {
		padding-top: var(--pmpro--base--spacing--small);
	}
	
	.pmpro_font-x-large {
		font-size: 18pt;
	}
	
	.pmpro_font-large {
		font-size: 14pt;
	}
	
	.pmpro_font-medium {
		font-size: 14pt;
	}
}

/**
 * Print Styles
 */
@media print {
	.pmpro_card_title, .pmpro_card_content, .pmpro_section:has(.pmpro_form) .pmpro_card_title + .pmpro_card_content {
		padding: 0;
	}
	
	.pmpro_form_legend {
		margin-bottom: 0;
	}
}

/**
 * Responsive Styles
 */
@media screen and (max-width: 767px) {
	tbody tr th:last-child, tbody tr td:last-child {
		padding-bottom: var(--pmpro--base--spacing--large);
	}
	
	tbody tr:first-child th:first-child, tbody tr:first-child td:first-child {
		border-top: none;
	}
}

#pmpro_order_single {}

.pmpro_table_cancel tbody tr td {
	border-width: 0;
	padding-top: 0;
}

.pmpro_cols-2, .pmpro_cols-3 {
	display: flex;
	flex-direction: column;
	gap: var(--pmpro--base--spacing--medium);
}

.pmpro_cols-2 > *, .pmpro_cols-3 > * {
	width: auto;
}

#pmpro_user_fields .pmpro_form_field-password:has(.pmpro_form_field-password-toggle) {
	width: 100%;
}
