/* ============================================================
   IFS Formulaires — site. Base « Convert Forms » (classes cf-*) reproduite avec des valeurs
   concrètes : le template chenens complète/écrase ces règles (radios du questionnaire,
   bouton, panneau « Votre mélange »).
   ============================================================ */

.convertforms, .convertforms *, .convertforms *::before, .convertforms *::after { box-sizing: border-box; }
.convertforms form { margin: 0; }
.convertforms .cf-form-wrap { width: 100%; }
.convertforms .cf-fields { display: flex; flex-wrap: wrap; margin: -8px; }
.convertforms .cf-control-group { padding: 8px; width: 100%; max-width: 100%; flex-grow: 1; margin: 0; border: 0; min-width: 0; }
.convertforms .cf-one-half { width: 50%; }
.convertforms .cf-one-third { width: 33.333%; }
.convertforms .cf-two-thirds { width: 66.666%; }
.convertforms .cf-one-fourth { width: 25%; }
.convertforms .cf-three-fourths { width: 75%; }
.convertforms .cf-control-input { display: flex; flex-direction: column; gap: 9px; }
.convertforms .cf-control-input-desc { opacity: .85; font-size: .9em; }
.convertforms .cf-label { display: block; margin-bottom: .45em; line-height: 1.3; font-weight: 600; }
.convertforms .cf-label .cf-required-label { color: #c0532c; font-weight: 400; }
.convertforms legend.cf-label { cursor: default; float: none; width: auto; padding: 0; }
.convertforms .cf-input {
	width: 100%; max-width: 100%; font: inherit; font-size: 15px; color: var(--text, #1d3d49);
	background: #fff; border: 1.5px solid var(--border-2, #cfe0e5); border-radius: var(--radius-input, 12px);
	padding: 12px 14px; margin: 0; outline: 0; box-shadow: none; line-height: 1.4;
}
.convertforms .cf-input:focus { border-color: var(--accent, #1799b8); }
.convertforms .cf-input[type="checkbox"], .convertforms .cf-input[type="radio"] { width: auto; padding: 0; border: 0; border-radius: 0; margin: 0; }
.convertforms textarea.cf-input { overflow: auto; resize: vertical; }
.convertforms .cf-select { position: relative; }
.convertforms .cf-select select { width: 100%; appearance: none; -webkit-appearance: none; padding-right: 36px; background: #fff; }
.convertforms .cf-select::after {
	content: ""; position: absolute; right: 16px; top: 0; bottom: 0; margin: auto; width: 0; height: 0;
	border-style: solid; border-width: 6px 6px 0 6px; border-color: #7f9aa3 transparent transparent transparent; pointer-events: none;
}
.convertforms .cf-list { display: flex; flex-direction: column; gap: 4px; }
.convertforms .cf-list-auto-columns { flex-direction: row; flex-wrap: wrap; gap: 18px; }
.convertforms .cf-checkbox-group, .convertforms .cf-radio-group { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
.convertforms .cf-checkbox-group .cf-label, .convertforms .cf-radio-group .cf-label { margin: 0; font-weight: 400; user-select: none; }
.convertforms .cf-checkbox-group input, .convertforms .cf-radio-group input { flex-shrink: 0; }
.convertforms .cf-heading { margin: 0; }
.convertforms .cf-text-center { text-align: center; }
.convertforms .cf-btn {
	display: inline-block; font: inherit; font-size: 16px; font-weight: 800; color: #fff;
	background: var(--accent, #1799b8); border: 0; border-radius: var(--radius-pill, 999px);
	padding: 15px 34px; cursor: pointer; position: relative; line-height: 1.2; transition: background .15s ease, transform .15s ease;
}
.convertforms .cf-btn:hover { background: var(--accent-hover, #127a94); }
.convertforms .cf-btn.is-disabled, .convertforms .cf-btn:disabled { background: #9bb6be; cursor: not-allowed; transform: none; }

/* Réponse (succès / erreur) */
.convertforms .cf-response { display: none; width: 100%; margin-bottom: 20px; padding: 14px 18px; border-radius: var(--radius-sm, 12px); text-align: center; font-size: 15px; line-height: 1.5; }
.convertforms.cf-success .cf-response { display: block; background: var(--green-pale, #eef7e3); border: 1.5px solid #cfe6a8; color: var(--green-text, #3f6d12); font-weight: 600; }
.convertforms.cf-success.cf-success-hideform .cf-fields { display: none !important; }
.convertforms.cf-success.cf-success-hideform .cf-response { margin-bottom: 0; }
.convertforms.cf-error .cf-response { display: block; background: #fdf2ee; border: 1.5px solid #f0c9bb; color: #a5502f; font-weight: 600; }
.convertforms .cf-error-field .cf-input:not([type="radio"]):not([type="checkbox"]) { border-color: #e07a4f; }
.convertforms .cf-error-field > legend.cf-label, .convertforms .cf-error-field .cf-control-label .cf-label { color: #a5502f; }

/* Piège à robots : hors écran, jamais rempli par un humain */
.convertforms .ifs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; padding: 0; }

/* Captcha Joomla (altcha) */
.convertforms .ifs-captcha altcha-widget { display: block; max-width: 100%; }

@media (max-width: 640px) {
	.convertforms .cf-one-half, .convertforms .cf-one-third, .convertforms .cf-two-thirds, .convertforms .cf-one-fourth, .convertforms .cf-three-fourths { width: 100%; }
}

/* Newsletter : accroche en gras à côté de la case, explication en dessous (1.1.0). */
.convertforms .ifs-newsletter .cf-checkbox-group .cf-label strong { font-weight: 700; }
.convertforms .ifs-newsletter .cf-control-input-desc { margin: 4px 0 0 26px; }
