/**
 * Thème Gravity Forms — Maison Marion.
 *
 * Le thème CSS par défaut de Gravity Forms (orbital/foundation) est DÉSACTIVÉ
 * (voir inc/gravityforms.php) : on reprend 100 % la main pour coller à la
 * maquette Figma (inputs soulignés, sans boîte ni ombre).
 *
 * NON layered volontairement : la CSS de GF n'est pas dans nos @layer et les
 * styles hors-layer priment ; on reste donc hors-layer.
 *
 * La grille (2 colonnes) s'appuie sur les classes que GF pose sur chaque champ
 * selon son réglage de largeur (« gfield--width-half », etc.).
 */

/* =============================== Grille ================================= */
.gform_wrapper .gform_fields {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	column-gap: var(--mm-space-list); /* 24px */
	row-gap: var(--mm-space-list);
	margin: 0;
	padding: 0;
	list-style: none;
}
.gform_wrapper .gfield { grid-column: 1 / -1; min-width: 0; } /* pleine largeur par défaut */
.gform_wrapper .gfield--width-quarter          { grid-column: span 3; }
.gform_wrapper .gfield--width-third            { grid-column: span 4; }
.gform_wrapper .gfield--width-five-twelfths    { grid-column: span 5; }
.gform_wrapper .gfield--width-half             { grid-column: span 6; }
.gform_wrapper .gfield--width-seven-twelfths   { grid-column: span 7; }
.gform_wrapper .gfield--width-two-thirds       { grid-column: span 8; }
.gform_wrapper .gfield--width-three-quarter    { grid-column: span 9; }
.gform_wrapper .gfield--width-five-sixths      { grid-column: span 10; }
.gform_wrapper .gfield--width-eleven-twelfths  { grid-column: span 11; }
.gform_wrapper .gfield--width-full             { grid-column: 1 / -1; }

/* Mobile : tout en pleine largeur. */
@media (max-width: 48rem) {
	.gform_wrapper .gfield { grid-column: 1 / -1; }
}

/* ============================== Champ ================================== */
.gform_wrapper .gfield { display: flex; flex-direction: column; }

.gform_wrapper .gfield_label {
	display: block;
	margin: 0 0 var(--mm-space-s); /* 12px sous le label */
	font-family: var(--mm-font-body);
	font-weight: 500;
	font-size: var(--mm-fs-p); /* 16px */
	line-height: 1.2;
	color: var(--mm-neutral-900);
}
/* Convention inversée : pas de marque sur les obligatoires (astérisque masqué,
   obligation portée par aria-required), « (optionnel) » sur les autres. */
.gform_wrapper .gfield_required { display: none; }
.gform_wrapper .mm-field-optional { font-weight: 400; color: var(--mm-neutral-700); }

/* Légende « * indique les champs nécessaires » : inutile ici → masquée
   (mais laissée dans le DOM pour ne rien casser côté GF). */
.gform_wrapper .gform_required_legend { display: none; }

/* ============================ Contrôles ================================ */
.gform_wrapper .ginput_container { width: 100%; }

.gform_wrapper .ginput_container input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.gform_wrapper .ginput_container textarea,
.gform_wrapper .ginput_container select {
	width: 100%;
	margin: 0;
	font-family: var(--mm-font-body);
	font-size: var(--mm-fs-p); /* 16px */
	line-height: 1.4;
	color: var(--mm-neutral-950);
	background-color: transparent;
	border: 0;
	border-bottom: 1px solid var(--mm-neutral-900);
	border-radius: 0;
	padding: var(--mm-space-2xs) var(--mm-space-s); /* 8 / 12 */
	box-shadow: none;
	appearance: none;
	-webkit-appearance: none;
}
.gform_wrapper .ginput_container textarea { min-height: 6rem; resize: vertical; } /* 96px */

/* Placeholder & valeur d'exemple : gris moyen (cf. maquette). */
.gform_wrapper .ginput_container input::placeholder,
.gform_wrapper .ginput_container textarea::placeholder { color: var(--mm-neutral-700); opacity: 1; }

/* Select : chevron custom à droite (le natif est masqué par appearance:none). */
.gform_wrapper .ginput_container select {
	padding-inline-end: var(--mm-space-list);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%231e1e1e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--mm-space-2xs) center;
}

/* Focus visible (RGAA) : anneau net en plus du changement de bordure. */
.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container textarea:focus,
.gform_wrapper .ginput_container select:focus {
	outline: none;
	border-bottom-color: var(--mm-color-primary-strong);
}
.gform_wrapper .ginput_container input:focus-visible,
.gform_wrapper .ginput_container textarea:focus-visible,
.gform_wrapper .ginput_container select:focus-visible {
	outline: var(--mm-focus-width) solid var(--mm-color-focus);
	outline-offset: 2px;
}

/* ============================== Aides ================================== */
/* Description : petite, alignée à droite, gris foncé lisible. */
.gform_wrapper .gfield_description {
	margin: var(--mm-space-micro) 0 0; /* 4px au-dessus */
	padding: 0;
	font-family: var(--mm-font-body);
	font-size: 0.625rem; /* 10px (maquette) */
	line-height: 1.3;
	text-align: right;
	color: var(--mm-neutral-700);
}

/* Consentement / cases : label à droite de la case, aligné. */
.gform_wrapper .gfield--type-consent .ginput_container_consent {
	display: flex;
	align-items: flex-start;
	gap: var(--mm-space-2xs);
}
.gform_wrapper .gfield--type-consent .gfield_consent_label,
.gform_wrapper .gfield--type-consent label {
	font-size: var(--mm-fs-p);
	font-weight: 400;
	color: var(--mm-neutral-900);
}
.gform_wrapper .gfield--type-consent input[type="checkbox"] { margin-block-start: 0.2em; }

/* ============================== Erreurs =============================== */
/* Jamais la couleur seule : bordure + message texte reliés en aria (natif GF). */
.gform_wrapper .gfield_error .gfield_label { color: var(--mm-color-error); }
.gform_wrapper .gfield_error .ginput_container input,
.gform_wrapper .gfield_error .ginput_container textarea,
.gform_wrapper .gfield_error .ginput_container select { border-bottom-color: var(--mm-color-error); }
.gform_wrapper .validation_message {
	margin-block-start: var(--mm-space-2xs);
	font-size: var(--mm-fs-100);
	color: var(--mm-color-error);
}

/* Résumé d'erreurs en haut (natif GF 2.5+, role="alert") — essentiel RGAA. */
.gform_wrapper .gform_validation_errors {
	margin-block-end: var(--mm-space-bloc);
	padding: var(--mm-space-sm) var(--mm-space-md);
	border: 1px solid var(--mm-color-error);
	border-radius: var(--mm-radius-sm);
	background-color: rgb(179 38 30 / 6%);
}
.gform_wrapper .gform_submission_error,
.gform_wrapper .gform_validation_errors h2 {
	margin: 0 0 var(--mm-space-2xs);
	font-family: var(--mm-font-body);
	font-weight: 600;
	font-size: var(--mm-fs-p);
	color: var(--mm-color-error);
}
.gform_wrapper .gform_validation_errors a { color: var(--mm-color-error); }

/* ============================== Divers ================================ */
/* Honeypot & champs cachés : jamais visibles. */
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield_visibility_hidden { display: none !important; }

/* Pied (bouton) : le bouton lui-même est stylé par l'atom .mm-button
   (rendu via le filtre gform_submit_button). */
.gform_wrapper .gform_footer { margin-block-start: var(--mm-space-bloc); padding: 0; }

/* Espacement des groupes internes GF (2.5+). */
.gform_wrapper .gform_body { width: 100%; }
