/* CPN vPOS donation form — matches the cpnarmenia.org design system:
   Oswald headings, Source Sans Pro body, #c3234d accent, #033b4a ink. */

.cpn-vpos-form,
.cpn-vpos-result {
	max-width: 560px;
	margin: 0 auto;
	padding: 32px 28px;
	background: #fff;
	border: 1px solid #e3e8ea;
	border-radius: 6px;
	box-shadow: 0 2px 14px rgba(3, 59, 74, .07);
	font-family: "Source Sans Pro", "Segoe UI", sans-serif;
	color: #033b4a;
	box-sizing: border-box;
}

.cpn-vpos-title {
	font-family: Oswald, "Source Sans Pro", sans-serif;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.25;
	margin: 0 0 18px;
	color: #033b4a;
	text-align: center;
}

.cpn-vpos-testmode {
	margin: 0 0 20px;
	padding: 10px 14px;
	border-left: 4px solid #e0a800;
	background: #fff8e5;
	font-size: 14px;
	line-height: 1.45;
	color: #6b5200;
}

.cpn-vpos-error {
	margin: 0 0 20px;
	padding: 10px 14px;
	border-left: 4px solid #c3234d;
	background: #fdf0f3;
	font-size: 15px;
	color: #8d1436;
}

/* --- amounts --- */

.cpn-vpos-amounts {
	border: 0;
	margin: 0 0 22px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.cpn-vpos-amounts legend {
	font-family: Oswald, sans-serif;
	font-size: 15px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #5a7480;
	padding: 0;
	margin-bottom: 10px;
	width: 100%;
}

.cpn-vpos-amount {
	flex: 1 1 auto;
	min-width: 110px;
	cursor: pointer;
}

.cpn-vpos-amount input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.cpn-vpos-amount span {
	display: block;
	padding: 12px 8px;
	text-align: center;
	border: 2px solid #dfe6e9;
	border-radius: 4px;
	font-size: 17px;
	font-weight: 600;
	transition: border-color .15s, background .15s, color .15s;
}

.cpn-vpos-amount input:checked + span {
	border-color: #c3234d;
	background: #c3234d;
	color: #fff;
}

.cpn-vpos-amount input:focus-visible + span {
	outline: 2px solid #033b4a;
	outline-offset: 2px;
}

/* --- fields --- */

.cpn-vpos-field {
	margin: 0 0 16px;
}

.cpn-vpos-field label {
	display: block;
	margin-bottom: 5px;
	font-size: 15px;
	font-weight: 600;
}

.cpn-vpos-optional {
	font-weight: 400;
	color: #7a8f99;
}

.cpn-vpos-field input {
	width: 100%;
	padding: 11px 13px;
	border: 1px solid #cfd8dc;
	border-radius: 4px;
	font-size: 16px;
	font-family: inherit;
	color: #033b4a;
	box-sizing: border-box;
}

.cpn-vpos-field input:focus {
	border-color: #c3234d;
	outline: none;
	box-shadow: 0 0 0 3px rgba(195, 35, 77, .13);
}

/* honeypot — hidden from people, reachable by bots */
.cpn-vpos-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --- submit --- */

.cpn-vpos-submit {
	margin: 24px 0 0;
}

.cpn-vpos-submit button {
	display: block;
	width: 100%;
	padding: 15px 20px;
	border: 0;
	border-radius: 4px;
	background: #c3234d;
	color: #fff;
	font-family: Oswald, sans-serif;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .15s;
}

.cpn-vpos-submit button:hover,
.cpn-vpos-submit button:focus {
	background: #a11c40;
}

.cpn-vpos-note {
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: #7a8f99;
	text-align: center;
}

/* --- result page --- */

.cpn-vpos-result {
	text-align: center;
}

.cpn-vpos-result-message {
	font-family: Oswald, sans-serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.35;
	margin: 0 0 20px;
}

.cpn-vpos-result--success .cpn-vpos-result-message {
	color: #1e7a4c;
}

.cpn-vpos-result--failure .cpn-vpos-result-message {
	color: #c3234d;
}

.cpn-vpos-result--neutral .cpn-vpos-result-message,
.cpn-vpos-result--unknown .cpn-vpos-result-message {
	color: #033b4a;
}

.cpn-vpos-receipt {
	display: grid;
	grid-template-columns: auto auto;
	gap: 6px 18px;
	justify-content: center;
	margin: 0 0 22px;
	padding: 18px;
	background: #f5f8f9;
	border-radius: 4px;
	font-size: 15px;
	text-align: left;
}

.cpn-vpos-receipt dt {
	color: #7a8f99;
}

.cpn-vpos-receipt dd {
	margin: 0;
	font-weight: 600;
}

.cpn-vpos-result-back a {
	color: #c3234d;
	font-weight: 600;
	text-decoration: none;
}

.cpn-vpos-result-back a:hover {
	text-decoration: underline;
}

@media (max-width: 600px) {
	.cpn-vpos-form,
	.cpn-vpos-result {
		padding: 24px 18px;
	}

	.cpn-vpos-title {
		font-size: 24px;
	}

	.cpn-vpos-amount {
		min-width: calc(50% - 5px);
	}
}
