/* Bloc cnd/reviews — signature §8 « Avis ». Valeurs sourcées sur les maquettes (avis Google :
   Centre aéré / Éducation canine / Dog Wash / Sport discipline ; témoignages : piliers ACACED et
   Éducateur canin, Formations), couleurs exclusivement par tokens (règles v1.2).
   Carrousel : composant partagé .cnd-carousel (canidelite-design-system.css). */
.cnd.cnd-reviews {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--s-5);
	margin: 0;
}
.cnd.cnd-reviews .cnd-reviews__title {
	flex: 1 1 100%;
	font-family: var(--font-display);
	font-weight: 500;
	font-size: var(--t-h2);
	line-height: 1.2;
	color: var(--ink);
	text-decoration: none;
	margin: 0;
}

/* Source Google : panneau de note à gauche, carrousel à droite (2 avis visibles, 1 sous 900 px). */
.cnd.cnd-reviews .cnd-reviews__panel {
	flex: 1 1 280px;
	max-width: 420px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--s-5);
	padding: var(--s-6);
	border-radius: var(--r-lg);
	background: var(--brand-fill);
	color: var(--brand-fill-on);
}
.cnd.cnd-reviews .cnd-reviews__panel .cnd-reviews__title {
	color: var(--brand-fill-on);
	margin-top: var(--s-2);
}
/* Mot surligné sur l'aplat : le trait accent y serait invisible, il passe dans la couleur du texte. */
.cnd.cnd-reviews .cnd-reviews__panel .cnd-highlight {
	background-image: linear-gradient(90deg, color-mix(in srgb, var(--brand-fill-on) 35%, transparent) 0%, color-mix(in srgb, var(--brand-fill-on) 35%, transparent) 100%);
}
/* Fiche Google des avis (v0.38.0 : ancien surtitre, passé sous la note). */
.cnd.cnd-reviews .cnd-reviews__fiche {
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-caption);
	color: var(--brand-fill-on);
	margin: 0;
}
.cnd.cnd-reviews .cnd-reviews__score {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
}
.cnd.cnd-reviews .cnd-reviews__score-value {
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 56px;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
.cnd.cnd-reviews .cnd-reviews__score-max {
	font-family: var(--font-body);
	font-size: 18px;
}
/* Attribution Google (contre-QA v0.3.1, point 3) : logo officiel multicolore, sur un disque blanc
   pour rester visible et non altéré quel que soit le fond (--brand-fill coloré du panneau). Taille
   et couleurs fixes, hors tokens — identité de marque, jamais reteintée par l'univers. */
.cnd.cnd-reviews .cnd-reviews__google-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	padding: 3px;
	border-radius: 50%;
	background: #fff;
	flex: none;
}
.cnd.cnd-reviews .cnd-reviews__panel .cnd-stars {
	color: var(--brand-fill-on);
	font-size: 18px;
	letter-spacing: 3px;
	margin: 6px 0;
}
.cnd.cnd-reviews .cnd-reviews__panel .cnd-stars__off {
	color: color-mix(in srgb, var(--brand-fill-on) 40%, transparent);
}
.cnd.cnd-reviews .cnd-reviews__count {
	font-family: var(--font-body);
	font-size: var(--t-small);
	color: var(--brand-fill-on);
	margin: 0;
}
.cnd.cnd-reviews .cnd-reviews__all {
	display: inline-block;
	margin-top: var(--s-3);
	font-family: var(--font-body);
	font-weight: 500;
	font-size: var(--t-small);
	color: var(--brand-fill-on);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cnd.cnd-reviews .cnd-reviews__all:hover,
.cnd.cnd-reviews .cnd-reviews__all:focus { text-decoration-thickness: 2px; }
.cnd.cnd-reviews .cnd-reviews__panel a:focus-visible { outline-color: var(--brand-fill-on); }

.cnd.cnd-reviews .cnd-reviews__carousel { flex: 2 1 320px; }
.cnd.cnd-reviews.cnd-reviews--google .cnd-reviews__carousel {
	--cnd-per-view: 2;
	--cnd-per-view-md: 1;
}
.cnd.cnd-reviews.cnd-reviews--manual .cnd-reviews__carousel { flex-basis: 100%; }
.cnd.cnd-reviews.cnd-reviews--google.cnd-reviews--un .cnd-reviews__carousel { --cnd-per-view: 1; }

/* Carte d'avis. */
.cnd.cnd-reviews .cnd-carousel__slide { display: flex; }
.cnd.cnd-reviews .cnd-review {
	display: flex;
	flex-direction: column;
	gap: var(--s-3);
	width: 100%;
	margin: 0;
	padding: var(--s-5);
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	color: var(--ink-2);
}
.cnd.cnd-reviews .cnd-review__rating { margin: 0; line-height: 1; }
.cnd.cnd-reviews .cnd-review__text {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	quotes: none;
}
.cnd.cnd-reviews .cnd-review__text p {
	font-family: var(--font-body);
	font-style: italic;
	font-size: var(--t-small);
	line-height: 1.6;
	color: var(--ink-2);
	white-space: pre-line;
	margin: 0;
	/* Contre-QA v0.3.1, point 2 : 6 lignes repliées, hauteur fixe (min-height égale à la hauteur
	   des 6 lignes) pour que toutes les cartes du carrousel aient la même hauteur repliée, quelle
	   que soit la longueur réelle du texte. Dépliage via .is-expanded (cf. .cnd-review__more
	   ci-dessous et reviews/view.js, qui pose aussi la classe uniquement si le texte dépasse
	   réellement 6 lignes). */
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	overflow: hidden;
	min-height: calc(var(--t-small) * 1.6 * 6);
}
.cnd.cnd-reviews .cnd-review.is-expanded .cnd-review__text p {
	-webkit-line-clamp: unset;
	overflow: visible;
	min-height: 0;
}
.cnd.cnd-reviews .cnd-review__more {
	align-self: flex-start;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--t-caption);
	color: var(--brand-strong);
	text-decoration: underline;
	text-underline-offset: 2px;
	padding: 0;
}
.cnd.cnd-reviews .cnd-review__more:hover,
.cnd.cnd-reviews .cnd-review__more:focus { color: var(--brand-strong); text-decoration-thickness: 2px; }
.cnd.cnd-reviews .cnd-review__more[hidden] { display: none; }
.cnd.cnd-reviews .cnd-review__author {
	font-style: normal;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	margin: 0;
}
.cnd.cnd-reviews .cnd-review__who {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px var(--s-2);
	min-width: 0;
}
.cnd.cnd-reviews .cnd-review__name {
	flex: 1 1 100%;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--t-small);
	color: var(--ink);
	text-decoration: none;
}
.cnd.cnd-reviews a.cnd-review__name:hover,
.cnd.cnd-reviews a.cnd-review__name:focus { text-decoration: underline; }
.cnd.cnd-reviews .cnd-review__role { padding: 3px 10px; }
.cnd.cnd-reviews .cnd-review__meta {
	font-family: var(--font-body);
	font-size: var(--t-caption);
	color: var(--brand-strong);
}
