.relay-forms {
	--rf-accent: #2563eb;
	--rf-accent-hover: #1d4ed8;
	--rf-accent-ring: rgba(37, 99, 235, 0.14);
	--rf-ink: #334155;
	--rf-muted: #5f6f82;
	--rf-border: #111111;
	--rf-field-bg: #ffffff;
	--rf-success: #067647;
	--rf-success-bg: #ecfdf3;
	--rf-warning: #b54708;
	--rf-warning-bg: #fffaeb;
	--rf-error: #b42318;
	--rf-panel-bg: #ffffff;
	--rf-panel-border: #111111;
	--rf-file-accent: #ef4444;
	--rf-font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;

	max-width: 1120px;
	margin: 0 auto;
	padding: 0 1rem;
	color: var(--rf-ink);
	font: 400 16px/1.6 var(--rf-font-family);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.relay-forms--font-default {
	--rf-font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
}

.relay-forms--font-segoe {
	--rf-font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.relay-forms--font-verdana {
	--rf-font-family: Verdana, Geneva, sans-serif;
}

.relay-forms--font-trebuchet {
	--rf-font-family: "Trebuchet MS", "Lucida Sans Unicode", "Lucida Grande", sans-serif;
}

.relay-forms--font-georgia {
	--rf-font-family: Georgia, "Times New Roman", serif;
}

.relay-forms--font-palatino {
	--rf-font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif;
}

.relay-forms--font-garamond {
	--rf-font-family: Garamond, Baskerville, "Times New Roman", serif;
}

.relay-forms,
.relay-forms *,
.relay-forms *::before,
.relay-forms *::after {
	box-sizing: border-box;
}

.relay-forms__notice {
	margin-bottom: 1.25rem;
	padding: 0.85rem 1rem;
	border-radius: 4px;
	border: 1px solid transparent;
	font-family: var(--rf-font-family);
	font-size: 0.94rem;
	font-weight: 500;
	line-height: 1.55;
}

.relay-forms__notice--success {
	background: #ecfdf3;
	border-color: #b9ebc9;
	color: #067647;
}

.relay-forms__notice--error {
	background: #fef3f2;
	border-color: #fecdca;
	color: #b42318;
}

.relay-forms__notice-message {
	margin: 0;
}

.relay-forms__receipt {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(6, 118, 71, 0.2);
}

.relay-forms__receipt-qr {
	display: block;
	flex: 0 0 auto;
	width: min(240px, 42%);
	height: auto;
	padding: 0.5rem;
	border: 1px solid rgba(6, 118, 71, 0.22);
	border-radius: 4px;
	background: #fff;
}

.relay-forms__receipt-copy {
	min-width: 0;
	color: #075f3b;
}

.relay-forms__receipt-copy strong {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 1rem;
}

.relay-forms__receipt-copy p {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 400;
}

.relay-forms__receipt-download {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin-top: 0.85rem;
	padding: 0.65rem 0.9rem;
	border: 1px solid #067647;
	border-radius: 4px;
	background: #067647;
	color: #fff;
	font-family: var(--rf-font-family);
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.relay-forms__receipt-download svg {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.relay-forms__receipt-download:hover,
.relay-forms__receipt-download:focus {
	border-color: #055f3a;
	background: #055f3a;
	color: #fff;
	text-decoration: none;
	transform: translateY(-1px);
}

.relay-forms__receipt-download:focus-visible {
	outline: 2px solid #2563eb;
	outline-offset: 2px;
}

.relay-forms__form {
	width: 100%;
	max-width: 100%;
	padding: 2rem;
	background: var(--rf-panel-bg);
	border: 1px solid var(--rf-panel-border);
	border-radius: 4px;
	box-shadow: 0 16px 38px -28px rgba(0, 0, 0, 0.45), 0 8px 18px -14px rgba(0, 0, 0, 0.3);
}

.relay-forms__form::before,
.relay-forms__form::after {
	content: none;
}

.relay-forms__required-note {
	margin: 0 0 0.85rem;
	color: var(--rf-muted);
	font-family: var(--rf-font-family);
	font-size: 0.88rem;
	line-height: 1.55;
}

.relay-forms__grid {
	display: grid;
	width: 100%;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	column-gap: 1.25rem;
	row-gap: 1.35rem;
}

.relay-forms__field {
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
}

.relay-forms__field--full {
	grid-column: 1 / -1;
}

.relay-forms__label {
	display: block;
	max-width: 100%;
	margin-bottom: 0.45rem;
	color: var(--rf-ink);
	font-family: var(--rf-font-family);
	font-size: 0.98rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.relay-forms__required {
	color: var(--rf-accent);
}

.relay-forms__control {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: auto;
	min-height: 3rem;
	margin: 0;
	padding: 0.72rem 0.85rem;
	border: 1px solid var(--rf-border);
	border-radius: 3px;
	background: var(--rf-field-bg);
	color: var(--rf-ink);
	font: inherit;
	font-family: var(--rf-font-family);
	font-size: 0.98rem;
	font-weight: 400;
	line-height: 1.5;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.relay-forms input.relay-forms__control,
.relay-forms textarea.relay-forms__control,
.relay-forms select.relay-forms__control {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	min-height: 3rem;
	padding: 0.72rem 0.85rem;
	border: 1px solid var(--rf-border);
	border-radius: 3px;
	background-color: var(--rf-field-bg);
	color: var(--rf-ink);
	font: inherit;
	font-family: var(--rf-font-family);
	font-size: 0.98rem;
	font-weight: 400;
	line-height: 1.5;
}

.relay-forms textarea.relay-forms__control {
	min-height: 110px;
	resize: vertical;
}

.relay-forms textarea.relay-forms__control--compact {
	width: 100%;
	max-width: 100%;
	max-height: 8rem;
	min-height: 3rem;
	resize: vertical;
	overflow: auto;
}

.relay-forms select.relay-forms__control {
	padding-right: 2.9rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 5.25L7 9.25L11 5.25' stroke='%236b7085' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-position: right 0.95rem center;
	background-repeat: no-repeat;
	background-size: 0.95rem;
}

.relay-forms select.relay-forms__control option {
	color: var(--rf-ink);
}

.relay-forms select.relay-forms__control:invalid {
	color: var(--rf-muted);
}

.relay-forms__control::placeholder {
	color: #9a9fb0;
}

.relay-forms__control:hover {
	border-color: #000;
	background-color: #fff;
}

.relay-forms .relay-forms__field--pending .relay-forms__control,
.relay-forms .relay-forms__field--invalid .relay-forms__control,
.relay-forms input.relay-forms__control[aria-invalid="true"],
.relay-forms textarea.relay-forms__control[aria-invalid="true"],
.relay-forms select.relay-forms__control[aria-invalid="true"] {
	border-color: transparent !important;
	background: #fff5f5;
	box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.6) !important;
}

.relay-forms__control:focus {
	outline: none;
	border-color: var(--rf-accent);
	background-color: #fff;
	box-shadow: 0 0 0 3px var(--rf-accent-ring);
}

.relay-forms__control[aria-invalid="true"] {
	background: #fff5f5;
}

.relay-forms__control--file {
	padding: 0.5rem;
	background: #fff;
	border-style: solid;
}

.relay-forms__control--file::file-selector-button {
	margin-right: 0.8rem;
	padding: 0.62rem 1rem;
	border: 1px solid var(--rf-file-accent);
	border-radius: 3px;
	background: #fff;
	color: var(--rf-file-accent);
	font: inherit;
	font-weight: 500;
	cursor: pointer;
}

.relay-forms__control--file::-webkit-file-upload-button {
	margin-right: 0.8rem;
	padding: 0.62rem 1rem;
	border: 1px solid var(--rf-file-accent);
	border-radius: 3px;
	background: #fff;
	color: var(--rf-file-accent);
	font: inherit;
	font-weight: 500;
	cursor: pointer;
}

.relay-forms__help {
	max-width: 100%;
	margin: 0.3rem 0 0;
	color: var(--rf-muted);
	font-family: var(--rf-font-family);
	font-size: 0.86rem;
	font-style: normal;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

.relay-forms__error {
	max-width: 100%;
	margin: 0.3rem 0 0;
	color: var(--rf-error);
	font-family: var(--rf-font-family);
	font-size: 0.86rem;
	font-weight: 600;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.relay-forms__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.75rem;
	padding: 0.82rem 1.5rem;
	border: 1px solid #1f2937;
	border-radius: 3px;
	background: #1f2937;
	color: #fff;
	font-family: var(--rf-font-family);
	font-size: 0.96rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	cursor: pointer;
	box-shadow: none;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.relay-forms__submit:hover,
.relay-forms__submit:focus {
	background: #111827;
	border-color: #111827;
}

.relay-forms__submit:focus-visible {
	outline: 2px solid var(--rf-accent);
	outline-offset: 2px;
}

.relay-forms__submit:disabled {
	border-color: #cbd5e1;
	background: #e5e7eb;
	color: #6b7280;
	cursor: not-allowed;
	box-shadow: none;
}

.relay-forms__submit[aria-busy="true"] {
	border-color: #1f2937;
	background: #1f2937;
	color: #fff;
	cursor: wait;
	opacity: 0.82;
}

.relay-forms--style-modern {
	--rf-accent: #4f46e5;
	--rf-accent-hover: #4338ca;
	--rf-accent-ring: rgba(79, 70, 229, 0.15);
	--rf-ink: #14161f;
	--rf-muted: #6b7085;
	--rf-border: #d8dced;
	--rf-field-bg: #f3f5ff;
}

.relay-forms--style-modern .relay-forms__notice {
	border-radius: 12px;
	font-size: 0.94rem;
	font-weight: 500;
}

.relay-forms--style-modern .relay-forms__form {
	position: relative;
	overflow: hidden;
	padding: 3rem;
	background: linear-gradient(155deg, rgba(255, 255, 255, 0.98) 0%, rgba(243, 247, 255, 0.96) 100%);
	border: 1px solid rgba(121, 133, 173, 0.18);
	border-radius: 28px;
	box-shadow: 0 18px 44px -28px rgba(15, 23, 42, 0.38), 0 10px 24px -18px rgba(79, 70, 229, 0.24);
	animation: relay-forms-panel-in 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.relay-forms--style-modern .relay-forms__form::before,
.relay-forms--style-modern .relay-forms__form::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: 999px;
	pointer-events: none;
	filter: blur(2px);
}

.relay-forms--style-modern .relay-forms__form::before {
	top: -120px;
	left: -110px;
	width: 300px;
	height: 300px;
	background: radial-gradient(circle, rgba(14, 165, 233, 0.14) 0%, rgba(14, 165, 233, 0) 72%);
	animation: relay-forms-float 12s ease-in-out infinite;
}

.relay-forms--style-modern .relay-forms__form::after {
	right: -150px;
	bottom: -170px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(79, 70, 229, 0.18) 0%, rgba(79, 70, 229, 0) 72%);
	animation: relay-forms-float 14s ease-in-out infinite reverse;
}

.relay-forms--style-modern .relay-forms__form > * {
	position: relative;
	z-index: 1;
}

.relay-forms--style-modern .relay-forms__required-note {
	font-size: 0.88rem;
	line-height: 1.55;
}

.relay-forms--style-modern .relay-forms__grid {
	column-gap: 1.5rem;
	row-gap: 1.5rem;
}

.relay-forms--style-modern .relay-forms__field {
	animation: relay-forms-field-in 420ms ease both;
}

.relay-forms--style-modern .relay-forms__field:nth-child(2n) {
	animation-delay: 60ms;
}

.relay-forms--style-modern .relay-forms__field:nth-child(3n) {
	animation-delay: 110ms;
}

.relay-forms--style-modern .relay-forms__label {
	margin-bottom: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
}

.relay-forms--style-modern .relay-forms__required {
	color: var(--rf-accent);
}

.relay-forms--style-modern .relay-forms__control,
.relay-forms--style-modern input.relay-forms__control,
.relay-forms--style-modern textarea.relay-forms__control,
.relay-forms--style-modern select.relay-forms__control {
	min-height: 3.35rem;
	padding: 0.85rem 1rem;
	border: 1.5px solid var(--rf-border);
	border-radius: 14px;
	background: var(--rf-field-bg);
	background-color: var(--rf-field-bg);
	font-size: 0.96rem;
	line-height: 1.5;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.relay-forms--style-modern textarea.relay-forms__control {
	min-height: 120px;
}

.relay-forms--style-modern select.relay-forms__control {
	padding-right: 2.9rem;
}

.relay-forms--style-modern .relay-forms__control:hover {
	border-color: #c7c9d9;
	background-color: #eef1ff;
}

.relay-forms.relay-forms--style-modern .relay-forms__field--pending .relay-forms__control,
.relay-forms.relay-forms--style-modern .relay-forms__field--invalid .relay-forms__control,
.relay-forms.relay-forms--style-modern input.relay-forms__control[aria-invalid="true"],
.relay-forms.relay-forms--style-modern textarea.relay-forms__control[aria-invalid="true"],
.relay-forms.relay-forms--style-modern select.relay-forms__control[aria-invalid="true"] {
	border-color: transparent !important;
	background: #fff5f5;
	box-shadow: 0 0 0 2px rgba(217, 45, 32, 0.22) !important;
}

.relay-forms--style-modern .relay-forms__control:focus {
	border-color: var(--rf-accent);
	background-color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 0 0 4px var(--rf-accent-ring), 0 10px 24px -18px rgba(79, 70, 229, 0.6);
}

.relay-forms--style-modern .relay-forms__control[aria-invalid="true"] {
	background: #fff5f5;
}

.relay-forms--style-modern .relay-forms__control--file {
	padding: 0.8rem 0.9rem;
	background: var(--rf-field-bg);
	border-style: dashed;
}

.relay-forms--style-modern .relay-forms__control--file::file-selector-button,
.relay-forms--style-modern .relay-forms__control--file::-webkit-file-upload-button {
	border-color: #c7c9d9;
	background: #fff;
	color: var(--rf-ink);
}

.relay-forms--style-modern .relay-forms__help {
	margin: 0.4rem 0 0;
	font-size: 0.84rem;
	font-style: normal;
	line-height: 1.5;
}

.relay-forms--style-modern .relay-forms__error {
	margin: 0.4rem 0 0;
	font-size: 0.84rem;
	font-weight: 500;
	line-height: 1.45;
}

.relay-forms--style-modern .relay-forms__submit {
	padding: 0.95rem 1.9rem;
	border: none;
	border-radius: 14px;
	background: linear-gradient(135deg, #4f46e5 0%, #2563eb 100%);
	background-size: 160% 160%;
	font-size: 0.96rem;
	font-weight: 600;
	letter-spacing: 0;
	box-shadow: 0 16px 30px -18px rgba(37, 99, 235, 0.7), 0 8px 16px -10px rgba(79, 70, 229, 0.5);
	transition: transform 0.18s ease, box-shadow 0.18s ease, background-position 0.25s ease, opacity 0.18s ease;
}

.relay-forms--style-modern .relay-forms__submit:hover,
.relay-forms--style-modern .relay-forms__submit:focus {
	background: linear-gradient(135deg, #4f46e5 0%, #2563eb 100%);
	background-position: 100% 0;
	transform: translateY(-1px);
	box-shadow: 0 20px 34px -18px rgba(37, 99, 235, 0.72), 0 12px 18px -10px rgba(79, 70, 229, 0.55);
}

.relay-forms--style-modern .relay-forms__submit:disabled {
	border: none;
	background: #c7c9d9;
	color: #4e556b;
}

.relay-forms--style-modern .relay-forms__submit[aria-busy="true"] {
	border: none;
	background: linear-gradient(135deg, #4f46e5 0%, #2563eb 100%);
	color: #fff;
}

@keyframes relay-forms-panel-in {
	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes relay-forms-field-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes relay-forms-float {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	50% {
		transform: translate3d(0, 12px, 0) scale(1.04);
	}
}

@media (prefers-reduced-motion: reduce) {
	.relay-forms__control,
	.relay-forms__submit {
		transition: none;
	}

	.relay-forms--style-modern .relay-forms__form,
	.relay-forms--style-modern .relay-forms__field,
	.relay-forms--style-modern .relay-forms__form::before,
	.relay-forms--style-modern .relay-forms__form::after {
		animation: none;
	}

	.relay-forms--style-modern .relay-forms__control:focus,
	.relay-forms--style-modern .relay-forms__submit:hover,
	.relay-forms--style-modern .relay-forms__submit:focus {
		transform: none;
	}
}

.relay-forms__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media (max-width: 640px) {
	.relay-forms__receipt {
		align-items: flex-start;
		flex-direction: column;
	}

	.relay-forms__receipt-qr {
		width: min(240px, 100%);
	}

	.relay-forms__form {
		padding: 1.25rem;
	}

	.relay-forms--style-modern .relay-forms__form {
		padding: 1.35rem;
		border-radius: 20px;
	}

	.relay-forms__grid {
		grid-template-columns: 1fr;
		row-gap: 1rem;
	}

	.relay-forms__submit {
		width: 100%;
	}
}
