/* ═══════════════════════════════════════════
   REQUEST PROPOSAL — Bespoke inquiry form
   ═══════════════════════════════════════════ */

.site-main--request-proposal {
	background: var(--hilaire-ivory);
	padding-block: var(--section-space);
}

.request-proposal {
	max-width: 760px;
}

.request-proposal__header {
	text-align: center;
	margin-bottom: var(--space-8);
}

.request-proposal__title {
	font-family: var(--font-heading);
	font-size: clamp(1.85rem, 4vw, 2.5rem);
	font-weight: 500;
	color: var(--hilaire-blue);
	margin: 0 0 var(--space-4);
	letter-spacing: 0.02em;
}

.request-proposal__intro {
	font-family: var(--font-heading);
	font-size: clamp(1.15rem, 2.2vw, 1.35rem);
	font-weight: 500;
	color: var(--hilaire-blue);
	margin: 0 0 var(--space-3);
	letter-spacing: 0.04em;
}

.request-proposal__subintro {
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.55;
	color: rgba(10, 30, 60, 0.72);
	margin: 0 auto;
	max-width: 36em;
}

.request-proposal__req {
	color: var(--hilaire-gold-muted);
	text-decoration: none;
	font-weight: 600;
}

/* Ivory panel — form lives inside */
.request-proposal__panel {
	background: var(--hilaire-ivory);
	border: 1px solid rgba(10, 30, 60, 0.14);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.65) inset,
		0 24px 48px rgba(10, 30, 60, 0.07);
	padding: var(--space-10) var(--space-8) var(--space-12);
}

@media (max-width: 640px) {
	.request-proposal__panel {
		padding: var(--space-8) var(--space-5) var(--space-10);
		margin-inline: calc(-1 * var(--container-gutter));
		border-left: none;
		border-right: none;
	}
}

.request-proposal__feedback {
	margin-bottom: var(--space-6);
	padding: var(--space-4) var(--space-5);
	font-family: var(--font-body);
	font-size: 15px;
	line-height: 1.5;
	border: 1px solid rgba(10, 30, 60, 0.12);
	color: var(--hilaire-blue);
}

.request-proposal__feedback--success {
	background: rgba(184, 134, 11, 0.08);
	border-color: rgba(184, 134, 11, 0.35);
	color: var(--hilaire-blue);
}

.request-proposal__feedback--error {
	background: rgba(10, 30, 60, 0.04);
	border-color: rgba(10, 30, 60, 0.2);
	color: var(--hilaire-blue);
}

.request-proposal__form {
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	box-shadow: none;
}

.request-proposal__section {
	margin-bottom: var(--space-10);
}

.request-proposal__section:last-of-type {
	margin-bottom: var(--space-6);
}

.request-proposal__section-title {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	font-weight: 500;
	color: var(--hilaire-blue);
	margin: 0 0 var(--space-5);
	padding-bottom: var(--space-2);
	border-bottom: 2px solid var(--hilaire-gold);
	display: inline-block;
}

.request-proposal__section + .request-proposal__section {
	padding-top: var(--space-8);
	border-top: 1px solid rgba(10, 30, 60, 0.08);
}

.request-proposal__grid {
	display: grid;
	gap: var(--space-5) var(--space-6);
}

.request-proposal__grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.request-proposal__grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 640px) {
	.request-proposal__grid--2,
	.request-proposal__grid--3 {
		grid-template-columns: 1fr;
	}
}

.request-proposal__field {
	margin: 0;
}

.request-proposal__field label {
	display: block;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--hilaire-blue);
	margin-bottom: var(--space-2);
}

.request-proposal__field input,
.request-proposal__field select,
.request-proposal__field textarea {
	width: 100%;
	font-family: var(--font-body);
	font-size: 15px;
	color: var(--hilaire-blue);
	background: var(--hilaire-white);
	border: 1px solid rgba(10, 30, 60, 0.16);
	border-radius: var(--radius-sharp);
	padding: 12px 14px;
	transition: border-color var(--duration-fast) var(--easing-luxury), box-shadow var(--duration-fast) var(--easing-luxury);
}

.request-proposal__field input:hover,
.request-proposal__field select:hover,
.request-proposal__field textarea:hover {
	border-color: rgba(10, 30, 60, 0.28);
}

.request-proposal__field input:focus,
.request-proposal__field select:focus,
.request-proposal__field textarea:focus {
	outline: none;
	border-color: var(--hilaire-gold);
	box-shadow: 0 0 0 2px rgba(184, 134, 11, 0.45);
}

.request-proposal__field textarea {
	min-height: 180px;
	resize: vertical;
	line-height: 1.55;
}

.request-proposal__field--full {
	grid-column: 1 / -1;
}

.request-proposal__hint {
	display: block;
	font-size: 12px;
	color: rgba(10, 30, 60, 0.55);
	margin: 0 0 var(--space-2);
	line-height: 1.45;
}

.request-proposal__fieldset {
	border: none;
	margin: 0 0 var(--space-5);
	padding: 0;
}

.request-proposal__fieldset legend,
.request-proposal__legend {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--hilaire-blue);
	margin-bottom: var(--space-3);
}

.request-proposal__radios {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-4) var(--space-6);
}

.request-proposal__radio {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--hilaire-blue);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
}

.request-proposal__radio input {
	width: auto;
	accent-color: var(--hilaire-gold);
}

.request-proposal__radio input:focus-visible {
	outline: 2px solid var(--hilaire-gold);
	outline-offset: 3px;
}

.request-proposal__radio input:focus-visible + span,
.request-proposal__radio:has(input:focus-visible) span {
	color: var(--hilaire-blue);
}

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

.request-proposal__actions {
	margin: var(--space-10) 0 0;
	padding-top: var(--space-8);
	border-top: 1px solid rgba(10, 30, 60, 0.1);
	text-align: center;
}

.request-proposal__submit {
	min-width: 260px;
	letter-spacing: 0.16em;
	font-size: 10px;
	padding-top: 14px;
	padding-bottom: 14px;
}

.request-proposal__submit:focus-visible {
	outline: 2px solid var(--hilaire-gold);
	outline-offset: 4px;
}
