/**
 * Bloc : Formulaire (ri-formulaire)
 * 1/3 texte — 2/3 formulaire Gravity Forms
 */

.ri-formulaire {
	width: 100%;
	padding-block: var(--ri-block-padding-xl);
	background-color: var(--ri-color-grey-mid);
}

/* Mode lien : texte prend le reste, formulaire fixé à 738px */
.ri-formulaire .container {
	display: grid;
	grid-template-columns: 1fr 738px;
	column-gap: 130px;
	row-gap: 24px;
	align-items: start;
}

/* Mode contact : intro full width, puis contact + formulaire */
.ri-formulaire.has-contact .container {
	grid-template-columns: 1fr;
	gap: var(--ri-gap-md);
}

.ri-formulaire.has-contact .bottom {
	display: grid;
	grid-template-columns: 1fr 738px;
	gap: var(--ri-space-md);
	align-items: start;
}

.ri-formulaire .form-wrapper {
	width: 100%;
}

/* ========================================
   Intro (mode contact) + Colonne texte (mode lien)
   ======================================== */

.ri-formulaire .intro,
.ri-formulaire .content {
	display: flex;
	flex-direction: column;
	gap: var(--ri-space-md);
	max-width: 950px;
}

.ri-formulaire .titre {
	font: 700 var(--ri-size-title-h2) / 1.4 var(--ri-font-1);
}

.ri-formulaire .description {
	font: 400 var(--ri-size-text-body) / 1.5 var(--ri-font-1);
}

.ri-formulaire .titre,
.ri-formulaire .description {
	margin: 0;
}


/* ========================================
   Encart contact
   ======================================== */

.ri-formulaire .contact-card {
	display: flex;
	flex-direction: column;
	gap: var(--ri-space-md);
	padding: var(--ri-space-md);
	padding-bottom: 32px;
	background-color: var(--ri-color-teal);
}

.ri-formulaire .contact-intro {
	margin: 0;
	font: 400 var(--ri-size-text-body) / 1.7 var(--ri-font-1);
	color: var(--ri-color-white);
}

.ri-formulaire .contact-body {
	display: flex;
	align-items: flex-start;
	gap: var(--ri-space-md);
}

.ri-formulaire .contact-avatar {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	overflow: hidden;
}

.ri-formulaire .contact-avatar--empty {
	background-color: var(--ri-color-grey-mid);
}

.ri-formulaire .contact-avatar .contact-photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ri-formulaire .contact-nom {
	margin: 0;
	font: 700 var(--ri-size-text-body) / 1.5 var(--ri-font-1);
	color: var(--ri-color-yellow);
}

.ri-formulaire .contact-poste {
	margin-block: 0 var(--ri-gap-sm);
	font: 400 var(--ri-size-text-body) / 1.7 var(--ri-font-1);
	color: var(--ri-color-white);
}

.ri-formulaire span.contact-link-arrow {
	color: var(--ri-color-white);
}

.ri-formulaire .contact-lien {
	color: var(--ri-color-white);
	transition: opacity var(--ri-transition-base);
}

.ri-formulaire .contact-lien:hover {
	opacity: 0.7;
}

/* ========================================
   Mode sans formulaire
   ======================================== */

.ri-formulaire.is-sans-formulaire .container {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
}

.ri-formulaire.is-sans-formulaire .titre {
	max-width: 70%;
}

.ri-formulaire.is-sans-formulaire .sans-actions {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 40px;
}

.ri-formulaire.is-sans-formulaire .btn-principal {
	display: inline-block;
	padding: 12px 16px;
	background-color: var(--ri-color-yellow);
	font: 700 var(--ri-size-text-body-sm) / 1 var(--ri-font-1);
	color: var(--ri-color-teal);
	text-decoration: none;
	transition: background-color var(--ri-transition-base), color var(--ri-transition-base);
}

.ri-formulaire.is-sans-formulaire .btn-principal:hover {
	background-color: var(--ri-color-teal);
	color: var(--ri-color-grey-mid);
}

@media (max-width: 782px) {

	.ri-formulaire.is-sans-formulaire .container {
		grid-template-columns: 1fr;
	}

	.ri-formulaire.is-sans-formulaire .sans-actions {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--ri-space-md);
	}
}

/* ========================================
   Colonne formulaire — styles Gravity Forms
   ======================================== */

.ri-formulaire .gform_wrapper,
.ri-formulaire .gform_wrapper form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ri-formulaire .gform_wrapper > style,
.ri-formulaire .gform_anchor,
.ri-formulaire .gform_heading {
	display: none;
}

.ri-formulaire .gform_fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ri-formulaire .gfield {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: none;
	min-width: 0;
}

.ri-formulaire .gfield--width-full,
.ri-formulaire .gfield--type-name {
	grid-column: 1 / -1;
}

.ri-formulaire .gform-grid-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.ri-formulaire .gform-grid-col {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.ri-formulaire .gfield_sublabel {
	font: 400 13px/1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
}

.ri-formulaire .gform-field-label,
.ri-formulaire .gfield_label {
	font: 400 var(--ri-size-text-body-sm) / 1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
	margin: 0;
}

.ri-formulaire .gform-field-label--type-sub {
	font: 400 var(--ri-size-text-body-sm) / 1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
}

.ri-formulaire .hidden_label > .gfield_label,
.ri-formulaire .hidden_label > .gfield_label_before_complex {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ri-formulaire .gfield_required {
	color: var(--ri-color-teal);
}

.ri-formulaire .gfield--type-name .gform-grid-col .gfield_label::after {
	content: " *";
}

.ri-formulaire .ginput_container input,
.ri-formulaire .ginput_container select,
.ri-formulaire .ginput_container textarea {
	width: 100%;
	padding: 12px 24px;
	background: var(--ri-color-white);
	border: none;
	border-radius: 0;
	outline: 1px solid rgba(0, 0, 0, 0.1);
	font: 400 var(--ri-size-text-body) / 1.5 var(--ri-font-1);
	color: var(--ri-color-teal);
	appearance: none;
	box-sizing: border-box;
}

.ri-formulaire .ginput_container textarea {
	min-height: 160px;
	resize: vertical;
}

.ri-formulaire .ginput_container input:not(:placeholder-shown),
.ri-formulaire .ginput_container textarea:not(:placeholder-shown) {
	font-weight: 700;
}

.ri-formulaire .ginput_container input::placeholder,
.ri-formulaire .ginput_container textarea::placeholder {
	color: var(--ri-color-grey);
	font-weight: 400;
}

.ri-formulaire .ginput_container select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23214B4D' stroke-width='2' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 24px center;
	padding-right: 54px;
}

.ri-formulaire .gform_footer,
.ri-formulaire .gform-footer,
.ri-formulaire .gform_page_footer {
	display: flex;
	justify-content: flex-end;
	margin: 0;
	padding: 0;
}

.ri-formulaire .gform_button {
	padding: 12px 16px;
	border: none;
	font: 700 var(--ri-size-text-body-sm) / 1 var(--ri-font-1);
	color: var(--ri-color-teal);
	cursor: pointer;
	background-image: linear-gradient(to right, var(--ri-color-teal) 50%, var(--ri-color-yellow) 50%);
	background-size: 200% 100%;
	background-position: right center;
	transition: background-position 0.6s ease, color 0.6s ease;
}

.ri-formulaire .gform_button:hover {
	background-position: left center;
	color: var(--ri-color-grey-mid);
}

.ri-formulaire .gform_button:active {
	background-position: left center;
	color: var(--ri-color-grey-mid);
}

/* ========================================
   Validation
   ======================================== */

.ri-formulaire .gfield_validation_message,
.ri-formulaire .validation_message {
	font: 400 12px/1.4 var(--ri-font-1);
	color: #c0392b;
	margin-top: 4px;
}

/* ========================================
   Responsive
   ======================================== */

@media (max-width: 1200px) {

	.ri-formulaire .container,
	.ri-formulaire.has-contact .bottom {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 782px) {

	.ri-formulaire .gform_fields,
	.ri-formulaire .gform-grid-row {
		grid-template-columns: 1fr;
	}

	.ri-formulaire .contact-body {
		flex-direction: column;
		gap: var(--ri-gap-sm);
	}

	.ri-formulaire .contact-avatar {
		width: 73px;
		height: 73px;
	}

	.ri-formulaire .contact-card {
		padding: var(--ri-space-sm);
	}

	.ri-formulaire .ginput_container input,
	.ri-formulaire .ginput_container select,
	.ri-formulaire .ginput_container textarea {
		padding: 12px var(--ri-space-sm);
	}

	.ri-formulaire .contact-poste {
		margin-bottom: 24px;
	}
}

/* ========================================
   Placeholder éditeur
   ======================================== */

.ri-formulaire.is-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	padding: var(--ri-space-lg);
	background-color: var(--ri-color-grey-soft);
	border: 2px dashed var(--ri-color-teal);
	text-align: center;
	color: var(--ri-color-teal);
}

/* ========================================
   Erreur
   ======================================== */

h2.gform_submission_error.hide_summary {
	margin-top: 0;
}
