/**
 * Styles propres à Circuitgroupes (blog 3).
 * Chargé uniquement sur ce sous-site (themeStyleScript) et toujours préfixé par
 * body.site-circuit : rien ici ne doit toucher restogroupes / hotelgroupes.
 */

/* Boutons (maquettes Primary Button Filled 21:633 et Primary Button Outlined 21:638). Le thème met
   la couleur secondaire au survol ; ici elle vaut la couleur principale, donc le bouton bleu ne
   changeait pas. Survol : la couleur du bouton assombrie, soit #0085B2 pour le bleu #00ABE5 de la
   maquette, et un vert / rouge plus foncé pour les cards Hôtelgroupes / Restogroupes, qui
   redéfinissent --highlight-color. Bouton à contour : trait et texte #0085B2. Le bouton sombre
   (.kl-btn-dark) passe déjà au bleu, comme dans la maquette (Secondary Button Filled). */
body.site-circuit .kl-btn {
	--kl-cg-btn-hover: color-mix(in srgb, var(--highlight-color, #00abe5) 77.8%, #000);
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

body.site-circuit .kl-btn:not(.kl-btn-o):not(.kl-btn-dark):not(.kl-btn-bg-grey):hover,
body.site-circuit .kl-btn:not(.kl-btn-o):not(.kl-btn-dark):not(.kl-btn-bg-grey):focus-visible,
/* Cards entièrement cliquables (kl-mini-card--link posé par-dessus, ex. « Hôtel associé » de la fiche
   circuit) : le bouton ne reçoit jamais le survol, il le prend donc au survol de la card. */
body.site-circuit .kl-mini-card:hover .kl-btn:not(.kl-btn-o):not(.kl-btn-dark):not(.kl-btn-bg-grey) {
	border-color: var(--kl-cg-btn-hover);
	background-color: var(--kl-cg-btn-hover);
	color: #fdfcfc;
}

body.site-circuit .kl-btn.kl-btn-o:hover,
body.site-circuit .kl-btn.kl-btn-o:focus-visible {
	border-color: #0085b2;
	background-color: transparent;
	color: #0085b2;
}

body.site-circuit .kl-btn.kl-btn-o:hover i,
body.site-circuit .kl-btn.kl-btn-o:focus-visible i {
	color: #0085b2 !important;
}

/* En-tête (maquette Header-top 8028:14975 et Menu Title 25:683).
   Logos RG / HG du bandeau : les deux images ont la même ligne de base à 10 px du bas, mais pas
   la même hauteur (300×66 et 300×72) ; centrées, « Groupes » n'était pas sur la même ligne. */
body.site-circuit .kl-site__sitelist {
	align-items: flex-end;
}

@media (min-width: 992px) {
	/* Pas de trait à gauche du téléphone sur Circuitgroupes. */
	body.site-circuit .kl-site-header__infos {
		border-left: 0;
		padding-left: 0;
	}

	/* Onglets du menu : filet bleu de 1,5 px en bas, au survol et menu ouvert (le thème mettait
	   1 px au survol seulement, et le perdait dès que la souris entrait dans le méga-menu). */
	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > a,
	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > span {
		border-bottom-color: transparent;
		transition: box-shadow 0.2s ease;
	}

	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > a:hover,
	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > span:hover,
	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > a.show {
		border-bottom-color: transparent;
		box-shadow: inset 0 -1.5px 0 #00abe5;
	}

	body.site-circuit .kl-site-header__wrap .kl-navbar-nav > .menu-item > a.show:focus-visible {
		outline: none;
	}
}

/* Onglets des fiches circuit, hôtel et activité (maquette mini-nav 2100:2518) : onglet actif
   souligné de 1,5 px #292C3D, les autres à 70 %, le survol en pleine couleur, sans filet bleu. */
body.site-circuit .kl-single__navs--item,
body.site-circuit .kl-single__navs--item.active,
body.site-circuit .kl-single__navs--item.active:hover {
	border-bottom-color: transparent;
}

body.site-circuit .kl-single__navs--item--link {
	color: rgba(41, 44, 61, 0.7);
	transition: color 0.2s ease, box-shadow 0.2s ease;
}

body.site-circuit .kl-single__navs--item--link:hover,
body.site-circuit .kl-single__navs--item--link:focus-visible,
body.site-circuit .kl-single__navs--item.active .kl-single__navs--item--link {
	color: #292c3d;
}

body.site-circuit .kl-single__navs--item.active .kl-single__navs--item--link {
	box-shadow: inset 0 -1.5px 0 #292c3d;
}

/* Fiches (circuit, activité, hôtel) — barre d'onglets : sur mobile / tablette,
   une seule ligne qui défile horizontalement au lieu d'élargir la page
   (« FAQ » sortait de l'écran à 375 px). */
@media (max-width: 991.98px) {
	body.site-circuit .kl-single__navs--items {
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
	}

	body.site-circuit .kl-single__navs--items::-webkit-scrollbar {
		display: none;
	}

	body.site-circuit .kl-single__navs--item {
		flex: 0 0 auto;
		white-space: nowrap;
	}
}

/* Page devis / demande de conseil (maquettes DEVIS 4110-10856 et 10888-17410) :
   badge « Région » sur la carte de la sous-page, réassurance sous la carte. */
body.site-circuit .kl-page-devis-block .kl-mini-card--thumb {
	position: relative;
}

body.site-circuit .kl-page-devis-block__badge {
	position: absolute;
	top: 0;
	left: 0;
	padding: 4px 12px;
	border-radius: 4px 0 4px 0;
	background-color: #00a0e3;
	color: #fff;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.4;
}

/* La carte circuit prend height: 100% en ligne (grilles de listing) : ici elle
   garde sa hauteur propre, sans extrait (maquette). */
body.site-circuit .kl-page-devis-block .kl-mini-card {
	height: auto !important;
}

body.site-circuit .kl-page-devis-block .kl-mini-card--excerpt {
	display: none !important;
}

body.site-circuit .kl-page-devis-block__reassurance {
	margin-top: 16px;
}

body.site-circuit .kl-page-devis-block__reassurance .kl-mini-card--reassurance + .kl-mini-card--reassurance {
	margin-top: 12px;
}

/* Région / ville sans circuit : invitation à demander un conseil. */
body.site-circuit .kl-listing-empty__conseil {
	margin: 8px 0 16px;
}

/* « Nos partenaires » : six partenaires, donc trois cartes par ligne sur grand
   écran au lieu de quatre + deux étirées. Seulement au-delà de quatre cartes :
   Qui sommes-nous (4132-3722) en garde quatre sur une ligne. */
@media (min-width: 1200px) {
	body.site-circuit .kl-partner-list .col-xl-3:nth-last-child(n+5),
	body.site-circuit .kl-partner-list .col-xl-3:nth-last-child(n+5) ~ .col-xl-3 {
		flex-basis: 33.3333%;
		max-width: 33.3333%;
	}
}

/* ==========================================================================
   Listing « Nos circuits » (maquettes 2056-916 grille, 6177-11460 carte,
   2074-4225 filtres).
   ========================================================================== */

/* Le fil d'Ariane global reste affiché au-dessus de ce bloc titre :
   hero-titre-page.css le cache quand il touche directement le contenu (sans
   le loader, rendu sur « Les circuits » seulement), ce qui le faisait
   disparaître sur « Les activités » et « Les hôtels ». */
body.site-circuit .kl-breadcrumb:has(+ .kl-content-main .kl-hero-titre-page--plain) {
	display: block;
}

/* Bloc titre : titre centré seul sous le fil d'Ariane global, sans encadré
   (le template ne rend ni second fil d'Ariane, ni compteur, ni pastilles). */
body.site-circuit .kl-hero-titre-page--plain .kl-hero-titre-page__surface {
	overflow: visible;
	padding: 1.5rem 0 2rem;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

@media (min-width: 992px) {
	body.site-circuit .kl-hero-titre-page--plain .kl-hero-titre-page__surface {
		padding: 2.5rem 0 3.5rem;
	}
}

body.site-circuit .kl-hero-titre-page--plain .kl-hero-titre-page__title {
	max-width: 15em;
	margin: 0 auto !important;
	font-weight: 500 !important;
	letter-spacing: -0.01em;
	line-height: 1.25;
	font-size: clamp(1.75rem, 1.5vw + 1.2rem, 2.5rem);
}

body.site-circuit .kl-hero-titre-page--plain .kl-hero-titre-page__title .kl-color-principal,
body.site-circuit .kl-hero-titre-page--plain .kl-hero-titre-page__title .kl-color-primaire {
	display: inline;
	padding: 0;
	border-radius: 0;
	background: none;
	font-weight: inherit;
}

/* Barre de recherche : bande blanche bordée sur toute la largeur, champs
   blancs bordés, plus de fond gris « intégré ». */
@media (min-width: 992px) {
	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__search {
		position: relative;
		padding: 20px 0;
		background: #fff;
	}

	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__search::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 50%;
		z-index: -1;
		width: 100vw;
		transform: translateX(-50%);
		border-top: 1px solid #e5e7eb;
		border-bottom: 1px solid #e5e7eb;
		background: #fff;
		pointer-events: none;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated,
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-linsting-cpt__search--form {
		padding: 0;
		border-radius: 0;
		background: transparent;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search-establishment__form {
		gap: 16px;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search-establishment__item:not(.kl-search-establishment__item--submit) {
		flex: 1 1 0;
		min-width: 0;
		max-width: none;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search-establishment__item:not(.kl-search-establishment__item--submit) > * {
		width: 100%;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search,
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .ts-wrapper .ts-control,
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated select.kl-search-establishment__item--field {
		border: 1px solid #d1d5db !important;
		border-radius: 2px !important;
		background-color: #fff !important;
	}

	/* Un seul cadre par champ : le champ texte dans .kl-search et le wrapper
	   Tom Select (Région) gardaient leur propre bordure, d'où un double cadre. */
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search .kl-search-establishment__item--field,
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .ts-wrapper.kl-search-establishment__item--field {
		border: 0 !important;
		border-radius: 0 !important;
		background-color: transparent !important;
	}

	/* 42 px + le cadre de .kl-search = 44 px, comme les autres champs. */
	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search .kl-search-establishment__item--field {
		height: 42px !important;
		min-height: 42px !important;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .ts-wrapper.kl-search-establishment__item--field {
		padding: 0 !important;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .ts-wrapper .ts-control {
		padding-left: 15px !important;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt__search--row--integrated .kl-search-establishment__item--submit button {
		padding-left: 24px;
		padding-right: 24px;
		border-radius: 2px;
	}
}

/* « Région » en liste déroulante (retour d'Ugo du 19/10) : même chevron que « Thématiques »,
   le champ ne se tape pas (custom-select.js). */
body.site-circuit .kl-linsting-cpt .ts-wrapper.kl-search-establishment__item--field .ts-control {
	padding-right: 40px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23292c3d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	cursor: pointer;
}

body.site-circuit .kl-linsting-cpt .ts-wrapper.kl-search-establishment__item--field .ts-control input {
	cursor: pointer;
}

/* Ligne « Résultats » + boutons grille / carte (déplacés hors de la barre). */
body.site-circuit .kl-linsting-cpt--actions .kl-view-mode-post {
	display: inline-flex;
	gap: 4px;
	padding: 4px;
	border: 1px solid #e5e7eb;
	border-radius: 4px;
	background: #fff;
}

body.site-circuit .kl-linsting-cpt--actions .kl-view-mode-post__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: #292c3d;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

body.site-circuit .kl-linsting-cpt--actions .kl-view-mode-post__btn.kl-active {
	background: #292c3d;
	color: #fff;
}

body.site-circuit .kl-linsting-cpt--actions .kl-view-mode-post__btn:hover:not(.kl-active) {
	background: #f3f4f6;
}

/* Vue carte, ordinateur : fiches en colonne à gauche, carte à droite
   (listing.js n'y monte plus le carrousel vertical). */
@media (min-width: 992px) {
	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
		gap: 24px;
		align-items: start;
	}

	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] > *,
	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--grid {
		width: auto;
		min-width: 0;
	}

	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt--grid > .kl-linsting-cpt--item {
		flex: 0 0 100%;
		max-width: 100%;
	}

	/* Carte fixe pendant le défilement, seules les fiches défilent : elle colle
	   sous l'en-tête et s'arrête avec la dernière fiche (avant la pagination).
	   Le wrapper est en overflow: hidden (main.min.css), ce qui empêche le
	   sticky ; overflow: clip rogne pareil sans créer de conteneur de défilement. */
	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt--wrapper:has(> .kl-linsting-cpt__listing[data-mode="map"]) {
		overflow: clip;
	}

	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map {
		position: sticky;
		top: calc(var(--header--h-stick, 0px) + 16px);
		height: calc(100vh - var(--header--h-stick, 0px) - 32px);
		min-height: 400px;
	}

	body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-linsting-cpt__listing[data-mode="map"] .kl-map-cart {
		height: 100% !important;
	}
}

/* Repère d'hôtel sur la carte des circuits : « N circuits » ; au survol, nom
   de l'hôtel ; au clic, les cards de ses circuits (listing.js, klCgOnMarkerClick). */
body.site-circuit .kl-map-cart .marker-pin {
	white-space: nowrap;
}

/* Ancrage : la pointe du repère sur la coordonnée. listing.js pose le wrapper
   0×0 sur la LatLng ; cette règle n'existait que pour le listing progressif
   (listing-progressive.css), d'où des repères décalés en bas à droite. La
   pointe est à 5 px au-dessus du bas du .marker (pin à bottom: 10px + flèche
   de 5 px), d'où top: -35px. */
body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-map-cart .kl-map-overlay-root {
	width: 0 !important;
	height: 0 !important;
	overflow: visible !important;
}

body.site-circuit .kl-linsting-cpt:not(.kl-linsting-cpt--progressive) .kl-map-cart .kl-map-overlay-root > .marker {
	position: absolute;
	left: -25px;
	top: -35px;
	width: 50px;
	height: 40px;
	box-sizing: border-box;
	overflow: visible;
}

/* Vue carte, ordinateur : clic sur un repère d'hôtel = la colonne ne montre plus
   que ses circuits, sous ce bandeau (nom de l'hôtel, nombre, retour à la liste). */
/* Bulle du repère : listing.js (klCgKeepPreviewInMap) la décale par margin-left
   pour qu'elle reste dans la carte ; ce décalage suit la carte sans animation. */
body.site-circuit .kl-linsting-cpt__listing .kl-map-cart .marker [data-tooltip] > .marker-content {
	transition-property: opacity, transform;
}
body.site-circuit .kl-cg-map-selection-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	padding: 12px 16px;
	border: 1px solid #e5e7eb;
	border-left: 3px solid var(--highlight-color);
	border-radius: 4px;
	background: #fff;
}

body.site-circuit .kl-cg-map-selection-head__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

body.site-circuit .kl-cg-map-selection-head__text strong {
	color: #292c3d;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

body.site-circuit .kl-cg-map-selection-head__text span {
	color: var(--highlight-color);
	font-size: 0.9rem;
}

body.site-circuit .kl-cg-map-selection-close {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border: 1px solid #292c3d;
	border-radius: 4px;
	background: #fff;
	color: #292c3d;
	font-size: 0.875rem;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

body.site-circuit .kl-cg-map-selection-close span {
	font-size: 1.2em;
	line-height: 1;
}

body.site-circuit .kl-cg-map-selection-close:hover,
body.site-circuit .kl-cg-map-selection-close:focus-visible {
	background: #292c3d;
	color: #fff;
}

body.site-circuit .kl-map-hotel-tip {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 14px;
	white-space: normal;
	color: #292c3d;
}

body.site-circuit .kl-map-hotel-tip strong {
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
}

body.site-circuit .kl-map-hotel-tip span {
	color: var(--highlight-color);
	font-size: 0.85rem;
}

/* Fiche circuit — journées : crédit de la photo (Unsplash / Wikimedia Commons),
   discret, en bas à droite de l'image. */
body.site-circuit .circuit-day-photo {
	position: relative;
}

body.site-circuit .circuit-day-photo__credit {
	position: absolute;
	right: calc(var(--bs-gutter-x, 1.5rem) * 0.5 + 6px);
	bottom: 6px;
	max-width: calc(100% - var(--bs-gutter-x, 1.5rem) - 12px);
	padding: 2px 8px;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 11px;
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

body.site-circuit .circuit-day-photo__credit a {
	color: inherit;
	text-decoration: underline;
}

/* ==========================================================================
   Sous-pages « Circuit + Région » / « Circuit + Thématique » (maquettes
   4085-4159, 4085-5642) et variante sans circuit (10896-17289).
   ========================================================================== */

/* En-tête : nom de la région / thématique en couleur. */
body.site-circuit .kl-banner__title-highlight {
	color: var(--highlight-color, #00a6df);
}

/* Bloc SEO : une rubrique par thématique d'activité (ou par région). */
body.site-circuit .kl-text-image__descritpion h3 {
	margin: 0 0 0.75rem;
	font-size: 1.125rem;
	font-weight: 600;
	color: #292c3d;
}

body.site-circuit .kl-text-image__descritpion p + h3 {
	margin-top: 2rem;
}

body.site-circuit .kl-text-image__descritpion a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.site-circuit .kl-text-image__descritpion a:hover {
	color: var(--highlight-color, #00a6df);
}

/* Image du bloc SEO au format de la maquette (3/2), quelle que soit la photo. */
body.site-circuit.single-sous-page .kl-section-text-image-illustration .kl-text-image__col--img img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* Avis : titre centré, comme dans la maquette. */
body.site-circuit.single-sous-page .kl-review-list__title {
	text-align: center;
}

/* Vignettes (« Activités à faire en groupe », « Explorez la France », carrousel
   « Découvrez des circuits dans ces régions ») :
   badge compteur collé en haut à gauche, comme les autres cartes du site. */
body.site-circuit .kl-cg-vignettes .kl-card-vignette-mini__thumbnail,
body.site-circuit .kl-cg-vignettes .kl-card-vignette-mini__thumbnail img {
	border-radius: 4px;
}

body.site-circuit .kl-cg-vignettes .kl-mini-card--badge,
body.site-circuit.single-sous-page .kl-section-autres-villes .kl-mini-card--badge {
	top: 0;
	left: 0;
	margin: 0;
	border-radius: 4px 0 4px 0;
	background-color: var(--highlight-color) !important;
	color: #fff !important;
}

/* Aucun résultat : compteur à gauche, message centré. */
body.site-circuit .kl-listing-empty--cg {
	padding: 1.875rem 0 1rem;
}

body.site-circuit .kl-listing-empty--cg .kl-listing-empty__count {
	margin-bottom: 1.5rem;
	font-size: 0.875rem;
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-listing-empty--cg .kl-listing-empty__body {
	max-width: 50rem;
	margin: 0 auto;
}

body.site-circuit .kl-listing-empty--cg .kl-listing-empty__title {
	margin-bottom: 1.5rem;
}

body.site-circuit .kl-listing-empty--cg .kl-listing-empty__conseil {
	margin: 0 0 2rem;
}

/* Cartes circuit, activité et hôtel (maquettes Circuit-card 4239:12054, Activité-card 10898:18497,
   Hotel-card 10771:21247), partout où elles paraissent : listes, carrousels de l'accueil, des fiches
   et des sous-pages. Carte 413 × 551 : cadre 1 px, arrondi 7 px, 10 px autour de l'image 393 × 272
   (arrondi 2 px), 18 px sous l'image. Thématique 16 px, titre 22 px, puis 24 px jusqu'au lieu et à la
   durée (18 px, 12 px entre eux), 24 px, extrait de 61 px coupé par « … », 24 px, « Découvrir ».
   Le thème et listing-progressive.css (0,6,0) posent leurs propres marges et arrondis selon le
   contexte (carrousel, liste) : d'où les !important. Gabarits : widget-mini-card.php et
   mink_cg_activity_card_html(). */
body.site-circuit .kl-mini-card.kl-cg-card {
	display: flex;
	flex-direction: column;
	gap: 0;
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
	margin: 0 !important;
	padding: 10px !important;
	border: 1px solid rgba(41, 44, 61, 0.2) !important;
	border-radius: 7px !important;
	background-color: #fdfcfc;
	box-shadow: none !important;
}

body.site-circuit .kl-mini-card.kl-cg-card > .kl-mini-card--thumb {
	flex-shrink: 0;
	width: 100%;
	height: auto !important;
	aspect-ratio: 393 / 272 !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 2px !important;
	overflow: hidden;
	box-shadow: none !important;
}

body.site-circuit .kl-mini-card.kl-cg-card > .kl-mini-card--thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}

body.site-circuit .kl-mini-card.kl-cg-card .kl-mini-card--badge {
	top: 0;
	left: 0;
	margin: 0;
	padding: 10px 16px;
	border: 0;
	border-radius: 0 0 4px 0 !important;
	box-shadow: none;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 0.75rem;
	background-color: var(--highlight-color, #00abe5) !important;
	color: #fdfcfc !important;
}

body.site-circuit .kl-mini-card.kl-cg-card > .kl-mini-card--content {
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	min-width: 0;
	padding: 18px 0 0 !important;
}

/* Textes des cartes circuit et activité. Chaque ligne a sa hauteur (thématique, lieu et durée sur
   une ligne, titre sur deux) : « Découvrir » tombe au même endroit sur toutes les cartes d'une rangée,
   toujours à 24 px de l'extrait. */
body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--thematique {
	margin: 0 0 14px !important;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-family: "Catamaran", sans-serif;
	font-size: 1rem !important;
	font-weight: 500;
	line-height: 1.25rem !important;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	height: 3.5rem; /* 2 lignes × 28 px */
	margin: 0 0 24px !important;
	font-family: "Catamaran", sans-serif;
	font-size: 1.375rem !important;
	font-weight: 500 !important;
	line-height: 1.75rem !important;
	text-transform: none;
	color: #292c3d;
}

/* Carte activité : l'adresse suit le nom de près (retour d'Ugo du 19/10), sans réserver la
   seconde ligne d'un titre court. */
body.site-circuit .kl-cg-card.kl-cg-card--activite .kl-mini-card--title {
	height: auto;
	margin-bottom: 12px !important;
}

/* Une carte par ligne : rien à aligner, le titre prend sa hauteur. */
@media (max-width: 767.98px) {
	body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--title {
		height: auto;
	}
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon {
	display: flex;
	align-items: center;
	gap: 4px !important;
	min-width: 0;
	margin: 0 !important;
	font-family: "Catamaran", sans-serif;
	font-size: 1.125rem !important;
	line-height: 1.2 !important;
	color: rgba(41, 44, 61, 0.8) !important;
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon + .kl-mini-card--item_icon {
	margin-top: 12px !important;
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon > span {
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon > i,
body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon > svg {
	flex-shrink: 0;
	width: 16px;
	margin: 0;
	font-size: 1rem;
	text-align: center;
}

body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--item_icon > svg {
	height: 16px;
}

/* 61 px, trois lignes au plus coupées par « … » (maquette : 18 px, hauteur 61 px). Interligne tiré de
   la hauteur : sous 992 px la taille de police de base baisse, et une 4e ligne apparaissait. */
body.site-circuit .kl-cg-card:not(.kl-cg-card--hotel) .kl-mini-card--excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	height: 61px;
	margin: 24px 0 0 !important;
	font-family: "Catamaran", sans-serif;
	font-size: 1.125rem !important;
	line-height: calc(61px / 3) !important;
	color: #292c3d !important;
}

body.site-circuit .kl-mini-card.kl-cg-card .kl-mini-card--action {
	margin-top: auto;
	padding-top: 24px !important;
	border: 0;
}

/* « Découvrir → » / « Consulter → » (Tertiary Button 4239:7365) : au survol de la carte, la flèche
   s'écarte du texte (4 → 12 px). */
body.site-circuit .kl-cg-card__more {
	position: relative;
	z-index: 13;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	color: var(--highlight-color, #00abe5);
	transition: gap 0.2s ease;
}

body.site-circuit .kl-cg-card__more svg {
	flex-shrink: 0;
}

body.site-circuit .kl-cg-card:hover .kl-cg-card__more,
body.site-circuit .kl-cg-card__more:focus-visible {
	gap: 12px;
	color: var(--highlight-color, #00abe5);
}

/* Hôtel : étoiles, nom, lieu et capacité gardent leur mise en page ; 18 px sous l'image comme les autres. */
body.site-circuit .kl-cg-card--hotel .kl-mini-card__note {
	margin-top: 0;
}

body.site-circuit .kl-cg-region-activities .swiper-slide {
	display: flex;
}

body.site-circuit .kl-cg-circuit-activities .swiper-slide {
	display: flex;
}

/* Carrousels des sous-pages (« Hôtels en {région} », « Activités dans la région ») : cartes à la
   hauteur de la plus grande, « Consulter » / « Découvrir » alignés en bas. Le thème aligne les
   cartes en haut (.kl-slider-carousel .swiper-wrapper, align-items: flex-start). */
body.site-circuit .kl-cg-sous-page-section .kl-slider-decouvre-autre > .swiper-wrapper {
	align-items: stretch;
}

body.site-circuit .kl-cg-sous-page-section .kl-slider-decouvre-autre > .swiper-wrapper > .swiper-slide {
	display: flex;
	height: auto;
}

/* Flèches entières, à cheval sur le bord des cartes (maquette 10898-18548). La section a la largeur
   du carrousel et le thème la coupe (.kl-section-slider-carousel, overflow-x: hidden) : chaque
   flèche, placée à −27 px, n'apparaissait qu'à moitié. Sous 768 px les flèches sont masquées et la
   coupe reste (débordement du translate Swiper). */
@media (min-width: 768px) {
	body.site-circuit .kl-cg-sous-page-section.kl-section-slider-carousel {
		overflow-x: visible;
	}

	/* Les flèches ne sortent de l'écran que si la marge latérale le permet : à 1280 px, le
	   carrousel touche presque le bord et elles débordaient de 15 à 27 px. 10 px réservés à la
	   barre de défilement, que 100vw compte. */
	body.site-circuit .kl-cg-sous-page-section .kl-slider-carousel .swiper-button-prev {
		left: calc(-1 * clamp(0px, (100vw - 100%) / 2 - 10px, 1.6875rem));
	}

	body.site-circuit .kl-cg-sous-page-section .kl-slider-carousel .swiper-button-next {
		right: calc(-1 * clamp(0px, (100vw - 100%) / 2 - 10px, 1.6875rem));
	}
}

/* Fiches hôtel et activité : les sections ajoutées après la fiche (« Hôtels en… », avis) sont
   posées dans un .kl-content-main sans .container, donc sans marge latérale. Sous 1304 px elles
   collaient au bord, et leur .row (−12 px) débordait. Même marge que sur les pages région. */
body.site-circuit div.kl-content-main:not(.container) > .kl-section.kl-cg-sous-page-section,
body.site-circuit div.kl-content-main:not(.container) > .kl-section.kl-cg-circuit-avis,
body.site-circuit div.kl-content-main:not(.container) > .kl-cg-activity-around {
	padding-left: 12px;
	padding-right: 12px;
}

/* Infobulle « Vue carte » : centrée sur le dernier bouton, elle dépassait de 6 px à droite de
   l'écran entre 992 et 1300 px. Alignée sur le bord droit du bouton. */
body.site-circuit .kl-linsting-cpt--actions .kl-view-mode-post__btn[data-tooltip]:last-child::after {
	left: auto;
	right: 0;
	transform: translate(0, -0.5em);
}

/* Carte « Groupes en France » (accueil), blocs texte + image, texte + galerie et « solutions » :
   la rangée (gouttière 40 px et plus) dépasse du conteneur (12 px) au-dessous de 1320 px. */
body.site-circuit .kl-section-map-groupe-france,
body.site-circuit .kl-section-text-image-illustration,
body.site-circuit .kl-section-text-gallery,
body.site-circuit .kl-section-tailored-solutions {
	overflow-x: clip;
}

/* Trait pleine largeur au-dessus du bandeau de bas de page, mobile : le thème le décale de la
   demi-gouttière alors que son parent est déjà pleine largeur (−20 → 355 px à 375). */
@media (max-width: 575.98px) {
	body.site-circuit .kl-alignfull__container-fluid > .kl-border-separator--full {
		margin-left: 0;
	}
}

/* Fiche circuit : encarts brochure (Figma GUIDE 10584-15244, barre latérale 10584-15257). */
body.site-circuit .kl-card-single-fiche-option.kl-cg-brochure {
	flex-direction: row;
	align-items: center;
	gap: 30px;
}

body.site-circuit .kl-cg-brochure__illu,
body.site-circuit .kl-cg-brochure-widget__illu {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	border-radius: 2px;
	background-color: #f5f4f4;
}

body.site-circuit .kl-cg-brochure__illu {
	width: 258px;
	height: 207px;
}

body.site-circuit .kl-cg-brochure__illu img {
	width: 91.84%;
	height: auto;
}

body.site-circuit .kl-cg-brochure__body {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

body.site-circuit .kl-cg-brochure__title {
	margin: 0;
	font-family: "Catamaran", sans-serif;
	font-size: 22px;
	font-weight: 500;
	line-height: 28px;
	text-transform: none;
	color: #292c3d;
}

body.site-circuit .kl-cg-brochure__text {
	margin: 0;
	font-family: "Catamaran", sans-serif;
	font-size: 18px;
	line-height: 1.2;
	color: rgba(41, 44, 61, 0.8);
}

body.site-circuit .kl-cg-brochure-widget {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 10px;
	border: 1px solid rgba(41, 44, 61, 0.2);
	border-radius: 7px;
	background-color: #fdfcfc;
}

body.site-circuit .kl-cg-brochure-widget.d-none {
	display: none;
}

@media (min-width: 992px) {
	body.site-circuit .kl-cg-brochure-widget.d-lg-block {
		display: flex !important;
	}
}

body.site-circuit .kl-cg-brochure-widget__illu {
	height: 197px;
	overflow: hidden;
}

body.site-circuit .kl-cg-brochure-widget__illu img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.site-circuit .kl-cg-brochure-widget__title {
	margin: 0;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
	color: #292c3d;
}

/* Champ e-mail + « Télécharger » : sur une ligne (inline) ou empilés (stacked). */
body.site-circuit .kl-cg-brochure-form {
	width: 100%;
	margin: 0;
}

body.site-circuit .kl-cg-brochure-form__hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	opacity: 0;
}

body.site-circuit .kl-cg-brochure-form__row {
	display: flex;
}

body.site-circuit .kl-cg-brochure-form--stacked .kl-cg-brochure-form__row {
	flex-direction: column;
	gap: 8px;
}

body.site-circuit .kl-cg-brochure-form__input {
	flex: 1 1 0;
	min-width: 0;
	height: 50px;
	padding: 10px 15px;
	border: 1px solid rgba(41, 44, 61, 0.15);
	border-radius: 4px;
	background-color: #fdfcfc;
	font-family: "Catamaran", sans-serif;
	font-size: 16px;
	line-height: 1.2;
	color: #292c3d;
}

body.site-circuit .kl-cg-brochure-form--stacked .kl-cg-brochure-form__input {
	flex: 0 0 auto;
	border-color: rgba(41, 44, 61, 0.2);
}

body.site-circuit .kl-cg-brochure-form__input::placeholder {
	color: #292c3d;
	opacity: 1;
}

body.site-circuit .kl-cg-brochure-form__input:focus {
	border-color: #292c3d;
	outline: none;
	box-shadow: 0 0 0 2px rgba(41, 44, 61, 0.15);
}

body.site-circuit .kl-cg-brochure-form__submit {
	flex-shrink: 0;
	height: 50px;
	padding: 0 22px;
	border: 1px solid #292c3d;
	border-radius: 4px;
	background-color: #292c3d;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 16px;
	font-weight: 500;
	color: #fdfcfc;
	transition: background-color 0.2s ease, color 0.2s ease;
}

body.site-circuit .kl-cg-brochure-form--inline .kl-cg-brochure-form__input {
	border-right: 0;
	border-radius: 4px 0 0 4px;
}

body.site-circuit .kl-cg-brochure-form--inline .kl-cg-brochure-form__submit {
	border-radius: 0 4px 4px 0;
}

body.site-circuit .kl-cg-brochure-form__submit:hover,
body.site-circuit .kl-cg-brochure-form__submit:focus-visible {
	background-color: #fdfcfc;
	color: #292c3d;
}

body.site-circuit .kl-cg-brochure-form.is-sending .kl-cg-brochure-form__submit {
	opacity: 0.6;
	cursor: progress;
}

body.site-circuit .kl-cg-brochure-form__message {
	margin: 10px 0 0;
	font-family: "Catamaran", sans-serif;
	font-size: 16px;
	line-height: 1.3;
	color: #1f7a3d;
}

body.site-circuit .kl-cg-brochure-form__message.is-error {
	color: #c0392b;
}

@media (max-width: 767.98px) {
	body.site-circuit .kl-card-single-fiche-option.kl-cg-brochure {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
	}

	body.site-circuit .kl-cg-brochure__illu {
		width: 100%;
		height: auto;
		aspect-ratio: 258 / 207;
	}

	body.site-circuit .kl-cg-brochure__title {
		font-size: 20px;
		line-height: 26px;
	}

	body.site-circuit .kl-cg-brochure__text {
		font-size: 16px;
	}
}

/* Fiche circuit : avis (Figma AVIS 10591-13887), fond gris et flèches du carrousel. */
body.site-circuit .kl-cg-circuit-avis {
	background-color: #f4f5f5;
}

body.site-circuit .kl-cg-circuit-avis .swiper-wrapper {
	align-items: stretch;
}

body.site-circuit .kl-cg-circuit-avis .swiper-slide {
	display: flex;
	height: auto;
}

body.site-circuit .kl-cg-circuit-avis .kl-card-review-list {
	flex: 1 1 auto;
	max-width: none;
}

@media (max-width: 1199.98px) {
	body.site-circuit .kl-cg-circuit-avis > .kl-review-list > .container {
		padding-right: 20px !important;
		padding-left: 20px !important;
	}
}

/* Tous les hôtels (Figma 10674-17242) : bandeau « Résultats » + filtre Région
   seul, grille de cartes. Le bloc de réassurance du titre n'y figure pas. */
body.site-circuit:has(.kl-cg-hotels) .kl-hero-titre-page .kl-reassurance {
	display: none !important;
}

body.site-circuit .kl-cg-hotels__bar {
	margin-bottom: 3.5rem;
	padding: 20px 0;
	background-color: #fafafa;
	border-top: 1px solid #dcdcdc;
	border-bottom: 1px solid #dcdcdc;
}

body.site-circuit .kl-cg-hotels__bar-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
}

body.site-circuit .kl-cg-hotels__filter {
	display: flex;
	gap: 25px;
	align-items: stretch;
}

body.site-circuit .kl-cg-hotels__select {
	width: 250px;
	height: 50px;
	padding: 0 44px 0 16px;
	font-size: 1rem;
	color: #292c3d;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23292c3d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
	border: 1px solid #dcdcdc;
	border-radius: 2px;
	appearance: none;
	cursor: pointer;
}

body.site-circuit .kl-cg-hotels__filter .kl-btn {
	height: 50px;
}

body.site-circuit .kl-cg-hotels__empty {
	padding: 2rem 0;
	text-align: center;
}

@media (max-width: 767.98px) {
	body.site-circuit .kl-cg-hotels__bar {
		margin-bottom: 2rem;
	}

	body.site-circuit .kl-cg-hotels__filter {
		width: 100%;
		gap: 12px;
	}

	body.site-circuit .kl-cg-hotels__select {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}
}

/* Fiche hôtel (Figma 10591-14021). */
body.site-circuit .kl-single__hero--label {
	display: flex;
	gap: 8px;
	align-items: center;
}

body.site-circuit .kl-single__hero--label-text {
	font-size: 0.875rem;
	color: #292c3d;
}

body.site-circuit .kl-cg-hotel-circuits .kl-mini-card,
body.site-circuit .kl-cg-hotel-activities .kl-card-vignette-mini {
	height: 100%;
}

body.site-circuit .kl-cg-hotel-activities .kl-card-vignette-mini {
	display: block;
	padding: 9px;
	border: 1px solid #dcdcdc;
	border-radius: 4px;
}

body.site-circuit .kl-cg-hotel-activities .kl-card-vignette-mini__thumbnail {
	width: 100%;
	height: auto;
	aspect-ratio: 384 / 224;
	border-radius: 2px;
	overflow: hidden;
}

body.site-circuit .kl-cg-hotel-activities .kl-card-vignette-mini__thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.site-circuit .kl-cg-hotel-activities .kl-mini-card--badge {
	top: 0;
	left: 0;
	margin: 0;
	border-radius: 0 0 4px 0;
	background-color: var(--highlight-color) !important;
	color: #fff !important;
}

/* Colonne de droite : carte aux couleurs d'Hotelgroupes. */
body.site-circuit .kl-cg-hotel-widget .kl-mini-card--thumb {
	position: relative;
}

body.site-circuit .kl-cg-hotel-widget__badge {
	top: 0;
	left: 0;
	margin: 0;
	padding: 5px 15px;
	border-radius: 4px 0 4px 0;
	background-color: var(--highlight-color) !important;
	color: #fff !important;
}

body.site-circuit .kl-cg-hotel-widget__stars {
	margin-top: 1rem;
	font-size: 1.25rem;
	color: var(--highlight-color);
}

body.site-circuit .kl-cg-hotel-widget .kl-mini-card--item_text {
	margin-top: 0.75rem;
}

/* ------------------------------------------------------------------
   Fiche activité, gratuite (10899-21122) et PRO (10908-26427)
   ------------------------------------------------------------------ */
body.site-circuit .kl-cg-activity-hero__card {
	position: relative;
	padding: 40px 24px 24px;
	border: 1px solid #dcdcdc;
	background: #fff;
}

body.site-circuit .kl-cg-activity-hero__tag {
	position: absolute;
	top: 0;
	left: 24px;
	padding: 4px 10px;
	font-size: 0.85rem;
	font-weight: 500;
	color: #fff;
	background-color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-activity-hero__theme {
	margin: 12px 0 4px;
	font-size: 0.9rem;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-activity-hero__title {
	margin-top: 4px !important;
	margin-bottom: 16px;
	text-transform: none !important;
}

body.site-circuit .kl-cg-activity-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 20px;
}

body.site-circuit .kl-cg-activity-hero__infos {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
	font-size: 0.95rem;
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-cg-activity-hero__infos li {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 6px;
}

body.site-circuit .kl-cg-activity-hero__website a {
	color: var(--highlight-color, #00abe5);
	text-decoration: underline;
	word-break: break-all;
}

body.site-circuit .kl-cg-activity-hero__partner {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	font-size: 0.9rem;
}

body.site-circuit .kl-cg-activity-hero__claim {
	margin: auto 0 0;
	padding-top: 24px;
	font-size: 0.85rem;
	color: #292c3d;
}

body.site-circuit .kl-cg-activity-hero__claim a {
	color: var(--highlight-color, #00abe5);
	text-decoration: underline;
}

body.site-circuit .kl-cg-activity-hero__photo img,
body.site-circuit .kl-cg-activity-hero__gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.site-circuit .kl-cg-activity-hero__photo {
	height: 360px;
	overflow: hidden;
}

body.site-circuit .kl-cg-activity-hero__gallery {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 8px;
	height: 360px;
}

body.site-circuit .kl-cg-activity-hero__gallery-item {
	position: relative;
	padding: 0;
	border: 0;
	overflow: hidden;
	background: #f4f5f5;
	cursor: pointer;
}

body.site-circuit .kl-cg-activity-hero__gallery-item--1 {
	grid-row: 1 / 3;
}

body.site-circuit .kl-cg-activity-hero__gallery-see {
	position: absolute;
	left: 16px;
	bottom: 16px;
	padding: 6px 10px;
	font-size: 0.85rem;
	color: #fff;
	background: rgba(41, 44, 61, 0.55);
}

body.site-circuit .kl-cg-activity-hero__credit {
	margin: 6px 0 0;
	font-size: 0.75rem;
	color: #6b7280;
	text-align: right;
}

body.site-circuit .kl-cg-activity-hero__credit a {
	color: inherit;
	text-decoration: underline;
}

@media (max-width: 991.98px) {
	body.site-circuit .kl-cg-activity-hero__photo,
	body.site-circuit .kl-cg-activity-hero__gallery {
		height: 240px;
	}
	body.site-circuit .kl-cg-activity-hero__gallery-item:not(.kl-cg-activity-hero__gallery-item--1) {
		display: none;
	}
	body.site-circuit .kl-cg-activity-hero__gallery {
		grid-template-columns: 1fr;
	}
}

body.site-circuit .kl-cg-activity-devis-btn {
	color: #fff;
	background-color: #292c3d;
	border-color: #292c3d;
}

body.site-circuit .kl-single__navs .kl-cg-activity-devis-btn {
	margin-top: 17px;
}

body.site-circuit .kl-cg-activity-map {
	width: 100%;
	height: 400px;
	border-radius: 4px;
}

body.site-circuit .kl-cg-activity-map__address {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 15px 0 0;
}

body.site-circuit .kl-cg-activity-tarifs__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
}

body.site-circuit .kl-cg-activity-tarifs__note {
	flex: 1 1 280px;
	margin: 0;
	font-size: 0.85rem;
	color: #6b7280;
}

/* Barre latérale : circuit recommandé / aucun circuit. */
body.site-circuit .kl-cg-activity-circuit {
	margin-bottom: 24px;
	border: 1px solid #dcdcdc;
	background: #fff;
}

body.site-circuit .kl-cg-activity-circuit__thumb {
	position: relative;
	height: 170px;
	overflow: hidden;
	background: #f4f5f5;
}

body.site-circuit .kl-cg-activity-circuit__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.site-circuit .kl-cg-activity-circuit__badge {
	position: absolute;
	top: 0;
	left: 0;
	padding: 4px 10px;
	font-size: 0.8rem;
	font-weight: 500;
	color: #fff;
	background-color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-activity-circuit__body {
	padding: 16px;
}

body.site-circuit .kl-cg-activity-circuit__theme {
	font-size: 0.8rem;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-activity-circuit__title {
	margin: 4px 0 10px;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.3;
	color: #292c3d;
}

body.site-circuit .kl-cg-activity-circuit__meta {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 4px;
	font-size: 0.85rem;
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-cg-activity-circuit__excerpt {
	margin: 10px 0 16px;
	font-size: 0.9rem;
	line-height: 1.45;
	color: #292c3d;
}

body.site-circuit .kl-cg-activity-circuit--none .kl-cg-activity-circuit__title {
	font-size: 1.15rem;
}

/* Sous la fiche : hôtels et restaurants à proximité, sélections PRO. */
body.site-circuit .kl-cg-activity-nearby--hotel,
body.site-circuit .kl-cg-activity-selection--hotel {
	--highlight-color: #95c11f;
}

body.site-circuit .kl-cg-activity-nearby--restaurant,
body.site-circuit .kl-cg-activity-selection--restaurant {
	--highlight-color: #e2061b;
}

body.site-circuit .kl-cg-activity-nearby .kl-slider-carousel .swiper-slide {
	display: flex;
}

/* Badge « Nouveau » de la maquette (10899-21122) : carré dans l'angle, couleur du site d'origine. */
body.site-circuit .kl-cg-activity-nearby .kl-badge-new,
body.site-circuit .kl-cg-activity-selection .kl-badge-new {
	top: 0;
	left: 0;
	margin: 0;
	padding: 4px 12px;
	font-weight: 500;
	border: 0;
	border-radius: 4px 0 4px 0;
	box-shadow: none;
	color: #fff !important;
	background-color: var(--highlight-color) !important;
}

body.site-circuit .kl-cg-activity-selection {
	padding: 40px 0;
}

body.site-circuit .kl-cg-activity-selection__intro {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 40px;
	background: #f4f5f5;
}

body.site-circuit .kl-cg-activity-selection__intro p {
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-cg-activity-selection__more {
	margin-top: auto;
	font-weight: 600;
	text-decoration: none;
	color: var(--highlight-color);
}

@media (max-width: 991.98px) {
	body.site-circuit .kl-cg-activity-selection__intro {
		padding: 24px;
	}
}

/* Hub « Activités par Thématiques » (10806-18213) : badge bleu dans l'angle. */
body.site-circuit .kl-page-activites-by-thematique .kl-card-vignette-mini .kl-badge--post-count {
	top: 0;
	left: 0;
	padding: 4px 10px;
	border-radius: 0;
	border: 0;
	box-shadow: none;
	/* kl-card-vignette-mini.css impose un badge blanc en !important. */
	color: #fff !important;
	background-color: var(--highlight-color, #00abe5) !important;
}

/* « Nos guides en téléchargement » (10741-18767) : une carte par langue,
   3 par ligne sur bureau, 2 sur tablette, 1 sur mobile. */
/* Le bloc est déjà dans le conteneur de la section : pas de second retrait,
   les cartes s'alignent sur le fil d'Ariane comme sur hotelgroupes.com. */
body.site-circuit .kl-cg-guides > .container {
	padding-left: 0;
	padding-right: 0;
}

body.site-circuit .kl-cg-guides__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.site-circuit .kl-cg-guides__card {
	display: flex;
	flex-direction: column;
	padding: 10px 10px 16px;
	border: 1px solid rgba(41, 44, 61, 0.15);
	border-radius: 4px;
	background: #fdfcfc;
}

body.site-circuit .kl-cg-guides__thumb {
	margin-bottom: 18px;
	border-radius: 2px;
	background: #f0f0f0;
	overflow: hidden;
	aspect-ratio: 2 / 1;
}

body.site-circuit .kl-cg-guides__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.site-circuit .kl-cg-guides__title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 18px;
	font-family: "Catamaran", sans-serif;
	font-size: 22px;
	line-height: 1.2;
	color: #292c3d;
}

body.site-circuit .kl-cg-guides__flag {
	flex-shrink: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 1px #eee;
}

body.site-circuit .kl-cg-guides__link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 8px;
	font-size: 16px;
	font-weight: 500;
	text-decoration: none;
	color: var(--highlight-color, #00a6df);
}

body.site-circuit .kl-cg-guides__link:hover,
body.site-circuit .kl-cg-guides__link:focus-visible {
	text-decoration: underline;
}

@media (max-width: 991.98px) {
	body.site-circuit .kl-cg-guides__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-guides__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ==========================================================================
   Pages « À propos » : qui sommes-nous (4132-3722), guide (6049-7617),
   kit média (4168-4998), demande d'adhésion (6049-9469).
   ========================================================================== */

/* Fond gris des sections de la maquette : le thème n'a pas de règle pour cette
   classe de bloc. Sur circuitgroupes, seules ces pages l'emploient. */
body.site-circuit .has-kl-color-gray-background-color {
	background-color: #f5f4f4;
}

/* Liens dans le texte d'un en-tête (ex. « Consulter la version numérique »
   des guides) : couleur du site et soulignés, comme sur hotelgroupes.com. */
body.site-circuit .kl-section-banner-with-cta .kl-description a {
	color: var(--highlight-color, #00a6df);
	text-decoration: underline;
}

/* En-têtes centrés : le texte garde la largeur de la maquette. */
body.site-circuit .kl-section-banner-with-cta.has-kl-color-gray-background-color .kl-description {
	max-width: 740px;
	margin-left: auto;
	margin-right: auto;
}


/* ==========================================================================
   Actualités (T9) : liste (Figma BLOG 4145-14272), article (ARTICLE 4149-15018),
   pages conseil (SEO N1 10729-15877, N2 10733-16912).
   ========================================================================== */

/* En-tête de la liste : titre seul, le fil d'Ariane est celui du haut de page. */
body.site-circuit .kl-cg-news-hero .kl-blog-hero__content--inner {
	padding-bottom: 2.5rem;
}

body.site-circuit .kl-cg-news-hero .kl-blog-hero__title {
	margin-bottom: 0;
	font-size: 2.5rem;
}

/* Page conseil (SEO N1/N2) : titre seul, sans ligne « Publié le ». */
body.site-circuit.single-template_seo .kl-blog-hero__content--inner {
	padding-bottom: 3rem;
}

body.site-circuit.single-template_seo .kl-blog-hero__title {
	margin-bottom: 0;
}

body.site-circuit .kl-cg-news-hero .kl-color-principal {
	color: var(--highlight-color, #00a6df);
}

/* « Résultats : N » + Type + Filtrer */
body.site-circuit .kl-cg-news-filter {
	padding: 1.25rem 0;
	border-top: 1px solid rgba(41, 44, 61, 0.08);
	border-bottom: 1px solid rgba(41, 44, 61, 0.08);
	background-color: #fdfcfc;
}

body.site-circuit .kl-cg-news-filter__form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 24px;
	margin: 0;
}

body.site-circuit .kl-cg-news-filter__count {
	margin: 0;
	font-family: "Catamaran", sans-serif;
	font-size: 1rem;
	color: rgba(41, 44, 61, 0.8);
}

body.site-circuit .kl-cg-news-filter__count strong {
	font-weight: 600;
	color: #292c3d;
}

body.site-circuit .kl-cg-news-filter__fields {
	display: flex;
	gap: 10px;
}

body.site-circuit .kl-cg-news-filter__select {
	width: 245px;
	max-width: 100%;
	height: 48px;
	padding: 0 40px 0 15px;
	border: 1px solid rgba(41, 44, 61, 0.2);
	border-radius: 4px;
	background: #fdfcfc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23292C3D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 15px center;
	font-family: "Catamaran", sans-serif;
	font-size: 1rem;
	color: #292c3d;
	appearance: none;
	-webkit-appearance: none;
}

body.site-circuit .kl-cg-news-filter__select:focus {
	border-color: #292c3d;
	outline: none;
	box-shadow: 0 0 0 2px rgba(41, 44, 61, 0.15);
}

body.site-circuit .kl-cg-news-filter__submit {
	height: 48px;
	padding: 0 24px;
	border: 1px solid #292c3d;
	border-radius: 4px;
	background-color: #292c3d;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #fdfcfc;
	transition: background-color 0.2s ease, color 0.2s ease;
}

body.site-circuit .kl-cg-news-filter__submit:hover,
body.site-circuit .kl-cg-news-filter__submit:focus-visible {
	background-color: #fdfcfc;
	color: #292c3d;
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-news-hero .kl-blog-hero__title {
		font-size: 2rem;
	}

	body.site-circuit .kl-cg-news-filter__fields {
		width: 100%;
	}

	body.site-circuit .kl-cg-news-filter__select {
		flex: 1 1 auto;
		width: auto;
	}
}

/* Grille : 3 colonnes */
body.site-circuit .kl-article-listing {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 30px 20px;
	padding-top: 2.5rem;
}

@media (min-width: 576px) {
	body.site-circuit .kl-article-listing {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 992px) {
	body.site-circuit .kl-article-listing {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

body.site-circuit .kl-article-listing .kl-mini-card.kl-mini-card-post {
	flex: none;
	max-width: none;
}

/* Carte d'article : cadre blanc, date, titre, extrait d'une ligne, « Consulter → » */
body.site-circuit .kl-mini-card.kl-cg-post-card {
	position: relative;
	height: 100%;
	padding: 10px 10px 16px;
	border: 1px solid rgba(41, 44, 61, 0.1);
	border-radius: 4px;
	background-color: #fff;
	transition: box-shadow 0.2s ease;
}

body.site-circuit .kl-mini-card.kl-cg-post-card:hover {
	box-shadow: 0 4px 16px rgba(41, 44, 61, 0.1);
}

body.site-circuit .kl-mini-card.kl-cg-post-card .kl-mini-card--thumb {
	aspect-ratio: 2 / 1;
	margin-bottom: 14px;
	border-radius: 2px;
}

body.site-circuit .kl-mini-card.kl-cg-post-card .kl-mini-card--thumb img {
	border-radius: 2px;
}

body.site-circuit .kl-mini-card.kl-cg-post-card .kl-mini-card--badge {
	top: 0;
	left: 0;
	padding: 6px 12px;
	border-radius: 2px 0 4px 0;
	background-color: rgba(41, 44, 61, 0.35);
	backdrop-filter: blur(20px);
	box-shadow: none;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	color: #fdfcfc;
}

body.site-circuit .kl-mini-card.kl-cg-post-card .kl-mini-card--date {
	order: 0;
	margin: 0 6px 6px;
	font-size: 0.875rem;
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-mini-card.kl-cg-post-card .kl-mini-card--title {
	order: 0;
	margin: 0 6px 6px;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.3;
	color: #292c3d;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

body.site-circuit .kl-cg-post-card__excerpt {
	margin: 0 6px 10px;
	overflow: hidden;
	font-family: "Catamaran", sans-serif;
	font-size: 0.9375rem;
	line-height: 1.4;
	color: rgba(41, 44, 61, 0.7);
	white-space: nowrap;
	text-overflow: ellipsis;
}

body.site-circuit .kl-cg-post-card__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 6px;
	font-family: "Helvetica Neue", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--highlight-color, #00a6df);
}

/* « Découvrez aussi » : les cartes d'un carrousel gardent la même hauteur. */
body.site-circuit .kl-section-discovery .kl-slider-carousel-3-views .swiper-slide {
	display: flex;
	height: auto;
}

/* Sans min-width: 0, la carte (élément flex) prend la largeur de sa photo et déborde de la slide. */
body.site-circuit .kl-section-discovery .kl-slider-carousel-3-views .swiper-slide > * {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
}

/* Article et page conseil : encart « Demandez notre guide » dans le texte. */
body.site-circuit .kl-blog-content .kl-cg-guide-cta {
	display: flex;
	align-items: center;
	gap: 24px;
	margin: 2.5rem 0;
	padding: 14px;
	border: 1px solid rgba(41, 44, 61, 0.15);
	border-radius: 4px;
	background-color: #fdfcfc;
}

body.site-circuit .kl-blog-content .kl-cg-guide-cta .kl-cg-brochure__illu {
	width: 200px;
	height: 140px;
}

body.site-circuit .kl-blog-content .kl-cg-guide-cta .kl-cg-brochure__body {
	gap: 16px;
}

body.site-circuit .kl-blog-content .kl-cg-guide-cta .kl-cg-brochure__title {
	font-size: 1.25rem;
	line-height: 1.3;
	color: #292c3d;
}

body.site-circuit .kl-blog-content .kl-cg-guide-cta .kl-cg-brochure-form__message {
	color: #1f7a3d;
}

@media (max-width: 767.98px) {
	body.site-circuit .kl-blog-content .kl-cg-guide-cta {
		flex-direction: column;
		align-items: stretch;
	}

	body.site-circuit .kl-blog-content .kl-cg-guide-cta .kl-cg-brochure__illu {
		width: 100%;
		height: auto;
		aspect-ratio: 200 / 140;
	}
}

/* Colonne newsletter (formulaire 4, bouton « en ligne ») : champ et bouton empilés, pleine largeur. */
body.site-circuit .kl-blog-widgets__form .gform_wrapper .gform_fields {
	row-gap: 8px;
}

body.site-circuit .kl-blog-widgets__form .gform_wrapper .gfield--width-half {
	grid-column: 1 / -1;
}

body.site-circuit .kl-blog-widgets__form .gform_wrapper input[type="email"] {
	width: 100%;
	height: 44px;
	border: 1px solid rgba(41, 44, 61, 0.2);
	border-radius: 4px;
	font-family: "Catamaran", sans-serif;
	font-size: 1rem;
	color: #292c3d;
}

body.site-circuit .kl-blog-widgets__form .gform_wrapper.gform-theme button.gform-button.button {
	width: 100%;
	height: 44px;
	border: 1px solid var(--highlight-color, #00a6df);
	border-radius: 4px;
	background-color: var(--highlight-color, #00a6df);
	font-family: "Helvetica Neue", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #fdfcfc;
}

body.site-circuit .kl-blog-widgets__form .gform_wrapper.gform-theme button.gform-button.button:hover,
body.site-circuit .kl-blog-widgets__form .gform_wrapper.gform-theme button.gform-button.button:focus-visible {
	background-color: #0085b2;
	border-color: #0085b2;
}

/* Fiche circuit, « Ces circuits pourraient vous plaire » (maquette 2100-3386) : cartes de même
   hauteur, « Découvrir » en bas, extrait sur 3 lignes coupé par « … ». Sélecteurs enfants :
   la galerie de chaque carte a aussi des .swiper-slide. Le thème aligne les cartes en haut
   (.kl-slider-carousel .swiper-wrapper, align-items: flex-start). */
body.site-circuit .kl-section-fiche-decouvrir-autre-resto .kl-slider-decouvre-autre > .swiper-wrapper {
	align-items: stretch;
}

body.site-circuit .kl-section-fiche-decouvrir-autre-resto .kl-slider-decouvre-autre > .swiper-wrapper > .swiper-slide {
	display: flex;
	height: auto;
}

/* Accueil, en-tête sous 992 px (maquette Homepage - Mobile) : le formulaire de recherche reste dans
   l'en-tête, la marge basse de 200 px prévue pour un formulaire débordant laissait un grand vide.
   Encarts et formulaire resserrés (80 px → 24 px). */
@media (max-width: 991.98px) {
	body.site-circuit .kl-hero-home {
		margin-bottom: 0;
	}

	body.site-circuit .kl-hero-home__stat {
		margin-top: 24px;
	}

	body.site-circuit .kl-hero-home__search {
		margin-top: 24px;
	}

	/* « Thématiques » reste un select natif (Tom Select n'habille que « Région ») : même hauteur que
	   les autres champs et chevron de la maquette, au lieu d'une liste de 27 px. */
	body.site-circuit .kl-hero-home .kl-search-establishment__item[data-field="thematiques"] select {
		height: 52px;
		padding-right: 40px;
		-webkit-appearance: none;
		appearance: none;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23292c3d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 16px center;
	}

	/* Même chevron sur « Région » (Tom Select), posé sur le cadre (.ts-wrapper) : sur l'intérieur
	   (.ts-control), en retrait de 13 px dans le cadre, il tombait 13 px plus à gauche que celui
	   de « Thématiques ». */
	body.site-circuit .kl-hero-home .ts-wrapper.kl-search-establishment__item--field {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%23292c3d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 16px center;
	}

	body.site-circuit .kl-hero-home .ts-wrapper.kl-search-establishment__item--field .ts-control {
		padding-right: 27px !important;
		background-image: none !important;
	}
}

/* Accueil sous 992 px : le fond gris de « 20 circuits pour groupe en France » n'a pas de marge
   intérieure latérale (le texte touchait le bord du gris) ; sur ordinateur, le conteneur en donne une. */
@media (max-width: 991.98px) {
	body.site-circuit .kl-section-slider-exploration-thematique .kl-padding-default-section {
		padding-left: 20px;
		padding-right: 20px;
	}

	/* La bande grise qui, sur ordinateur, cache les cartes sortant à gauche du carrousel dépasse de
	   100 px sous le texte : une fois les colonnes empilées, elle recouvrait le haut des cartes
	   (badge « 28 circuits » invisible) et laissait un grand vide. */
	body.site-circuit .kl-slider-exploration-thematique__cover {
		display: none;
	}

	/* Flèche « suivant » : placée pour 2,5 cartes visibles (ordinateur) ; en tablette il y en a 2,
	   elle tombait au milieu de la deuxième. Elle revient au bord droit du carrousel. */
	body.site-circuit .kl-section-slider-exploration-thematique .kl-slider-carousel-2-5-views .swiper-button-next {
		right: 0 !important;
	}
}

/* Titres de section en #292C3D (maquette) : ces deux blocs écrivent leur titre dans un <p class="kl-h2">,
   qui prenait le gris à 70 % du texte courant. */
body.site-circuit .kl-section-map-groupe-france .kl-h2,
body.site-circuit .kl-section-pourquoi-reserver .kl-h2 {
	color: #292c3d;
}

/* « Comment ça marche » en mobile : le bloc passe pleine largeur et son cadre d'1 px se voyait
   contre les bords de l'écran ; la maquette mobile n'a que le fond gris et le coin bleu. */
@media (max-width: 767.98px) {
	body.site-circuit .kl-block-wrapper-hoes-does-it-work.kl-reset-full-width-content-blocks-mobile {
		border: 0;
	}
}

/* Panneau « Filtres » des listings et recherche de l'accueil sous 992 px : l'intérieur de « Région »
   (Tom Select) restait blanc sur le fond blanc cassé du champ, un rectangle se voyait dans le cadre. */
@media (max-width: 991.98px) {
	body.site-circuit .kl-linsting-cpt__search .ts-wrapper.kl-search-establishment__item--field .ts-control,
	body.site-circuit .kl-hero-home .ts-wrapper.kl-search-establishment__item--field .ts-control {
		background-color: transparent !important;
	}
}

/* Filtres actifs sous 992 px (maquette « Filtres actifs - Mobile ») : les pastilles viennent
   sous la ligne « Filtrer », juste avant « Résultats », et non au-dessus. */
@media (max-width: 991.98px) {
	body.site-circuit .kl-linsting-cpt div:has(> .kl-linsting-cpt--selected-filter + .kl-linsting-cpt--actions) {
		display: flex;
		flex-direction: column;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt--selected-filter {
		order: 1;
	}

	body.site-circuit .kl-linsting-cpt .kl-linsting-cpt--selected-filter:has(> *) {
		margin-bottom: 24px;
	}
}

/* Fiche circuit sous 992 px (maquette « Fiche circuit - mobile ») : la photo sous le titre garde un
   cadrage 10:7 ; les photos panoramiques ne donnent plus une bande de 70 px de haut. */
body.site-circuit .kl-cg-hero-photo .kl-single__hero--cta_galerie--thumb {
	border-radius: 4px;
}

body.site-circuit .kl-cg-hero-photo .kl-single__hero--cta_galerie--thumb img {
	aspect-ratio: 10 / 7;
	height: auto;
	object-fit: cover;
}

/* Tablette : 10:7 sur toute la largeur de la carte donnait une photo de 450 px de haut. */
@media (min-width: 576px) {
	body.site-circuit .kl-cg-hero-photo .kl-single__hero--cta_galerie--thumb img {
		aspect-ratio: 16 / 9;
	}
}

/* Journées, photo mobile dans la frise : pas de gouttière de colonne autour, le crédit se cale au bord. */
body.site-circuit .circuit-day-photo--mobile .circuit-day-photo__credit {
	right: 6px;
	max-width: calc(100% - 12px);
}

/* « Toutes nos régions / thématiques » (circuits et activités) sous 992 px : le .container de la
   grille, posé dans celui de la page, doublait la marge latérale (cartes en retrait de 37 px). */
@media (max-width: 991.98px) {
	body.site-circuit .kl-content-main .kl-section-circuits-by-region > .container,
	body.site-circuit .kl-content-main .kl-section-circuits-by-thematique > .container,
	body.site-circuit .kl-content-main .kl-section-activites-by-region > .container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Vue carte sous 992 px (maquette « Catalogue map - Mobile ») : carte plein écran au-dessus des
   sections suivantes (« Pourquoi réserver » a un z-index de 50), fiche du repère en ligne en bas
   (photo à gauche, texte à droite, sans extrait ; la carte circuit force flex-direction: column
   dans son attribut style), et boutons grille / carte visibles sur le catalogue comme sur les sous-pages. */
@media (max-width: 991.98px) {
	body.site-circuit.js-open-map .kl-linsting-cpt {
		z-index: 1000;
	}

	body.site-circuit .kl-linsting-cpt--actions .col-auto:has(> .kl-view-mode-post) {
		display: block !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box {
		left: 16px;
		right: 16px;
		bottom: 16px;
		width: auto;
		max-width: none;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card.kl-fiche-widgets--item {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: stretch;
		height: auto !important;
		padding: 8px !important;
		border-radius: 4px !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--thumb {
		flex: 0 0 34%;
		width: 34% !important;
		min-height: 112px;
		height: auto !important;
		margin: 0 !important;
		padding-top: 0 !important;
		overflow: hidden;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--thumb img {
		width: 100%;
		height: 100% !important;
		object-fit: cover;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--content {
		flex: 1 1 auto;
		width: auto !important;
		min-width: 0;
		padding: 2px 0 2px 12px !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--content * {
		font-size: 13px !important;
		line-height: 1.35 !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--content .kl-mini-card--title {
		font-size: 15px !important;
		margin-bottom: 6px !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--thematique {
		margin-bottom: 4px !important;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--item_icon {
		margin-bottom: 2px !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--excerpt {
		display: none !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-mini-card--action {
		margin-top: 6px !important;
	}

	/* Clic sur un repère (listing.js, klCgShowMobileCards) : ses cards remplacent
	   celle de la page ; plusieurs circuits au départ du même hôtel = défilement
	   horizontal, la card suivante dépasse, compteur « 1 / 3 » au-dessus. */
	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box.kl-cg-map-selection > .kl-mini-map {
		display: none !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards {
		display: flex;
		gap: 8px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards::-webkit-scrollbar {
		display: none;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards > .kl-mini-map {
		display: flex;
		flex: 0 0 100%;
		min-width: 0;
		scroll-snap-align: start;
	}

	/* Cards toutes de la même hauteur (la suivante, qui dépasse à droite, ne doit
	   pas déborder plus bas) : titre sur deux lignes au plus, lieu et durée sur une. */
	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards > .kl-mini-map > .kl-mini-card {
		flex: 1 1 auto;
		margin: 0 !important;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards .kl-mini-card--title {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards .kl-mini-card--item_icon > span {
		min-width: 0;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards:not([data-count="1"]) > .kl-mini-map {
		flex-basis: calc(100% - 32px);
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards__count {
		position: absolute;
		top: -36px;
		right: 0;
		padding: 4px 10px;
		border-radius: 999px;
		background: #292c3d;
		color: #fff;
		font-size: 13px !important;
		font-weight: 500;
		line-height: 1.4;
		box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
	}

	body.site-circuit .kl-linsting-cpt__listing[data-mode="map"] .kl-linsting-cpt__listing--view--map .kl-info_windows_box .kl-cg-map-cards__count span {
		font-size: 13px !important;
	}
}

/* Sous-pages Région / Thématique (bloc « Listing filters ») sous 992 px : même .container doublé
   que sur les pages « Toutes nos régions » ; le catalogue, lui, a déjà px-0. */
@media (max-width: 991.98px) {
	body.site-circuit .kl-content-main .kl-section-listing-filters .kl-linsting-cpt > .container {
		padding-left: 0;
		padding-right: 0;
	}
}

/* Page de remerciement après l'envoi d'un formulaire (/devis/merci/, /contact/merci/,
   /newsletter/merci/…, templates/merci.php) : carte blanche sur fond clair, aux
   couleurs du site ; étapes et fiche d'origine pour un devis. */
/* Le gabarit borne la section à la largeur du contenu : panneau arrondi. */
body.site-circuit .kl-cg-merci {
	margin-bottom: 64px;
	padding: 48px 0;
	border-radius: 16px;
	background-color: #f4f5f5;
}

body.site-circuit .kl-cg-merci__row {
	row-gap: 24px;
}

body.site-circuit .kl-cg-merci__card {
	padding: 56px 64px;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background-color: #fdfcfc;
	box-shadow: 0 12px 32px rgba(41, 44, 61, 0.06);
	text-align: center;
	color: #292c3d;
}

body.site-circuit .kl-cg-merci__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	margin-bottom: 24px;
	border-radius: 50%;
	background-color: var(--highlight-color, #00abe5);
	box-shadow: 0 0 0 10px rgba(0, 171, 229, 0.12);
	color: #fff;
}

body.site-circuit .kl-cg-merci__eyebrow {
	margin: 0 0 8px;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-merci__title {
	margin: 0 auto 16px;
	max-width: 640px;
	font-size: 2.75rem;
	font-weight: 400;
	line-height: 1.15;
	color: #292c3d;
}

body.site-circuit .kl-cg-merci__message {
	margin: 0 auto;
	max-width: 600px;
	font-size: 1.1875rem;
	line-height: 1.5;
}

body.site-circuit .kl-cg-merci__message p:last-child {
	margin-bottom: 0;
}

body.site-circuit .kl-cg-merci__note {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	margin: 24px auto 0;
	max-width: 600px;
	padding: 12px 16px;
	border-radius: 8px;
	background-color: rgba(0, 171, 229, 0.08);
	font-size: 0.9375rem;
	line-height: 1.45;
	text-align: left;
}

body.site-circuit .kl-cg-merci__note i {
	flex: 0 0 auto;
	margin-top: 2px;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-merci__steps-title {
	margin: 48px 0 20px;
	font-size: 1.5rem;
	font-weight: 500;
	color: #292c3d;
}

body.site-circuit .kl-cg-merci__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	text-align: left;
}

body.site-circuit .kl-cg-merci__step {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background-color: #fff;
}

body.site-circuit .kl-cg-merci__step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: rgba(0, 171, 229, 0.12);
	font-weight: 600;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-merci__step-title {
	margin: 0 0 4px;
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.3;
}

body.site-circuit .kl-cg-merci__step-text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.45;
	color: #6b7280;
}

body.site-circuit .kl-cg-merci__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 40px;
}

body.site-circuit .kl-cg-merci__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: 4px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.site-circuit .kl-cg-merci__btn--primary {
	background-color: var(--highlight-color, #00abe5);
	color: #fdfcfc;
}

body.site-circuit .kl-cg-merci__btn--primary:hover,
body.site-circuit .kl-cg-merci__btn--primary:focus-visible {
	background-color: #0085b2;
	color: #fdfcfc;
}

body.site-circuit .kl-cg-merci__btn--secondary {
	border-color: #292c3d;
	color: #292c3d;
}

body.site-circuit .kl-cg-merci__btn--secondary:hover,
body.site-circuit .kl-cg-merci__btn--secondary:focus-visible {
	background-color: #292c3d;
	color: #fdfcfc;
}

body.site-circuit .kl-cg-merci__help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px 20px;
	margin: 32px 0 0;
	padding-top: 24px;
	border-top: 1px solid #e5e7eb;
	font-size: 1rem;
	color: #6b7280;
}

body.site-circuit .kl-cg-merci__help-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 500;
	text-decoration: none;
	color: #292c3d;
}

body.site-circuit .kl-cg-merci__help-link i {
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-merci__help-link:hover,
body.site-circuit .kl-cg-merci__help-link:focus-visible {
	color: var(--highlight-color, #00abe5);
}

@media (max-width: 991.98px) {
	body.site-circuit .kl-cg-merci__card {
		padding: 40px 32px;
	}

	body.site-circuit .kl-cg-merci__steps {
		grid-template-columns: minmax(0, 1fr);
	}

	body.site-circuit .kl-cg-merci__step {
		flex-direction: row;
		align-items: flex-start;
	}

	body.site-circuit .kl-cg-merci__step-num {
		flex: 0 0 auto;
	}
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-merci {
		margin-bottom: 40px;
		padding: 16px 0;
		border-radius: 0;
		background-color: transparent;
	}

	body.site-circuit .kl-cg-merci__card {
		padding: 32px 20px;
	}

	body.site-circuit .kl-cg-merci__icon {
		width: 64px;
		height: 64px;
		margin-bottom: 20px;
	}

	body.site-circuit .kl-cg-merci__title {
		font-size: 2rem;
	}

	body.site-circuit .kl-cg-merci__message {
		font-size: 1.0625rem;
	}

	body.site-circuit .kl-cg-merci__btn {
		width: 100%;
	}
}

/* ==========================================================================
   Fiche circuit, partie existante (recette Charline 13/10, maquette FICHE CIRCUIT 2100-2365).
   ========================================================================== */

/* Hero, galerie : colonnes 479/230 de la maquette ; 65 % + 35 % + 8 px de gouttière débordaient du bloc. */
body.site-circuit .kl-single__hero--gallerie {
	grid-template-columns: minmax(0, 479fr) minmax(0, 230fr);
}

/* Une seule photo : elle prend tout le bloc. Deux : la seconde occupe toute la hauteur de droite. */
body.site-circuit .kl-single__hero--gallerie--count-1 .kl-gallerie__style--1 {
	grid-column: 1 / -1;
}

body.site-circuit .kl-single__hero--gallerie--count-2 .kl-gallerie__style--2 {
	grid-row: 1 / 3;
}

/* Modale « Galerie photo » : toutes les photos au format 610 × 438 (les panoramas 1920 × 507 étaient écrasés). */
body.site-circuit .kl-modal__galerie--item img {
	aspect-ratio: 610 / 438;
	object-fit: cover;
	border-radius: 4px;
}

/* Colonne de droite : 13 px entre les encarts (24 px puis 0 auparavant). */
body.single-circuit .kl-fiche-widgets--column .kl-fiche-widgets {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

body.single-circuit .kl-fiche-widgets--column .kl-fiche-widgets > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

body.single-circuit .kl-fiche-widgets--column .kl-fiche-widgets > :empty,
body.single-circuit .kl-fiche-widgets--column .kl-cg-hotel-associe:not(:has(*)) {
	display: none !important;
}

body.single-circuit .kl-fiche-widgets--column .kl-cg-hotel-associe .kl-fiche-widgets--item {
	margin-bottom: 0 !important;
}

/* Colonne de droite : pas de défilement interne (fiche-sidebar-widgets.css) ; plus haute que
   l'écran, elle défile avec la page puis reste collée par le bas (circuit-sidebar.js). */
@media (min-width: 992px) {
	body.single-circuit .kl-fiche-widgets--column {
		top: var(--cg-widgets-top, var(--top-widgets, 160px));
	}

	body.single-circuit .kl-fiche-widgets--column .kl-fiche-widgets {
		max-height: none;
		overflow: visible;
		padding-right: 0;
		scrollbar-gutter: auto;
	}
}

/* Journées : photo carrée 285 px, pointillés continus d'une journée à l'autre (tirets 10/10),
   20 px entre la photo, le trait et le texte (encart 11129-19930). */
body.site-circuit .circuit-day-row {
	display: flex;
	align-items: stretch;
}

body.site-circuit .circuit-day-row__photo {
	flex: 0 0 33%;
	max-width: 285px;
	padding: 18px 20px 18px 0;
}

body.site-circuit .circuit-day-row__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 8px;
}

body.site-circuit .circuit-day-row__photo .circuit-day-photo__credit {
	right: 26px;
	bottom: 24px;
	max-width: calc(100% - 32px);
}

body.site-circuit .circuit-day-row__content {
	flex: 1 1 auto;
	min-width: 0;
	position: relative;
	padding: 6px 0 36px 20px;
	background-image: linear-gradient(to bottom, rgba(41, 44, 61, 0.2) 50%, transparent 50%);
	background-size: 2px 20px;
	background-repeat: repeat-y;
	background-position: left top;
}

body.site-circuit .circuit-day-row:last-child .circuit-day-row__content {
	padding-bottom: 0;
}

body.site-circuit .circuit-day-row__dot {
	position: absolute;
	left: -4px;
	top: 15px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--highlight-color, #00abe5);
}

body.site-circuit .circuit-day-row .day-location {
	color: var(--highlight-color, #00abe5);
	font-size: 1.125rem;
	font-weight: 400;
}

body.site-circuit .circuit-day-row .day-location .icon-location {
	color: inherit;
	margin-right: 4px;
}

/* Prestations incluses : pictogrammes de la maquette dans une tuile 39 × 39 (encart 10577-14852). */
body.site-circuit .kl-cg-prestations {
	column-count: 2;
	column-gap: 40px;
	margin-bottom: 0;
}

body.site-circuit .kl-cg-prestation {
	display: flex;
	align-items: center;
	gap: 10px;
	break-inside: avoid;
	margin-bottom: 10px;
	font-size: 1rem;
}

body.site-circuit .kl-cg-prestation__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 39px;
	height: 39px;
	border-radius: 4px;
	background-color: rgba(41, 44, 61, 0.05);
	color: rgba(41, 44, 61, 0.7);
}

body.site-circuit .kl-cg-prestation__icon svg {
	width: 24px;
	height: 24px;
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-prestations {
		column-count: 1;
	}
}

/* ==========================================================================
   Fiche hôtel, encart « Services » (maquette FICHE HOTEL 10597-14385) : un service par ligne sur
   deux colonnes, comme la maquette (retour d'Ugo du 19/10, qui remplace la colonne unique de la
   recette du 13/10), une seule sur mobile ; puis le tableau sur une seule colonne.
   Le gabarit block-services.php est partagé avec hotelgroupes : rien ici hors body.site-circuit.
   ========================================================================== */
body.site-circuit #fiche-services > .d-flex.flex-wrap {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 10px;
	row-gap: 16px;
}

@media (max-width: 575.98px) {
	body.site-circuit #fiche-services > .d-flex.flex-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
}

body.site-circuit #fiche-services .kl-badge-indication {
	gap: 8px;
	padding: 0;
	background: none;
	font-weight: 400;
	font-size: 1rem;
}

body.site-circuit #fiche-services .kl-badge-indication--icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 39px;
	height: 39px;
	border-radius: 4px;
	background-color: rgba(41, 44, 61, 0.05);
	background-size: 24px 24px;
	font-size: 1.5rem;
}

body.site-circuit #fiche-services .kl-services-table {
	column-count: 1;
	margin-top: 10px; /* + 30 px d'écart de l'encart = 40 px de la maquette */
	border-top: 1px solid rgba(41, 44, 61, 0.2);
}

@media (min-width: 768px) {
	body.site-circuit #fiche-services .kl-services-table--row {
		gap: 30px;
	}

	body.site-circuit #fiche-services .kl-services-table--title {
		flex: 0 0 200px;
		width: auto;
	}

	body.site-circuit #fiche-services .kl-services-table--value {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
	}
}

/* ==========================================================================
   Fiche circuit enrichie (maquette FICHE CIRCUIT 2100-2365, mise à jour du 13/10) :
   « Un séjour clé en main… », programme replié, « Hébergement : <hôtel> ».
   ========================================================================== */

/* « Un séjour clé en main pour les groupes à partir de 20 personnes » (encart 11129-18337). */
body.site-circuit .kl-cg-essentiel {
	gap: 0;
	padding-top: 50px;
	padding-bottom: 50px;
}

body.site-circuit .kl-cg-essentiel__title {
	margin: 0 0 50px;
	max-width: 720px;
	color: #292c3d;
	font-size: 2.125rem;
	font-weight: 500;
	line-height: 1.25;
}

body.site-circuit .kl-cg-essentiel__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 60px;
	margin: 0;
}

body.site-circuit .kl-cg-essentiel__list + .kl-cg-essentiel__list {
	margin-top: 20px;
}

body.site-circuit .kl-cg-essentiel__item {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #292c3d;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.2;
}

body.site-circuit .kl-cg-essentiel__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 4px;
	background-color: var(--highlight-color, #00abe5);
	color: #fff;
}

body.site-circuit .kl-cg-essentiel__icon svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 991.98px) {
	body.site-circuit .kl-cg-essentiel {
		padding-top: 30px;
		padding-bottom: 30px;
	}

	body.site-circuit .kl-cg-essentiel__title {
		margin-bottom: 30px;
		font-size: 1.625rem;
	}

	body.site-circuit .kl-cg-essentiel__list {
		display: flex;
		flex-wrap: wrap;
		gap: 16px 32px;
	}

	body.site-circuit .kl-cg-essentiel__list + .kl-cg-essentiel__list {
		margin-top: 16px;
	}
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-essentiel__title {
		font-size: 1.375rem;
	}

	body.site-circuit .kl-cg-essentiel__list {
		flex-direction: column;
	}
}

/* Programme : texte d'une journée coupé à 184 px, « Voir plus » en bleu, jours repliés. */
body.site-circuit .circuit-timeline.is-enhanced .circuit-day-row:not(.is-short):not(.is-expanded) .circuit-day-row__text {
	max-height: 184px;
	overflow: hidden;
}

body.site-circuit .circuit-day-row.is-clamped:not(.is-expanded) .circuit-day-row__text {
	-webkit-mask-image: linear-gradient(to bottom, #000 65%, transparent);
	mask-image: linear-gradient(to bottom, #000 65%, transparent);
}

body.site-circuit .circuit-day-row.is-hidden-day {
	display: none;
}

body.site-circuit .circuit-day-row__more,
body.site-circuit .circuit-timeline__toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

body.site-circuit .circuit-day-row__more {
	margin-top: 24px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--highlight-color, #00abe5);
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1rem;
	font-weight: 500;
	cursor: pointer;
}

body.site-circuit .circuit-day-row__more[hidden] {
	display: none;
}

body.site-circuit .circuit-day-row__more:hover span {
	text-decoration: underline;
}

body.site-circuit .circuit-day-row__more::after,
body.site-circuit .circuit-timeline__toggle-btn::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 4h2v12.2l5.6-5.6 1.4 1.4-8 8-8-8 1.4-1.4 5.6 5.6z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 4h2v12.2l5.6-5.6 1.4 1.4-8 8-8-8 1.4-1.4 5.6 5.6z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s;
}

body.site-circuit .circuit-day-row__more[aria-expanded="true"]::after,
body.site-circuit .circuit-timeline__toggle.is-open .circuit-timeline__toggle-btn::before {
	transform: rotate(180deg);
}

body.site-circuit .circuit-timeline__toggle {
	display: flex;
	justify-content: center;
	margin-top: 30px;
}

body.site-circuit .circuit-timeline__toggle[hidden] {
	display: none;
}

body.site-circuit .circuit-timeline__toggle-btn {
	gap: 8px;
}

@media (min-width: 992px) {
	/* Centré sous le texte des journées, comme sur la maquette (la photo occupe un tiers à gauche). */
	body.site-circuit .circuit-timeline__toggle {
		padding-left: min(33%, 285px);
	}
}

/* « Hébergement : <hôtel> » (encart 11129-20117). */
body.site-circuit .kl-cg-hebergement .kl-card-single-fiche-option--icon svg {
	width: 24px;
	height: 24px;
}

body.site-circuit .kl-cg-hebergement__body {
	display: flex;
	align-items: flex-start;
	gap: 24px;
}

body.site-circuit .kl-cg-hebergement__media {
	flex: 0 0 266px;
	display: block;
}

body.site-circuit .kl-cg-hebergement__photo {
	display: block;
	width: 100%;
	height: 236px;
	object-fit: cover;
	border-radius: 2px;
}

body.site-circuit .kl-cg-hebergement__content {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

body.site-circuit .kl-cg-hebergement__text {
	margin: 0;
	color: rgba(41, 44, 61, 0.7);
	font-size: 1.125rem;
	line-height: 1.4;
}

@media (max-width: 767.98px) {
	body.site-circuit .kl-cg-hebergement__body {
		flex-direction: column;
	}

	body.site-circuit .kl-cg-hebergement__media {
		flex-basis: auto;
		width: 100%;
	}

	body.site-circuit .kl-cg-hebergement__photo {
		height: auto;
		aspect-ratio: 266 / 236;
	}
}

/* ------------------------------------------------------------------ */
/* Revendiquer une fiche activité (?revendiquer=1, Mink_CG_Revendication) */
/* ------------------------------------------------------------------ */
body.site-circuit .kl-cg-claim {
	margin-bottom: 64px;
	padding: 48px 0;
	border-radius: 16px;
	background-color: #f4f5f5;
	color: #292c3d;
}

body.site-circuit .kl-cg-claim__row {
	row-gap: 24px;
}

body.site-circuit .kl-cg-claim__card {
	padding: 40px;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background-color: #fdfcfc;
	box-shadow: 0 12px 32px rgba(41, 44, 61, 0.06);
}

body.site-circuit .kl-cg-claim__eyebrow {
	margin: 0 0 8px;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-claim__title {
	margin: 0 0 12px;
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.2;
	color: #292c3d;
}

body.site-circuit .kl-cg-claim__intro {
	margin: 0 0 28px;
	font-size: 1.0625rem;
	line-height: 1.5;
	color: #4b4f60;
}

body.site-circuit .kl-cg-claim__alert {
	margin: 0 0 24px;
	padding: 12px 16px;
	border-radius: 8px;
	background-color: #fdecec;
	color: #b42318;
	font-size: 0.9375rem;
}

body.site-circuit .kl-cg-claim__step {
	margin: 0 0 28px;
	padding: 0;
	border: 0;
	min-width: 0;
}

body.site-circuit .kl-cg-claim__step-title {
	display: flex;
	align-items: center;
	gap: 10px;
	float: none;
	width: auto;
	margin: 0 0 14px;
	padding: 0;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.3;
}

body.site-circuit .kl-cg-claim__step-title span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background-color: #292c3d;
	color: #fdfcfc;
	font-size: 0.875rem;
}

body.site-circuit .kl-cg-claim__plans {
	display: grid;
	gap: 12px;
}

body.site-circuit .kl-cg-claim__plan {
	position: relative;
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 16px 18px;
	border: 1px solid #d5d8dd;
	border-radius: 10px;
	background-color: #fff;
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.site-circuit .kl-cg-claim__plan:hover {
	border-color: #9aa0aa;
}

body.site-circuit .kl-cg-claim__plan:has(input:checked) {
	border-color: var(--highlight-color, #00abe5);
	box-shadow: 0 0 0 1px var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-claim__plan input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-claim__plan-body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

body.site-circuit .kl-cg-claim__plan-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

body.site-circuit .kl-cg-claim__plan-name {
	font-size: 1.0625rem;
	font-weight: 600;
}

body.site-circuit .kl-cg-claim__plan-badge {
	padding: 2px 8px;
	border-radius: 999px;
	background-color: rgba(0, 171, 229, 0.12);
	color: #0085b2;
	font-size: 0.75rem;
	font-weight: 600;
}

body.site-circuit .kl-cg-claim__plan-price {
	margin-left: auto;
	padding: 3px 10px;
	border-radius: 999px;
	background-color: #292c3d;
	color: #fdfcfc;
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
}

body.site-circuit .kl-cg-claim__plan-price--free {
	background-color: #eceef0;
	color: #292c3d;
}

body.site-circuit .kl-cg-claim__plan-text {
	font-size: 0.9375rem;
	line-height: 1.45;
	color: #4b4f60;
}

body.site-circuit .kl-cg-claim__plan-list {
	display: grid;
	gap: 4px;
	margin-top: 4px;
	font-size: 0.875rem;
	line-height: 1.4;
}

body.site-circuit .kl-cg-claim__plan-list span {
	position: relative;
	padding-left: 22px;
}

body.site-circuit .kl-cg-claim__plan-list span::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 3px;
	width: 11px;
	height: 6px;
	border-left: 2px solid var(--highlight-color, #00abe5);
	border-bottom: 2px solid var(--highlight-color, #00abe5);
	transform: rotate(-45deg);
}

body.site-circuit .kl-cg-claim__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 16px;
}

body.site-circuit .kl-cg-claim__field {
	margin-bottom: 14px;
}

body.site-circuit .kl-cg-claim__field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.875rem;
	font-weight: 500;
}

body.site-circuit .kl-cg-claim__field input,
body.site-circuit .kl-cg-claim__field textarea {
	display: block;
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid #d5d8dd;
	border-radius: 6px;
	background-color: #fff;
	font-size: 1rem;
	color: #292c3d;
}

body.site-circuit .kl-cg-claim__field input:focus,
body.site-circuit .kl-cg-claim__field textarea:focus {
	border-color: var(--highlight-color, #00abe5);
	outline: 2px solid rgba(0, 171, 229, 0.25);
	outline-offset: 0;
}

body.site-circuit .kl-cg-claim__field--error input,
body.site-circuit .kl-cg-claim__field--error textarea {
	border-color: #d92d20;
}

body.site-circuit .kl-cg-claim__error {
	margin: 6px 0 0;
	font-size: 0.8125rem;
	color: #b42318;
}

body.site-circuit .kl-cg-claim__check {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 24px;
	font-size: 0.9375rem;
	line-height: 1.4;
}

body.site-circuit .kl-cg-claim__check input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	accent-color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-claim__check label {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
}

body.site-circuit .kl-cg-claim__check .kl-cg-claim__error {
	flex-basis: 100%;
	margin: 0 0 0 28px;
}

body.site-circuit .kl-cg-claim__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

body.site-circuit .kl-cg-claim__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 13px 28px;
	border: 0;
	border-radius: 4px;
	background-color: var(--highlight-color, #00abe5);
	color: #fdfcfc;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

body.site-circuit .kl-cg-claim__submit:hover,
body.site-circuit .kl-cg-claim__submit:focus-visible {
	background-color: color-mix(in srgb, var(--highlight-color, #00abe5) 77.8%, #000);
	color: #fdfcfc;
}

body.site-circuit .kl-cg-claim__legal {
	margin: 16px 0 0;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: #6e7280;
}

body.site-circuit .kl-cg-claim__done {
	text-align: center;
}

body.site-circuit .kl-cg-claim__done-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin-bottom: 20px;
	border-radius: 50%;
	background-color: var(--highlight-color, #00abe5);
	box-shadow: 0 0 0 10px rgba(0, 171, 229, 0.12);
	color: #fff;
}

body.site-circuit .kl-cg-claim__note {
	margin: -12px 0 28px;
	font-size: 0.9375rem;
	color: #6e7280;
}

body.site-circuit .kl-cg-claim__activity {
	overflow: hidden;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	background-color: #fdfcfc;
}

body.site-circuit .kl-cg-claim__activity-photo {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

body.site-circuit .kl-cg-claim__activity-body {
	padding: 20px;
}

body.site-circuit .kl-cg-claim__activity-theme {
	margin: 0 0 4px;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--highlight-color, #00abe5);
}

body.site-circuit .kl-cg-claim__activity-name {
	margin: 0 0 8px;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}

body.site-circuit .kl-cg-claim__activity-place {
	display: flex;
	gap: 6px;
	margin: 0 0 12px;
	font-size: 0.9375rem;
	color: #4b4f60;
}

body.site-circuit .kl-cg-claim__activity-link {
	font-size: 0.9375rem;
	font-weight: 500;
	color: #292c3d;
	text-decoration: underline;
}

body.site-circuit .kl-cg-claim__help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 16px 0 0;
	font-size: 0.9375rem;
}

body.site-circuit .kl-cg-claim__help a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #292c3d;
	font-weight: 500;
	text-decoration: none;
}

@media (max-width: 575.98px) {
	body.site-circuit .kl-cg-claim {
		margin-bottom: 40px;
		padding: 24px 0;
		border-radius: 0;
	}

	body.site-circuit .kl-cg-claim__card {
		padding: 24px 20px;
	}

	body.site-circuit .kl-cg-claim__title {
		font-size: 1.625rem;
	}

	body.site-circuit .kl-cg-claim__grid {
		grid-template-columns: 1fr;
	}

	body.site-circuit .kl-cg-claim__submit {
		width: 100%;
	}
}

/* Accueil, « Nos hôtels partenaires » : noms d'hôtel discrets (retour d'Ugo du 19/10,
   les titres hotelgroupes sont saisis en capitales). */
body.site-circuit .kl-card-vignette-mini--name.kl-card-vignette-mini--name-hotel {
	right: 20px;
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.02em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Fiche activité : lieu temporairement fermé (paragraphe .cg-fermeture en tête de la description, 20/10). */
body.site-circuit .kl-single__description .cg-fermeture {
	margin: 0 0 1.25rem;
	padding: 0.875rem 1rem;
	border-left: 4px solid #c0392b;
	border-radius: 4px;
	background: #fdecea;
	color: #7a1f16;
}

/* Méga-menu « Les hôtels » par région (mink_cg_hotels_menu_html, retour d'Ugo et Charline du 21/10) :
   régions à gauche, hôtels de la région survolée à droite ; sur mobile, chaque région se déplie. */
body.site-circuit .kl-sub-menu__hotels_circuits .kl-card ul {
	column-count: auto !important;
}

body.site-circuit .cg-hotels-menu__region {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 8px 12px;
	border-radius: 4px;
	color: #292c3d;
	font-size: 0.9375rem;
	cursor: pointer;
}

body.site-circuit .cg-hotels-menu__region:focus-visible {
	outline: 2px solid var(--highlight-color);
	outline-offset: -2px;
}

body.site-circuit .cg-hotels-menu__region-name {
	flex: 1;
}

body.site-circuit .cg-hotels-menu__count {
	min-width: 22px;
	padding: 1px 6px;
	border-radius: 10px;
	background: #eef0f2;
	color: #6b6f7a;
	font-size: 0.75rem;
	text-align: center;
}

body.site-circuit .cg-hotels-menu__region .icon-chevron-down {
	font-size: 0.625rem;
	transition: transform 0.15s ease;
}

body.site-circuit .cg-hotels-menu__panel {
	display: none;
}

body.site-circuit .cg-hotels-menu__title {
	margin: 4px 0 14px;
	color: #292c3d;
	font-size: 1.125rem;
	font-weight: 500;
}

body.site-circuit .cg-hotels-menu__title span {
	color: #8a8e98;
	font-size: 0.875rem;
	font-weight: 400;
}

body.site-circuit .cg-hotels-menu__hotels {
	display: grid;
	gap: 14px 32px;
}

body.site-circuit .cg-hotels-menu__hotels li {
	margin: 0 !important;
}

body.site-circuit .cg-hotels-menu__hotels a {
	display: block;
	line-height: 1.35;
	text-decoration: none;
}

body.site-circuit .cg-hotels-menu__name {
	display: block;
	color: #292c3d;
	font-size: 0.875rem;
}

body.site-circuit .cg-hotels-menu__hotels a:hover .cg-hotels-menu__name {
	color: var(--highlight-color);
}

body.site-circuit .cg-hotels-menu__city {
	display: block;
	margin-top: 2px;
	color: #8a8e98;
	font-size: 0.75rem;
}

body.site-circuit .cg-hotels-menu__all {
	display: inline-block;
	margin-top: 22px;
}

/* Grand écran : les boutons dans la 1re colonne, le panneau actif sur toute la hauteur de la 2e ;
   la dernière ligne (1fr) prend ce qui dépasse, sans écarter les régions. */
@media (min-width: 992px) {
	body.site-circuit .cg-hotels-menu {
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		grid-template-rows: repeat(var(--cg-hotels-menu-regions, 1), auto) 1fr;
		column-gap: 24px;
		align-items: start;
	}

	body.site-circuit .cg-hotels-menu__region {
		grid-column: 1;
	}

	body.site-circuit .cg-hotels-menu__region .icon-chevron-down {
		transform: rotate(-90deg);
		opacity: 0;
	}

	body.site-circuit .cg-hotels-menu__region:hover,
	body.site-circuit .cg-hotels-menu__region.is-active {
		background: #f3f4f6;
		color: var(--highlight-color);
	}

	body.site-circuit .cg-hotels-menu__region.is-active .cg-hotels-menu__count {
		background: var(--highlight-color);
		color: #fff;
	}

	body.site-circuit .cg-hotels-menu__region.is-active .icon-chevron-down {
		opacity: 1;
	}

	body.site-circuit .cg-hotels-menu__panel {
		grid-column: 2;
		grid-row: 1 / -1;
		align-self: stretch;
		padding-left: 32px;
		border-left: 1px solid #e6e6e6;
	}

	body.site-circuit .cg-hotels-menu__panel.is-active {
		display: block;
	}

	body.site-circuit .cg-hotels-menu__hotels {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 991.98px) {
	body.site-circuit .cg-hotels-menu__region {
		padding: 12px 4px;
		border-bottom: 1px solid #eee;
		border-radius: 0;
	}

	body.site-circuit .cg-hotels-menu__region.is-open .icon-chevron-down {
		transform: rotate(180deg);
	}

	body.site-circuit .cg-hotels-menu__panel.is-open {
		display: block;
		padding: 10px 4px 14px;
	}

	body.site-circuit .cg-hotels-menu__title {
		display: none;
	}

	body.site-circuit .cg-hotels-menu__all {
		margin-top: 14px;
	}
}
