.contact-form {
	margin-top: 2.25em;
	padding: 2em;
	border: solid 1px rgba(99, 99, 99, 0.2);
	border-radius: 0.5em;
	background: rgba(255, 255, 255, 0.7);
}

/* main.css gives every section display:block, which otherwise overrides the
   browser's built-in hidden attribute on the multi-step form sections. */
.contact-form [hidden] {
	display: none !important;
}

.travel-form-intro,
.support-form-intro {
	margin: 2em 0 1.5em;
	padding: 1.5em;
	border-left: solid 4px #b50018;
	background: rgba(181, 0, 24, 0.04);
}

.travel-form-intro > :last-child,
.support-form-intro > :last-child {
	margin-bottom: 0;
}

.contact-form .field {
	margin-bottom: 1.4em;
}

.contact-form label,
.contact-form legend {
	display: block;
	margin-bottom: 0.45em;
	color: #4a4a4a;
	font-weight: 600;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
	margin: 0;
}

.contact-form small {
	display: block;
	margin-top: 0.45em;
	color: #777;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.25em;
}

.travel-fields,
.support-fields {
	margin: 0 0 1.6em;
	padding: 1.4em;
	border: solid 1px rgba(181, 0, 24, 0.22);
	border-radius: 0.5em;
	background: rgba(181, 0, 24, 0.035);
}

.contact-form .travel-fields + .travel-fields,
.contact-form .support-fields + .support-fields {
	margin-top: 1.5em;
}

.travel-fields[hidden],
.support-fields[hidden] {
	display: none;
}

.consent-field {
	display: flex;
	align-items: flex-start;
	gap: 0.75em;
	margin: 0 0 1.5em;
}

.consent-field input[type="checkbox"] {
	flex: 0 0 auto;
	width: 1.2em;
	height: 1.2em;
	margin-top: 0.15em;
	appearance: auto;
	opacity: 1;
}

.consent-field label {
	margin: 0;
}

.security-field {
	padding: 1.25em;
	border-radius: 0.5em;
	background: rgba(120, 120, 120, 0.07);
}

.security-row {
	display: grid;
	grid-template-columns: minmax(7em, 0.3fr) auto;
	gap: 0.85em;
	align-items: center;
}

.security-row .button {
	margin: 0;
	white-space: nowrap;
}

.contact-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.form-feedback {
	min-height: 1.6em;
	margin: 0;
	font-weight: 600;
}

.form-feedback.success {
	color: #23723d;
}

.form-feedback.error {
	color: #a4001b;
}

@media screen and (max-width: 736px) {
	.contact-form {
		padding: 1.35em;
	}

	.form-grid,
	.security-row {
		grid-template-columns: 1fr;
	}
}

.replacement-page-image { width: min(100%, 400px); height: auto; }
.replacement-step + .replacement-step { margin-top: 2em; padding-top: 2em; border-top: solid 1px rgba(99, 99, 99, 0.2); }
.step-number { display: inline-grid; place-items: center; width: 1.8em; height: 1.8em; margin-right: 0.45em; border-radius: 50%; background: #b50018; color: #fff; font-size: 0.78em; }
.verification-code-row { display: grid; grid-template-columns: minmax(12em, 0.45fr) auto; gap: 1em; align-items: end; }
.verification-code-row .button { margin-bottom: 1.4em; }
.replacement-items { margin: 0; padding: 1.4em; border: solid 1px rgba(181, 0, 24, 0.22); border-radius: 0.5em; }
.replacement-items label, .delivery-option { display: grid; grid-template-columns: auto 1fr auto; gap: 0.8em; align-items: center; margin: 0; padding: 0.85em 0; border-bottom: solid 1px rgba(99, 99, 99, 0.13); }
.replacement-items label:last-child { border-bottom: 0; }
.replacement-items input[type="checkbox"], .delivery-option input[type="checkbox"] { position: static !important; display: inline-block !important; float: none !important; width: 1.2em !important; min-width: 1.2em !important; height: 1.2em !important; margin: 0 !important; appearance: auto !important; -webkit-appearance: checkbox !important; opacity: 1 !important; z-index: auto !important; pointer-events: auto !important; cursor: pointer; }
.replacement-items label { cursor: pointer; }
.replacement-running-total { display: flex; justify-content: space-between; align-items: center; margin: 0 0 1.6em; padding: 0.85em 1.2em; border-radius: 0 0 0.5em 0.5em; background: rgba(181, 0, 24, 0.08); color: #4a4a4a; font-size: 1.15em; }
.replacement-running-total strong { color: #b50018; font-size: 1.1em; }
.delivery-option { margin-bottom: 1.25em; padding: 1em; border: solid 1px rgba(99, 99, 99, 0.2); border-radius: 0.5em; }
.delivery-option small { margin: 0; }
.replacement-total { display: flex; justify-content: space-between; align-items: center; margin: 1.25em 0; padding: 1em 1.2em; border: solid 2px #b50018; border-radius: 0.5em; background: #fff7f8; color: #3f3f3f; font-size: 1.25em; }
#main .replacement-total span { color: #3f3f3f !important; font-weight: 600; }
#main .replacement-total strong { color: #b50018 !important; font-weight: 700; }
.payment-option { margin: 1em 0; padding: 1.2em; border: solid 1px rgba(99, 99, 99, 0.2); border-radius: 0.5em; }
.payment-option p { margin-bottom: 0.75em; }
.payment-note { margin: 0.75em 0; color: #666; font-size: 0.9em; }
.payment-note.error { color: #a4001b; }
.order-complete .replacement-items, .order-complete .support-fields, .order-complete .delivery-option, .order-complete .consent-field, .order-complete .payment-option, .order-complete .payment-note { pointer-events: none; opacity: 0.6; }

.renewal-packages,
.renewal-extras {
	margin: 0 0 1.4em;
	padding: 1.4em;
	border: solid 1px rgba(181, 0, 24, 0.22);
	border-radius: 0.5em;
	background: rgba(181, 0, 24, 0.025);
}

.renewal-packages label,
.renewal-extras label {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.9em;
	align-items: start;
	margin: 0;
	padding: 1em 0;
	border-bottom: solid 1px rgba(99, 99, 99, 0.13);
	cursor: pointer;
}

.renewal-packages label:last-child,
.renewal-extras label:last-child { border-bottom: 0; }

.renewal-packages input[type="radio"],
.renewal-extras input[type="checkbox"] {
	all: revert !important;
	position: static !important;
	display: inline-block !important;
	float: none !important;
	width: 1.2em !important;
	min-width: 1.2em !important;
	height: 1.2em !important;
	margin: 0.2em 0 0 !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	accent-color: #b50018 !important;
	cursor: pointer !important;
	z-index: 2 !important;
}

.renewal-packages input[type="radio"] { appearance: radio !important; -webkit-appearance: radio !important; }
.renewal-extras input[type="checkbox"] { appearance: checkbox !important; -webkit-appearance: checkbox !important; }

.renewal-form .delivery-option input[type="checkbox"] {
	all: revert !important;
	position: static !important;
	display: inline-block !important;
	width: 1.2em !important;
	height: 1.2em !important;
	margin: 0 !important;
	visibility: visible !important;
	opacity: 1 !important;
	appearance: checkbox !important;
	-webkit-appearance: checkbox !important;
	accent-color: #b50018 !important;
	cursor: pointer !important;
}

.verification-sent-message {
	margin: 0 0 1.25em;
	padding: 1em 1.2em;
	border: solid 1px #82bb91;
	border-radius: 0.5em;
	background: #f2fbf4;
	color: #185d2d;
	font-weight: 600;
}

.renewal-packages small { margin-top: 0.25em; font-weight: 400; }
.renewal-total { background: #fff7f8 !important; }
#main .renewal-total span { color: #2f2f2f !important; }
#main .renewal-total strong { color: #b50018 !important; }

.photo-field input[type="file"] { padding: 0.75em; height: auto; background: #fff; }
#photo-preview { display: block; width: min(100%, 260px); max-height: 260px; margin-top: 1em; border-radius: 0.5em; object-fit: contain; border: solid 1px rgba(99, 99, 99, 0.2); }
#photo-preview[hidden] { display: none; }

.renewal-review { padding: 1.5em; border: solid 2px rgba(181, 0, 24, 0.32); border-radius: 0.5em; background: #fffafb; }
.review-summary { margin-bottom: 1.25em; }
.review-list { display: grid; grid-template-columns: minmax(9em, 0.35fr) 1fr; margin: 0; }
.review-list dt, .review-list dd { margin: 0; padding: 0.65em 0; border-bottom: solid 1px rgba(99, 99, 99, 0.12); white-space: pre-line; overflow-wrap: anywhere; }
.review-list dt { padding-right: 1em; color: #3f3f3f; font-weight: 700; }
.review-list dd { color: #4a4a4a; }
.renewal-review .consent-field { margin-top: 1.4em; }

.order-complete .renewal-packages,
.order-complete .renewal-extras,
.order-complete .delivery-option,
.order-complete .consent-field,
.order-complete .payment-option,
.order-complete .payment-note { pointer-events: none; opacity: 0.6; }

@media screen and (max-width: 736px) {
	.verification-code-row { grid-template-columns: 1fr; }
	.renewal-packages label, .renewal-extras label { grid-template-columns: auto minmax(0, 1fr); }
	.renewal-packages label > strong, .renewal-extras label > strong { grid-column: 2; }
	.review-list { grid-template-columns: 1fr; }
	.review-list dt { padding-bottom: 0.1em; border-bottom: 0; }
	.review-list dd { padding-top: 0.1em; }
}
