/* PVX - CLIENTS : page Mon compte sans connexion (Flatsome ou thème PVX). Rectangles arrondis, titre dans le champ. */
.pvxcl-acc {
	--a-g: var(--g, #73b504);
	--a-cta: var(--g-btn, #73b504);   /* même vert que les autres boutons des pages compte du thème PVX */
	--a-cta-h: var(--g-btn-h, #5f9a00);
	--a-ink: var(--ink, #10200a);
	--a-mut: var(--mut, #5f6b55);
	--a-line: var(--line, #e5e9df);
	--a-bg: var(--bg-2, #f6f8f2);
	--a-50: var(--g-50, #f3f9e9);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
	max-width: 980px;
	margin: 24px auto;
	align-items: start;
	font-family: var(--ff, inherit);
	color: var(--a-ink);
}
.pvxcl-acc.is-solo { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
.pvxcl-acc.is-popup { grid-template-columns: minmax(0, 1fr); max-width: none; margin: 0; gap: 24px; padding: 28px 24px; background: #fff; }
.pvxcl-acc.is-popup .pvxcl-box { background: transparent; border: 0; border-radius: 0; padding: 0; }
.pvxcl-acc.is-popup .pvxcl-get { border-top: 1px solid var(--a-line); padding-top: 24px; }
.pvxcl-acc *, .pvxcl-acc *::before, .pvxcl-acc *::after { box-sizing: border-box; }
.pvxcl-box {
	background: var(--a-bg);
	border: 1px solid var(--a-line);
	border-radius: 14px;
	padding: 24px;
	display: grid;
	gap: 10px;
	scroll-margin-top: 90px;
}
.pvxcl-box h2 {
	margin: 0 0 4px;
	font-size: 18px;
	line-height: 1.3;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .01em;
	color: var(--a-ink);
}
.pvxcl-box form { display: grid; gap: 10px; margin: 0; }
.pvxcl-lead { margin: 0; font-size: 14px; line-height: 1.55; color: var(--a-mut); }
.pvxcl-lead strong { color: var(--a-ink); }

/* Champ : titre DANS le cadre */
.pvxcl-fld {
	position: relative;
	display: block;
	margin: 0;
	background: #fff;
	border: 1px solid var(--line-2, #d3dac8);
	border-radius: 10px;
	padding: 7px 12px 6px;
	cursor: text;
	transition: border-color .15s, box-shadow .15s;
}
.pvxcl-fld[hidden] { display: none; }
.pvxcl-fld:focus-within { border-color: var(--a-g); box-shadow: 0 0 0 3px rgba(115, 181, 4, .18); }
.pvxcl-fld > span {
	display: block;
	font-size: 11.5px;
	line-height: 1.2;
	font-weight: 600;
	color: var(--a-mut);
	margin: 0 0 1px;
}
.pvxcl-acc .pvxcl-fld input {
	display: block;
	width: 100%;
	height: 26px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	font: inherit;
	font-size: 16px; /* pas de zoom sur iPhone */
	line-height: 26px;
	color: var(--a-ink);
	outline: none;
}
.pvxcl-acc .pvxcl-fld-pass input { padding-right: 76px !important; }
/* WooCommerce entoure le mot de passe de son propre bouton « œil » : le nôtre (AFFICHER) le remplace */
.pvxcl-acc .pvxcl-fld > span.password-input { display: block; position: static; height: auto; margin: 0; padding: 0; font-size: inherit; font-weight: inherit; color: inherit; }
.pvxcl-acc .pvxcl-fld .show-password-input { display: none !important; }
.pvxcl-eye {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	padding: 6px 8px;
	min-height: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--g-txt, #3f7300);
	cursor: pointer;
	line-height: 1;
}
.pvxcl-eye:hover { background: var(--a-50); }
.pvxcl-acc .pvxcl-fld-code input { font-family: Consolas, Menlo, monospace; font-size: 22px; letter-spacing: 6px; height: 30px !important; line-height: 30px; }
.pvxcl-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.pvxcl-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.pvxcl-remember { display: flex !important; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; font-weight: 500; color: var(--a-ink); cursor: pointer; }
.pvxcl-acc .pvxcl-remember input { margin: 0 !important; width: 16px; height: 16px; flex: none; accent-color: var(--a-g); }

/* Bouton : même hauteur partout, majuscules */
.pvxcl-acc .pvxcl-btn.pvxcl-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 10px;
	background: var(--a-cta);
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	box-shadow: none;
	transition: background-color .15s, transform .1s;
}
.pvxcl-acc .pvxcl-btn.pvxcl-btn:hover { background: var(--a-cta-h); color: #fff; }
.pvxcl-acc .pvxcl-btn.pvxcl-btn:active { transform: translateY(1px); }
.pvxcl-acc .pvxcl-btn.pvxcl-btn:disabled { opacity: .7; cursor: wait; }
.pvxcl-btn.is-busy { position: relative; overflow: hidden; }
.pvxcl-btn.is-busy::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 40%;
	height: 3px;
	border-radius: 2px;
	background: rgba(255, 255, 255, .75);
	animation: pvxcl-load 1s var(--ease, ease-in-out) infinite;
}
@keyframes pvxcl-load { from { transform: translateX(-100%); } to { transform: translateX(250%); } }

.pvxcl-forgot { margin: 0; font-size: 14px; }
.pvxcl-forgot a, .pvxcl-back a { color: var(--g-txt, #3f7300); font-weight: 600; text-decoration: none; }
.pvxcl-forgot a:hover, .pvxcl-back a:hover { text-decoration: underline; }
.pvxcl-back { margin: 0; font-size: 14px; }

.pvxcl-msg { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fdecec; color: #9b1c1c; font-size: 13.5px; line-height: 1.45; }
.pvxcl-msg.is-ok { background: var(--a-50); color: var(--g-txt, #3f7300); }
.pvxcl-msg[hidden] { display: none; }

/* Étapes du bloc « Recevoir mon accès » */
.pvxcl-t-create, .pvxcl-get[data-step="create"] .pvxcl-t-ask { display: none; }
.pvxcl-get[data-step="create"] .pvxcl-t-create { display: inline; }
.pvxcl-s { display: none; gap: 10px; }
.pvxcl-get[data-step="ask"] .pvxcl-s-ask,
.pvxcl-get[data-step="code"] .pvxcl-s-code,
.pvxcl-get[data-step="create"] .pvxcl-s-create { display: grid; animation: pvxcl-in .25s var(--ease, ease-out); }
@keyframes pvxcl-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pvxcl-sent { background: #fff; border: 1px solid var(--g-200, #cfe6a6); border-radius: 10px; padding: 12px 14px; }
.pvxcl-sent b { display: block; font-size: 15px; margin: 0 0 4px; color: var(--g-txt, #3f7300); }
.pvxcl-sent p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--a-ink); }
.pvxcl-sent p[hidden] { display: none; }
.pvxcl-help { margin: 0; font-size: 13px; line-height: 1.6; color: var(--a-mut); }
.pvxcl-acc .pvxcl-lnk { display: inline; margin: 0; padding: 0; min-height: 0; border: 0; background: none; font: inherit; font-weight: 600; color: var(--g-txt, #3f7300); text-decoration: underline; text-transform: none; letter-spacing: 0; cursor: pointer; }
.pvxcl-acc .pvxcl-wa {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	border-radius: 10px;
	background: #73b504;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none;
	text-transform: uppercase;
}
.pvxcl-acc .pvxcl-wa:hover { background: #659f03; color: #fff; }
.pvxcl-fixed { margin: 0; font-size: 13.5px; color: var(--a-mut); }
.pvxcl-fixed b { color: var(--a-ink); word-break: break-all; }
.pvxcl-fixed[hidden], .pvxcl-lead[hidden] { display: none; }
.pvxcl-note { margin: -4px 0 0; font-size: 12.5px; color: var(--a-mut); }

/* Création du compte (lien de l'e-mail) : le bloc passe devant */
.pvxcl-acc.is-create .pvxcl-get { order: -1; }

/* Messages dans « Mon compte » une fois connecté */
.pvxcl-acc-tip, .pvxcl-acc-ok { margin: 0 0 16px; padding: 12px 14px; border-radius: 10px; font-size: 14px; line-height: 1.5; background: #f3f9e9; color: #2f5200; border: 1px solid #cfe6a6; }
.pvxcl-acc-tip a { color: #3f7300; font-weight: 700; }

@media (max-width: 760px) {
	.pvxcl-acc { grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 16px auto; }
	.pvxcl-box { padding: 18px 16px; }
	.pvxcl-box h2 { font-size: 16px; }
}
@media (max-width: 380px) {
	.pvxcl-row { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.pvxcl-s { animation: none !important; }
}
