/* Front de réservation Prisma Booking.
   Charte : bleu #526db4, crème #fdf8ec. Style épuré, bien-être haut de gamme.
   Tout est limité à .prisma-front pour ne pas déborder sur le thème du site. */

.prisma-front {
	--pf-blue: #526db4;
	--pf-blue-dark: #435995;
	--pf-cream: #fdf8ec;
	--pf-line: #e7e2d8;
	--pf-text: #2b2b28;
	--pf-muted: #8a857a;
	max-width: 640px;
	margin: 0 auto;
	color: var(--pf-text);
	font-size: 16px;
	line-height: 1.5;
}

.prisma-front h3 {
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 12px;
	color: var(--pf-text);
}

/* Cartes */
.prisma-front .pf-card {
	background: #fff;
	border: 1px solid var(--pf-line);
	border-radius: 16px;
	padding: 22px 24px;
	margin: 0 0 20px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}
.prisma-front .pf-danger {
	border-color: #e6c9c9;
	background: #fdf5f5;
}

/* Formulaires */
.prisma-front .pf-form label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	margin: 0 0 14px;
}
.prisma-front .pf-form .pf-check {
	font-weight: 400;
	font-size: 14px;
	color: var(--pf-muted);
}
.prisma-front .pf-row {
	display: flex;
	gap: 14px;
}
.prisma-front .pf-row label {
	flex: 1;
}
.prisma-front input[type="text"],
.prisma-front input[type="email"],
.prisma-front input[type="tel"],
.prisma-front input[type="password"],
.prisma-front input[type="date"],
.prisma-front input[type="datetime-local"],
.prisma-front select {
	display: block;
	width: 100%;
	margin-top: 6px;
	padding: 10px 12px;
	font-size: 15px;
	border: 1px solid var(--pf-line);
	border-radius: 10px;
	background: #fff;
	box-sizing: border-box;
}
.prisma-front input:focus,
.prisma-front select:focus {
	border-color: var(--pf-blue);
	outline: none;
	box-shadow: 0 0 0 2px rgba(82, 109, 180, 0.18);
}
.prisma-front .pf-check input {
	width: auto;
	margin-right: 6px;
}

/* Boutons */
.prisma-front .pf-btn {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--pf-blue);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 12px 26px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(82, 109, 180, 0.22);
	transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}
.prisma-front .pf-btn:hover {
	background: var(--pf-blue-dark);
	box-shadow: 0 4px 14px rgba(82, 109, 180, 0.28);
}
/* Léger enfoncement au tap : rend le bouton vivant sur téléphone. */
.prisma-front .pf-btn:active {
	transform: translateY(1px);
	box-shadow: 0 1px 5px rgba(82, 109, 180, 0.22);
}
.prisma-front .pf-btn:disabled {
	background: #c7cede;
	box-shadow: none;
	cursor: not-allowed;
}
/* Petite taille, pour les actions secondaires des cartes (mobile). */
.prisma-front .pf-btn-sm {
	padding: 9px 18px;
	font-size: 14px;
}
.prisma-front .pf-btn-danger {
	background: #b23b3b;
}
.prisma-front .pf-btn-danger:hover {
	background: #97302f;
}
.prisma-front .pf-link {
	background: none;
	border: 0;
	color: var(--pf-blue);
	cursor: pointer;
	padding: 0;
	font: inherit;
	text-decoration: underline;
}
.prisma-front .pf-inline {
	display: inline;
}

/* En-tête connecté */
.prisma-front .pf-hello {
	font-size: 14px;
	color: var(--pf-muted);
	margin-bottom: 18px;
}

/* Rangée d'actions de compte (My account / Book an appointment + Sign out) */
.prisma-front .pf-account-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 4px 0 22px;
}
.prisma-front .pf-account-actions .pf-inline {
	display: inline-flex;
	margin: 0;
}

/* Barre d'entrée connexion / inscription (invités), en tête du tunnel */
.prisma-front .pf-authbar {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	font-size: 14px;
	color: var(--pf-muted);
	margin: 0 0 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--pf-line);
}

/* Étapes de réservation */
.prisma-front .pf-step {
	margin: 0 0 24px;
}
.prisma-front .pf-services {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.prisma-front .pf-service {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	background: #fff;
	border: 1px solid var(--pf-line);
	border-radius: 12px;
	padding: 14px 16px;
	cursor: pointer;
}
.prisma-front .pf-service:hover {
	border-color: var(--pf-blue);
}
.prisma-front .pf-service:has(input:checked) {
	border-color: var(--pf-blue);
	box-shadow: 0 0 0 2px rgba(82, 109, 180, 0.18);
}
.prisma-front .pf-service input[type="radio"] {
	margin-top: 4px;
	flex: 0 0 auto;
}
.prisma-front .pf-service-photo-wrap {
	flex: 0 0 auto;
	line-height: 0;
}
.prisma-front .pf-service-photo {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.prisma-front .pf-service-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.prisma-front .pf-service-name {
	font-weight: 600;
}
.prisma-front .pf-service-desc {
	color: var(--pf-text);
	font-size: 14px;
	line-height: 1.45;
	/* Repliée à 3 lignes (2 sur téléphone) tant que « Read more » n'a pas été cliqué,
	   pour que le calendrier et les créneaux restent visibles sans scroller. */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.prisma-front .pf-service-desc.is-open {
	display: block;
	-webkit-line-clamp: unset;
	overflow: visible;
}
.prisma-front .pf-desc-more {
	align-self: flex-start;
	margin: 2px 0 0;
	padding: 0;
	background: none;
	border: 0;
	color: var(--pf-blue);
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.prisma-front .pf-desc-more[hidden] {
	display: none;
}
.prisma-front .pf-service-meta {
	color: #c0392b;
	font-weight: 600;
	font-size: 14px;
}

/* Passage à l'authentification (invités) */
.prisma-front .pf-confirm-hint {
	margin: 8px 0 0;
	font-size: 13px;
}
.prisma-front .pf-auth {
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--pf-line);
}
.prisma-front .pf-auth-title {
	margin: 0 0 16px;
}

/* Page de gestion mobile */
.prisma-manage .pf-manage-title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 16px;
}
.prisma-manage .pf-appt {
	padding: 16px 18px;
}
.prisma-manage .pf-appt-when {
	font-weight: 700;
	font-size: 17px;
	color: var(--pf-blue-dark);
}
.prisma-manage .pf-appt-service {
	margin-top: 2px;
	font-weight: 600;
}
.prisma-manage .pf-appt-client {
	margin-top: 6px;
	font-size: 16px;
	font-weight: 600;
}
.prisma-manage .pf-appt-contact {
	margin-top: 4px;
	font-size: 13px;
	color: var(--pf-muted);
	word-break: break-word;
}
.prisma-manage .pf-appt-contact a {
	color: var(--pf-blue);
}
.prisma-manage .pf-appt-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}
/* Tous les boutons d'une rangée d'actions ont la même petite taille, quelle
   que soit leur variante (ghost, danger, WhatsApp), pour un rendu homogène. */
.prisma-manage .pf-appt-actions .pf-btn {
	padding: 9px 18px;
	font-size: 14px;
}

/* Tableau de bord mobile : stats du mois */
.prisma-manage .pf-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 20px;
}
.prisma-manage .pf-stat {
	flex: 1 1 130px;
	background: #fff;
	border: 1px solid var(--pf-line);
	border-radius: 12px;
	padding: 12px 14px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}
.prisma-manage .pf-stat-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--pf-muted);
}
.prisma-manage .pf-stat-value {
	font-size: 22px;
	font-weight: 700;
	color: var(--pf-blue-dark);
	margin-top: 2px;
	font-variant-numeric: tabular-nums;
}
.prisma-manage .pf-stat-sub {
	font-size: 12px;
	color: var(--pf-muted);
	margin-top: 2px;
}
/* Tuile cliquable (Espèces / Cartes → détail du mois). Rendue en <div> (et non
   <a>) pour échapper aux décorations parasites collées sur les liens en pleine
   largeur Elementor. Se signale par un « Voir le détail » bleu et une réaction
   au survol / tap. */
.prisma-manage .pf-stat-link {
	display: block;
	cursor: pointer;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}
.prisma-manage .pf-stat-link .pf-stat-sub {
	color: var(--pf-blue);
	font-weight: 600;
}
.prisma-manage .pf-stat-link:hover {
	border-color: var(--pf-blue);
	box-shadow: 0 4px 16px rgba(82, 109, 180, 0.16);
}
.prisma-manage .pf-stat-link:active {
	transform: translateY(1px);
}
/* Nom du client en lien dans la liste des paiements (vers sa fiche). */
.prisma-manage a.pf-payment-client {
	color: var(--pf-blue-dark);
	text-decoration: none;
	font-weight: 600;
}
.prisma-manage a.pf-payment-client:hover {
	text-decoration: underline;
}

/* Carte « Notifications » (push) */
.prisma-manage .pf-push-status {
	font-size: 13px;
	color: var(--pf-muted);
	margin: 8px 0 0;
	min-height: 1em;
}

/* Titres de section du tableau de bord */
.prisma-manage .pf-section-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--pf-text);
	margin: 24px 0 10px;
}

/* Formulaire de clôture (paiement + montant) */
.prisma-manage .pf-close-form {
	margin-top: 12px;
}
.prisma-manage .pf-close-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}
.prisma-manage .pf-close-row select,
.prisma-manage .pf-close-row input[type="number"] {
	width: auto;
	flex: 1 1 110px;
	margin-top: 0;
	padding: 10px 12px;
	font-size: 15px;
	border: 1px solid var(--pf-line);
	border-radius: 10px;
	background: #fff;
	box-sizing: border-box;
}
.prisma-manage .pf-close-row .pf-btn {
	flex: 0 0 auto;
	padding: 10px 22px;
}
/* No-show : action négative (le client n'est pas venu). Bouton « douceur »
   plutôt que le bleu primaire, pour ne pas le confondre avec « Clôturer » :
   fond blanc, rouge discret, jamais criard. */
.prisma-front .pf-noshow {
	background: #fff;
	color: #b23b3b;
	border: 1px solid #e6c9c9;
	box-shadow: none;
	margin-top: 10px;
}
.prisma-front .pf-noshow:hover {
	background: #fbeeee;
	border-color: #b23b3b;
	box-shadow: 0 3px 10px rgba(178, 59, 59, 0.16);
}

/* Correction d'un encaissement déjà saisi (séances du jour). Le toggle est
   un bouton ghost (classe pf-btn) ; on masque seulement la puce du <details>.
   Déplié, le formulaire prend toute la largeur de la carte. */
.prisma-manage .pf-correct > summary {
	list-style: none;
}
.prisma-manage .pf-correct > summary::-webkit-details-marker {
	display: none;
}
.prisma-manage .pf-correct[open] {
	flex: 1 1 100%;
}
.prisma-manage .pf-correct[open] > summary {
	margin-bottom: 10px;
}

/* Panneau « Modifier » (reprogrammation) sur les prochains RDV */
.prisma-manage .pf-edit {
	display: inline-block;
}
.prisma-manage .pf-edit[open] {
	flex: 1 1 100%;
}
.prisma-manage .pf-edit > summary {
	list-style: none;
	cursor: pointer;
	display: inline-block;
}
.prisma-manage .pf-edit > summary::-webkit-details-marker {
	display: none;
}
.prisma-manage .pf-edit-form {
	margin-top: 10px;
}
.prisma-manage .pf-edit-label {
	display: block;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 10px;
}
.prisma-manage .pf-edit-label input[type="text"],
.prisma-manage .pf-edit-label input[type="email"],
.prisma-manage .pf-edit-label input[type="datetime-local"],
.prisma-manage .pf-edit-label select,
.prisma-manage .pf-edit-label textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 6px;
	padding: 10px 12px;
	font-size: 15px;
	font-weight: 400;
	border: 1px solid var(--pf-line);
	border-radius: 10px;
	background: #fff;
}

/* Gestion des clients (mobile) */
.prisma-manage .pf-dash-actions {
	margin: 0 0 20px;
}
.prisma-manage .pf-clients-head {
	margin: 0 0 10px;
}
.prisma-manage .pf-client-search {
	display: flex;
	gap: 8px;
	margin: 0 0 16px;
}
.prisma-manage .pf-client-search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding: 10px 12px;
	font-size: 15px;
	border: 1px solid var(--pf-line);
	border-radius: 10px;
	background: #fff;
	box-sizing: border-box;
}
.prisma-manage .pf-client-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	margin-bottom: 10px;
}
.prisma-manage .pf-client-open {
	flex: 1 1 auto;
	min-width: 0;
	text-decoration: none;
	color: var(--pf-text);
}
.prisma-manage .pf-client-name {
	display: block;
	font-size: 16px;
	font-weight: 600;
	color: var(--pf-blue-dark);
}
.prisma-manage .pf-client-sub {
	display: block;
	font-size: 13px;
	color: var(--pf-muted);
	margin-top: 2px;
	word-break: break-word;
}
.prisma-manage .pf-client-save {
	flex: 0 0 auto;
}
.prisma-manage .pf-client-pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin: 8px 0 4px;
}
.prisma-manage .pf-client-page {
	color: var(--pf-muted);
	font-size: 14px;
}
.prisma-front .pf-btn-ghost {
	background: #fff;
	color: var(--pf-blue-dark);
	border: 1px solid var(--pf-line);
	box-shadow: 0 1px 4px rgba(43, 43, 40, 0.06);
}
.prisma-front .pf-btn-ghost:hover {
	background: var(--pf-cream);
	border-color: var(--pf-blue);
	box-shadow: 0 3px 10px rgba(82, 109, 180, 0.14);
}
.prisma-front .pf-btn-wa {
	background: #25d366;
	box-shadow: 0 2px 8px rgba(37, 211, 102, 0.24);
}
.prisma-front .pf-btn-wa:hover {
	background: #1eb457;
	box-shadow: 0 4px 14px rgba(37, 211, 102, 0.3);
}

/* Calendrier (étape 2) — pleine largeur, comme les bulles des formules */
.prisma-front .pf-calendar {
	width: 100%;
	max-width: none;
	margin: 0 auto;
	border: 1px solid var(--pf-line);
	border-radius: 16px;
	padding: 16px 18px 20px;
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
	box-sizing: border-box;
}
.prisma-front .pf-cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}
.prisma-front .pf-cal-title {
	font-weight: 600;
	font-size: 15px;
	color: var(--pf-text);
}
.prisma-front .pf-cal-nav {
	appearance: none;
	background: var(--pf-cream);
	border: 1px solid var(--pf-line);
	border-radius: 999px;
	width: 32px;
	height: 32px;
	font-size: 18px;
	line-height: 1;
	color: var(--pf-blue-dark);
	cursor: pointer;
}
.prisma-front .pf-cal-nav:hover:not(:disabled) {
	border-color: var(--pf-blue);
}
.prisma-front .pf-cal-nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.prisma-front .pf-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}
.prisma-front .pf-cal-weekdays {
	margin-bottom: 6px;
}
.prisma-front .pf-cal-wd {
	text-align: center;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: var(--pf-muted);
	padding: 4px 0;
}
.prisma-front .pf-cal-cell {
	appearance: none;
	border: 1px solid transparent;
	background: none;
	border-radius: 10px;
	aspect-ratio: 1 / 1;
	font-size: 14px;
	font-weight: 600;
	color: var(--pf-text);
	cursor: pointer;
	font-variant-numeric: tabular-nums;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
.prisma-front .pf-cal-cell:hover:not(.is-disabled):not(.is-selected) {
	background: var(--pf-cream);
	border-color: var(--pf-blue);
}
.prisma-front .pf-cal-empty {
	border: 0;
	background: none;
	cursor: default;
}
.prisma-front .pf-cal-cell.is-disabled {
	color: #cfcabf;
	cursor: not-allowed;
}
.prisma-front .pf-cal-cell.is-today:not(.is-selected) {
	border-color: var(--pf-blue);
}
.prisma-front .pf-cal-cell.is-selected {
	background: var(--pf-blue);
	border-color: var(--pf-blue);
	color: #fff;
}

/* Créneaux */
.prisma-front .pf-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.prisma-front .pf-slot-btn {
	background: #fff;
	border: 1px solid var(--pf-line);
	border-radius: 999px;
	padding: 9px 18px;
	font-size: 15px;
	font-weight: 600;
	color: var(--pf-blue-dark);
	cursor: pointer;
	font-variant-numeric: tabular-nums;
}
.prisma-front .pf-slot-btn:hover {
	border-color: var(--pf-blue);
}
.prisma-front .pf-slot-btn.is-selected {
	background: var(--pf-blue);
	color: #fff;
	border-color: var(--pf-blue);
}

/* Lien « mot de passe oublié » */
.prisma-front .pf-forgot {
	margin: 12px 0 0;
	font-size: 14px;
}
.prisma-front .pf-forgot a {
	color: var(--pf-blue);
	text-decoration: underline;
}

/* Résultats et notices */
.prisma-front .pf-result {
	margin-top: 14px;
	font-size: 15px;
}
.prisma-front .pf-error {
	color: #b23b3b;
}
.prisma-front .pf-muted {
	color: var(--pf-muted);
}
.prisma-front .pf-notice {
	border-radius: 12px;
	padding: 14px 18px;
	margin: 0 0 18px;
	font-size: 15px;
}
.prisma-front .pf-success {
	background: #eef6ee;
	border: 1px solid #cfe6cf;
	color: #2f6b34;
}
.prisma-front .pf-notice.pf-info {
	background: #eef1f9;
	border: 1px solid #cdd6ee;
	color: #3a4a7a;
}
.prisma-front .pf-notice.pf-info a {
	color: var(--pf-blue-dark);
}

/* RDV à venir (Mon compte) */
.prisma-front .pf-upcoming {
	border: 1px solid var(--pf-line);
	border-radius: 12px;
	padding: 14px 16px;
	margin-bottom: 12px;
}
.prisma-front .pf-upcoming:last-child {
	margin-bottom: 0;
}
.prisma-front .pf-upcoming-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}
.prisma-front .pf-upcoming-when {
	font-weight: 700;
	font-size: 16px;
	color: var(--pf-blue-dark);
}
.prisma-front .pf-upcoming-service {
	margin-top: 3px;
	color: var(--pf-muted);
}
.prisma-front .pf-upcoming-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
}
.prisma-front .pf-upcoming-actions .pf-btn {
	padding: 8px 18px;
	font-size: 14px;
}
.prisma-front .pf-notice.pf-error {
	background: #fdf1f1;
	border: 1px solid #e6c9c9;
	color: #b23b3b;
}

/* Historique */
.prisma-front .pf-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}
.prisma-front .pf-table th,
.prisma-front .pf-table td {
	text-align: left;
	padding: 10px 8px;
	border-bottom: 1px solid var(--pf-line);
}
.prisma-front .pf-table th {
	color: var(--pf-muted);
	font-weight: 600;
	text-transform: uppercase;
	font-size: 11px;
	letter-spacing: 0.5px;
}
.prisma-front .pf-status {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	background: var(--pf-cream);
	color: var(--pf-blue-dark);
}
.prisma-front .pf-status-confirmed {
	background: #eef6ee;
	color: #2f6b34;
}
.prisma-front .pf-status-refused,
.prisma-front .pf-status-cancelled,
.prisma-front .pf-status-no_show {
	background: #fdf1f1;
	color: #b23b3b;
}

@media (max-width: 600px) {
	/* Sur téléphone, on replie encore un cran : la formule tient en une bulle courte. */
	.prisma-front .pf-service-desc {
		-webkit-line-clamp: 2;
	}
	.prisma-front .pf-service-desc.is-open {
		-webkit-line-clamp: unset;
	}
	.prisma-front .pf-service-photo {
		width: 60px;
		height: 60px;
	}
}

@media (max-width: 480px) {
	.prisma-front .pf-row {
		flex-direction: column;
		gap: 0;
	}
}

/* ============================================================
   Avis clients (note + commentaire) — v0.28.0
   ============================================================ */

/* Étoiles d'affichage (avis posté, mur public, back-office) */
.prisma-front .pf-stars {
	display: inline-flex;
	gap: 2px;
	font-size: 18px;
	line-height: 1;
}
.prisma-front .pf-star {
	color: #d9d4c7;
}
.prisma-front .pf-star.is-on {
	color: #e0a516;
}

/* Section « Rate your session » dans Mon compte */
.prisma-front .pf-review-item {
	padding: 14px 0;
	border-top: 1px solid #ece7db;
}
.prisma-front .pf-review-item:first-of-type {
	border-top: 0;
	padding-top: 4px;
}
.prisma-front .pf-review-when {
	margin-bottom: 8px;
}
.prisma-front .pf-review-done {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.prisma-front .pf-review-state {
	color: #2f6b34;
	font-size: 14px;
}

/* Sélecteur d'étoiles cliquable (5 radios, habillés en CSS pur) */
.prisma-front .pf-rating {
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 3px;
	margin: 4px 0 12px;
}
.prisma-front .pf-rating input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.prisma-front .pf-rating label {
	cursor: pointer;
	font-size: 30px;
	line-height: 1;
	color: #d9d4c7;
	transition: color 0.12s ease;
}
.prisma-front .pf-rating input:checked ~ label {
	color: #e0a516;
}
/* Au survol, on annule la sélection courante puis on colore jusqu'à l'étoile visée. */
.prisma-front .pf-rating:hover input:checked ~ label {
	color: #d9d4c7;
}
.prisma-front .pf-rating label:hover,
.prisma-front .pf-rating label:hover ~ label {
	color: #e0a516;
}
.prisma-front .pf-rating input:focus-visible + label {
	outline: 2px solid #526db4;
	outline-offset: 2px;
	border-radius: 4px;
}

.prisma-front .pf-review-comment textarea {
	width: 100%;
}
.prisma-front .pf-review-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 16px;
}

/* Mur d'avis public [prisma_reviews] */
.prisma-reviews .pf-reviews-head {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}
.prisma-reviews .pf-reviews-avg {
	font-size: 20px;
	color: #3a3630;
}
.prisma-reviews .pf-reviews-count {
	color: #6b6559;
}
.prisma-reviews .pf-reviews-list {
	display: grid;
	gap: 16px;
}
.prisma-reviews .pf-review {
	padding: 16px 18px;
	background: #fdf8ec;
	border-radius: 12px;
}
.prisma-reviews .pf-review-top {
	margin-bottom: 6px;
}
.prisma-reviews .pf-review-text {
	margin: 8px 0;
	padding: 0;
	border: 0;
	font-style: italic;
	color: #3a3630;
}
.prisma-reviews .pf-review-by {
	color: #6b6559;
	font-size: 14px;
}
.prisma-reviews .pf-review-name {
	font-weight: 600;
	color: #3a3630;
}

/* Texte réservé aux lecteurs d'écran (le thème ne le fournit pas toujours) */
.prisma-front .screen-reader-text,
.prisma-reviews .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
   Avis : carrousel façon Google + grille « tous les avis » — v0.31.0
   (surcharge le rendu simple précédent : cartes blanches, avatar)
   ============================================================ */
.prisma-reviews .pf-reviews-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.prisma-reviews .pf-reviews-head-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.prisma-reviews .pf-reviews-avg{font-size:22px;color:#2a2620}
.prisma-reviews .pf-reviews-avg strong{color:#e0a516}
.prisma-reviews .pf-reviews-count{color:#6b6559}
.prisma-reviews .pf-reviews-all{white-space:nowrap}

.prisma-reviews .pf-review{background:#fff;border:1px solid #ece7db;border-radius:14px;padding:18px;box-shadow:0 1px 3px rgba(40,40,40,.06);box-sizing:border-box}
.prisma-reviews .pf-review-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.prisma-reviews .pf-review-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:17px}
.prisma-reviews .pf-review-idw{display:flex;flex-direction:column;min-width:0}
.prisma-reviews .pf-review-name{font-weight:600;color:#2a2620;line-height:1.25}
.prisma-reviews .pf-review-loc{font-weight:400;color:#8a857a}
.prisma-reviews .pf-review-date{color:#8a857a;font-size:13px}
.prisma-reviews .pf-review-top{margin:0 0 8px}
.prisma-reviews .pf-review-text{margin:0;padding:0;border:0;font-style:normal;color:#413c34;line-height:1.5}
.prisma-reviews .pf-review-text.pf-clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}

/* Carrousel */
.prisma-reviews .pf-reviews-slider-wrap{position:relative}
.prisma-reviews .pf-reviews-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 14px;-webkit-overflow-scrolling:touch}
.prisma-reviews .pf-reviews-track .pf-review{flex:0 0 300px;max-width:300px;scroll-snap-align:start}
.prisma-reviews .pf-rev-arrow{position:absolute;top:42%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:1px solid #e0d9c9;background:#fff;color:#526db4;font-size:24px;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.12);z-index:2;display:flex;align-items:center;justify-content:center;padding:0}
.prisma-reviews .pf-rev-arrow:hover{background:#f6f1e6}
.prisma-reviews .pf-rev-prev{left:-8px}
.prisma-reviews .pf-rev-next{right:-8px}
@media (max-width:600px){.prisma-reviews .pf-rev-arrow{display:none}}

/* Grille « tous les avis » (mosaïque via colonnes CSS, gère les hauteurs variables) */
.prisma-reviews-grid .pf-reviews-grid{column-width:290px;column-gap:16px}
.prisma-reviews-grid .pf-reviews-grid .pf-review{width:100%;margin:0 0 16px;display:inline-block;break-inside:avoid;-webkit-column-break-inside:avoid}

/* ============================================================
   Avis : en-tête façon widget + étoiles dorées + pagination — v0.32.0
   ============================================================ */
/* Étoiles dorées vives (avis affichés, partout) */
.prisma-front .pf-star.is-on,
.prisma-reviews .pf-star.is-on{color:#f5b301}

/* En-tête centré : mention + grandes étoiles + « Based on N reviews » */
.prisma-reviews .pf-reviews-head{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;margin-bottom:22px}
.prisma-reviews .pf-reviews-word{font-weight:800;letter-spacing:.09em;font-size:20px;color:#2a2620}
.prisma-reviews .pf-reviews-bigstars .pf-stars{font-size:27px;gap:3px}
.prisma-reviews .pf-reviews-count{color:#6b6559;font-size:15px}
.prisma-reviews .pf-reviews-count strong{color:#2a2620}

/* « Read more » dans les cartes du carrousel */
.prisma-reviews .pf-readmore{margin-top:8px;padding:0;border:0;background:none;color:#526db4;font:inherit;font-weight:600;cursor:pointer}
.prisma-reviews .pf-readmore:hover{text-decoration:underline}
.prisma-reviews .pf-review-text.is-open{display:block;-webkit-line-clamp:unset;overflow:visible}

/* Bouton « See all reviews » centré sous le carrousel */
.prisma-reviews .pf-reviews-cta{text-align:center;margin-top:16px}

/* Pagination de la grille « tous les avis » */
.prisma-reviews .pf-reviews-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:22px}
.prisma-reviews .pf-page-btn{min-width:36px;height:36px;padding:0 8px;border:1px solid #e0d9c9;background:#fff;border-radius:8px;color:#3a3630;cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.prisma-reviews .pf-page-btn:hover{background:#f6f1e6}
.prisma-reviews .pf-page-btn.is-active{background:#526db4;border-color:#526db4;color:#fff}

/* ============================================================
   Avis : carrousel INFINI (marquee CSS, sans flèches ni barre) — v0.33.0
   ============================================================ */
.prisma-reviews .pf-reviews-marquee{overflow:hidden;position:relative;padding:2px 0}
.prisma-reviews-slider .pf-reviews-track{display:flex;width:max-content;overflow:visible;scroll-snap-type:none;padding:4px 0 10px;animation-name:pf-marquee;animation-timing-function:linear;animation-iteration-count:infinite}
.prisma-reviews .pf-reviews-marquee:hover .pf-reviews-track{animation-play-state:paused}
.prisma-reviews .pf-marquee-set{display:flex;gap:16px;padding-right:16px}
.prisma-reviews .pf-marquee-set .pf-review{flex:0 0 300px;width:300px;scroll-snap-align:none}
@keyframes pf-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.prisma-reviews-slider .pf-reviews-track{animation:none}}
@media (max-width:480px){.prisma-reviews .pf-marquee-set .pf-review{flex:0 0 82vw;width:82vw}}

/* ============================================================
   Avis : pleine largeur — v0.33.1
   Le tunnel de réservation reste borné à 640 px (lisibilité d'un formulaire),
   mais les avis (carrousel + grille) prennent TOUTE la largeur de leur conteneur.
   Pour un rendu bord à bord, mettre la section Elementor en pleine largeur.
   ============================================================ */
.prisma-front.prisma-reviews{max-width:none;margin:0;width:100%}
