/*
 * Pop-up de relance de panier.
 *
 * Le conteneur est masqué par l'attribut « hidden » tant que le script ne l'a
 * pas révélé : sans JavaScript, rien n'apparaît et rien ne gêne.
 *
 * Cette feuille avait été écrite avec ses propres couleurs et ses propres
 * tailles, en marge des variables du thème : elle portait donc encore une
 * palette antérieure et trois tailles sous le plancher de 16px. Comme la
 * fenêtre surgit en plein parcours d'achat, elle suit désormais le même
 * système que le reste du site.
 */

.jmg-relance[hidden] {
	display: none;
}

.jmg-relance {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--jmg-e-5);
}

.jmg-relance__fond {
	position: absolute;
	inset: 0;
	background: rgba(26, 28, 36, 0.6);
	cursor: pointer;
}

.jmg-relance__boite {
	position: relative;
	width: 100%;
	max-width: 32rem;
	max-height: calc(100vh - 3rem);
	overflow-y: auto;
	/* Marge droite élargie : le bouton de fermeture fait 48px et ne doit pas
	   chevaucher le titre. */
	padding: var(--jmg-e-7) var(--jmg-e-6) var(--jmg-e-6);
	background: var(--jmg-fond);
	color: var(--jmg-texte);
	border: 2px solid var(--jmg-bordure);
	border-radius: var(--jmg-rayon);
	box-shadow: 0 18px 50px rgba(26, 28, 36, 0.28);
	animation: jmg-relance-entree 0.24s ease-out;
}

@keyframes jmg-relance-entree {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.jmg-relance__boite {
		animation: none;
	}
}

/* Cible de 48px, comme partout : une croix de 20px est hors de portée d'une
   main qui vise mal, et c'est le seul moyen de sortir de la fenêtre. */
.jmg-relance__fermer {
	position: absolute;
	top: var(--jmg-e-2);
	right: var(--jmg-e-2);
	display: grid;
	place-items: center;
	min-width: var(--jmg-cible);
	min-height: var(--jmg-cible);
	padding: 0;
	border: 0;
	background: none;
	color: var(--jmg-texte-doux);
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

.jmg-relance__fermer:hover,
.jmg-relance__fermer:focus-visible {
	color: var(--jmg-texte);
}

.jmg-relance__titre {
	margin: 0 0 var(--jmg-e-3);
	font-family: var(--jmg-titre);
	font-size: var(--jmg-t-h4);
	font-weight: 600;
	color: var(--jmg-texte);
}

.jmg-relance__panier {
	margin: 0 0 var(--jmg-e-3);
	font-size: var(--jmg-t-sm);
	color: var(--jmg-or);
	font-weight: 600;
}

.jmg-relance__texte {
	margin: 0 0 var(--jmg-e-5);
	font-size: var(--jmg-t-base);
	line-height: 1.7;
	color: var(--jmg-texte);
}

/* Même disposition que le formulaire d'infolettre : étiquette au-dessus,
   champ en dessous, jamais l'une à côté de l'autre. */
.jmg-relance__form {
	display: flex;
	flex-direction: column;
	gap: var(--jmg-e-2);
}

.jmg-relance__form label[for] {
	font-weight: 600;
	color: var(--jmg-texte);
}

.jmg-relance__form input[type="email"] {
	width: 100%;
	min-height: var(--jmg-cible);
	padding: 0.75em 0.9em;
	border: 2px solid var(--jmg-bordure);
	border-radius: var(--jmg-rayon);
	background: var(--jmg-fond-carte);
	color: var(--jmg-texte);
	font-size: var(--jmg-t-base);
}

.jmg-relance__form input[type="email"]::placeholder {
	color: var(--jmg-texte-discret);
	opacity: 1;
}

.jmg-relance__form input[type="email"]:focus-visible,
.jmg-relance .jmg-bouton:focus-visible,
.jmg-relance__fermer:focus-visible,
.jmg-relance__option input:focus-visible {
	outline: 3px solid var(--jmg-or);
	outline-offset: 2px;
}

.jmg-relance .jmg-bouton {
	margin-top: var(--jmg-e-2);
	min-height: var(--jmg-cible);
	padding: 0.9em 1.5em;
	border: 2px solid var(--jmg-or);
	border-radius: var(--jmg-rayon);
	background: var(--jmg-or-vif);
	color: var(--jmg-texte);
	font-size: var(--jmg-t-base);
	font-weight: 600;
	cursor: pointer;
}

.jmg-relance .jmg-bouton:hover {
	background: var(--jmg-or);
	color: var(--jmg-fond);
}

.jmg-relance .jmg-bouton[disabled] {
	opacity: 0.6;
	cursor: default;
}

/* La ligne entière est cliquable et dépasse les 48px, la case elle-même
   passe de 16 à 26px. */
.jmg-relance__option {
	display: flex;
	gap: var(--jmg-e-3);
	align-items: flex-start;
	min-height: var(--jmg-cible);
	padding-block: 0.35rem;
	font-size: var(--jmg-t-sm);
	line-height: 1.5;
	color: var(--jmg-texte);
	cursor: pointer;
}

.jmg-relance__option input[type="checkbox"] {
	width: 1.625rem;
	height: 1.625rem;
	margin-top: 0.1rem;
	flex-shrink: 0;
	accent-color: var(--jmg-or);
	cursor: pointer;
}

/* L'état ne repose pas sur la seule couleur : le message porte aussi une
   bordure et un pictogramme, comme les autres messages du site. */
.jmg-relance__message {
	margin: var(--jmg-e-4) 0 0;
	padding: var(--jmg-e-3) var(--jmg-e-4) var(--jmg-e-3) 3.25rem;
	border: 2px solid;
	border-radius: var(--jmg-rayon);
	font-size: var(--jmg-t-sm);
	line-height: 1.6;
	background-repeat: no-repeat;
	background-position: var(--jmg-e-4) 0.9em;
	background-size: 1.5rem 1.5rem;
}

.jmg-relance__message[hidden] {
	display: none;
}

.jmg-relance__message--succes {
	color: var(--jmg-succes);
	border-color: var(--jmg-succes);
	background-color: rgba(31, 107, 65, 0.07);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F6B41' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

.jmg-relance__message--erreur {
	color: var(--jmg-erreur);
	border-color: var(--jmg-erreur);
	background-color: rgba(165, 31, 30, 0.07);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A51F1E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5'/%3E%3Ccircle cx='12' cy='16.5' r='.6' fill='%23A51F1E'/%3E%3C/svg%3E");
}

.jmg-relance__mention {
	margin: var(--jmg-e-5) 0 0;
	font-size: var(--jmg-t-xs);
	line-height: 1.5;
	color: var(--jmg-texte-discret);
}
