/* ==========================================================================
   Page de recherche (archives des types + shortcodes [ayap_recherche_*]) — v1.78.1
   Bandeau + barre de recherche, onglets par type, filtres, résultats, carte.
   Responsive : 3 colonnes (> 1100 px), 2 colonnes (761-1100 px : la carte passe
   derrière le sélecteur Liste / Carte), 1 colonne (≤ 760 px : filtres repliables).
   Couleurs : --ayap-c1 / --ayap-c1t / --ayap-c2 / --ayap-c2t (Réseau > Apparence).
   Tout est préfixé .ayap-sr : aucune autre page n'est modifiée.
   ========================================================================== */

body .ayap-sr {
	--sr-c1: var(--ayap-c1, #09284e);
	--sr-c1t: var(--ayap-c1t, #fff);
	--sr-c2: var(--ayap-c2, #f9922c);
	--sr-c2t: var(--ayap-c2t, #09284e);
	--sr-txt: #1d2733;
	--sr-mut: #5b6775;
	--sr-bord: #e3e7ec;
	--sr-champ: #cfd6de;
	--sr-fond: var(--ayap-fond, #eff2ff);
	--sr-bar: calc(var(--wp-admin--admin-bar--height, 0px) + 12px);
	/* (2.1.1) Colonnes fluides : filtres et carte grandissent avec l'écran. */
	--sr-col-f: clamp(240px, 17vw, 340px);
	--sr-col-c: clamp(340px, 28vw, 640px);

	position: relative;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: var(--sr-col-f) minmax(0, 1fr) var(--sr-col-c);
	column-gap: clamp(16px, 1.8vw, 32px);
	align-items: start;
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding: 0 0 40px;
	color: var(--sr-txt);
	line-height: 1.4;
}

body .ayap-sr *,
body .ayap-sr *::before,
body .ayap-sr *::after {
	box-sizing: border-box;
}

body .ayap-sr .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

body .ayap-sr a {
	text-decoration: none;
}

body .ayap-sr :is(a, button, input, select):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--sr-c2) 55%, transparent);
	outline-offset: 2px;
}

/* Shortcode : la page prend la largeur de l'écran et se centre SUR L'ÉCRAN (v1.78.1).
   Beaucoup de thèmes décalent leur colonne de contenu : la marge calculée sur la
   colonne ne suffit pas. Comme pour les autres pages du plugin, le décalage
   passe par « left » (--ayap-dx, mesuré par assets/js/centrage.js), qu'aucun
   thème ne neutralise. Sans JavaScript, le bloc reste centré sur sa colonne. */
body .ayap-sr--large {
	--sr-w: min(2000px, calc(100vw - 2 * var(--ayap-g, clamp(12px, 2.2vw, 40px))));
	width: var(--sr-w);
	max-width: none;
	margin-left: calc(50% - var(--sr-w) / 2) !important;
	margin-right: 0 !important;
	left: var(--ayap-dx, 0px);
}

html:has(.ayap-sr--large) {
	overflow-x: clip;
}

/* Le formulaire enveloppe bandeau, onglets et filtres sans casser la grille. */
body .ayap-sr .ayap-sr-form {
	display: contents;
}

body .ayap-sr--sans-carte {
	grid-template-columns: var(--sr-col-f) minmax(0, 1fr);
}

/* --- Bandeau ------------------------------------------------------------ */
body .ayap-sr .ayap-sr-hero {
	grid-column: 1 / -1;
	grid-row: 1;
	position: relative;
	margin: 0;
	padding: clamp(24px, 4vw, 40px) clamp(18px, 4vw, 44px);
	border-radius: 18px;
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-hero > * {
	position: relative;
	z-index: 1;
}

body .ayap-sr .ayap-sr-hero > .ayap-sr-hero-deco {
	position: absolute;
	z-index: 0;
	inset: 0;
	overflow: hidden;
	border-radius: inherit;
	pointer-events: none;
}

body .ayap-sr .ayap-sr-hero-deco::before {
	content: "";
	position: absolute;
	top: -70px;
	right: -50px;
	width: 240px;
	height: 240px;
	border-radius: 50%;
	background: var(--sr-c2);
	opacity: 0.92;
}

body .ayap-sr .ayap-sr-hero-deco::after {
	content: "";
	position: absolute;
	right: 190px;
	bottom: -70px;
	width: 140px;
	height: 140px;
	border-radius: 50%;
	background: #fff;
	opacity: 0.1;
}

body .ayap-sr .ayap-sr-titre {
	margin: 0 0 8px;
	max-width: 640px;
	color: inherit;
	font-size: clamp(26px, 3.2vw, 38px);
	line-height: 1.15;
	font-weight: 800;
}

body .ayap-sr .ayap-sr-intro {
	margin: 0 0 22px;
	max-width: 600px;
	color: #d9e2ee;
	line-height: 1.5;
}

/* Barre de saisie : panneau blanc, deux champs sur fonds différents (bleu pâle /
   orange pâle, dérivés des couleurs de Réseau > Apparence), pastille d'icône,
   bouton orange. v1.78.1 */
body .ayap-sr .ayap-sr-barre-recherche {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
	gap: 8px;
	align-items: stretch;
	width: 100%;
	max-width: 880px;
	margin: 0;
	padding: 8px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(5, 18, 40, 0.35);
	color: var(--sr-txt);
}

body .ayap-sr .ayap-sr-f {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	min-height: 64px;
	margin: 0;
	padding: 8px 16px 8px 64px;
	border: 1px solid transparent;
	border-radius: 12px;
	transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}

/* Champ « Que cherchez-vous ? » : fond bleu pâle */
body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(1) {
	background-color: color-mix(in srgb, var(--sr-c1) 9%, #fff);
	border-color: color-mix(in srgb, var(--sr-c1) 16%, #fff);
}

/* Champ « Où ? » : fond orange pâle */
body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2) {
	background-color: color-mix(in srgb, var(--sr-c2) 15%, #fff);
	border-color: color-mix(in srgb, var(--sr-c2) 30%, #fff);
}

/* Pastille d'icône (loupe / repère) */
body .ayap-sr .ayap-sr-f::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 14px;
	width: 36px;
	height: 36px;
	transform: translateY(-50%);
	border-radius: 10px;
	background-color: var(--sr-c1);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 18px 18px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
	pointer-events: none;
}

body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2)::before {
	background-color: var(--sr-c2);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
}

body .ayap-sr .ayap-sr-f:hover {
	border-color: color-mix(in srgb, var(--sr-c1) 35%, #fff);
}

body .ayap-sr .ayap-sr-f:focus-within {
	border-color: var(--sr-c2);
	background-color: #fff;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sr-c2) 35%, transparent);
}

body .ayap-sr .ayap-sr-f label {
	display: block;
	margin: 0 0 2px;
	padding: 0;
	color: var(--sr-c1);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body .ayap-sr .ayap-sr-f input[type="text"] {
	width: 100%;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 3px 0;
	border: 0 !important;
	border-radius: 0;
	outline: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	color: var(--sr-txt);
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
}

body .ayap-sr .ayap-sr-f input[type="text"]::placeholder {
	color: #7a8796;
	font-weight: 400;
	opacity: 1;
}

body .ayap-sr .ayap-sr-btn {
	min-height: 64px;
	margin: 0;
	padding: 0 34px;
	border: 0;
	border-radius: 12px;
	background: var(--sr-c2);
	color: var(--sr-c2t);
	font: inherit;
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	box-shadow: 0 6px 14px color-mix(in srgb, var(--sr-c2) 45%, transparent);
	cursor: pointer;
	transition: filter 0.15s, transform 0.15s;
}

body .ayap-sr .ayap-sr-btn:hover {
	filter: brightness(0.94);
	transform: translateY(-1px);
}

body .ayap-sr .ayap-sr-btn:active {
	transform: none;
}

body .ayap-sr .ayap-autocomplete-liste {
	top: 100%;
	z-index: 30;
	margin-top: 6px;
	border-radius: 10px;
	color: var(--sr-txt);
}

body .ayap-sr .ayap-autocomplete-liste[hidden] {
	display: none;
}

body .ayap-sr .ayap-sr-populaires {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-top: 16px;
	color: #d9e2ee;
	font-size: 13px;
}

body .ayap-sr .ayap-sr-populaires a {
	padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	color: #fff;
	font-weight: 500;
}

body .ayap-sr .ayap-sr-populaires a:hover {
	background: rgba(255, 255, 255, 0.14);
}

/* --- Onglets par type ----------------------------------------------------- */
body .ayap-sr .ayap-sr-onglets {
	grid-column: 1 / -1;
	grid-row: 2;
	display: flex;
	gap: 8px;
	margin: 20px 0;
	overflow-x: auto;
	padding: 2px;
	scrollbar-width: none;
}

body .ayap-sr .ayap-sr-onglets::-webkit-scrollbar {
	display: none;
}

body .ayap-sr .ayap-sr-onglet {
	display: inline-flex;
	flex: none;
	gap: 8px;
	align-items: center;
	min-height: 44px;
	padding: 0 8px 0 16px;
	border: 1px solid var(--sr-bord);
	border-radius: 999px;
	background: #fff;
	color: var(--sr-txt);
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
}

body .ayap-sr .ayap-sr-onglet b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 26px;
	height: 26px;
	padding: 0 8px;
	border-radius: 999px;
	background: var(--sr-fond);
	color: var(--sr-mut);
	font-size: 12px;
}

body .ayap-sr .ayap-sr-onglet.is-on {
	border-color: var(--sr-c1);
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-onglet.is-on b {
	background: rgba(255, 255, 255, 0.22);
	color: var(--sr-c1t);
}

/* --- Filtres -------------------------------------------------------------- */
body .ayap-sr .ayap-sr-filtres {
	grid-column: 1;
	grid-row: 3 / span 2;
	position: sticky;
	top: var(--sr-bar);
	max-height: calc(100vh - var(--sr-bar) - 12px);
	overflow-y: auto;
	padding: 18px;
	border: 1px solid var(--sr-bord);
	border-radius: 16px;
	background: #fff;
	color: var(--sr-txt);
}

body .ayap-sr .ayap-sr-fh {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 6px;
}

body .ayap-sr .ayap-sr-fh h2 {
	margin: 0;
	color: inherit;
	font-size: 17px;
}

body .ayap-sr .ayap-sr-fh a {
	color: var(--sr-mut);
	font-size: 13px;
	text-decoration: underline;
}

body .ayap-sr .ayap-sr-g {
	min-width: 0;
	margin: 0;
	padding: 14px 0;
	border: 0;
	border-top: 1px solid var(--sr-bord);
}

body .ayap-sr .ayap-sr-fh + .ayap-sr-g {
	border-top: 0;
}

body .ayap-sr .ayap-sr-g > label,
body .ayap-sr .ayap-sr-g-titre {
	display: block;
	margin: 0 0 8px;
	padding: 0;
	color: var(--sr-txt);
	font-size: 13px;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}

body .ayap-sr .ayap-sr-g input[type="number"],
body .ayap-sr .ayap-sr-g select {
	display: block;
	width: 100%;
	max-width: none;
	min-height: 44px;
	margin: 0;
	padding: 0 12px;
	border: 1px solid var(--sr-champ);
	border-radius: 10px;
	background-color: #fff;
	color: var(--sr-txt);
	font: inherit;
	font-size: 14px;
}

body .ayap-sr .ayap-sr-g input[type="range"] {
	display: block;
	width: 100%;
	min-height: 28px;
	margin: 0;
	accent-color: var(--sr-c1);
}

body .ayap-sr .ayap-sr-deux {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

body .ayap-sr .ayap-sr-geo {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: auto;
	min-height: 40px;
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	white-space: nowrap;
	box-shadow: none;
	color: var(--sr-c1);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-geo:disabled {
	opacity: 0.6;
	cursor: wait;
}

body .ayap-sr .ayap-geolocaliser-statut {
	display: block;
	color: var(--sr-mut);
	font-size: 12px;
}

body .ayap-sr .ayap-sr-pastilles {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

body .ayap-sr .ayap-sr-pastilles label {
	position: relative;
	display: inline-block;
	margin: 0;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-pastilles input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-pastilles span {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 11px;
	border: 1px solid var(--sr-champ);
	border-radius: 999px;
	background: #fff;
	color: var(--sr-txt);
	font-size: 13px;
	font-weight: 700;
}

body .ayap-sr .ayap-sr-pastilles input:checked + span {
	border-color: var(--sr-c1);
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-pastilles input:focus-visible + span {
	outline: 3px solid color-mix(in srgb, var(--sr-c2) 55%, transparent);
	outline-offset: 2px;
}

body .ayap-sr .ayap-sr-g > label.ayap-sr-sw {
	display: flex;
	gap: 10px;
	align-items: center;
	min-height: 44px;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-sw input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--sr-c1);
}

body .ayap-sr .ayap-sr-appliquer {
	display: block;
	width: 100%;
	min-height: 48px;
	margin: 6px 0 0;
	padding: 0 16px;
	border: 0;
	border-radius: 10px;
	background: var(--sr-c1);
	color: var(--sr-c1t);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-appliquer:hover {
	filter: brightness(1.15);
}

/* --- Résultats ------------------------------------------------------------ */
body .ayap-sr .ayap-sr-resultats {
	grid-column: 2;
	grid-row: 3;
	min-width: 0;
}

body .ayap-sr .ayap-sr-barre {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

body .ayap-sr .ayap-sr-compte {
	margin: 0;
	color: var(--sr-txt);
	font-size: 18px;
}

body .ayap-sr .ayap-sr-compte small {
	color: var(--sr-mut);
	font-size: inherit;
	font-weight: 500;
}

body .ayap-sr .ayap-sr-ctl {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
}

body .ayap-sr .ayap-sr-ctl select {
	min-height: 44px;
	max-width: 100%;
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--sr-champ);
	border-radius: 10px;
	background-color: #fff;
	color: var(--sr-txt);
	font: inherit;
	font-size: 14px;
}

body .ayap-sr .ayap-sr-seg {
	display: none;
	border: 1px solid var(--sr-champ);
	border-radius: 10px;
	overflow: hidden;
}

body .ayap-sr .ayap-sr-seg button {
	min-height: 42px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: var(--sr-txt);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-seg button.is-on {
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-filtres-btn {
	display: none;
	align-items: center;
	min-height: 44px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--sr-champ);
	border-radius: 10px;
	background: #fff;
	color: var(--sr-txt);
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-actifs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 14px 0;
}

body .ayap-sr .ayap-sr-chip {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	min-height: 32px;
	padding: 6px 12px;
	border: 1px solid var(--sr-bord);
	border-radius: 999px;
	background: var(--sr-fond);
	color: var(--sr-txt);
	font-size: 13px;
	font-weight: 700;
}

body .ayap-sr .ayap-sr-chip:hover {
	border-color: var(--sr-c1);
}

body .ayap-sr .ayap-sr-tout {
	padding: 6px;
	color: var(--sr-mut);
	font-size: 13px;
	text-decoration: underline;
}

body .ayap-sr .ayap-sr-liste {
	margin-top: 14px;
}

body .ayap-sr .ayap-sr-actifs + .ayap-sr-liste {
	margin-top: 0;
}

body .ayap-sr .ayap-sr-vide {
	margin: 0;
	padding: 32px 16px;
	border: 1px dashed var(--sr-champ);
	border-radius: 16px;
	color: var(--sr-mut);
	text-align: center;
}

/* --- Cartes de résultats --------------------------------------------------- */
body .ayap-sr .ayap-sr-cartes {
	margin: 0;
	padding: 0;
	list-style: none;
}

body .ayap-sr .ayap-sr-carte-li {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

body .ayap-sr .ayap-sr-rc {
	position: relative;
	display: grid;
	grid-template-columns: 176px minmax(0, 1fr);
	gap: 18px;
	margin: 0;
	padding: 14px;
	border: 1px solid var(--sr-bord);
	border-radius: 16px;
	background: #fff;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

body .ayap-sr .ayap-sr-rc:hover {
	box-shadow: 0 8px 22px rgba(9, 40, 78, 0.12);
}

body .ayap-sr .ayap-sr-rc.is-vedette {
	padding: 11px;
	border: 2px solid var(--sr-c2);
	box-shadow: 0 10px 28px rgba(249, 146, 44, 0.22);
}

body .ayap-sr .ayap-sr-th {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 176px;
	border-radius: 12px;
	background: var(--sr-c1);
	color: var(--sr-c2);
	font-size: 34px;
	font-weight: 800;
	overflow: hidden;
}

body .ayap-sr .ayap-sr-th::before {
	content: "";
	position: absolute;
	top: -30px;
	right: -24px;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: var(--sr-c2);
	opacity: 0.9;
}

body .ayap-sr .ayap-sr-th i {
	position: relative;
	color: #fff;
	font-style: normal;
}

body .ayap-sr .ayap-sr-th img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
}

body .ayap-sr .ayap-sr-ruban {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--sr-c2);
	color: var(--sr-c2t);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

body .ayap-sr .ayap-sr-corps {
	min-width: 0;
}

body .ayap-sr .ayap-sr-rc h3 {
	margin: 2px 0 4px;
	padding-right: 48px;
	color: var(--sr-c1);
	font-size: 18px;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

body .ayap-sr .ayap-sr-rc h3 a {
	color: inherit;
}

/* Toute la carte est cliquable ; favori, catégorie et « Comparer » restent au-dessus. */
body .ayap-sr .ayap-sr-rc h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

body .ayap-sr .ayap-sr-m {
	padding-right: 48px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	align-items: center;
	color: var(--sr-mut);
	font-size: 13px;
}

body .ayap-sr .ayap-sr-m svg {
	vertical-align: -3px;
	color: var(--sr-c2);
}

body .ayap-sr .ayap-sr-st {
	color: var(--sr-txt);
	font-weight: 700;
}

body .ayap-sr .ayap-sr-st i {
	color: #f5a623;
	font-style: normal;
}

body .ayap-sr .ayap-sr-m .ayap-dispo {
	font-size: 13px;
	font-weight: 700;
}

body .ayap-sr .ayap-sr-rc p {
	margin: 8px 0;
	color: var(--sr-mut);
	font-size: 14px;
	line-height: 1.5;
}

body .ayap-sr .ayap-sr-pied {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
}

body .ayap-sr .ayap-sr-ty {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	background: #e3ebf6;
	color: var(--sr-c1);
	font-size: 11px;
	font-weight: 700;
}

body .ayap-sr .ayap-sr-ty--ayap_demande {
	background: #fff1de;
	color: #8a4b00;
}

body .ayap-sr .ayap-sr-ty--ayap_materiel {
	background: #e4f4e8;
	color: #17692e;
}

body .ayap-sr .ayap-sr-ty .ayap-badge-categorie {
	position: relative;
	z-index: 3;
	display: inline-flex;
	gap: 6px;
	align-items: center;
	margin: 0;
	color: inherit;
	font-size: 11px;
	font-weight: 700;
}

body .ayap-sr .ayap-sr-ty .ayap-badge-categorie-icone {
	width: 16px;
	height: 16px;
	border-radius: 3px;
}

body .ayap-sr .ayap-sr-ty .ayap-badge-categorie-pastille {
	width: 9px;
	height: 9px;
}

body .ayap-sr .ayap-sr-px {
	color: var(--sr-c1);
	font-size: 14px;
	font-weight: 800;
}

body .ayap-sr .ayap-sr-outils {
	position: relative;
	z-index: 3;
	margin-top: 10px;
}

body .ayap-sr .ayap-sr-outils .ayap-comparer-case {
	position: static;
	display: inline-flex;
	gap: 6px;
	align-items: center;
	min-height: 32px;
	padding: 4px 12px;
	border: 1px solid var(--sr-bord);
	border-radius: 999px;
	background: var(--sr-fond);
	box-shadow: none;
	color: var(--sr-txt);
	font-size: 13px;
	font-weight: 700;
}

/* Bouton favori : rond (cœur), le texte reste lisible par les lecteurs d'écran. */
body .ayap-sr .ayap-sr-rc .ayap-btn-favori {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--sr-bord);
	border-radius: 50%;
	background: #fff;
	color: var(--sr-c1);
	font-size: 0;
	line-height: 0;
	cursor: pointer;
}

body .ayap-sr .ayap-sr-rc .ayap-btn-favori::before {
	content: "♡";
	font-size: 22px;
	line-height: 1;
}

body .ayap-sr .ayap-sr-rc .ayap-btn-favori.is-active {
	border-color: var(--sr-c1);
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-rc .ayap-btn-favori.is-active::before {
	content: "♥";
}

/* --- Pagination ----------------------------------------------------------- */
body .ayap-sr .ayap-sr-pn {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
	margin-top: 20px;
}

body .ayap-sr .ayap-sr-pn a,
body .ayap-sr .ayap-sr-pn-vide {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border: 1px solid var(--sr-bord);
	border-radius: 10px;
	background: #fff;
	color: var(--sr-c1);
	font-weight: 700;
}

body .ayap-sr .ayap-sr-pn a.is-on {
	border-color: var(--sr-c1);
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr .ayap-sr-pn-vide {
	min-width: 24px;
	padding: 0;
	border: 0;
	background: none;
}

/* --- Carte ---------------------------------------------------------------- */
body .ayap-sr .ayap-sr-carte {
	grid-column: 3;
	grid-row: 3;
	position: sticky;
	top: var(--sr-bar);
	z-index: 0;
	height: min(860px, calc(100vh - var(--sr-bar) - 12px));
	min-height: 320px;
	border: 1px solid var(--sr-bord);
	border-radius: 16px;
	background: #e9eef4;
	overflow: hidden;
	isolation: isolate;
}

body .ayap-sr .ayap-sr-carte .ayap-results-map {
	width: 100%;
	max-width: none;
	height: 100%;
	margin: 0;
	border-radius: 0;
}

/* --- Barre de saisie : petite tablette (champs côte à côte, bouton dessous) --- */
@media (max-width: 900px) {
	body .ayap-sr .ayap-sr-barre-recherche {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	body .ayap-sr .ayap-sr-btn {
		grid-column: 1 / -1;
		min-height: 54px;
	}
}

/* --- Tablette : 2 colonnes, carte derrière « Liste / Carte » --------------- */
@media (max-width: 1100px) {
	body .ayap-sr,
	body .ayap-sr--sans-carte {
		grid-template-columns: 240px minmax(0, 1fr);
	}

	body .ayap-sr .ayap-sr-seg {
		display: inline-flex;
	}

	body .ayap-sr .ayap-sr-carte {
		grid-column: 2;
		grid-row: 4;
		position: relative;
		top: auto;
	}

	/* Masquée mais mesurable : la carte (Leaflet / Google) s'initialise à la bonne taille. */
	body .ayap-sr:not(.is-carte) .ayap-sr-carte {
		grid-column: auto;
		grid-row: auto;
		position: absolute;
		top: 0;
		left: -9999px;
		width: min(720px, 100%);
		height: 420px;
		visibility: hidden;
	}

	body .ayap-sr.is-carte .ayap-sr-carte {
		height: min(70vh, 560px);
		margin-top: 14px;
	}

	body .ayap-sr.is-carte .ayap-sr-liste {
		display: none;
	}
}

/* --- Mobile : 1 colonne, filtres repliables --------------------------------- */
@media (max-width: 760px) {
	body .ayap-sr,
	body .ayap-sr--sans-carte {
		grid-template-columns: minmax(0, 1fr);
	}

	body .ayap-sr .ayap-sr-hero-deco::before {
		top: -50px;
		right: -40px;
		width: 150px;
		height: 150px;
	}

	body .ayap-sr .ayap-sr-hero-deco::after {
		right: 90px;
		width: 100px;
		height: 100px;
	}

	body .ayap-sr .ayap-sr-barre-recherche {
		grid-template-columns: minmax(0, 1fr);
		max-width: 100%;
		border-radius: 16px;
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 60px;
	}

	body .ayap-sr .ayap-sr-btn {
		width: 100%;
	}

	body .ayap-sr .ayap-sr-filtres {
		grid-column: 1;
		grid-row: 3;
		position: static;
		max-height: none;
		margin-bottom: 18px;
	}

	body .ayap-sr .ayap-sr-resultats {
		grid-column: 1;
		grid-row: 4;
	}

	body .ayap-sr .ayap-sr-carte {
		grid-column: 1;
		grid-row: 5;
	}

	/* Avec JavaScript, les filtres se replient derrière le bouton « Filtres ». */
	body .ayap-sr.is-js .ayap-sr-filtres-btn {
		display: inline-flex;
	}

	body .ayap-sr.is-js:not(.filtres-ouverts) .ayap-sr-filtres {
		display: none;
	}

	body .ayap-sr .ayap-sr-ctl {
		width: 100%;
	}

	body .ayap-sr .ayap-sr-ctl select {
		flex: 1 1 140px;
	}
}

/* --- Petit mobile : carte de résultat empilée -------------------------------- */
@media (max-width: 520px) {
	body .ayap-sr .ayap-sr-barre-recherche {
		padding: 6px;
		gap: 6px;
	}

	body .ayap-sr .ayap-sr-f {
		padding: 7px 12px 7px 54px;
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 10px;
		width: 32px;
		height: 32px;
		background-size: 16px 16px;
	}

	body .ayap-sr .ayap-sr-rc {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	body .ayap-sr .ayap-sr-th {
		min-height: 120px;
	}

	body .ayap-sr .ayap-sr-rc h3,
	body .ayap-sr .ayap-sr-m {
		padding-right: 0;
	}

	body .ayap-sr .ayap-sr-rc .ayap-btn-favori {
		top: 20px;
		right: 20px;
	}

	body .ayap-sr .ayap-sr-pn a {
		min-width: 40px;
		padding: 0 8px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .ayap-sr .ayap-sr-rc {
		transition: none;
	}
}

/* ==========================================================================
   v1.78.4 — Bandeau de recherche (Prestataires, Demandes de travaux,
   Matériel & équipements) en PLEINE LARGEUR d'écran.
   Il touche les bords gauche et droit (quel que soit le thème) ; le titre et
   la barre de recherche restent alignés sur les filtres et les résultats.
   --ayap-vw (largeur visible) et --ayap-cw (largeur du bloc) sont posées par
   assets/js/centrage.js ; sans JavaScript, repli sur 100vw.
   Responsive : de 320 px au grand écran. Filtres, onglets, résultats et
   carte ne sont pas modifiés.
   ========================================================================== */
html:has(.ayap-sr .ayap-sr-hero) {
	overflow-x: clip;
}

body .ayap-sr .ayap-sr-hero {
	--sr-pad: clamp(18px, 4vw, 44px);
	--sr-cercle: clamp(130px, 16vw, 280px);
	justify-self: start;
	width: var(--ayap-vw, 100vw);
	max-width: none;
	margin-left: calc(50% - var(--ayap-vw, 100vw) / 2) !important;
	margin-right: 0 !important;
	padding-left: calc(max(0px, (var(--ayap-vw, 100vw) - var(--ayap-cw, 100%)) / 2) + var(--sr-pad));
	padding-right: calc(max(0px, (var(--ayap-vw, 100vw) - var(--ayap-cw, 100%)) / 2) + var(--sr-pad));
	border-radius: 0;
}

body .ayap-sr .ayap-sr-hero-deco {
	border-radius: 0;
}

body .ayap-sr .ayap-sr-hero-deco::before {
	width: var(--sr-cercle);
	height: var(--sr-cercle);
	top: calc(var(--sr-cercle) * -0.3);
	right: calc(var(--sr-cercle) * -0.18);
}

@media (max-width: 760px) {
	body .ayap-sr .ayap-sr-hero {
		--sr-cercle: 120px;
	}
}

/* ==========================================================================
   v1.78.13 — Nombre d'annonces par ligne (Réseau > Pages > Réglages)
   Les variables --sr-cols-d / -t / -m sont posées sur .ayap-sr par le plugin,
   pour chaque type de fiches. Sans réglage : 1 annonce par ligne (rendu
   d'origine). Mêmes seuils que la mise en page : ordinateur > 1100 px,
   tablette 761-1100 px, mobile ≤ 760 px.
   ========================================================================== */
body .ayap-sr .ayap-sr-cartes {
	display: grid;
	grid-template-columns: repeat(var(--sr-cols-d, 1), minmax(0, 1fr));
	column-gap: 14px;
	row-gap: 0;
}

/* Chaque annonce garde sa marge basse d'origine : l'espacement vertical ne change pas. */
body .ayap-sr .ayap-sr-carte-li {
	min-width: 0;
	container-type: inline-size;
	container-name: ayap-carte;
}

@media (max-width: 1100px) {
	body .ayap-sr .ayap-sr-cartes {
		grid-template-columns: repeat(var(--sr-cols-t, 1), minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	body .ayap-sr .ayap-sr-cartes {
		grid-template-columns: repeat(var(--sr-cols-m, 1), minmax(0, 1fr));
	}
}

/* Annonce étroite (plusieurs par ligne) : photo au-dessus du texte, comme sur petit mobile. */
@container ayap-carte (max-width: 430px) {
	body .ayap-sr .ayap-sr-rc {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	body .ayap-sr .ayap-sr-th {
		min-height: 150px;
	}

	body .ayap-sr .ayap-sr-rc h3,
	body .ayap-sr .ayap-sr-m {
		padding-right: 0;
	}

	body .ayap-sr .ayap-sr-rc .ayap-btn-favori {
		top: 20px;
		right: 20px;
	}
}

/* ==========================================================================
   v2.1.1 — Contenu de la page de recherche en PLEIN ÉCRAN.
   Filtres, résultats et carte occupent toute la largeur de l'écran (comme la
   bannière), avec une marge latérale fluide (--ayap-g) et un plafond à 2000 px
   sur les très grands écrans pour garder des lignes lisibles. Les colonnes
   (filtres, carte) s'élargissent avec l'écran ; sur tablette et mobile la mise
   en page reste celle des seuils 1100 px / 760 px.
   ========================================================================== */
body .ayap-sr {
	padding-bottom: clamp(24px, 4vw, 56px);
}

body .ayap-sr .ayap-sr-onglets {
	margin: clamp(14px, 1.6vw, 24px) 0;
}

/* Cartes d'annonces : relief discret et survol, plus net sur grand écran. */
body .ayap-sr .ayap-sr-filtres,
body .ayap-sr .ayap-sr-carte {
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 8px 24px rgba(16, 24, 40, 0.05);
}

@media (min-width: 1700px) {
	body .ayap-sr .ayap-sr-compte {
		font-size: 20px;
	}

	body .ayap-sr .ayap-sr-cartes {
		column-gap: 20px;
	}
}

/* v2.1.5 — Pays, expérience et type d'abonnement sur chaque annonce. */
body .ayap-sr .ayap-sr-m .ayap-sr-xp {
	font-weight: 600;
	color: var(--sr-txt);
}

body .ayap-sr .ayap-sr-plan {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	background: #f1f3f6;
	color: var(--sr-mut);
	font-size: 11px;
	font-weight: 700;
	white-space: nowrap;
}

body .ayap-sr .ayap-sr-plan:not(.ayap-sr-plan--gratuit) {
	background: color-mix(in srgb, var(--sr-c2) 22%, #fff);
	color: var(--sr-c2t);
}

/* v2.1.6 — Ordre des cartes : catégorie, expérience, ville et pays, honoraires, description (petites icônes). */
body .ayap-sr .ayap-sr-m .ayap-sr-ty svg {
	margin-right: 5px;
	color: inherit;
	vertical-align: -2px;
}

body .ayap-sr .ayap-sr-m .ayap-sr-xp {
	display: inline-flex;
	gap: 5px;
	align-items: center;
}

body .ayap-sr .ayap-sr-m > span:not(.ayap-sr-ty):not(.ayap-sr-xp):not(.ayap-sr-st) > svg {
	margin-right: 4px;
}

body .ayap-sr .ayap-sr-px {
	display: flex;
	gap: 6px;
	align-items: center;
	margin: 8px 0 0;
	padding-right: 48px;
}

body .ayap-sr .ayap-sr-px svg,
body .ayap-sr .ayap-sr-desc svg {
	flex: 0 0 auto;
	color: var(--sr-c2);
}

body .ayap-sr .ayap-sr-rc p.ayap-sr-desc {
	display: flex;
	gap: 6px;
	align-items: flex-start;
}

body .ayap-sr .ayap-sr-desc svg {
	margin-top: 3px;
}

/* v2.1.7 — Texte long sans espace : il passe à la ligne au lieu d'être coupé. */
body .ayap-sr .ayap-sr-desc span,
body .ayap-sr .ayap-sr-px span {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
	word-break: break-word;
}

body .ayap-sr .ayap-sr-rc p.ayap-sr-desc {
	min-width: 0;
	max-width: 100%;
}

@media (max-width: 640px) {
	body .ayap-sr .ayap-sr-px {
		padding-right: 0;
	}
}

/* ==========================================================================
   v2.8.87 — Widget de recherche : rendu professionnel sur TABLETTE et MOBILE
   (Prestataires, Demandes de travaux, Matériel & équipements).
   Maquettes : mobile (carte de recherche empilée, « Populaires » et onglets
   défilants, bouton Filtres, panneau de filtres en feuille depuis le bas) et
   tablette (barre de recherche sur une ligne, onglets + bouton Filtres).
   Ordinateur (> 1100 px) : rien ne change.
   ========================================================================== */

/* --- Ordinateur : les nouveaux éléments restent invisibles / neutres --- */
body .ayap-sr .ayap-sr-poignee,
body .ayap-sr .ayap-sr-fermer,
body .ayap-sr .ayap-sr-fond,
body .ayap-sr .ayap-sr-ap-m,
body .ayap-sr .ayap-sr-geo .ayap-sr-ico,
body .ayap-sr .ayap-sr-filtres-btn--rangee {
	display: none;
}

body .ayap-sr .ayap-sr-rangee {
	grid-column: 1 / -1;
	grid-row: 2;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	margin: 20px 0;
}

/* Un seul type d'annonces : pas d'onglets, la rangée n'existe que pour le bouton Filtres (tablette). */
body .ayap-sr .ayap-sr-rangee--seule {
	display: none;
}

body .ayap-sr .ayap-sr-rangee > .ayap-sr-onglets {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

body .ayap-sr .ayap-sr-onglet-t {
	display: inline;
}

body .ayap-sr .ayap-sr-pop-liste {
	display: contents;
}

body .ayap-sr .ayap-sr-corps {
	display: block;
}

body .ayap-sr .ayap-sr-corps > .ayap-sr-g:first-child {
	border-top: 0;
}

body .ayap-sr .ayap-sr-pied {
	display: block;
}

/* Rayon : « Rayon : 25 km » sur ordinateur, libellé / valeur séparés sur tablette et mobile. */
body .ayap-sr .ayap-sr-lbl-rayon > span {
	display: inline;
}

body .ayap-sr .ayap-sr-lbl-rayon > span:first-child::after {
	content: " : ";
}

/* --- Tablette et mobile (≤ 1100 px) : une seule colonne, filtres en feuille --- */
@media (max-width: 1100px) {

	body .ayap-sr,
	body .ayap-sr--sans-carte {
		grid-template-columns: minmax(0, 1fr);
	}

	body .ayap-sr .ayap-sr-resultats {
		grid-column: 1;
		grid-row: 4;
	}

	body .ayap-sr .ayap-sr-carte {
		grid-column: 1;
		grid-row: 5;
	}

	/* Sans JavaScript : les filtres restent affichés au-dessus des résultats. */
	body .ayap-sr .ayap-sr-filtres {
		grid-column: 1;
		grid-row: 3;
		position: static;
		max-height: none;
		margin-bottom: 18px;
	}

	/* --sr-padx : marge entre le bord de l'écran et le contenu (pour faire défiler pastilles et onglets jusqu'au bord). */
	body .ayap-sr {
		--sr-padx: max(0px, calc((var(--ayap-vw, 100vw) - var(--ayap-cw, 100%)) / 2));
	}

	/* Bandeau : le texte s'aligne sur les onglets et les résultats. */
	body .ayap-sr .ayap-sr-hero {
		--sr-pad: 0px;
	}

	body .ayap-sr .ayap-sr-titre {
		font-weight: 800;
		letter-spacing: -0.01em;
	}

	body .ayap-sr .ayap-sr-intro {
		margin-bottom: 22px;
	}

	/* Carte blanche de recherche */
	body .ayap-sr .ayap-sr-barre-recherche {
		padding: 10px;
		border: 0;
		border-radius: 24px;
		box-shadow: 0 18px 40px rgba(3, 15, 35, 0.34);
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 62px;
		padding: 8px 14px 8px 62px;
		border: 1px solid color-mix(in srgb, var(--sr-c1) 14%, #fff);
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 12px;
		width: 38px;
		height: 38px;
		border-radius: 10px;
		background-size: 20px 20px;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2) {
		border-color: color-mix(in srgb, var(--sr-c2) 28%, #fff);
	}

	body .ayap-sr .ayap-sr-f label {
		margin-bottom: 1px;
		font-size: 12px;
		letter-spacing: 0.08em;
	}

	body .ayap-sr .ayap-sr-f input[type="text"] {
		font-size: 17px;
		font-weight: 500;
	}

	body .ayap-sr .ayap-sr-btn {
		border-radius: 16px;
		font-size: 16px;
		letter-spacing: 0.08em;
	}

	/* « Populaires » : libellé + pastilles défilantes */
	body .ayap-sr .ayap-sr-populaires {
		margin-top: 22px;
		color: #b9c6d9;
	}

	body .ayap-sr .ayap-sr-populaires > span {
		flex: 0 0 auto;
		font-size: 13px;
		font-weight: 800;
		letter-spacing: 0.1em;
		text-transform: uppercase;
	}

	body .ayap-sr .ayap-sr-pop-liste {
		display: flex;
		flex-wrap: nowrap;
		gap: 12px;
		min-width: 0;
		overflow-x: auto;
		padding: 2px 0;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	body .ayap-sr .ayap-sr-pop-liste::-webkit-scrollbar {
		display: none;
	}

	body .ayap-sr .ayap-sr-populaires a {
		flex: 0 0 auto;
		display: inline-flex;
		align-items: center;
		min-height: 36px;
		padding: 0 15px;
		font-size: 15px;
		line-height: 1.2;
		white-space: nowrap;
	}

	/* Onglets par type + bouton Filtres (tablette) */
	body .ayap-sr .ayap-sr-onglet {
		min-height: 44px;
		padding: 0 9px 0 17px;
		font-size: 15px;
	}

	body .ayap-sr .ayap-sr-onglet.is-on b {
		background: var(--sr-c2);
		color: var(--sr-c2t);
	}

	body .ayap-sr .ayap-sr-onglet:not(.is-on) b {
		background: color-mix(in srgb, var(--sr-c1) 9%, #fff);
		color: var(--sr-c1);
	}

	body .ayap-sr .ayap-sr-filtres-btn {
		gap: 10px;
		min-height: 44px;
		padding: 0 18px;
		border: 1.5px solid var(--sr-c1);
		border-radius: 12px;
		background: #fff;
		color: var(--sr-c1);
		font-size: 16px;
		font-weight: 700;
		line-height: 1;
	}

	body .ayap-sr .ayap-sr-filtres-btn .ayap-sr-ico {
		flex: 0 0 auto;
		width: 20px;
		height: 20px;
	}

	/* Compte des résultats */
	body .ayap-sr .ayap-sr-compte {
		color: var(--sr-mut);
		font-size: 16px;
		font-weight: 700;
	}

	/* --- Feuille de filtres (avec JavaScript) --- */
	body .ayap-sr.is-js .ayap-sr-filtres,
	body .ayap-sr.is-js:not(.filtres-ouverts) .ayap-sr-filtres {
		position: fixed;
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 100000;
		display: flex;
		flex-direction: column;
		width: 100%;
		max-width: 600px;
		max-height: 92vh;
		max-height: 92dvh;
		margin: 0 auto;
		padding: 0;
		overflow: hidden;
		border: 0;
		border-radius: 28px 28px 0 0;
		background: #fff;
		box-shadow: 0 -14px 44px rgba(3, 15, 35, 0.4);
		transform: translateY(104%);
		visibility: hidden;
		transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s linear 0.3s;
	}

	body .ayap-sr.is-js.filtres-ouverts .ayap-sr-filtres {
		transform: none;
		visibility: visible;
		transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0s;
	}

	body .ayap-sr.is-js .ayap-sr-fond {
		position: fixed;
		inset: 0;
		z-index: 99999;
		display: block;
		background: rgba(4, 20, 44, 0.72);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0s linear 0.3s;
	}

	body .ayap-sr.is-js.filtres-ouverts .ayap-sr-fond {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.3s ease, visibility 0s;
	}

	html.ayap-sr-verrou,
	html.ayap-sr-verrou body {
		overflow: hidden !important;
	}

	body .ayap-sr.is-js .ayap-sr-poignee {
		display: block;
		flex: 0 0 auto;
		width: 44px;
		height: 5px;
		margin: 10px auto 2px;
		border-radius: 999px;
		background: #cfd8e3;
	}

	body .ayap-sr.is-js .ayap-sr-fh {
		flex: 0 0 auto;
		gap: 16px;
		margin: 0;
		padding: 10px 16px 14px;
		border-bottom: 1px solid var(--sr-bord);
	}

	body .ayap-sr.is-js .ayap-sr-fh h2 {
		flex: 1 1 auto;
		color: var(--sr-c1);
		font-size: 24px;
		font-weight: 800;
		line-height: 1.2;
	}

	body .ayap-sr.is-js .ayap-sr-fh a {
		color: var(--sr-c1);
		font-size: 15px;
		font-weight: 700;
		text-decoration: underline;
	}

	body .ayap-sr.is-js .ayap-sr-fermer {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 12px;
		background: color-mix(in srgb, var(--sr-c1) 9%, #fff);
		color: var(--sr-c1);
		cursor: pointer;
	}

	body .ayap-sr.is-js .ayap-sr-fermer .ayap-sr-ico {
		width: 22px;
		height: 22px;
	}

	body .ayap-sr.is-js .ayap-sr-corps {
		flex: 1 1 auto;
		min-height: 0;
		padding: 18px 16px 8px;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}

	body .ayap-sr.is-js .ayap-sr-pied {
		flex: 0 0 auto;
		padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid var(--sr-bord);
		background: #fff;
		box-shadow: 0 -10px 18px rgba(9, 40, 78, 0.05);
	}

	/* Champs de la feuille (et des filtres affichés sans JavaScript) */
	body .ayap-sr .ayap-sr-g {
		padding: 0 0 20px;
		border-top: 0;
	}

	body .ayap-sr .ayap-sr-g > label,
	body .ayap-sr .ayap-sr-g-titre {
		margin-bottom: 8px;
		color: var(--sr-c1);
		font-size: 15px;
		font-weight: 800;
	}

	body .ayap-sr .ayap-sr-g input[type="number"],
	body .ayap-sr .ayap-sr-g select {
		min-height: 48px;
		padding: 0 14px;
		border: 1px solid var(--sr-champ);
		border-radius: 14px;
		font-size: 17px;
	}

	body .ayap-sr .ayap-sr-g select {
		padding-right: 42px;
		background-color: #fff;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2344556b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
		background-position: right 14px center;
		background-repeat: no-repeat;
		background-size: 18px 18px;
		-webkit-appearance: none;
		appearance: none;
	}

	body .ayap-sr .ayap-sr-g input[type="number"]::placeholder {
		color: #7a8796;
		opacity: 1;
	}

	body .ayap-sr .ayap-sr-deux {
		gap: 12px;
	}

	/* « Autour de moi » : bouton pleine largeur */
	body .ayap-sr .ayap-sr-geo {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		width: 100%;
		min-height: 46px;
		margin: 12px 0 0;
		padding: 0 16px;
		border: 1.5px solid var(--sr-c1);
		border-radius: 14px;
		background: #fff;
		color: var(--sr-c1);
		font-size: 16px;
		font-weight: 700;
		text-decoration: none;
	}

	body .ayap-sr .ayap-sr-geo .ayap-sr-ico {
		display: block;
		flex: 0 0 auto;
		width: 20px;
		height: 20px;
	}

	/* Rayon : libellé à gauche, valeur à droite, curseur orange */
	body .ayap-sr .ayap-sr-lbl-rayon {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 12px;
	}

	body .ayap-sr .ayap-sr-lbl-rayon > span {
		display: block;
	}

	body .ayap-sr .ayap-sr-lbl-rayon > span:first-child::after {
		content: none;
	}

	body .ayap-sr .ayap-sr-rayon-v {
		color: var(--sr-mut);
		font-size: 15px;
		font-weight: 700;
	}

	body .ayap-sr .ayap-sr-g input[type="range"] {
		--sr-fill: 25%;
		height: 32px;
		min-height: 32px;
		padding: 0;
		background: transparent;
		-webkit-appearance: none;
		appearance: none;
	}

	body .ayap-sr .ayap-sr-g input[type="range"]::-webkit-slider-runnable-track {
		height: 8px;
		border-radius: 999px;
		background: linear-gradient(to right, var(--sr-c2) 0, var(--sr-c2) var(--sr-fill), #e6ecf4 var(--sr-fill), #e6ecf4 100%);
	}

	body .ayap-sr .ayap-sr-g input[type="range"]::-webkit-slider-thumb {
		width: 28px;
		height: 28px;
		margin-top: -10px;
		border: 3px solid var(--sr-c1);
		border-radius: 50%;
		background: #fff;
		box-shadow: 0 2px 6px rgba(9, 40, 78, 0.25);
		-webkit-appearance: none;
		appearance: none;
	}

	body .ayap-sr .ayap-sr-g input[type="range"]::-moz-range-track {
		height: 8px;
		border-radius: 999px;
		background: #e6ecf4;
	}

	body .ayap-sr .ayap-sr-g input[type="range"]::-moz-range-progress {
		height: 8px;
		border-radius: 999px;
		background: var(--sr-c2);
	}

	body .ayap-sr .ayap-sr-g input[type="range"]::-moz-range-thumb {
		width: 22px;
		height: 22px;
		border: 3px solid var(--sr-c1);
		border-radius: 50%;
		background: #fff;
		box-shadow: 0 2px 6px rgba(9, 40, 78, 0.25);
	}

	/* Note minimum */
	body .ayap-sr .ayap-sr-pastilles {
		gap: 10px;
	}

	body .ayap-sr .ayap-sr-pastilles span {
		min-height: 44px;
		padding: 0 20px;
		border-color: var(--sr-bord);
		font-size: 16px;
	}

	body .ayap-sr .ayap-sr-g > label.ayap-sr-sw {
		margin: 0;
		color: var(--sr-c1);
		font-size: 15px;
	}

	/* Bouton « Voir les résultats » */
	body .ayap-sr .ayap-sr-ap-d {
		display: none;
	}

	body .ayap-sr .ayap-sr-ap-m {
		display: inline;
	}

	body .ayap-sr .ayap-sr-appliquer {
		min-height: 54px;
		margin: 0;
		border-radius: 14px;
		background: var(--sr-c2);
		color: var(--sr-c2t);
		font-size: 16px;
		font-weight: 800;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		box-shadow: 0 6px 14px color-mix(in srgb, var(--sr-c2) 40%, transparent);
	}

	body .ayap-sr .ayap-sr-appliquer:hover {
		filter: brightness(0.94);
	}
}

/* --- Tablette (761 – 1100 px) --- */
@media (min-width: 761px) and (max-width: 1100px) {

	body .ayap-sr .ayap-sr-hero {
		padding-top: 40px;
		padding-bottom: 32px;
	}

	body .ayap-sr .ayap-sr-titre {
		max-width: none;
		font-size: 36px;
	}

	body .ayap-sr .ayap-sr-intro {
		max-width: none;
		font-size: 16px;
	}

	/* Barre de recherche sur une ligne : [ Que cherchez-vous ? | Où ? ] [ RECHERCHER ] */
	body .ayap-sr .ayap-sr-barre-recherche {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto;
		gap: 0;
		max-width: none;
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 70px;
		padding-left: 66px;
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 16px;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(1) {
		border-radius: 14px 0 0 14px;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2) {
		border-left: 0;
		border-radius: 0 14px 14px 0;
	}

	body .ayap-sr .ayap-sr-f input[type="text"] {
		font-size: 18px;
	}

	body .ayap-sr .ayap-sr-btn {
		grid-column: auto;
		min-width: 170px;
		min-height: 70px;
		margin-left: 10px;
		padding: 0 28px;
	}

	body .ayap-sr .ayap-sr-populaires {
		flex-wrap: nowrap;
		gap: 16px;
	}

	body .ayap-sr .ayap-sr-pop-liste {
		flex: 1 1 auto;
	}

	/* Onglets (libellés complets) + bouton Filtres à droite */
	body .ayap-sr .ayap-sr-rangee {
		margin: 22px 0 20px;
	}

	body .ayap-sr.is-js .ayap-sr-rangee--seule {
		display: flex;
		justify-content: flex-end;
	}

	body .ayap-sr.is-js .ayap-sr-filtres-btn--rangee {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
	}

	body .ayap-sr .ayap-sr-filtres-btn:not(.ayap-sr-filtres-btn--rangee) {
		display: none !important;
	}
}

/* --- Mobile (≤ 760 px) --- */
@media (max-width: 760px) {

	body .ayap-sr .ayap-sr-hero {
		padding-top: 28px;
		padding-bottom: 24px;
	}

	body .ayap-sr .ayap-sr-titre {
		margin-bottom: 10px;
		font-size: 30px;
	}

	body .ayap-sr .ayap-sr-intro {
		font-size: 15px;
		line-height: 1.5;
	}

	/* Carte : champs empilés dans un seul bloc, bouton dessous */
	body .ayap-sr .ayap-sr-barre-recherche {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		max-width: 100%;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(1) {
		border-radius: 16px 16px 0 0;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2) {
		border-top: 0;
		border-radius: 0 0 16px 16px;
	}

	body .ayap-sr .ayap-sr-btn {
		min-height: 54px;
		margin-top: 10px;
	}

	/* « Populaires » : libellé au-dessus, pastilles défilantes jusqu'au bord de l'écran */
	body .ayap-sr .ayap-sr-populaires {
		display: block;
	}

	body .ayap-sr .ayap-sr-populaires > span {
		display: block;
		margin: 0 0 12px;
	}

	body .ayap-sr .ayap-sr-pop-liste {
		gap: 10px;
		margin-right: calc(-1 * var(--sr-padx, 0px));
		padding-right: var(--sr-padx, 0px);
	}

	/* Onglets : libellés courts, défilement jusqu'au bord de l'écran */
	body .ayap-sr .ayap-sr-rangee {
		margin: 20px 0 14px;
	}

	body .ayap-sr .ayap-sr-onglet-suite {
		display: none;
	}

	body .ayap-sr .ayap-sr-rangee > .ayap-sr-onglets {
		margin-right: calc(-1 * var(--sr-padx, 0px));
		padding-right: var(--sr-padx, 0px);
	}

	body .ayap-sr .ayap-sr-filtres-btn--rangee,
	body .ayap-sr.is-js .ayap-sr-rangee--seule {
		display: none !important;
	}

	/* Ligne « Filtres … n résultats », puis tri et affichage */
	body .ayap-sr .ayap-sr-barre {
		gap: 12px;
	}

	body .ayap-sr .ayap-sr-ctl {
		display: contents;
	}

	body .ayap-sr.is-js .ayap-sr-filtres-btn:not(.ayap-sr-filtres-btn--rangee) {
		display: inline-flex;
		order: 1;
	}

	body .ayap-sr .ayap-sr-compte {
		order: 2;
		margin-left: auto;
		text-align: right;
	}

	body .ayap-sr .ayap-sr-ctl select {
		order: 3;
		flex: 1 1 160px;
		min-width: 0;
	}

	body .ayap-sr .ayap-sr-seg {
		order: 4;
	}

	body .ayap-sr .ayap-sr-liste {
		margin-top: 16px;
	}
}

/* ==========================================================================
   v2.8.88 — Bloc de recherche du bandeau : version COMPACTE sur tablette et
   mobile. Même maquette (pastilles d'icône, libellés en capitales, bouton
   orange), mais le bloc ne prend plus presque tout l'écran.
   Les hauteurs de champ sont verrouillées (!important) car certains thèmes
   imposent une hauteur / un remplissage aux <input>.
   Ordinateur (> 1100 px) : inchangé.
   ========================================================================== */

/* --- Tablette (761 – 1100 px) --- */
@media (min-width: 761px) and (max-width: 1100px) {
	body .ayap-sr .ayap-sr-hero {
		padding-top: 24px;
		padding-bottom: 20px;
	}

	body .ayap-sr .ayap-sr-titre {
		margin-bottom: 6px;
		font-size: 28px;
	}

	body .ayap-sr .ayap-sr-intro {
		margin-bottom: 14px;
		font-size: 15px;
		line-height: 1.4;
	}

	body .ayap-sr .ayap-sr-barre-recherche {
		padding: 6px;
		border-radius: 18px;
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 54px !important;
		height: auto !important;
		padding: 6px 12px 6px 56px;
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 11px;
		width: 34px;
		height: 34px;
		background-size: 17px 17px;
	}

	body .ayap-sr .ayap-sr-f label {
		margin: 0;
		font-size: 10px;
		line-height: 1.2;
	}

	body .ayap-sr .ayap-sr-f input[type="text"] {
		height: 24px !important;
		min-height: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		font-size: 15px;
		line-height: 24px !important;
	}

	body .ayap-sr .ayap-sr-btn {
		min-width: 140px;
		min-height: 54px !important;
		height: auto;
		margin-left: 6px;
		padding: 0 22px;
		border-radius: 14px;
		font-size: 14px;
	}

	body .ayap-sr .ayap-sr-populaires {
		margin-top: 12px;
	}

	body .ayap-sr .ayap-sr-populaires a {
		min-height: 30px;
		padding: 0 13px;
		font-size: 13px;
	}

	body .ayap-sr .ayap-sr-rangee {
		margin: 14px 0 14px;
	}
}

/* --- Mobile (≤ 760 px) --- */
@media (max-width: 760px) {
	body .ayap-sr .ayap-sr-hero {
		padding-top: 18px;
		padding-bottom: 16px;
	}

	body .ayap-sr .ayap-sr-hero-deco::before {
		top: -64px;
		right: -52px;
		width: 110px;
		height: 110px;
	}

	body .ayap-sr .ayap-sr-hero-deco::after {
		display: none;
	}

	body .ayap-sr .ayap-sr-titre {
		margin-bottom: 4px;
		font-size: 24px;
		line-height: 1.15;
	}

	body .ayap-sr .ayap-sr-intro {
		margin-bottom: 12px;
		font-size: 13px;
		line-height: 1.4;
	}

	/* Carte blanche compacte : champs empilés, bouton dessous */
	body .ayap-sr .ayap-sr-barre-recherche {
		gap: 0;
		padding: 6px;
		border-radius: 18px;
		box-shadow: 0 10px 24px rgba(3, 15, 35, 0.3);
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 48px !important;
		height: auto !important;
		padding: 5px 10px 5px 50px;
		justify-content: center;
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 8px;
		width: 32px;
		height: 32px;
		border-radius: 9px;
		background-size: 16px 16px;
	}

	body .ayap-sr .ayap-sr-f label {
		margin: 0;
		font-size: 10px;
		line-height: 1.2;
		letter-spacing: 0.07em;
	}

	body .ayap-sr .ayap-sr-f input[type="text"] {
		height: 22px !important;
		min-height: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		font-size: 15px;
		line-height: 22px !important;
	}

	/* La liste de suggestions ne doit jamais agrandir le champ */
	body .ayap-sr .ayap-sr-f .ayap-autocomplete-liste {
		position: absolute;
		margin: 4px 0 0;
	}

	body .ayap-sr .ayap-sr-f .ayap-autocomplete-liste[hidden] {
		display: none !important;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(1) {
		border-radius: 12px 12px 0 0;
	}

	body .ayap-sr .ayap-sr-barre-recherche > .ayap-sr-f:nth-child(2) {
		border-radius: 0 0 12px 12px;
	}

	body .ayap-sr .ayap-sr-btn {
		min-height: 44px !important;
		height: auto;
		margin-top: 6px;
		padding: 0 20px;
		border-radius: 12px;
		font-size: 14px;
		letter-spacing: 0.08em;
		box-shadow: 0 4px 10px color-mix(in srgb, var(--sr-c2) 40%, transparent);
	}

	/* « Populaires » : plus serré */
	body .ayap-sr .ayap-sr-populaires {
		margin-top: 12px;
	}

	body .ayap-sr .ayap-sr-populaires > span {
		margin-bottom: 6px;
		font-size: 11px;
	}

	body .ayap-sr .ayap-sr-pop-liste {
		gap: 8px;
	}

	body .ayap-sr .ayap-sr-populaires a {
		min-height: 30px;
		padding: 0 12px;
		font-size: 13px;
	}

	body .ayap-sr .ayap-sr-rangee {
		margin: 12px 0 10px;
	}
}

/* --- Petit mobile (≤ 400 px) --- */
@media (max-width: 400px) {
	body .ayap-sr .ayap-sr-titre {
		font-size: 22px;
	}

	body .ayap-sr .ayap-sr-f {
		min-height: 46px !important;
		padding-left: 46px;
	}

	body .ayap-sr .ayap-sr-f::before {
		left: 7px;
		width: 30px;
		height: 30px;
	}
}

/* ==========================================================================
   v2.8.115 — Annonce de la liste de résultats : image principale plus grande,
   étiquettes utiles et boutons Appeler / WhatsApp / Voir la fiche.
   Le bandeau et sa barre de recherche ne sont pas touchés.
   ========================================================================== */
body .ayap-sr .ayap-sr-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

body .ayap-sr .ayap-sr-tag {
	display: inline-flex;
	gap: 5px;
	align-items: center;
	margin: 0;
	padding: 4px 9px;
	border-radius: 8px;
	background: #e8f6ee;
	color: #1a7d4b;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.3;
}

body .ayap-sr .ayap-sr-tag svg {
	flex: 0 0 auto;
	color: inherit;
}

/* Les boutons passent au-dessus du lien qui rend toute la carte cliquable. */
body .ayap-sr .ayap-sr-actions {
	position: relative;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-top: 12px;
}

body .ayap-sr a.ayap-sr-act {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid transparent;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

body .ayap-sr a.ayap-sr-act svg {
	flex: 0 0 auto;
	color: inherit;
}

body .ayap-sr a.ayap-sr-act--appel {
	background: var(--sr-c1);
	color: var(--sr-c1t);
}

body .ayap-sr a.ayap-sr-act--wa {
	border-color: #bfe5cf;
	background: #e8f6ee;
	color: #14753f;
}

body .ayap-sr a.ayap-sr-act--fiche {
	margin-left: auto;
	padding: 0 4px;
	color: var(--sr-c1);
}

body .ayap-sr a.ayap-sr-act--appel:hover,
body .ayap-sr a.ayap-sr-act--appel:focus-visible {
	color: var(--sr-c1t);
	filter: brightness(1.15);
}

body .ayap-sr a.ayap-sr-act--wa:hover,
body .ayap-sr a.ayap-sr-act--wa:focus-visible {
	color: #14753f;
	background: #d6efe0;
}

body .ayap-sr a.ayap-sr-act--fiche:hover,
body .ayap-sr a.ayap-sr-act--fiche:focus-visible {
	color: var(--sr-c1);
	text-decoration: underline;
}

/* Tablette et mobile, ou annonce étroite : boutons sur toute la largeur, « Voir la fiche » masqué
   (toute la carte reste cliquable). */
@media (max-width: 760px) {
	body .ayap-sr a.ayap-sr-act {
		flex: 1 1 0;
	}

	body .ayap-sr a.ayap-sr-act--fiche {
		display: none;
	}
}

@container ayap-carte (max-width: 430px) {
	body .ayap-sr a.ayap-sr-act {
		flex: 1 1 0;
	}

	body .ayap-sr a.ayap-sr-act--fiche {
		display: none;
	}
}
