/* ==========================================================================
   MakeAdera Make a Payment Stylesheet
   Payment path 3 — open invoice payment. See inc/invoice-payment.php.
   Author: aderaDev
   ========================================================================== */

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.ma-pay-hero-actions {
	margin-top: 28px;
}

.ma-pay-hero-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

/* Highlight pulse when jumping to the amount field */
.ma-pay-amount-highlight {
	animation: maPayHighlight 1.2s ease-out;
}

@keyframes maPayHighlight {
	0% {
		box-shadow: 0 0 0 4px rgba(195, 36, 29, 0.35);
		border-color: var(--makeadera-color-accent-red, #C3241D);
	}
	50% {
		box-shadow: 0 0 0 5px rgba(195, 36, 29, 0.2);
	}
	100% {
		box-shadow: 0 0 0 3px rgba(23, 20, 31, 0.07);
	}
}

/* --------------------------------------------------------------------------
   Layout
   -------------------------------------------------------------------------- */
.ma-pay-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.ma-pay-panel {
	padding: 40px 36px;
}

/* Admin-only heads-up when no gateway is enabled.
   Square: left accent border, so no corner radius. */
.ma-pay-admin-warning {
	margin-bottom: 24px;
	padding: 16px 20px;
	background-color: var(--makeadera-color-gold-tint, #FAF4EC);
	border: 1px solid var(--makeadera-color-gold-soft, #F1E4D0);
	border-left: 3px solid var(--makeadera-color-gold-line, #CFA059);
	border-radius: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--makeadera-color-gold-ink, #31220C);
}

.ma-pay-admin-warning strong {
	display: block;
	margin-bottom: 4px;
	font-weight: 700;
}

.ma-pay-admin-warning a {
	color: var(--makeadera-color-gold-deep, #946C2B);
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Panel headings
   -------------------------------------------------------------------------- */
.ma-pay-panel-eyebrow {
	display: block;
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--makeadera-color-accent-red, #C3241D);
}

.ma-pay-panel-eyebrow.is-light {
	color: #FFFFFF;
}

.ma-pay-panel-title {
	margin: 12px 0 0;
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1.2;
	color: var(--makeadera-color-black, #17141F);
}

.ma-pay-panel-text {
	margin: 10px 0 28px;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--makeadera-color-gray-mid, #86828F);
}

/* --------------------------------------------------------------------------
   Fields
   -------------------------------------------------------------------------- */
.ma-pay-fields {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.ma-pay-field-full {
	grid-column: 1 / -1;
}

.ma-pay-field label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--makeadera-color-charcoal, #262234);
}

.ma-pay-field .req {
	color: var(--makeadera-color-accent-red, #C3241D);
}

/* Marks the one field that is not required, so the asterisks elsewhere are
   not the only signal a hurried reader has to go on. */
.ma-pay-optional {
	margin-left: 6px;
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--makeadera-color-gray-mid, #86828F);
}

.ma-pay-field input[type='text'],
.ma-pay-field input[type='email'],
.ma-pay-field input[type='tel'],
.ma-pay-field textarea {
	width: 100%;
	box-sizing: border-box;
	height: 50px;
	padding: 0 16px;
	background-color: var(--makeadera-color-white, #FFFFFF);
	border: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
	border-radius: 8px;
	box-shadow: none;
	font-family: var(--makeadera-font-primary, 'Inter', sans-serif);
	font-size: 15px;
	color: var(--makeadera-color-black, #17141F);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ma-pay-field textarea {
	height: auto;
	min-height: 96px;
	padding: 14px 16px;
	line-height: 1.65;
	resize: vertical;
}

.ma-pay-field input:focus,
.ma-pay-field textarea:focus {
	border-color: var(--makeadera-color-black, #17141F);
	box-shadow: 0 0 0 3px rgba(23, 20, 31, 0.07);
	outline: none;
}

.ma-pay-field input::placeholder,
.ma-pay-field textarea::placeholder {
	color: var(--makeadera-color-gray-mid, #86828F);
}

/* The amount is the one figure that must not be mistyped, so it gets a
   currency prefix and a heavier, monospaced treatment. */
.ma-pay-amount-wrap {
	position: relative;
}

.ma-pay-currency {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 50px;
	border-right: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 15px;
	font-weight: 500;
	color: var(--makeadera-color-slate-dark, #4A4655);
	pointer-events: none;
}

.ma-pay-amount-wrap input[type='text'] {
	padding-left: 60px;
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: 0.01em;
}

.ma-pay-hint {
	display: block;
	margin-top: 7px;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--makeadera-color-gray-mid, #86828F);
}

/* Validation */
.ma-pay-field.has-error input,
.ma-pay-field.has-error textarea {
	border-color: var(--makeadera-color-accent-red, #C3241D);
}

.ma-pay-err {
	display: block;
	margin-top: 7px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--makeadera-color-accent-red, #C3241D);
}

/* Square: left accent border, so no corner radius */
.ma-pay-alert {
	margin-bottom: 24px;
	padding: 16px 20px;
	background-color: rgba(195, 36, 29, 0.03);
	border: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
	border-left: 3px solid var(--makeadera-color-accent-red, #C3241D);
	border-radius: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--makeadera-color-slate-dark, #4A4655);
}

/* --------------------------------------------------------------------------
   Confirmation + submit
   -------------------------------------------------------------------------- */
.ma-pay-confirm {
	margin-top: 24px;
	padding: 16px 18px;
	background-color: var(--makeadera-color-bg-soft, #F7F6FA);
	border: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
	border-radius: 8px;
}

.ma-pay-confirm label {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.55;
	color: var(--makeadera-color-slate-dark, #4A4655);
	cursor: pointer;
}

.ma-pay-confirm input[type='checkbox'] {
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin: 1px 0 0;
	accent-color: var(--makeadera-color-accent-red, #C3241D);
	cursor: pointer;
}

.ma-pay-confirm.has-error {
	border-color: var(--makeadera-color-accent-red, #C3241D);
}

/* Honeypot — hidden from people, reachable by bots */
.ma-pay-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ma-pay-submit {
	width: 100%;
	margin-top: 24px;
}

.ma-pay-legal {
	margin: 14px 0 0;
	font-size: 12.5px;
	line-height: 1.55;
	text-align: center;
	color: var(--makeadera-color-gray-mid, #86828F);
}

/* Fallback shown when no gateway is enabled */
.ma-pay-fallback-lines {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 8px;
}

.ma-pay-fallback-phone {
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 15px;
	font-weight: 500;
	color: var(--makeadera-color-black, #17141F);
}

/* --------------------------------------------------------------------------
   Aside
   -------------------------------------------------------------------------- */
.ma-pay-aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ma-pay-steps-card {
	padding: 30px 28px;
	background-color: var(--makeadera-color-charcoal, #262234);
	border: 1px solid var(--makeadera-color-black, #17141F);
	border-radius: 16px;
}

.ma-pay-steps {
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
	counter-reset: none;
}

.ma-pay-steps li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 0 0 18px;
}

.ma-pay-steps li:last-child {
	padding-bottom: 0;
}

.ma-pay-step-num {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 1px solid var(--makeadera-color-gold-line, #CFA059);
	border-radius: 50%;
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 12px;
	font-weight: 500;
	color: var(--makeadera-color-gold, #E1B778);
}

.ma-pay-step-text {
	font-size: 14px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.82);
}

/* Direct lines */
.ma-pay-direct {
	padding: 28px 26px;
}

.ma-pay-direct-title {
	display: block;
	margin-bottom: 18px;
	font-family: var(--makeadera-font-mono, 'JetBrains Mono', monospace);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--makeadera-color-slate-dark, #4A4655);
}

.ma-pay-direct-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ma-pay-direct-list li {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 12px 0;
	border-top: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
}

.ma-pay-direct-list li:first-child {
	padding-top: 0;
	border-top: none;
}

.ma-pay-direct-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--makeadera-color-gray-mid, #86828F);
}

.ma-pay-direct-list a {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--makeadera-color-black, #17141F);
	word-break: break-word;
}

.ma-pay-direct-list a:hover,
.ma-pay-direct-list a:focus {
	color: var(--makeadera-color-accent-red, #C3241D);
}

/* Quote cross-link */
.ma-pay-quote-card {
	padding: 30px 28px;
	background: linear-gradient(90deg, #93120C 0%, #C8261F 100%);
	border: 1px solid var(--makeadera-color-accent-deep, #9C1D17);
	border-radius: 16px;
}

.ma-pay-quote-title {
	margin: 12px 0 0;
	font-size: 21px;
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1.25;
	color: var(--makeadera-color-white, #FFFFFF);
}

.ma-pay-quote-text {
	margin: 10px 0 20px;
	font-size: 14px;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.86);
}

.ma-pay-quote-btn {
	width: 100%;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.ma-pay-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.ma-pay-panel {
		padding: 28px 22px;
	}

	.ma-pay-fields {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.ma-pay-steps-card,
	.ma-pay-quote-card {
		padding: 26px 22px;
	}

	.ma-pay-direct {
		padding: 24px 22px;
	}
}

/* --------------------------------------------------------------------------
   WooCommerce billing address fields

   These are rendered by woocommerce_form_field() from WooCommerce's own
   per-country definitions, so the markup is theirs and the classes below
   pull it back in line with the hand-built fields above.
   -------------------------------------------------------------------------- */
.ma-pay-address-heading {
	margin-top: 8px;
	padding-top: 24px;
	border-top: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
}

.ma-pay-group-title {
	display: block;
	margin-bottom: 4px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var(--makeadera-color-charcoal, #262234);
}

/* WooCommerce wraps each field in a <p class="form-row">; strip its spacing
   so the grid gap is the only thing controlling rhythm. */
.ma-pay-fields .ma-pay-wc-field {
	margin: 0;
	padding: 0;
}

.ma-pay-fields .ma-pay-wc-label,
.ma-pay-fields .ma-pay-wc-field label {
	display: block;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--makeadera-color-charcoal, #262234);
}

.ma-pay-fields .ma-pay-wc-field .required {
	color: var(--makeadera-color-accent-red, #C3241D);
	text-decoration: none;
}

.ma-pay-fields .ma-pay-wc-field .optional {
	font-weight: 500;
	color: var(--makeadera-color-gray-mid, #86828F);
}

.ma-pay-fields .ma-pay-wc-field input[type='text'],
.ma-pay-fields .ma-pay-wc-field input[type='tel'],
.ma-pay-fields .ma-pay-wc-field select,
.ma-pay-fields .ma-pay-wc-field .select2-container .select2-selection--single {
	width: 100%;
	box-sizing: border-box;
	height: 50px;
	padding: 0 16px;
	background-color: var(--makeadera-color-white, #FFFFFF);
	border: 1px solid var(--makeadera-color-slate-light, #E9E6F0);
	border-radius: 8px;
	box-shadow: none;
	font-family: var(--makeadera-font-primary, 'Inter', sans-serif);
	font-size: 15px;
	color: var(--makeadera-color-black, #17141F);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ma-pay-fields .ma-pay-wc-field input:focus,
.ma-pay-fields .ma-pay-wc-field select:focus {
	border-color: var(--makeadera-color-black, #17141F);
	box-shadow: 0 0 0 3px rgba(23, 20, 31, 0.07);
	outline: none;
}

.ma-pay-fields .ma-pay-wc-field.has-error input,
.ma-pay-fields .ma-pay-wc-field.has-error select,
.ma-pay-fields .ma-pay-wc-field.has-error .select2-container .select2-selection--single {
	border-color: var(--makeadera-color-accent-red, #C3241D);
}

/* select2 renders its own inner chrome; line it up with the plain inputs. */
.ma-pay-fields .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.ma-pay-fields .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: var(--makeadera-color-black, #17141F);
}

.ma-pay-fields .select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 12px;
	transform: translateY(-50%);
}

/* Error text for an address field sits outside WooCommerce's own wrapper,
   so it needs to span the grid row it follows. */
.ma-pay-err-standalone {
	grid-column: 1 / -1;
	margin-top: -12px;
}

/* A field WooCommerce hides for the selected country (no postcode in the
   UAE, for example) must not leave a gap in the grid. */
.ma-pay-fields .ma-pay-wc-field.screen-reader-text,
.ma-pay-fields .ma-pay-wc-field[style*='display: none'],
.ma-pay-fields .ma-pay-wc-field[style*='display:none'] {
	display: none !important;
}

@media (max-width: 640px) {
	.ma-pay-address-heading {
		padding-top: 20px;
	}
}
