/*
 * Reprend les mêmes variables CSS que le portail client (thème Lawhere
 * avec repli sur une palette par défaut), pour une intégration visuelle
 * cohérente sur le site vitrine.
 */
.tremvi-ca-equipe {
	--tremvi-primary: var(--wdtPrimaryColor, #A69D84);
	--tremvi-secondary: var(--wdtSecondaryColor, #2A2E31);
	--tremvi-tertiary: var(--wdtTertiaryColor, #F4F5EF);
	--tremvi-text: var(--wdtBodyTxtColor, #222222);
	--tremvi-heading: var(--wdtHeadAltColor, #2A2E31);
	--tremvi-border: var(--wdtBorderColor, #e2e0da);
	--tremvi-font-body: var(--wdtFontTypo_Base, "DM Sans", sans-serif);
	--tremvi-font-heading: var(--wdtFontTypo_Alt, "prata", serif);
	--tremvi-radius: var(--wdtRadius_2X, 5px);
	--tremvi-transition: var(--wdtBaseTransition, all 0.3s linear 0s);

	max-width: 1200px;
	margin: 0 auto;
	font-family: var(--tremvi-font-body);
	color: var(--tremvi-text);
	text-align: center;
}
.tremvi-ca-equipe-titre {
	font-family: var(--tremvi-font-heading);
	color: var(--tremvi-heading);
	font-weight: 400;
	font-size: 2em;
	margin-bottom: 0.6em;
}
.tremvi-ca-equipe-vide {
	color: var(--tremvi-text);
	opacity: 0.7;
}

.tremvi-ca-equipe-filtres {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5em;
	margin-bottom: 2em;
}
.tremvi-ca-filtre-btn {
	background: #fff;
	border: 1px solid var(--tremvi-border);
	border-radius: 999px;
	padding: 0.5em 1.3em;
	font-family: var(--tremvi-font-body);
	font-size: 0.88em;
	cursor: pointer;
	color: var(--tremvi-text);
	transition: var(--tremvi-transition);
}
.tremvi-ca-filtre-btn:hover {
	border-color: var(--tremvi-primary);
}
.tremvi-ca-filtre-btn.active {
	background: var(--tremvi-secondary);
	border-color: var(--tremvi-secondary);
	color: #fff;
}

.tremvi-ca-equipe-grille {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.8em;
}
.tremvi-ca-cols-2 .tremvi-ca-equipe-grille { grid-template-columns: repeat(2, 1fr); }
.tremvi-ca-cols-3 .tremvi-ca-equipe-grille { grid-template-columns: repeat(3, 1fr); }
.tremvi-ca-cols-4 .tremvi-ca-equipe-grille { grid-template-columns: repeat(4, 1fr); }

.tremvi-ca-equipe-carte {
	transition: var(--tremvi-transition);
	cursor: pointer;
}
.tremvi-ca-equipe-carte.tremvi-ca-hidden {
	display: none;
}
.tremvi-ca-equipe-lien {
	text-decoration: none;
	color: inherit;
	display: block;
}
.tremvi-ca-equipe-photo {
	display: block;
	background: #ddd;
	transition: var(--tremvi-transition);
}
.tremvi-ca-equipe-nom {
	color: var(--tremvi-heading);
}
.tremvi-ca-equipe-socials {
	display: flex;
	gap: 0.5em;
}
.tremvi-ca-equipe-socials a {
	color: var(--tremvi-text);
	opacity: 0.6;
	transition: var(--tremvi-transition);
}
.tremvi-ca-equipe-socials a:hover {
	opacity: 1;
	color: var(--tremvi-primary);
}

/* Halo pastel cyclé (styles 3 et 5), inspiré des kits team showcase colorés */
.tremvi-ca-equipe-carte:nth-child(4n+1) .tremvi-ca-equipe-photo-wrap { background: #f7dbe6; }
.tremvi-ca-equipe-carte:nth-child(4n+2) .tremvi-ca-equipe-photo-wrap { background: #ffe4c7; }
.tremvi-ca-equipe-carte:nth-child(4n+3) .tremvi-ca-equipe-photo-wrap { background: #cdeee7; }
.tremvi-ca-equipe-carte:nth-child(4n+4) .tremvi-ca-equipe-photo-wrap { background: #e4dcf9; }

/* ===== Modèle 1 : photo rectangulaire, texte aligné à gauche ===== */
.tremvi-ca-style-team1 .tremvi-ca-equipe-carte { text-align: left; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-photo-wrap {
	border-radius: var(--tremvi-radius);
	overflow: hidden;
	margin-bottom: 1em;
	aspect-ratio: 3 / 4;
}
.tremvi-ca-style-team1 .tremvi-ca-equipe-photo { width: 100%; height: 100%; object-fit: cover; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-nom { text-transform: uppercase; font-weight: 700; font-size: 0.92em; letter-spacing: 0.4px; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-poste { font-size: 0.8em; opacity: 0.6; margin: 0.2em 0 0.6em; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-resume { font-size: 0.85em; opacity: 0.75; line-height: 1.5; margin-bottom: 0.8em; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-socials { justify-content: flex-start; }
.tremvi-ca-style-team1 .tremvi-ca-equipe-socials a,
.tremvi-ca-style-team4 .tremvi-ca-equipe-socials a {
	width: 27px; height: 27px; border: 1px solid var(--tremvi-border); border-radius: 5px;
	display: flex; align-items: center; justify-content: center; opacity: 1;
}
.tremvi-ca-style-team1 .tremvi-ca-equipe-carte:hover .tremvi-ca-equipe-photo { transform: scale(1.03); }

/* ===== Modèle 2 : portrait circulaire minimaliste, centré ===== */
.tremvi-ca-style-team2 .tremvi-ca-equipe-carte {
	text-align: center;
	background: #fff;
	border-radius: var(--tremvi-radius);
	box-shadow: 0 4px 22px rgba(0, 0, 0, 0.07);
	padding: 2.2em 1.2em;
}
.tremvi-ca-style-team2 .tremvi-ca-equipe-photo-wrap { width: 108px; height: 108px; margin: 0 auto 1.1em; }
.tremvi-ca-style-team2 .tremvi-ca-equipe-photo { width: 108px; height: 108px; border-radius: 50%; object-fit: cover; }
.tremvi-ca-style-team2 .tremvi-ca-equipe-nom { font-weight: 700; }
.tremvi-ca-style-team2 .tremvi-ca-equipe-poste { font-size: 0.85em; opacity: 0.6; margin-top: 0.2em; }
.tremvi-ca-style-team2 .tremvi-ca-equipe-socials { justify-content: center; margin-top: 1.1em; }
.tremvi-ca-style-team2 .tremvi-ca-equipe-socials a {
	width: 26px; height: 26px; border: 1px solid var(--tremvi-border); border-radius: 5px;
	display: flex; align-items: center; justify-content: center; opacity: 1;
}
.tremvi-ca-style-team2 .tremvi-ca-equipe-carte:hover .tremvi-ca-equipe-photo { box-shadow: 0 0 0 3px var(--tremvi-primary); }

/* ===== Modèle 3 : portrait sur fond coloré arrondi ===== */
.tremvi-ca-style-team3 .tremvi-ca-equipe-carte {
	background: var(--tremvi-tertiary);
	border-radius: calc(var(--tremvi-radius) * 3 + 6px);
	padding: 2em 1.2em;
	text-align: center;
}
.tremvi-ca-style-team3 .tremvi-ca-equipe-photo-wrap {
	width: 110px; height: 110px; margin: 0 auto 1em; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.tremvi-ca-style-team3 .tremvi-ca-equipe-photo {
	width: 96px; height: 96px; border-radius: 50%; object-fit: cover;
	box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.6);
}
.tremvi-ca-style-team3 .tremvi-ca-equipe-nom { font-weight: 700; }
.tremvi-ca-style-team3 .tremvi-ca-equipe-poste { font-size: 0.85em; opacity: 0.6; margin: 0.2em 0 0.6em; }
.tremvi-ca-style-team3 .tremvi-ca-equipe-resume { font-size: 0.85em; font-style: italic; opacity: 0.75; line-height: 1.5; }
.tremvi-ca-style-team3 .tremvi-ca-equipe-socials { justify-content: center; margin-top: 1.1em; }
.tremvi-ca-style-team3 .tremvi-ca-equipe-socials a {
	width: 30px; height: 30px; border-radius: 50%; background: #fff;
	display: flex; align-items: center; justify-content: center; opacity: 1;
}

/* ===== Modèle 4 : carte photo carrée + bordure, texte à gauche ===== */
.tremvi-ca-style-team4 .tremvi-ca-equipe-carte {
	background: #fff;
	border-radius: var(--tremvi-radius);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
	overflow: hidden;
	text-align: left;
}
.tremvi-ca-style-team4 .tremvi-ca-equipe-photo-wrap { aspect-ratio: 1 / 1; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-photo { width: 100%; height: 100%; object-fit: cover; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-texte { padding: 1em 1.2em 0.6em; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-nom { font-weight: 700; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-poste { font-size: 0.8em; opacity: 0.6; margin: 0.2em 0 0.5em; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-resume { font-size: 0.85em; opacity: 0.75; line-height: 1.5; }
.tremvi-ca-style-team4 .tremvi-ca-equipe-socials { padding: 0.6em 1.2em 1.2em; }

/* ===== Modèle 5 : portrait circulaire sur halo pastel ===== */
.tremvi-ca-style-team5 .tremvi-ca-equipe-carte { text-align: center; }
.tremvi-ca-style-team5 .tremvi-ca-equipe-photo-wrap {
	width: 134px; height: 134px; margin: 0 auto 1em; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.tremvi-ca-style-team5 .tremvi-ca-equipe-photo { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; }
.tremvi-ca-style-team5 .tremvi-ca-equipe-nom { font-weight: 700; }
.tremvi-ca-style-team5 .tremvi-ca-equipe-poste { font-size: 0.8em; color: var(--tremvi-primary); font-weight: 600; margin-top: 0.2em; }
.tremvi-ca-style-team5 .tremvi-ca-equipe-socials { justify-content: center; margin-top: 0.8em; }
.tremvi-ca-style-team5 .tremvi-ca-equipe-socials a {
	width: 24px; height: 24px; border: 1px solid var(--tremvi-border); border-radius: 50%;
	display: flex; align-items: center; justify-content: center; opacity: 1;
}

@media (max-width: 900px) {
	.tremvi-ca-cols-3 .tremvi-ca-equipe-grille,
	.tremvi-ca-cols-4 .tremvi-ca-equipe-grille {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 560px) {
	.tremvi-ca-equipe-grille {
		grid-template-columns: 1fr !important;
	}
}

/* Fiche détaillée */
.tremvi-ca-equipe-detail {
	text-align: left;
	max-width: 960px;
}
.tremvi-ca-equipe-retour {
	display: inline-block;
	margin-bottom: 2em;
	color: var(--tremvi-text);
	opacity: 0.7;
	text-decoration: none;
	font-size: 0.92em;
	transition: var(--tremvi-transition);
}
.tremvi-ca-equipe-retour:hover {
	opacity: 1;
	color: var(--tremvi-primary);
}
.tremvi-ca-fiche {
	display: flex;
	gap: 3em;
	align-items: flex-start;
	flex-wrap: wrap;
}
.tremvi-ca-fiche-photo-col {
	flex: 0 0 240px;
	text-align: center;
}
.tremvi-ca-fiche-photo {
	width: 240px;
	height: 240px;
	border-radius: var(--tremvi-radius);
	object-fit: cover;
	background: #ddd;
	display: block;
	margin: 0 auto 1.2em;
}
.tremvi-ca-fiche-socials {
	justify-content: center;
	margin-bottom: 1.5em;
}
.tremvi-ca-fiche-rdv {
	display: block;
	text-align: center;
}
.tremvi-btn {
	display: inline-block;
	padding: var(--wdtPadding_Btn, 14px 28px);
	border-radius: var(--tremvi-radius);
	border: 1px solid var(--tremvi-secondary);
	cursor: pointer;
	font-family: var(--tremvi-font-body);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 0.85em;
	line-height: 1;
	text-decoration: none;
	transition: var(--tremvi-transition);
}
.tremvi-btn-primary {
	background: var(--tremvi-secondary);
	border-color: var(--tremvi-secondary);
	color: var(--wdtAccentTxtColor, #ffffff);
}
.tremvi-btn-primary:hover {
	background: var(--tremvi-primary);
	border-color: var(--tremvi-primary);
	color: var(--wdtAccentTxtColor, #ffffff);
}
.tremvi-ca-fiche-contenu {
	flex: 1;
	min-width: 280px;
}
.tremvi-ca-fiche-nom {
	font-family: var(--tremvi-font-heading);
	color: var(--tremvi-heading);
	font-weight: 400;
	font-size: 2.1em;
	margin: 0 0 0.2em;
}
.tremvi-ca-fiche-poste {
	color: var(--tremvi-primary);
	font-weight: 600;
	font-size: 1.05em;
	margin: 0 0 1.5em;
}
.tremvi-ca-fiche-bio {
	line-height: 1.7;
	color: var(--tremvi-text);
}
.tremvi-ca-fiche-bio p {
	margin-bottom: 1.1em;
}
.tremvi-ca-fiche-bio-vide {
	opacity: 0.6;
	font-style: italic;
}
.tremvi-ca-fiche-coordonnees {
	margin-top: 2em;
	padding-top: 1.5em;
	border-top: 1px solid var(--tremvi-border);
}
.tremvi-ca-fiche-coordonnees h3 {
	font-family: var(--tremvi-font-heading);
	font-weight: 400;
	font-size: 1.2em;
	margin-bottom: 0.6em;
}
.tremvi-ca-fiche-coordonnees ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tremvi-ca-fiche-coordonnees li {
	margin-bottom: 0.5em;
	color: var(--tremvi-text);
}
.tremvi-ca-fiche-coordonnees a {
	color: var(--tremvi-primary);
	text-decoration: none;
}
.tremvi-ca-fiche-coordonnees a:hover {
	text-decoration: underline;
}

@media (max-width: 640px) {
	.tremvi-ca-fiche {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.tremvi-ca-fiche-contenu {
		text-align: left;
	}
}
