/* Immosylva – Formulaires (mise en forme des formulaires Contact Form 7) */
/* Formulaires ----------------------------------------------------------- */
.ims-form-wrap { width: 100%; }
.ims-form__title { margin-bottom: 8px; }
.ims-form__intro { color: var(--ims-muted, #5d6764); }
.wpcf7 { width: 100%; }
.wpcf7 form.ims-form {
	position: relative;
	padding: clamp(24px, 4vw, 40px);
	background: #fff; border-radius: var(--ims-radius-l, 6px);
	box-shadow: var(--ims-shadow-l, 0 20px 40px rgba(0, 0, 0, .1));
	color: var(--ims-ink, #2a2a2a);
}
.ims-form__required-note { margin: 0 0 20px; font-size: .85rem; color: var(--ims-muted, #5d6764); }
.ims-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.ims-field { grid-column: 1 / -1; min-width: 0; }
.ims-field--half { grid-column: span 1; }
@media (max-width: 600px) { .ims-form__grid { grid-template-columns: 1fr; } .ims-field--half { grid-column: 1 / -1; } }

/* Libellés : le champ est placé dans le libellé, sous son texte */
.ims-form label, .ims-form legend { display: block; padding: 0; font-family: var(--ims-font-title, sans-serif); font-size: .88rem; font-weight: 600; color: var(--ims-ink, #2a2a2a); }
.ims-form > p, .ims-form .ims-form__grid > p { margin: 0 0 16px; }
.ims-form legend { margin-bottom: 6px; }
.ims-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.ims-req { color: #b3261e; }
.ims-form .wpcf7-form-control-wrap { display: block; margin-top: 6px; font-family: var(--ims-font-text, sans-serif); font-weight: 400; }
.ims-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="file"]), .ims-form select, .ims-form textarea {
	width: 100%; min-height: 52px; padding: 12px 16px;
	border: 1px solid #cdd6d2; border-radius: var(--ims-radius-s, 2px); background: #fbfcfb;
	font-family: var(--ims-font-text, sans-serif); font-size: 1rem; font-weight: 400; color: var(--ims-ink, #2a2a2a);
	transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.ims-form select { -webkit-appearance: none; appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23416d57' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.ims-form textarea { min-height: 130px; height: auto; resize: vertical; }
.ims-form input:focus, .ims-form select:focus, .ims-form textarea:focus { outline: none; border-color: var(--ims-primary, #416d57); background-color: #fff; box-shadow: 0 0 0 3px rgba(65, 109, 87, .15); }
.ims-form .wpcf7-not-valid:not(.wpcf7-checkbox):not(.wpcf7-acceptance) { border-color: #b3261e !important; }
.ims-form .wpcf7-not-valid-tip { margin: 6px 0 0; font-size: .85rem; font-weight: 400; color: #b3261e; }
.ims-field__help { display: block; margin: 6px 0 0; font-size: .82rem; font-weight: 400; color: var(--ims-muted, #5d6764); }
.ims-field__help a { color: var(--ims-primary, #416d57); }

/* Cases à cocher aux couleurs du site (coche blanche sur fond de la couleur principale) */
.ims-form input[type="checkbox"] {
	-webkit-appearance: none; appearance: none;
	display: inline-grid; place-content: center; flex-shrink: 0;
	width: 22px; height: 22px; margin: 0;
	border: 1.5px solid #8f9b97; border-radius: var(--ims-radius-s, 2px); background: #fff;
	cursor: pointer; transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.ims-form input[type="checkbox"]::before {
	content: ""; width: 12px; height: 12px; background: #fff;
	clip-path: polygon(14% 44%, 0 59%, 39% 98%, 100% 22%, 86% 8%, 38% 68%);
	transform: scale(0); transition: transform .15s var(--ims-ease, ease);
}
.ims-form input[type="checkbox"]:checked { background: var(--ims-primary, #416d57); border-color: var(--ims-primary, #416d57); }
.ims-form input[type="checkbox"]:checked::before { transform: scale(1); }
.ims-form input[type="checkbox"]:hover { border-color: var(--ims-primary, #416d57); }
.ims-form input[type="checkbox"]:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(65, 109, 87, .25); }
.ims-form .wpcf7-not-valid input[type="checkbox"] { border-color: #b3261e; }
.ims-form .wpcf7-list-item { margin: 0; }
.ims-form .wpcf7-list-item > label { display: flex; align-items: center; gap: 10px; font-family: var(--ims-font-text, sans-serif); font-weight: 400; cursor: pointer; }

/* Consentement RGPD : case alignée sur la première ligne du texte, dans un encadré discret */
.ims-field--consent { padding: 16px 18px; border: 1px solid transparent; border-radius: var(--ims-radius, 4px); background: var(--ims-primary-soft, #edf2ef); }
.ims-field--consent:has(.wpcf7-not-valid) { border-color: #b3261e; background: #fdf3f2; }
.ims-field--consent .wpcf7-form-control-wrap { margin: 0; }
.ims-field--consent .wpcf7-list-item > label {
	display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: 12px; align-items: start;
	font-size: .9rem; line-height: 22px; color: var(--ims-ink, #2a2a2a);
}
.ims-field--consent .ims-field__help, .ims-field--consent .wpcf7-not-valid-tip { margin-left: 34px; }

/* Choix multiples (nature du bien) en étiquettes */
.ims-field--choices .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 10px; }
.ims-field--choices .wpcf7-list-item > label { padding: 10px 16px; border: 1px solid #cdd6d2; border-radius: var(--ims-radius, 4px); background: #fbfcfb; font-size: .92rem; transition: all .2s; }
.ims-field--choices .wpcf7-list-item > label:has(input:checked) { border-color: var(--ims-primary, #416d57); background: var(--ims-primary-soft, #edf2ef); color: var(--ims-primary, #416d57); }
.ims-field--choices input[type="checkbox"] { width: 18px; height: 18px; }
.ims-field--choices input[type="checkbox"]::before { width: 10px; height: 10px; }

/* Pièces jointes : un champ par document, présenté en zone de dépôt */
.ims-field--files .ims-field__help { margin: 0 0 12px; }
.ims-files { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.ims-form input[type="file"] {
	width: 100%; padding: 14px 12px;
	border: 1.5px dashed #b4c1bc; border-radius: var(--ims-radius, 4px); background: #fbfcfb;
	font-family: var(--ims-font-text, sans-serif); font-size: .85rem; font-weight: 400; color: var(--ims-muted, #5d6764);
	cursor: pointer; transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.ims-form input[type="file"]:hover { border-color: var(--ims-primary, #416d57); background: var(--ims-primary-soft, #edf2ef); }
.ims-form input[type="file"]:focus-visible { outline: none; border-color: var(--ims-primary, #416d57); box-shadow: 0 0 0 3px rgba(65, 109, 87, .2); }
.ims-form input[type="file"]::file-selector-button {
	margin-right: 10px; padding: 6px 12px; border: 0; border-radius: var(--ims-radius-s, 2px);
	background: var(--ims-primary, #416d57); color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}

/* Bouton et messages */
.ims-form .ims-form__submit { margin-top: 24px; width: 100%; }
@media (min-width: 700px) { .ims-form .ims-form__submit { width: auto; } }
.ims-form .wpcf7-spinner { vertical-align: middle; margin: 24px 0 0 16px; }
.wpcf7 form.ims-form .wpcf7-response-output { margin: 20px 0 0; padding: 16px 20px; border: 0; border-radius: var(--ims-radius-s, 2px); background: #fdecea; color: #8c1d18; }
.wpcf7 form.ims-form.init .wpcf7-response-output, .wpcf7 form.ims-form.resetting .wpcf7-response-output, .wpcf7 form.ims-form.submitting .wpcf7-response-output { display: none; }

/* Après envoi : seul le message de confirmation reste affiché */
.wpcf7 form.ims-form.sent { background: #fff; }
.wpcf7 form.ims-form.sent > :not(.wpcf7-response-output):not(.hidden-fields-container):not(.screen-reader-response) { display: none; }
.wpcf7 form.ims-form.sent .wpcf7-response-output {
	display: flex; align-items: flex-start; gap: 16px; margin: 0; padding: 0;
	background: none; color: var(--ims-secondary-dark, #284882); font-size: 1.05rem;
}
.wpcf7 form.ims-form.sent .wpcf7-response-output::before {
	content: ""; flex-shrink: 0; width: 28px; height: 28px; background: var(--ims-secondary, #325ca7);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m8 12 3 3 5-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ims-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
