/*
 * Gravity Forms — harmonisation avec (sans theme CSS GF).
 * Sans les feuilles officielles, il faut rétablir certains comportements du plugin
 * (ex. honeypot : classe gform_validation_container, voir basic.min.css / formsmain.css).
 */

/* Honeypot anti-spam — même intention que le CSS Gravity Forms */
.gform_validation_container,
body .gform_wrapper.gravity-theme .gform_body .gform_fields .gfield.gform_validation_container,
body .gform_wrapper.gravity-theme .gform_fields .gfield.gform_validation_container,
body .gform_wrapper.gravity-theme .gform_validation_container,
.gform_legacy_markup_wrapper .gform_validation_container,
body .gform_legacy_markup_wrapper li.gform_validation_container,
body .gform_legacy_markup_wrapper .gform_body ul.gform_fields li.gfield.gform_validation_container,
body .gform_legacy_markup_wrapper ul.gform_fields li.gfield.gform_validation_container,
.gform_wrapper .gfield.gfield--type-honeypot {
	display: none !important;
	position: absolute !important;
	left: -9000px;
}

.gform_wrapper {
	margin: 0;
	max-width: 100%;
}

/*
 * global.css définit body { text-align: center } — rétablir la gauche pour le bloc GF uniquement
 * (sans toucher au titre h3 de la carte, au besoin).
 */
.inovagora-gform-embed,
.gform_wrapper,
.gform_wrapper form,
.gform_body,
.gform_fields,
.gfield {
	text-align: left;
}

.gfield_visibility_hidden {
	display: none;
}

/* Résumé des erreurs (haut de formulaire) — équivalent gravity-theme sans theme.min.css */
.gform_validation_errors {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	margin-block: 0.75rem 1rem;
	padding: 1rem 1rem 1rem 1.25rem;
	border-radius: 5px;
	border: 1px solid rgba(251, 180, 62, 0.65);
	background: rgba(191, 44, 34, 0.18);
	color: var(--ino-danger, #fbb43e);
	text-align: left;
	position: relative;
}

.gform_validation_errors:focus {
	outline: 2px solid var(--ino-danger, #fbb43e);
	outline-offset: 2px;
}

.gform_validation_errors > h2,
.gform_validation_errors > h2.hide_summary {
	margin: 0 0 0.75rem;
	padding: 0;
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--ino-danger, #fbb43e);
}

.gform_validation_errors .gform-icon {
	display: none;
}

.gform_validation_errors > ol {
	margin: 0;
	padding-inline-start: 1.35rem;
	text-align: left;
}

.gform_validation_errors > ol li {
	margin: 0 0 0.5rem;
	color: var(--ino-white, #fff);
	font-size: 0.9rem;
	list-style-type: disc !important;
}

.gform_validation_errors > ol li:last-child {
	margin-bottom: 0;
}

.gform_validation_errors > ol a {
	text-decoration: underline;
	text-underline-offset: 3px;
	font-size: inherit;
}

.gform_validation_errors > ol a:hover,
.gform_validation_errors > ol a:focus {
	color: var(--ino-white, #fff);
}

.gf_submission_limit_message {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--ino-danger, #fbb43e);
}

.gfield_label,
legend.gfield_label {
	text-align: left;
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: 0.3px;
	margin-bottom: 3px;
}

.gfield_required {
	color: #fff;
}

/* GF colle le libellé et l’indicateur (ex. astérisque ou « (nécessaire) ») sans espace */
.gfield_label > .gfield_required,
legend.gfield_label > .gfield_required {
	margin-inline-start: 0.35em;
}

.ginput_container input[type="text"],
.ginput_container input[type="email"],
.ginput_container input[type="tel"],
.ginput_container input[type="number"],
.ginput_container input[type="url"],
.ginput_container select,
.ginput_container textarea {
	border-radius: 5px;
	/* RGAA 3.3 : bordure ≥ 3:1 — 1px plein (une bordure sub-pixel est atténuée au rendu) et opacité ≥ 60 %. */
	border: 1px solid rgba(255, 255, 255, 0.65);
	background: rgba(255, 255, 255, 0.05);
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	color: var(--ino-white, #fff);
	min-height: 44px;
	padding: 4px 12px;
}

fieldset {
	border: 0;
	padding: 0;
}

.ginput_container_checkbox {
	/*
	background: rgba(255, 255, 255, 0.05);
	border: 0.5px solid rgba(255, 255, 255, 0.4);
	border-radius: 5px;
	padding: 4px 12px;
	*/
}

.ginput_container textarea {
	min-height: 100px;
	height: auto;
}

.ginput_container input::placeholder,
.ginput_container textarea::placeholder {
	color: #aac3da;
	font-weight: 400;
}

ul.gform_fields {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gfield {
	margin-bottom: 1rem;
	padding-right: 0;
}

.gform_footer,
.gform-footer {
	padding: 0;
	margin-top: 1rem;
	clear: both;
}

/*
 * Bouton d’envoi : même langage que le static (.btn + .btn),
 * voir assets/css/components.css et sections.css — pas de Bootstrap “primary” sur le static.
 */
.gform_footer input[type="submit"],
.gform_footer button[type="submit"],
.gform_footer .gform_button,
.gform-footer input[type="submit"],
.gform-footer button[type="submit"],
.gform-footer .gform_button,
.gform_page_footer input[type="submit"],
.gform_page_footer button[type="submit"],
.gform_page_footer .gform_button,
.gform-page-footer input[type="submit"],
.gform-page-footer button[type="submit"],
.gform-page-footer .gform_button {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	box-sizing: border-box;
	font-family: var(--ino-font-family, inherit);
	font-size: 18px;
	font-weight: 500;
	margin-bottom: 10px;
	padding: 13px 25px;
	border-radius: 100px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	background: rgba(255, 255, 255, 0.1);
	color: var(--ino-white, #fff);
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	transform: scale(1);
	transition: all 0.75s ease;
}

.gform_footer input[type="submit"]:hover,
.gform_footer input[type="submit"]:focus,
.gform_footer input[type="submit"]:active,
.gform_footer button[type="submit"]:hover,
.gform_footer button[type="submit"]:focus,
.gform_footer button[type="submit"]:active,
.gform_footer .gform_button:hover,
.gform_footer .gform_button:focus,
.gform_footer .gform_button:active,
.gform-footer input[type="submit"]:hover,
.gform-footer input[type="submit"]:focus,
.gform-footer input[type="submit"]:active,
.gform-footer button[type="submit"]:hover,
.gform-footer button[type="submit"]:focus,
.gform-footer button[type="submit"]:active,
.gform-footer .gform_button:hover,
.gform-footer .gform_button:focus,
.gform-footer .gform_button:active,
.gform_page_footer input[type="submit"]:hover,
.gform_page_footer input[type="submit"]:focus,
.gform_page_footer input[type="submit"]:active,
.gform_page_footer button[type="submit"]:hover,
.gform_page_footer button[type="submit"]:focus,
.gform_page_footer button[type="submit"]:active,
.gform_page_footer .gform_button:hover,
.gform_page_footer .gform_button:focus,
.gform_page_footer .gform_button:active,
.gform-page-footer input[type="submit"]:hover,
.gform-page-footer input[type="submit"]:focus,
.gform-page-footer input[type="submit"]:active,
.gform-page-footer button[type="submit"]:hover,
.gform-page-footer button[type="submit"]:focus,
.gform-page-footer button[type="submit"]:active,
.gform-page-footer .gform_button:hover,
.gform-page-footer .gform_button:focus,
.gform-page-footer .gform_button:active {
	transition: all 0.25s ease;
	box-shadow: 0 0 25px 0 rgba(0, 136, 255, 0.6);
	transform: scale(1.05);
}

.gform_ajax_spinner {
	margin-inline-start: 0.5rem;
	vertical-align: middle;
}

/* Descriptions classiques uniquement — pas les messages d’erreur (même classe gfield_description) */
.gfield_description:not(.validation_message):not(.gfield_validation_message) {
	font-size: 0.875rem;
	margin-top: 0.35rem;
	color: #AAC3DA;
    margin-bottom: 8px;
    margin-top: -2px;
}

/* Erreur au niveau champ */
.gfield_error .gfield_label,
.gfield_error legend.gfield_label {
	color: var(--ino-danger, #fbb43e);
}

.validation_message,
.gfield_validation_message {
	box-sizing: border-box;
	display: block !important;
	position: static !important;
	width: 100% !important;
	height: auto !important;
	left: auto !important;
	top: auto !important;
	overflow: visible !important;
	clip: auto !important;
	margin-top: 0.5rem;
	margin-bottom: 0;
	padding: 0.65rem 0.85rem;
	border-radius: 5px;
	border: 1px solid rgba(251, 180, 62, 0.55);
	background: rgba(191, 44, 34, 0.15);
	color: var(--ino-danger, #fbb43e) !important;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
	opacity: 1 !important;
	text-align: left;
}

.validation_message--hidden-on-empty:empty {
	display: none !important;
}

.gfield_error .ginput_container input[type="text"],
.gfield_error .ginput_container input[type="email"],
.gfield_error .ginput_container input[type="tel"],
.gfield_error .ginput_container input[type="number"],
.gfield_error .ginput_container input[type="url"],
.gfield_error .ginput_container select,
.gfield_error .ginput_container textarea {
	border-color: rgba(251, 180, 62, 0.85);
	box-shadow: 0 0 0 1px rgba(251, 180, 62, 0.25);
}

.ginput_container input[aria-invalid="true"],
.ginput_container select[aria-invalid="true"],
.ginput_container textarea[aria-invalid="true"] {
	border-color: rgba(251, 180, 62, 0.85);
	box-shadow: 0 0 0 1px rgba(251, 180, 62, 0.25);
}

/* Confirmation après envoi réussi */
.gform_confirmation_message {
	box-sizing: border-box;
	margin: 0 0 1rem;
	padding: 1rem 1.25rem;
	border-radius: 5px;
	border: 1px solid rgba(192, 210, 61, 0.45);
	background: rgba(192, 210, 61, 0.12);
	color: var(--ino-white, #fff);
	font-size: 0.95rem;
	line-height: 1.45;
	text-align: left;
}


/*
 * Checkbox — même langage que les champs (fond 5 %, bordure 40 %)
 * et halo bleu des .btn / .card au survol et au focus.
 */
.gfield_radio .gchoice,
.gfield_checkbox .gchoice,
.ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	padding-block: 6px;
	label {
		margin-bottom: 0;
	}
}

.gfield_checkbox .gchoice label {
	cursor: pointer;
	line-height: 1.4;
}

.gfield_radio input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
}

.gfield_checkbox input[type="checkbox"],
.ginput_container_consent input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	display: inline-grid;
	place-content: center;
	width: 18px;
	height: 18px;
	margin: 1px 0 0;
	border-radius: 5px;
	border: 1px solid rgba(255, 255, 255, 0.65);
	background: rgba(255, 255, 255, 0.05);
	cursor: pointer;
	transition: all 0.75s ease;
}

/* Coche dessinée en CSS, masquée tant que la case n'est pas cochée */
.gfield_checkbox input[type="checkbox"]::before,
.ginput_container_consent input[type="checkbox"]::before {
	content: "";
	width: 10px;
	height: 6px;
	border-left: 2px solid var(--ino-white, #fff);
	border-bottom: 2px solid var(--ino-white, #fff);
	transform: translateY(-1px) rotate(-45deg) scale(0);
	transition: transform 0.2s ease;
}

.gfield_checkbox input[type="checkbox"]:hover,
.gfield_checkbox input[type="checkbox"]:focus-visible,
.ginput_container_consent input[type="checkbox"]:hover,
.ginput_container_consent input[type="checkbox"]:focus-visible {
	transition: all 0.25s ease;
	border-color: rgba(255, 255, 255, 0.95);
	box-shadow: 0 0 12px 0 rgba(0, 136, 255, 0.6);
	outline: none;
}

.gfield_checkbox input[type="checkbox"]:checked,
.ginput_container_consent input[type="checkbox"]:checked {
	border-color: rgba(0, 136, 255, 0.9);
	background: rgba(0, 136, 255, 0.35);
}

.gfield_checkbox input[type="checkbox"]:checked::before,
.ginput_container_consent input[type="checkbox"]:checked::before {
	transform: translateY(-1px) rotate(-45deg) scale(1);
}

.gfield_error .gfield_checkbox input[type="checkbox"],
.gfield_error .ginput_container_consent input[type="checkbox"] {
	border-color: rgba(251, 180, 62, 0.85);
}

/*
 * File upload — le bouton natif (::file-selector-button) et le bouton
 * « Sélectionner des fichiers » du mode multi-fichiers reprennent .btn.
 */

 .gfield.gfield--type-fileupload {
	margin-bottom: 25px;
 }

.ginput_container_fileupload {
	/*
	 * Le navigateur rogne tout ce qui dépasse d'un <input> (non modifiable via overflow),
	 * y compris le halo du ::file-selector-button : on lui laisse 25px de marge interne
	 * (= flou du box-shadow), compensés par des marges négatives pour ne pas décaler la mise en page.
	 */
	input[type="file"] {
		--file-glow-room: 25px;
		width: calc(100% + 2 * var(--file-glow-room));
		max-width: none;
		box-sizing: border-box;
		margin: calc(-1 * var(--file-glow-room));
		padding: calc(6px + var(--file-glow-room)) var(--file-glow-room) var(--file-glow-room);
		/* 
		border-radius: 5px;
		border: 1px dashed rgba(255, 255, 255, 0.4);
		background: rgba(255, 255, 255, 0.05);
		*/
		color: #aac3da;
		font-size: 0.875rem;
		cursor: pointer;
	}

	input[type="file"]::file-selector-button,
	.gform_button_select_files {
		appearance: none;
		-webkit-appearance: none;
		cursor: pointer;
		margin-right: 12px;
		padding: 8px 20px;
		border-radius: 100px;
		border: 1px solid rgba(255, 255, 255, 0.15);
		background: rgba(255, 255, 255, 0.1);
		color: var(--ino-white, #fff);
		font-family: var(--ino-font-family, inherit);
		font-size: 16px;
		font-weight: 500;
		transform: scale(1);
		transition: all 0.75s ease;
	}

	input[type="file"]:hover::file-selector-button,
	input[type="file"]:focus-visible::file-selector-button,
	.gform_button_select_files:hover,
	.gform_button_select_files:focus-visible {
		transition: all 0.25s ease;
		box-shadow: 0 0 25px 0 rgba(0, 136, 255, 0.6);
		transform: scale(1.05);
	}

	input[type="file"]:focus-visible {
		outline: 2px solid rgba(0, 136, 255, 0.6);
		/* ramène le contour au bord visible, pas au bord de la marge du halo */
		outline-offset: calc(2px - var(--file-glow-room));
	}

	/* Zone de dépôt (mode multi-fichiers) */
	.gform_drop_area {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		padding: 20px;
		/*
		border-radius: 10px;
		border: 1px dashed rgba(255, 255, 255, 0.4);
		background: rgba(255, 255, 255, 0.05);
		*/
		color: #aac3da;
		text-align: center;
		transition: all 0.75s ease;
	}

	.gform_drop_area.hover,
	.gform_drop_area:hover {
		transition: all 0.25s ease;
		border-color: rgba(0, 136, 255, 0.8);
		box-shadow: 0 0 25px 0 rgba(0, 136, 255, 0.35);
	}

	.gform_drop_instructions {
		margin: 0;
	}

	.gfield_description.gform_fileupload_rules {
		display: block;
		margin-top: 2px;
	}
}

/* Fichiers déjà ajoutés (mode multi-fichiers) */
.ginput_preview {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	padding: 6px 12px;
	border-radius: 5px;
	border: 1px solid rgba(255, 255, 255, 0.15);
	background: rgba(255, 255, 255, 0.07);
	font-size: 0.875rem;
}

.ginput_preview .gform_delete_file {
	cursor: pointer;
	border: 0;
	background: none;
	color: #aac3da;
}

.ginput_preview .gform_delete_file:hover,
.ginput_preview .gform_delete_file:focus-visible {
	color: var(--ino-danger, #fbb43e);
}


.gfield_list_group, .gfield_list_header {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	margin-bottom: 8px;
}
.gfield_header_item, .gfield_list_group_item {
	flex-grow: 1;
}
.gfield_header_item--icons, .gfield_list_icons {
	align-items: center;
	display: flex;
	flex: none;
	justify-content: center;
	width: 48px;
}
.gfield_list_icons button {
	background: transparent url(../img/list-add-white.svg);
	border: none;
	font-size: 0;
	height: 16px;
	opacity: .5;
	padding: 0;
	transition: opacity .5s ease-out;
	width: 16px;
}
.gfield_list_icons button.delete_list_item {
	background-image: url(../img/list-remove-white.svg);
	margin-left: 5px;
}

.ginput_complex.ginput_container.gform-grid-row {
	gap: 1rem;
    display: flex;
    flex-direction: column;
}

.gform_title {
	margin-bottom: 0.8rem;
}

.nova-rdv-booking-time-picker__calendar .rdp-chevron {
	fill: var(--ino-white);
}

.rdp-today:not(.rdp-outside),
.nova-rdv-booking-time-picker__back,
.nova-rdv-booking-time-picker__duration,
.nova-rdv-booking-time-picker__back:hover {
	color: var(--ino-white);
}

.nova-rdv-booking-time-picker__back:hover {
	text-decoration: underline;
	text-underline-offset: 6px;
}

.nova-rdv-booking-time-picker__slot,
.nova-rdv-booking-time-picker__skeleton-slot {
	appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    box-sizing: border-box;
    font-family: var(--ino-font-family, inherit);
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 10px;
    padding: 10px 0;
    border-radius: 100px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.1);
    color: var(--ino-white, #fff);
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    transform: scale(1);
    transition: all 0.75s ease;
}

.nova-rdv-booking-time-picker__slot:hover,
.nova-rdv-booking-time-picker__slot:focus-visible {
	transition: all 0.25s ease;
	border: 1px solid rgba(255, 255, 255, 0.15)!important;
    background: rgba(255, 255, 255, 0.1)!important;
    box-shadow: 0 0 25px 0 rgba(0, 136, 255, 0.6)!important;
    transform: scale(1.05)!important;
}

.nova-rdv-booking-time-picker__slot.nova-rdv-booking-time-picker__slot--selected {
	border: 1px solid rgba(255, 255, 255, 0.9);
}

.rdp-day.nova-rdv-day--available .rdp-day_button {
	border: 1px solid rgba(255, 255, 255, 0.9);
}