/* ==========================================================================
   choisir-retraite — Socle visuel des formulaires Contact Form 7
   --------------------------------------------------------------------------
   Remplace wpforms-full.min.css (plugin WPForms supprimé).

   Les classes `wpforms-*` sont conservées VOLONTAIREMENT dans le markup CF7 :
   les 122 règles déjà présentes dans main.css (`.phero-form .wpforms-...`,
   `.swidget .wpforms-...`, `.lr-form .wpforms-...`) continuent donc de
   s'appliquer telles quelles. Ne pas renommer ces classes.

   Charger ce fichier APRÈS main.css.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Conteneur
   -------------------------------------------------------------------------- */

.cr-form {
	/* Largeur des champs « medium ». WPForms imposait 60 % sur desktop.
	   Passer à 100% si les champs paraissent trop étroits dans la colonne. */
	--cr-field-medium: 60%;
	position: relative;
}

.cr-form *,
.cr-form *::before,
.cr-form *::after { box-sizing: border-box; }

/* CF7 injecte ses champs cachés dans un fieldset : le neutraliser. */
.cr-form .hidden-fields-container,
.wpcf7-form .hidden-fields-container {
	margin: 0;
	padding: 0;
	border: 0;
}

/* wpautop peut laisser des <p> vides : les empêcher de créer des lignes
   fantômes ou des cellules de grille parasites. */
.cr-form p:empty { display: none; }

/* --------------------------------------------------------------------------
   2. Champs et libellés
   -------------------------------------------------------------------------- */

.cr-form .wpforms-field {
	padding: 10px 1px;
	clear: both;
}

.cr-form .wpforms-field-label {
	display: block;
	float: none;
	margin: 0 0 4px;
	padding: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	word-wrap: break-word;
}

.cr-form .wpforms-field-label-inline {
	display: inline;
	vertical-align: baseline;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.3;
	word-break: break-word;
}

.cr-form .wpforms-required-label {
	color: #f00;
	font-weight: 400;
}

.cr-form .wpforms-field-sublabel {
	display: block;
	float: none;
	margin: 4px 0 0;
	padding: 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
}

.cr-form .wpforms-field-sublabel.before { margin: 0 0 4px; }

/* main.css ne cible que text/email/tel : on complète pour number, url et date,
   sinon ces champs gardent leur largeur native (~20 caractères). */
.cr-form input[type="text"],
.cr-form input[type="email"],
.cr-form input[type="tel"],
.cr-form input[type="number"],
.cr-form input[type="url"],
.cr-form input[type="date"],
.cr-form select,
.cr-form textarea { width: 100%; }

/* Largeur héritée de WPForms */
.cr-form input.wpforms-field-medium,
.cr-form select.wpforms-field-medium,
.cr-form .wpforms-field-row.wpforms-field-medium { max-width: var(--cr-field-medium); }

.cr-form input.wpforms-field-large,
.cr-form select.wpforms-field-large,
.cr-form .wpforms-field-row.wpforms-field-large { max-width: 100%; }

/* Masquage accessible (les radios des choix-images) */
.cr-form .wpforms-screen-reader-element {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	word-wrap: normal !important;
}

/* --------------------------------------------------------------------------
   3. Ligne à deux colonnes (Prénom / Nom)
   -------------------------------------------------------------------------- */

.cr-form .wpforms-field-row {
	display: flex;
	gap: 20px;
	margin-bottom: 8px;
	position: relative;
}

.cr-form .wpforms-field .wpforms-field-row:last-of-type { margin-bottom: 0; }

.cr-form .wpforms-field-row-block { flex: 1 1 0; min-width: 0; }

.cr-form .wpforms-field-row .wpcf7-form-control-wrap { display: block; }

.cr-form .wpforms-field-row input { width: 100%; }

/* --------------------------------------------------------------------------
   4. Listes de choix (radios et cases à cocher)
   -------------------------------------------------------------------------- */

/* CF7 rend ses groupes de choix dans un <span> inline : le repasser en bloc
   une fois que cr-forms.js y a injecté la liste. */
.cr-form .wpcf7-form-control.cr-list { display: block; }

.cr-form .wpforms-field-radio ul,
.cr-form .wpforms-field-checkbox ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cr-form .wpforms-field-radio li,
.cr-form .wpforms-field-checkbox li { margin: 0 0 5px; }

.cr-form .wpforms-field-radio input[type="radio"],
.cr-form .wpforms-field-checkbox input[type="checkbox"] {
	margin-right: 8px;
	accent-color: var(--orange, #de6a16);
}

/* Deux colonnes (repris de wpforms-list-2-columns) */
.cr-form .wpforms-list-2-columns ul {
	display: flex;
	flex-wrap: wrap;
	margin-left: 0;
}

.cr-form .wpforms-list-2-columns ul > li {
	width: 50%;
	display: block;
	padding-right: 26px;
}

/* --------------------------------------------------------------------------
   5. Choix par images
   -------------------------------------------------------------------------- */

.cr-form ul.wpforms-image-choices { margin: 0; padding: 0; list-style: none; }

.cr-form ul.wpforms-image-choices label { cursor: pointer; position: relative; }

.cr-form ul.wpforms-image-choices-modern img {
	display: inline-block;
	margin: 0 auto;
	max-width: 100%;
}

.cr-form ul.wpforms-image-choices-modern label {
	display: block;
	margin: 0 auto;
	padding: 20px 20px 18px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	text-align: center;
	transition: all .5s;
}

.cr-form ul.wpforms-image-choices-modern label:hover,
.cr-form ul.wpforms-image-choices-modern label:focus { border-color: #ddd; }

.cr-form ul.wpforms-image-choices-modern .wpforms-selected label {
	box-shadow: 0 0 20px 0 rgba(0, 0, 0, .1);
}

.cr-form ul.wpforms-image-choices-modern .wpforms-image-choices-image {
	display: block;
	position: relative;
}

.cr-form ul.wpforms-image-choices-modern .wpforms-image-choices-label {
	display: block;
	margin-top: 12px;
}

.cr-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-label {
	font-weight: 700;
}

/* Pastille de validation ✔ affichée sur le choix sélectionné */
.cr-form ul.wpforms-image-choices-modern .wpforms-image-choices-image::after {
	content: "\2714";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 32px;
	height: 32px;
	margin: -16px 0 0 -16px;
	border-radius: 50%;
	background: green;
	color: #fff;
	font-size: 22px;
	line-height: 32px;
	opacity: 0;
	transition: all .5s;
}

.cr-form ul.wpforms-image-choices-modern .wpforms-selected .wpforms-image-choices-image::after {
	opacity: 1;
}

/* Accessibilité clavier : la carte reçoit le focus, pas l'input masqué. */
.cr-form .wpforms-image-choices-item > label:focus-visible {
	outline: 2px solid var(--logo-orange, #f7941d);
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   6. Curseur (slider) d'âge
   -------------------------------------------------------------------------- */

.cr-form .wpforms-field-number-slider input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	max-width: var(--cr-field-medium);
	height: 10px;
	margin: 20px 0 5px;
	padding: 0;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 5px;
	outline: none;
}

.cr-form .wpforms-field-number-slider input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 17px;
	height: 17px;
	border: 0;
	border-radius: 100%;
	background: var(--orange, #de6a16);
	cursor: pointer;
}

.cr-form .wpforms-field-number-slider input[type="range"]::-moz-range-thumb {
	width: 17px;
	height: 17px;
	border: 0;
	border-radius: 100%;
	background: var(--orange, #de6a16);
	cursor: pointer;
}

.cr-form .wpforms-field-number-slider-hint { font-size: 13px; }

/* --------------------------------------------------------------------------
   7. Indicateur de progression
   -------------------------------------------------------------------------- */

.cr-form .wpforms-page-indicator {
	margin: 0 0 20px;
	overflow: hidden;
	font-size: 18px;
}

.cr-form .wpforms-page-indicator-page-progress-wrap {
	display: block;
	position: relative;
	width: 100%;
	height: 18px;
	margin: 5px 0 0;
	border-radius: 10px;
	background-color: #ddd;
	overflow: hidden;
}

.cr-form .wpforms-page-indicator-page-progress {
	position: absolute;
	top: 0;
	left: 0;
	height: 18px;
	transition: width .3s ease;
}

/* --------------------------------------------------------------------------
   8. Boutons
   -------------------------------------------------------------------------- */

.cr-form .wpforms-clear::before,
.cr-form .wpforms-clear::after { content: ""; display: table; }
.cr-form .wpforms-clear::after { clear: both; }

.cr-form .wpforms-pagebreak-left { text-align: left; }
.cr-form .wpforms-pagebreak-right { text-align: right; }
.cr-form .wpforms-pagebreak-center { text-align: center; }

.cr-form .wpforms-pagebreak-left .wpforms-page-button { margin: 0 10px 0 0; }
.cr-form .wpforms-pagebreak-right .wpforms-page-button { margin: 0 0 0 10px; }

.cr-form .wpforms-page-button {
	min-width: 90px;
	font-size: .9em;
	font-weight: 400;
	font-family: inherit;
	text-align: center;
	cursor: pointer;
}

.cr-form .wpforms-page-button:disabled,
.cr-form input[type="submit"]:disabled {
	cursor: default;
	opacity: .5;
}

.cr-form .wpforms-submit-container {
	position: relative;
	clear: both;
	padding: 10px 0 0;
}

/* Indicateur d'envoi natif CF7 */
.cr-form .wpcf7-spinner { margin: 0 0 0 .5em; vertical-align: middle; }

/* --------------------------------------------------------------------------
   9. Pagination — affichage des étapes
   -------------------------------------------------------------------------- */

.cr-form .wpforms-page { display: none; }
.cr-form .wpforms-page.is-active { display: block; }

/* Le bouton d'envoi n'apparaît que sur la dernière étape. */
.cr-form .wpforms-submit-container { display: none; }
.cr-form.cr-on-last .wpforms-submit-container { display: block; }

/* --------------------------------------------------------------------------
   10. Messages de validation Contact Form 7
   -------------------------------------------------------------------------- */

.cr-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.35;
	color: #ffb4a2;
}

.cr-form input.wpcf7-not-valid,
.cr-form select.wpcf7-not-valid,
.cr-form textarea.wpcf7-not-valid {
	border-color: #e2401c !important;
}

/* Pas de cadre vide avant envoi. */
.wpcf7-form.init .wpcf7-response-output,
.wpcf7-form.resetting .wpcf7-response-output,
.wpcf7-form.submitting .wpcf7-response-output { display: none; }

.wpcf7-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 14px;
	border: 1px solid currentColor;
	border-radius: 8px;
	font-size: 14.5px;
	line-height: 1.45;
}

.wpcf7-form.sent .wpcf7-response-output { color: #6cc04a; }
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.payment-required .wpcf7-response-output { color: #ffb020; }
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output { color: #e2401c; }

/* --------------------------------------------------------------------------
   11. Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 600px) {
	.cr-form { --cr-field-medium: 100%; }

	.cr-form .wpforms-field-row { flex-direction: column; gap: 8px; }

	.cr-form .wpforms-list-2-columns ul > li {
		width: 100%;
		padding-right: 0;
	}

	.cr-form .wpforms-page-indicator { font-size: 16px; }

	.cr-form .wpforms-pagebreak-right,
	.cr-form .wpforms-pagebreak-left { display: flex; gap: 10px; }

	.cr-form .wpforms-page-button {
		flex: 1 1 0;
		margin: 0 !important;
	}
}
