/**
 * Espace partenaire — tunnel de réservation [lpr_espace_client] + gate de
 * connexion. Réutilise les tokens du thème (--lpr-*). Même direction
 * « nature-tech » que le tableau de bord partenaire.
 */
.lpr-client {
	--rc-line: var(--lpr-border, #e7e2d6);
	--rc-ink: var(--lpr-primary-strong, #143f0d);
	--rc-muted: var(--lpr-text-muted, #6b7280);
	--rc-leaf: var(--lpr-leaf-500, #2e8b1e);
	--rc-forest: var(--lpr-forest-700, #1c6b14);
	--rc-accent: var(--lpr-accent, #e8772e);
	--rc-surface: var(--lpr-surface, #fff);
	font-family: var(--lpr-font-body, "Nunito Sans", system-ui, sans-serif);
	color: var(--lpr-text, #283021);
	max-width: 780px;
	margin-inline: auto;
}
.lpr-client > h2 {
	font-family: var(--lpr-font-display, "Fraunces", serif);
	color: var(--rc-ink); font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 1.4rem;
}

/* Étapes (cartes numérotées) */
.lpr-client section {
	background: var(--rc-surface); border: 1px solid var(--rc-line);
	border-radius: 18px; padding: 1.3rem 1.4rem; margin-bottom: 1.1rem; position: relative;
}
.lpr-client section h3 {
	font-family: var(--lpr-font-display, serif); font-size: 1.15rem; color: var(--rc-ink);
	margin: 0 0 1rem; padding-left: 2.4rem; position: relative; line-height: 1.9rem;
}
.lpr-client section h3::before {
	counter-increment: rc-step; content: counter(rc-step);
	position: absolute; left: 0; top: 0; width: 1.9rem; height: 1.9rem;
	display: grid; place-items: center; border-radius: 50%;
	background: var(--rc-leaf); color: #fff; font-family: var(--lpr-font-body); font-weight: 800; font-size: .9rem;
}
.lpr-client { counter-reset: rc-step; }

/* Champs */
.lpr-client label { display: block; font-weight: 700; font-size: .85rem; color: var(--rc-ink); margin: 0 0 .9rem; }
.lpr-client select {
	display: block; width: 100%; margin-top: .35rem; font: inherit; font-size: .95rem;
	color: var(--rc-ink); background: var(--rc-surface); border: 1px solid var(--rc-line);
	border-radius: 11px; padding: .6rem 2rem .6rem .85rem; cursor: pointer; appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='m2 4 4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .8rem center;
}
.lpr-client select:focus { outline: 2px solid color-mix(in srgb, var(--rc-leaf) 45%, transparent); border-color: var(--rc-leaf); }

/* Boutons */
.lpr-client button {
	font: inherit; font-weight: 700; cursor: pointer; border: 0; border-radius: 12px;
	padding: .7rem 1.2rem; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
#lpr-load-availability { background: var(--rc-forest); color: #fff; }
#lpr-load-availability:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -14px rgba(20,63,13,.6); }
#lpr-checkout { background: var(--rc-accent); color: #fff; font-size: 1.05rem; padding: .85rem 1.6rem; width: 100%; margin-top: .4rem; }
#lpr-checkout:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 12px 26px -14px rgba(232,119,46,.7); }
#lpr-checkout:disabled { opacity: .5; cursor: not-allowed; }

/* Disponibilités + panier (listes) */
.lpr-availability ul, .lpr-cart ul { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .5rem; }
.lpr-availability li, .lpr-cart li {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	background: #faf8f2; border: 1px solid var(--rc-line); border-radius: 11px; padding: .6rem .85rem; font-size: .92rem;
}
.lpr-add { background: var(--rc-leaf); color: #fff; padding: .4rem .85rem !important; font-size: .82rem; border-radius: 9px !important; }
.lpr-add:disabled { background: #cfcabb; cursor: not-allowed; }
.lpr-add:hover:not(:disabled) { background: var(--rc-forest); }
.lpr-remove { background: transparent; color: var(--lpr-danger, #b32d2e); padding: .35rem .6rem !important; font-size: .8rem; }
.lpr-remove:hover { text-decoration: underline; }

/* Récapitulatif (table) */
.lpr-recap-table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; font-size: .92rem; }
.lpr-recap-table td { padding: .55rem .2rem; border-bottom: 1px solid var(--rc-line); }
.lpr-recap-table td:last-child { text-align: right; white-space: nowrap; color: var(--rc-ink); }
.lpr-recap-table tr.lpr-total td { border-top: 2px solid var(--rc-line); border-bottom: 0; font-size: 1.05rem; padding-top: .8rem; }
.lpr-recap-table tr.lpr-total td:last-child { color: var(--rc-forest); }
#lpr-result { margin-top: .8rem; font-weight: 700; color: var(--rc-forest); }
#lpr-result:empty { display: none; }

/* ===== Gate de connexion (non connecté / sans fiche) — réservation & dashboard ===== */
.lpr-client > p:first-child:last-of-type { color: var(--rc-muted); }
.lpr-login-card, .lpr-client .lpr-login {
	max-width: 420px; margin: 1.5rem auto; background: var(--rc-surface);
	border: 1px solid var(--rc-line); border-radius: 18px; padding: clamp(1.4rem, 4vw, 2.4rem);
	box-shadow: 0 16px 50px -28px rgba(20,63,13,.5);
}

/* Formulaire WordPress (wp_login_form) — habillage dans nos gates */
.lpr-client #loginform, .lpr-pp--gate #loginform { display: grid; gap: .9rem; margin-top: 1rem; }
.lpr-client #loginform p, .lpr-pp--gate #loginform p { margin: 0; }
.lpr-client #loginform label, .lpr-pp--gate #loginform label { font-weight: 700; font-size: .85rem; color: var(--lpr-primary-strong, #143f0d); display: grid; gap: .3rem; }
.lpr-client #loginform input[type=text], .lpr-client #loginform input[type=password],
.lpr-pp--gate #loginform input[type=text], .lpr-pp--gate #loginform input[type=password] {
	width: 100%; font: inherit; font-size: .95rem; padding: .65rem .85rem;
	border: 1px solid var(--lpr-border, #e7e2d6); border-radius: 11px; background: #fff;
}
.lpr-client #loginform input:focus, .lpr-pp--gate #loginform input:focus {
	outline: 2px solid color-mix(in srgb, var(--lpr-leaf-500, #2e8b1e) 45%, transparent); border-color: var(--lpr-leaf-500, #2e8b1e);
}
.lpr-client #loginform .login-remember label, .lpr-pp--gate #loginform .login-remember label { display: flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--lpr-text-muted, #6b7280); }
.lpr-client #loginform .login-submit input, .lpr-pp--gate #loginform .login-submit input {
	width: 100%; background: var(--lpr-accent, #e8772e); color: #fff; font-weight: 800; font-size: 1rem;
	border: 0; border-radius: 12px; padding: .75rem 1.2rem; cursor: pointer;
}
.lpr-client #loginform .login-submit input:hover, .lpr-pp--gate #loginform .login-submit input:hover { filter: brightness(.96); }
