/*
 * MemberPress — IAB brand styling for the theme-rendered (non-ReadyLaunch) pages:
 * login, registration/checkout, account, thank-you, unauthorised messages.
 * Presentation only: no MemberPress markup or behaviour is changed.
 */

.mp_wrapper {
	max-width: 560px;
}
.mp_wrapper .mp-form-row {
	margin-bottom: var(--wp--preset--spacing--40);
}
.mp_wrapper .mp-form-label,
.mp_wrapper .mp-form-row > label {
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.35rem;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
}
.mp_wrapper .cc-error {
	color: var(--wp--custom--state--danger);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
}
.mp_wrapper .mepr-form-has-errors,
.mp_wrapper .mepr_error,
.mepr_error {
	padding: 0.85rem 1rem;
	border-radius: var(--wp--custom--radius--md);
	background: rgba(193, 0, 22, 0.08);
	color: var(--wp--custom--state--danger);
	font-size: var(--wp--preset--font-size--sm);
}
.mp_wrapper .mepr_error,
.mepr_error {
	display: block;
}
/* "Please fix the errors above": hidden until MemberPress shows it (it sets an inline display) */
.mp_wrapper .mepr-form-has-errors {
	display: none;
}
.mp_wrapper .mepr-form-has-errors[style*="display"]:not([style*="none"]) {
	display: block !important;
}
.mepr_updated,
.mp_wrapper .mepr_updated {
	padding: 0.85rem 1rem;
	border-radius: var(--wp--custom--radius--md);
	background: rgba(46, 125, 50, 0.12);
	color: var(--wp--custom--state--success);
	font-size: var(--wp--preset--font-size--sm);
}

/* Buttons: every MemberPress submit is a brand primary button */
.mp_wrapper input[type="submit"],
.mp_wrapper button[type="submit"],
.mp_wrapper .mepr-submit,
.mp_wrapper .button-primary,
.mepr-share-button {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 3.1rem;
	padding: 0.7rem 1.25rem;
	border: 1.5px solid var(--wp--preset--color--red-dark);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--red-dark);
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	letter-spacing: 0.02em;
	cursor: pointer;
	box-shadow: none;
	text-shadow: none;
	transition: background-color var(--iab-fast) var(--iab-ease), border-color var(--iab-fast) var(--iab-ease);
}
.mp_wrapper input[type="submit"]:hover,
.mp_wrapper .mepr-submit:hover,
.mepr-share-button:hover {
	background: var(--wp--preset--color--black);
	border-color: var(--wp--preset--color--black);
}
.mp_wrapper input[type="submit"]:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

/* Remember me / terms / checkboxes: box and label on one line */
.mp_wrapper .mp-form-row:has(> input[type="checkbox"]),
.mp_wrapper .mepr_remember_me,
.mp_wrapper .mepr-checkbox-field label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.mp_wrapper input[type="checkbox"],
.mp_wrapper input[type="radio"] {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	accent-color: var(--wp--preset--color--red-dark);
	flex: none;
}
.mp_wrapper .mp-form-row:has(> input[type="checkbox"]) label {
	margin: 0;
	font-weight: 400;
}

.mp_wrapper .mepr-login-actions {
	margin-top: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--sm);
}

/* Registration: price + payment method */
.mp_wrapper .mepr_price {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--lg);
	font-weight: 700;
}
.mp_wrapper .mepr_price_cell {
	color: var(--wp--preset--color--red-dark);
}
.mp_wrapper .mepr-payment-methods-wrapper,
.mp_wrapper .mp-form-row.mepr_coupon {
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--iab-border);
	border-radius: var(--wp--custom--radius--md);
}

/* Account: tab navigation + tables */
#mepr-account-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--50);
	padding: 0;
	list-style: none;
}
#mepr-account-nav .mepr-nav-item a {
	display: inline-flex;
	padding: 0.5rem 1rem;
	border: 1.5px solid var(--wp--preset--color--grey-300);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--black);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	text-decoration: none;
}
#mepr-account-nav .mepr-nav-item a:hover,
#mepr-account-nav .mepr-active-nav-tab a {
	border-color: var(--wp--preset--color--black);
	background: var(--wp--preset--color--black);
	color: var(--wp--preset--color--white);
}
.mp_wrapper table.mepr-account-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--sm);
}
.mp_wrapper table.mepr-account-table th,
.mp_wrapper table.mepr-account-table td {
	padding: 0.7rem 0.75rem;
	border-bottom: 1px solid var(--iab-border);
	text-align: left;
}
.mp_wrapper table.mepr-account-table th {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--grey-500);
}

/* Member-only content notice */
.mepr-unauthorized-message,
.mp_wrapper .mepr-unauthorized-excerpt + .mepr-unauthorized-message {
	padding: var(--wp--preset--spacing--60);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--soft);
}
.mepr-unauthorized-message :where(h2, h3) {
	margin-top: 0;
}

/* Line the form up with the page title (constrained layouts centre narrower children) */
.is-layout-constrained > .mp_wrapper {
	margin-left: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)) !important;
}

/* Password rows: MemberPress nests the input + show/hide toggle inside .mp-form-label */
.mp_wrapper .mp-form-label {
	flex-wrap: wrap;
	align-items: baseline;
}
.mp_wrapper div.mp-hide-pw {
	position: relative;
	flex: 1 0 100%;
	margin-top: 0.35rem;
}
.mp_wrapper div.mp-hide-pw input {
	padding-right: 3rem;
}
.mp_wrapper button.mp-hide-pw {
	position: absolute;
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
	width: 2.2rem;
	height: 2.2rem;
	padding: 0;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	background: transparent;
	color: var(--wp--preset--color--grey-500);
	cursor: pointer;
}
.mp_wrapper button.mp-hide-pw:hover {
	color: var(--wp--preset--color--black);
	background: var(--wp--preset--color--grey-100);
}

/* Checkbox wrapped in its label (Remember me, terms) */
.mp_wrapper label:has(> input[type="checkbox"]) {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
}
.mp_wrapper .mp-spacer {
	display: none;
}

/* MemberPress' own pink error box → brand danger panel */
.mepr_error,
.mp_wrapper .mepr_error {
	border: 0 !important;
	background: rgba(193, 0, 22, 0.08) !important;
	color: var(--wp--custom--state--danger) !important;
}
.mp_wrapper label:has(> input[type="checkbox"]) {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Show-password toggle: CSS eye icon (dashicons is not loaded for visitors) */
.mp_wrapper button.mp-hide-pw .dashicons {
	display: none;
}
.mp_wrapper button.mp-hide-pw::before {
	content: "";
	display: block;
	width: 1.2rem;
	height: 1.2rem;
	margin: auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
