/**
 * Étoiles TIF — composant unique (.tif-stars).
 * Fill proportionnel via overflow + masque SVG (fiable dès 10 %).
 * Couleur : --tif-star (#f97150, orange avis). Hero : vide plus clair.
 */

:root {
	--tif-star: #f97150;
	--tif-star-empty: #c5ccd6;
	--tif-star-empty-on-dark: rgba(255, 255, 255, 0.45);
	/* Glyphe étoile (viewBox 0 0 576 512) — même forme plein / vide. */
	--tif-star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='black' d='M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288.1 439.8l128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z'/%3E%3C/svg%3E");
}

.tif-stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	line-height: 1;
	vertical-align: middle;
}

.tif-star {
	position: relative;
	display: inline-block;
	width: 1em;
	height: 1em;
	font-size: 13px;
	line-height: 1;
	flex-shrink: 0;
}

.tif-star-base,
.tif-star-fill {
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	pointer-events: none;
}

.tif-star-base {
	width: 100%;
	background-color: var(--tif-star-empty);
	-webkit-mask-image: var(--tif-star-mask);
	mask-image: var(--tif-star-mask);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

/* Conteneur clipé : largeur = % de fill. Le ::before garde la largeur pleine (1em). */
.tif-star-fill {
	overflow: hidden;
	/* width: N% en inline */
}

.tif-star-fill::before {
	content: "";
	display: block;
	width: 1em;
	height: 100%;
	background-color: var(--tif-star);
	-webkit-mask-image: var(--tif-star-mask);
	mask-image: var(--tif-star-mask);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: left center;
	mask-position: left center;
}

.tif-stars--on-dark .tif-star-base,
.tourmaster-single-header-title-wrap .tif-star-base {
	background-color: var(--tif-star-empty-on-dark);
}

.tif-reviews-summary-stars .tif-star,
.tourmaster-single-header-title-wrap .tif-star {
	font-size: 14px;
}

/* Note chiffrée : « 4,1/5 » dans un seul flex item (pas de gap entre note et /5). */
.tourmaster-tour-rating-score {
	font-weight: 700;
	letter-spacing: 0;
	white-space: nowrap;
}

.tourmaster-tour-rating-max {
	font-weight: 600;
	opacity: 0.9;
	margin-left: 0;
	letter-spacing: 0;
}

.tourmaster-tour-rating {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
	column-gap: 6px;
	row-gap: 4px;
}

.tif-reviews-summary-max {
	font-weight: 700;
	opacity: 0.9;
	margin-left: 0;
	letter-spacing: 0;
}
