/* Formulaires (SitesPrestige) : la forme des pièces que l'extension ajoute au formulaire d'Elementor (champs côte à
   côte, sous-étiquette, compteur, choix, zone de dépôt, intertitre, texte libre, drapeau). Les couleurs et la police
   viennent du site, par les variables --frm-… de formulaires-site.css, chargée après. Seulement sur un formulaire qui
   porte data-frm. */

.elementor-form[data-frm] {
	--frm-police: inherit;
	--frm-titre-police: inherit;
	--frm-encre: #1A1A1A;
	--frm-doux: rgba(26, 26, 26, .6);
	--frm-accent: #1A1A1A;
	--frm-erreur: #B32D2E;
	--frm-fond-champ: #FFFFFF;
	--frm-bordure: rgba(26, 26, 26, .25);
	--frm-trait: 1px;
	--frm-trait-choix: 1px;
	--frm-rayon: 0;
	--frm-etiquette-h: 25px;
	--frm-gouttiere: 20px;
}
.elementor-form[data-frm] .frm-cache { display: none !important; }

/* Deux ou trois champs sur une ligne, selon la largeur réglée dans Elementor, et en pile au téléphone si on le règle. */
.elementor-form[data-frm] .elementor-form-fields-wrapper { display: flex; flex-wrap: wrap; column-gap: var(--frm-gouttiere); }
.elementor-form[data-frm] .elementor-field-group.elementor-col-50 { width: calc(50% - var(--frm-gouttiere) / 2); }
.elementor-form[data-frm] .elementor-field-group.elementor-col-33 { width: calc(33.333% - var(--frm-gouttiere) * 2 / 3); }
.elementor-form[data-frm] .elementor-field-group.elementor-col-66 { width: calc(66.666% - var(--frm-gouttiere) / 3); }
/* un champ sans étiquette à côté d'un autre garde la place de l'étiquette, pour que les deux champs s'alignent */
.elementor-form[data-frm] .frm-sans-etiquette::before { content: ""; display: block; flex: 0 0 100%; width: 100%; height: var(--frm-etiquette-h); }
@media (max-width: 1024px) {
	.elementor-form[data-frm] .elementor-field-group.elementor-md-100 { width: 100%; }
	.elementor-form[data-frm] .elementor-field-group.elementor-md-50 { width: calc(50% - var(--frm-gouttiere) / 2); }
	.elementor-form[data-frm] .frm-sans-etiquette.elementor-md-100::before { display: none; }
}
/* au téléphone, deux champs côte à côte passent l'un sous l'autre, sauf si la largeur du téléphone est réglée */
@media (max-width: 600px) {
	.elementor-form[data-frm] .elementor-field-group:is(.elementor-col-50, .elementor-col-33, .elementor-col-66):not([class*="elementor-sm-"]) { width: 100%; }
	.elementor-form[data-frm] .frm-sans-etiquette:not([class*="elementor-sm-"])::before { display: none; }
}
@media (max-width: 767px) {
	.elementor-form[data-frm] .elementor-field-group.elementor-sm-100 { width: 100%; }
	.elementor-form[data-frm] .elementor-field-group.elementor-sm-50 { width: calc(50% - var(--frm-gouttiere) / 2); }
	.elementor-form[data-frm] .frm-sans-etiquette.elementor-sm-100::before { display: none; }
}

/* Sous le champ : la sous-étiquette et le compteur de mots, à la taille du texte d'aide. */
.elementor-form[data-frm] .frm-sous-etiquette,
.elementor-form[data-frm] .frm-compteur { margin: 5px 0 0; font-family: var(--frm-police); font-size: 12px; line-height: 16px; letter-spacing: .02em; color: var(--frm-doux); }

/* Les choix : cases, boutons ronds et accord, sur une, deux ou trois colonnes. */
.elementor-form[data-frm] .elementor-field-subgroup { display: flex; flex-direction: column; gap: 10px; }
.elementor-form[data-frm] .elementor-field-subgroup.elementor-subgroup-inline { flex-direction: row; flex-wrap: wrap; gap: 10px 24px; }
.elementor-form[data-frm] .frm-colonnes-2 .elementor-field-subgroup,
.elementor-form[data-frm] .frm-colonnes-3 .elementor-field-subgroup { display: grid; gap: 10px 24px; }
.elementor-form[data-frm] .frm-colonnes-2 .elementor-field-subgroup { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.elementor-form[data-frm] .frm-colonnes-3 .elementor-field-subgroup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 600px) {
	.elementor-form[data-frm] .frm-colonnes-2 .elementor-field-subgroup,
	.elementor-form[data-frm] .frm-colonnes-3 .elementor-field-subgroup { grid-template-columns: 1fr; }
}
.elementor-form[data-frm] .elementor-field-subgroup .elementor-field-option { display: flex; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 0 !important; }
.elementor-form[data-frm] .elementor-field-option input[type=checkbox],
.elementor-form[data-frm] .elementor-field-option input[type=radio] { -webkit-appearance: none; appearance: none; flex: none; position: relative; width: 18px; height: 18px; margin: 1px 0 0 !important; padding: 0; background: var(--frm-fond-champ); border: var(--frm-trait-choix) solid var(--frm-bordure); border-radius: var(--frm-rayon); cursor: pointer; transition: background-color .15s, border-color .15s; }
.elementor-form[data-frm] .elementor-field-option input[type=radio] { border-radius: 50%; }
.elementor-form[data-frm] .elementor-field-option input:checked { background: var(--frm-accent); border-color: var(--frm-accent); }
.elementor-form[data-frm] .elementor-field-option input[type=radio]:checked { box-shadow: inset 0 0 0 3px var(--frm-fond-champ); }
.elementor-form[data-frm] .elementor-field-option input[type=checkbox]:checked::after { content: ""; position: absolute; inset: 2px; background: var(--frm-fond-champ); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.2 4.3 8.5 11 1.5' fill='none' stroke='black' stroke-width='2'/%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 12 10'%3E%3Cpath d='M1 5.2 4.3 8.5 11 1.5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat; }
.elementor-form[data-frm] .elementor-field-option input:focus-visible { outline: 2px solid var(--frm-accent); outline-offset: 2px; }
.elementor-form[data-frm] .elementor-field-option label { margin: 0; padding: 0; font-family: var(--frm-police); font-size: 15px; font-weight: 400; line-height: 20px; letter-spacing: normal; text-transform: none; color: var(--frm-encre); cursor: pointer; }

/* La liste déroulante : la flèche à la couleur du site. */
.elementor-form[data-frm] .elementor-select-wrapper .select-caret-down-wrapper { right: 16px; font-size: 10px; line-height: 1; color: var(--frm-accent); fill: var(--frm-accent); }
.elementor-form[data-frm] .elementor-select-wrapper .select-caret-down-wrapper svg { width: 1em; height: 1em; }
.elementor-form[data-frm] .elementor-select-wrapper select { padding-right: 42px !important; cursor: pointer; }

/* La zone de dépôt : le vrai champ la couvre, un clic ou un dépôt l'ouvre. */
.elementor-form[data-frm] .frm-depot { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 20px; text-align: center; background: var(--frm-fond-champ); border: var(--frm-trait-choix) dashed var(--frm-bordure); border-radius: var(--frm-rayon); font-family: var(--frm-police); color: var(--frm-encre); cursor: pointer; transition: border-color .2s; }
.elementor-form[data-frm] .frm-depot:hover,
.elementor-form[data-frm] .frm-depot.frm-depot-survol { border-color: var(--frm-accent); }
.elementor-form[data-frm] .frm-depot.frm-invalide { border-color: var(--frm-erreur); }
.elementor-form[data-frm] .frm-depot input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.elementor-form[data-frm] .frm-depot-icone { width: 26px; height: 26px; background: var(--frm-accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 6.5 8.5l1.4 1.4L11 6.8V15h2V6.8l3.1 3.1 1.4-1.4L12 3zM4 14v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5h-2v5H6v-5H4z'/%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'%3E%3Cpath d='M12 3 6.5 8.5l1.4 1.4L11 6.8V15h2V6.8l3.1 3.1 1.4-1.4L12 3zM4 14v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5h-2v5H6v-5H4z'/%3E%3C/svg%3E") center / contain no-repeat; }
.elementor-form[data-frm] .frm-depot-texte { font-size: 15px; line-height: 20px; }
.elementor-form[data-frm] .frm-depot-lien { color: var(--frm-accent); text-decoration: underline; text-underline-offset: 3px; }
.elementor-form[data-frm] .frm-depot-limite { font-size: 12px; line-height: 16px; letter-spacing: .02em; color: var(--frm-doux); }
.elementor-form[data-frm] .frm-depot-liste { display: flex; flex-direction: column; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.elementor-form[data-frm] .frm-depot-liste:empty { display: none; }
.elementor-form[data-frm] .frm-depot-liste li { display: flex; align-items: center; gap: 12px; margin: 0; padding: 8px 12px; background: var(--frm-fond-champ); border: 1px solid var(--frm-bordure); font: 400 14px/18px var(--frm-police); color: var(--frm-encre); }
.elementor-form[data-frm] .frm-depot-nom { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.elementor-form[data-frm] .frm-depot-poids { margin-left: auto; flex: none; color: var(--frm-doux); }
.elementor-form[data-frm] .frm-depot-retirer { flex: none; width: auto; height: auto; min-height: 0 !important; margin: 0; padding: 0 4px !important; background: none !important; border: 0 !important; border-radius: 0; box-shadow: none !important; font-size: 20px; line-height: 1; color: var(--frm-doux) !important; cursor: pointer; }
.elementor-form[data-frm] .frm-depot-retirer:hover { color: var(--frm-erreur) !important; }

/* Intertitre et texte libre : ils ne recueillent rien. */
.elementor-form[data-frm] .elementor-field-type-frm_intertitre .frm-intertitre { width: 100%; padding-top: 10px; }
.elementor-form[data-frm] .frm-intertitre-titre { margin: 0; font-family: var(--frm-titre-police); font-size: 22px; font-weight: 400; line-height: 1.25; letter-spacing: normal; text-transform: none; color: var(--frm-encre); }
.elementor-form[data-frm] .frm-intertitre-texte { margin: 6px 0 0; font-family: var(--frm-police); font-size: 13px; line-height: 1.5; color: var(--frm-doux); }
.elementor-form[data-frm] .frm-texte { width: 100%; font-family: var(--frm-police); font-size: 15px; line-height: 1.6; color: var(--frm-encre); }
.elementor-form[data-frm] .frm-texte p { margin: 0 0 10px; }
.elementor-form[data-frm] .frm-texte p:last-child { margin-bottom: 0; }
.elementor-form[data-frm] .frm-texte a { color: var(--frm-accent); text-decoration: underline; text-underline-offset: 3px; }

/* Le drapeau du Canada devant le téléphone, sans bibliothèque. */
.elementor-form[data-frm] .elementor-field-group input.frm-drapeau.elementor-field.elementor-field-textual { padding-left: 46px; background-image: url("data:image/png;base64,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") !important; background-repeat: no-repeat !important; background-size: 20px 15px !important; background-position: 14px center !important; }
