/**
 * Billing settings + reminders (mockup-aligned).
 */

.lmm-billing-tabs {
	display: flex;
	gap: 1.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	margin: 0 0 1.75rem;
	padding: 0;
	list-style: none;
}

/* Datos de facturación: keep payment method + histories on Información personal only. */
body.lmm-config-tab-facturacion #rcp_update_card_form,
body.lmm-config-tab-facturacion #rcp-table-wrapper,
body.lmm-config-tab-facturacion #lmm-purchase-history-wrapper {
	display: none !important;
}

.lmm-billing-tabs > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lmm-billing-tabs a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: -1px;
	padding: 0.65rem 0;
	border-bottom: 2px solid transparent;
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	font-weight: 500;
}

.lmm-billing-tabs a.is-active {
	color: #fff;
	border-bottom-color: var(--bs-primary, #c9a227);
}

.lmm-billing-tab-badge {
	display: inline-block;
	padding: 0.15rem 0.55rem;
	border-radius: 0.5rem;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	background: rgba(201, 162, 39, 0.2);
	color: var(--bs-primary, #c9a227);
}

.lmm-billing-tab-dot {
	display: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bs-primary, #c9a227);
}

@media (max-width: 767.98px) {
	.lmm-billing-tab-badge {
		display: none;
	}
	.lmm-billing-tabs a.is-pending .lmm-billing-tab-dot {
		display: inline-block;
	}
}

.lmm-billing-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.lmm-billing-section-head h2 {
	margin: 0;
	font-size: 1.5rem;
}

.lmm-billing-status-pill {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	border-radius: 0.5rem;
	font-size: 0.8rem;
	font-weight: 600;
	border: 1px solid rgba(201, 162, 39, 0.55);
	color: var(--bs-primary, #c9a227);
}

.lmm-billing-status-pill.is-confirmed {
	border-color: rgba(129, 199, 132, 0.55);
	color: rgba(129, 199, 132, 0.95);
}

.lmm-billing-status-pill.is-dirty {
	border-color: rgba(229, 115, 115, 0.55);
	color: #e57373;
}

.lmm-billing-lede {
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 2rem;
}

.lmm-billing-help {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.55);
}

.lmm-billing-help--tight {
	margin-top: 0;
	margin-bottom: 1rem;
}

.lmm-billing-email-line {
	margin: -0.5rem 0 1.5rem;
	font-size: 0.9rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.7);
}

.lmm-billing-email-line a {
	color: var(--bs-primary, #c9a227);
}

/* Conditional blocks — force hide even if theme CSS fights [hidden] */
.lmm-billing-form .lmm-spain-tax[hidden],
.lmm-billing-form .lmm-spain-tax-fields[hidden],
.lmm-billing-form .lmm-billing-address[hidden],
.lmm-billing-form #lmm_id_document_wrap[hidden],
.lmm-billing-form #lmm_postal_wrap[hidden],
.lmm-billing-form .lmm-billing-territory-notice[hidden],
.lmm-billing-form .lmm-billing-geo-notice[hidden],
.lmm-billing-form .lmm-billing-outcome[hidden] {
	display: none !important;
}

/*
 * Bootstrap .row negative gutters make nested cols (Localidad / Provincia,
 * País / CP) wider than full-width siblings. Kill bleed; restore half-gap
 * only when two columns sit side-by-side.
 */
.lmm-billing-fields .row {
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 0.25rem;
	--bs-gutter-x: 0;
}

.lmm-billing-fields .row > [class*="col-"] {
	padding-left: 0;
	padding-right: 0;
}

@media (min-width: 992px) {
	.lmm-billing-fields .row > [class*="col-"]:first-child:not(:only-child) {
		padding-right: 0.75rem;
	}

	.lmm-billing-fields .row > [class*="col-"]:last-child:not(:only-child) {
		padding-left: 0.75rem;
	}
}

/*
 * Checkout billing block — sits after Telegram / account fields.
 * Keep a light divider without stacking large margin + padding (esp. phones).
 */
.lmm-rcp-billing-block {
	margin-top: 0.75rem;
	padding-top: 1.25rem;
}

/* register-single: billing sits inside .rcp_user_fieldset.row — span full width. */
.rcp_user_fieldset.row > .lmm-rcp-billing-block {
	flex: 0 0 100%;
	max-width: 100%;
	width: 100%;
}

.lmm-rcp-billing-block > .dashboard-subtitle {
	margin-top: 0;
	margin-bottom: 1px;
}

@media (max-width: 767px) {
	.lmm-rcp-billing-block {
		margin-top: 0.35rem;
		padding-top: 1rem;
		padding-inline: 0;
	}

	.lmm-rcp-billing-block > .dashboard-subtitle {
		margin-bottom: 5px;
	}

	.lmm-rcp-billing-block > .lmm-billing-lede {
		margin-bottom: 1.25rem;
	}
}

.lmm-billing-territory-notice,
.lmm-billing-geo-notice {
	margin: 1.75rem 0 0;
	padding: 0.9rem 1rem;
	border-radius: 0.5rem;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 0.92rem;
	line-height: 1.45;
}

.lmm-billing-geo-notice {
	border-left: 3px solid var(--bs-primary, #c9a227);
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.lmm-billing-geo-notice strong {
	display: block;
	margin-bottom: 0.25rem;
}

.lmm-billing-outcome {
	margin: 0 0 1.5rem;
	padding: 0.95rem 1.1rem;
	border-radius: 0.5rem;
	font-size: 0.95rem;
	line-height: 1.45;
}

.lmm-billing-outcome-title {
	display: block;
	margin: 0 0 0.25rem;
	font-weight: 600;
}

.lmm-billing-outcome-body {
	margin: 0;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.9rem;
}

.lmm-billing-outcome.is-success {
	border: 1px solid rgba(129, 199, 132, 0.5);
	background: rgba(129, 199, 132, 0.1);
}

.lmm-billing-outcome.is-error {
	border: 1px solid rgba(229, 115, 115, 0.6);
	background: rgba(229, 115, 115, 0.12);
}

.lmm-billing-privacy {
	margin: 0.5rem 0 0;
	padding: 0;
	max-width: 36rem;
	font-size: 0.85rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.55);
}

.lmm-billing-privacy a {
	color: var(--bs-primary, #c9a227);
}

.lmm-billing-divider {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.lmm-billing-divider .dashboard-subtitle {
	margin-top: 0;
	margin-bottom: 2px;
}

/*
 * Spanish fiscal panel — scoped to billing form so Academia checkout
 * (.lmm-checkout-page .lmm-spain-tax) keeps its own styles untouched.
 */
.lmm-billing-form .lmm-spain-tax {
	margin-block: 20px;
	padding: 1.25rem 1.35rem 1.35rem;
	border-radius: 0.5rem;
	background: #2a2f36;
}

.lmm-billing-form .lmm-spain-tax > .lmm-spain-tax-toggle {
	margin: 0;
}

.lmm-billing-form .lmm-spain-tax-fields {
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.lmm-billing-form .lmm-spain-tax-fields .dashboard-subtitle {
	margin-top: 0;
	margin-bottom: 0.35rem;
	font-size: 1.05rem;
}

.lmm-billing-field-error {
	display: block;
	margin-top: 0.35rem;
	margin-bottom: 0.15rem;
	color: #ff8a80;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.35;
}

.lmm-billing-invalid {
	border-color: #e57373 !important;
}

/* Select2: native <select> is hidden — paint the visible widget. */
.lmm-billing-form select.lmm-billing-invalid + .select2-container .select2-selection,
.lmm-billing-form .select2-selection.lmm-billing-invalid {
	border-color: #e57373 !important;
}

/* Discount uses RCP default .rcp_discount_invalid / .valid banners — do not
   inject .lmm-billing-field-error inside the absolute-button flex row. */
#rcp_discount_code_wrap .lmm-billing-field-error,
#lmm_discount_code_wrap .lmm-billing-field-error {
	display: none !important;
}

.lmm-billing-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin-top: 2rem;
	padding-top: 0;
	border-top: none;
}

.lmm-billing-actions .btn {
	align-self: flex-start;
	max-width: 100%;
}

.lmm-billing-form .rcp_form .lmm-billing-actions-note,
.lmm-billing-actions-note {
	margin: 1rem 0 0;
	padding: 0;
	max-width: 36rem;
	font-size: 0.85rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.55);
}

.lmm-billing-actions-note a {
	color: var(--bs-primary, #c9a227);
}

/* Stack form pairs cleanly on phones / small tablets (incl. nested address row) */
@media (max-width: 991.98px) {
	.lmm-billing-fields .row > [class*="col-"] {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
		padding-left: 0;
		padding-right: 0;
	}
}

@media (max-width: 575.98px) {
	.lmm-billing-form .lmm-spain-tax {
		padding: 1rem;
	}

	.lmm-billing-actions .btn {
		width: 100%;
	}

	.lmm-billing-email-line a {
		display: block;
		margin-top: 0.25rem;
	}

	.lmm-billing-tabs {
		gap: 1rem;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* Clear theme bottom nav so the save row isn’t covered */
	.lmm-billing-form {
		padding-bottom: 5.5rem;
	}
}

.lmm-billing-alert {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 1rem 1.15rem;
	border: 1px solid rgba(201, 162, 39, 0.65);
	border-radius: 0.5rem;
	background: rgba(201, 162, 39, 0.08);
}

.lmm-billing-alert-eyebrow {
	display: block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bs-primary, #c9a227);
	margin-bottom: 0.25rem;
}

.content-area .lmm-billing-alert-title {
	margin: 0 0 0.25rem;
	font-size: 1.05rem;
	font-weight: 600;
	margin-bottom: 0;
	line-height: 1.4;
}

.lmm-billing-alert-body {
	margin: 0;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.92rem;
}

/*
 * Match Select2 field chrome (0.5rem = 8px).
 * Must beat RCP forms.min.css:
 * `.rcp_form .rcp_user_fieldset input… { border-radius: 5px }`
 * (loads after billing.css on checkout).
 */
body .rcp_form .lmm-billing-form .form-control,
body .rcp_form .lmm-billing-form select.form-control,
body
	.rcp_form
	.rcp_user_fieldset
	.lmm-billing-form
	input:not([type="checkbox"]):not([type="submit"]),
.lmm-billing-form .form-control,
.lmm-billing-form select.form-control {
	min-height: 3rem;
	padding: 0.75rem 0.9375rem;
	border: 2px solid #3d444b;
	border-radius: 0.5rem;
	background-color: transparent;
	color: #fff;
}

.lmm-billing-form .form-control:hover,
.lmm-billing-form select.form-control:hover {
	background-color: #1a1d20;
}

.lmm-billing-form .form-control:focus,
.lmm-billing-form select.form-control:focus {
	border-color: #c7b180;
	outline: none;
	box-shadow: none;
	color: #fff;
	background-color: #1a1d20;
}

.lmm-billing-checkbox,
.lmm-billing-form .lmm-spain-tax-toggle {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 1.25rem 0;
}

.lmm-billing-checkbox input[type="checkbox"],
.lmm-billing-form .rcp_form .lmm-billing-checkbox input[type="checkbox"],
.lmm-billing-form .rcp_form .lmm-spain-tax-toggle input[type="checkbox"] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.2rem 0 0;
	accent-color: var(--bs-primary, #c9a227);
	cursor: pointer;
}

.lmm-spain-tax-toggle-copy {
	min-width: 0;
	flex: 1;
}

.lmm-billing-form .rcp_form .lmm-spain-tax-toggle-copy label,
.lmm-billing-form .lmm-spain-tax-toggle-copy label,
.lmm-billing-checkbox label {
	display: block;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 0;
	line-height: 1.4;
	cursor: pointer;
}

.lmm-billing-form .rcp_form .lmm-spain-tax-toggle-copy .lmm-billing-help,
.lmm-billing-form .lmm-spain-tax-toggle-copy .lmm-billing-help,
.lmm-billing-checkbox .lmm-billing-help {
	/* margin-top: 0.25rem; */
	margin-top: 0;
}

.lmm-billing-message {
	margin-bottom: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 0.5rem;
}

.lmm-billing-message.is-error {
	border: 1px solid rgba(229, 115, 115, 0.6);
	background: rgba(229, 115, 115, 0.12);
}

.lmm-billing-message.is-success {
	border: 1px solid rgba(129, 199, 132, 0.5);
	background: rgba(129, 199, 132, 0.1);
}

/*
 * Select2 LMM theme — must load AFTER vendor select2.min.css
 * (same rules as assets/css/main.css; otherwise default grey text wins).
 */
.lmm-billing-form .select2-container {
	width: 100% !important;
}

.lmm-billing-form .select2-container--default .select2-selection--single {
	min-height: 3rem;
	padding: 0.75rem 2.25rem 0.75rem 0.9375rem;
	border: 2px solid #3d444b;
	border-radius: 0.5rem;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-size: 0.625rem;
	background-repeat: no-repeat;
	background-position: right 0.9375rem center;
}

.lmm-billing-form
	.select2-container--default
	.select2-selection--single
	.select2-selection__rendered {
	padding: 0;
	line-height: normal;
	color: #fff;
}

.lmm-billing-form
	.select2-container--default
	.select2-selection--single
	.select2-selection__arrow {
	display: none;
}

.lmm-billing-form
	.select2-container--default.select2-container--open
	.select2-selection--single,
.lmm-billing-form
	.select2-container--default.select2-container--focus
	.select2-selection--single {
	border-color: #c7b180;
	outline: none;
	box-shadow: none;
}

.lmm-billing-form .select2-container--default .select2-selection--single:hover {
	background-color: #1a1d20;
}
